]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - lib/libelf/Makefile
zfs: merge openzfs/zfs@86e115e21
[FreeBSD/FreeBSD.git] / lib / libelf / Makefile
1
2 SHLIBDIR?= /lib
3
4 .include <bsd.own.mk>
5
6 ELFTCDIR=${SRCTOP}/contrib/elftoolchain
7 SRCDIR= ${ELFTCDIR}/libelf
8
9 .PATH:  ${SRCDIR}
10
11 PACKAGE=        runtime
12 LIB=    elf
13
14 SRCS=   elf.c                                                   \
15         elf_begin.c                                             \
16         elf_cntl.c                                              \
17         elf_end.c elf_errmsg.c elf_errno.c                      \
18         elf_data.c                                              \
19         elf_fill.c                                              \
20         elf_flag.c                                              \
21         elf_getarhdr.c                                          \
22         elf_getarsym.c                                          \
23         elf_getbase.c                                           \
24         elf_getident.c                                          \
25         elf_hash.c                                              \
26         elf_kind.c                                              \
27         elf_memory.c                                            \
28         elf_next.c                                              \
29         elf_open.c                                              \
30         elf_rand.c                                              \
31         elf_rawfile.c                                           \
32         elf_phnum.c                                             \
33         elf_shnum.c                                             \
34         elf_shstrndx.c                                          \
35         elf_scn.c                                               \
36         elf_strptr.c                                            \
37         elf_update.c                                            \
38         elf_version.c                                           \
39         gelf_cap.c                                              \
40         gelf_chdr.c                                             \
41         gelf_checksum.c                                         \
42         gelf_dyn.c                                              \
43         gelf_ehdr.c                                             \
44         gelf_getclass.c                                         \
45         gelf_fsize.c                                            \
46         gelf_mips64el.c                                         \
47         gelf_move.c                                             \
48         gelf_phdr.c                                             \
49         gelf_rel.c                                              \
50         gelf_rela.c                                             \
51         gelf_shdr.c                                             \
52         gelf_sym.c                                              \
53         gelf_syminfo.c                                          \
54         gelf_symshndx.c                                         \
55         gelf_xlate.c                                            \
56         libelf_align.c                                          \
57         libelf_allocate.c                                       \
58         libelf_ar.c                                             \
59         libelf_ar_util.c                                        \
60         libelf_chdr.c                                           \
61         libelf_checksum.c                                       \
62         libelf_data.c                                           \
63         libelf_ehdr.c                                           \
64         libelf_elfmachine.c                                     \
65         libelf_extended.c                                       \
66         libelf_memory.c                                         \
67         libelf_open.c                                           \
68         libelf_phdr.c                                           \
69         libelf_shdr.c                                           \
70         libelf_xlate.c                                          \
71         ${GENSRCS}
72
73 INCS=           libelf.h gelf.h
74
75 # This same hack is in lib/libdwarf/Makefile and usr.bin/readelf/Makefile
76 # We need to link against the correct version of these files. One
77 # solution is to include ../../sys in the include path. This causes
78 # problems when a header file in sys depends on a file in another
79 # part of the tree, e.g. a machine dependent header.
80 #
81 SRCS+=  sys/elf32.h sys/elf64.h sys/elf_common.h
82
83 # Allow bootstrapping elftoolchain on Linux:
84 .if defined(BOOTSTRAPPING) && ${.MAKE.OS} == "Linux"
85 native-elf-format.h:
86         ${ELFTCDIR}/common/native-elf-format > ${.TARGET} || rm ${.TARGET}
87 SRCS+=  native-elf-format.h
88 .endif
89
90 GENSRCS=        libelf_fsize.c libelf_msize.c libelf_convert.c
91 CLEANFILES=     ${GENSRCS}
92 CLEANDIRS=      sys
93 CFLAGS+=        -I. -I${SRCDIR} -I${ELFTCDIR}/common
94
95 sys/elf32.h sys/elf64.h sys/elf_common.h: ${SRCTOP}/sys/${.TARGET} .NOMETA
96         mkdir -p ${.OBJDIR}/sys
97         ln -sf ${.ALLSRC} ${.TARGET}
98
99 SHLIB_MAJOR=    2
100
101 MAN=    elf.3                                                   \
102         elf_begin.3                                             \
103         elf_cntl.3                                              \
104         elf_end.3                                               \
105         elf_errmsg.3                                            \
106         elf_fill.3                                              \
107         elf_flagdata.3                                          \
108         elf_getarhdr.3                                          \
109         elf_getarsym.3                                          \
110         elf_getbase.3                                           \
111         elf_getdata.3                                           \
112         elf_getident.3                                          \
113         elf_getscn.3                                            \
114         elf_getphdrnum.3                                        \
115         elf_getphnum.3                                          \
116         elf_getshdrnum.3                                        \
117         elf_getshnum.3                                          \
118         elf_getshdrstrndx.3                                     \
119         elf_getshstrndx.3                                       \
120         elf_hash.3                                              \
121         elf_kind.3                                              \
122         elf_memory.3                                            \
123         elf_next.3                                              \
124         elf_open.3                                              \
125         elf_rawfile.3                                           \
126         elf_rand.3                                              \
127         elf_strptr.3                                            \
128         elf_update.3                                            \
129         elf_version.3                                           \
130         gelf.3                                                  \
131         gelf_checksum.3                                         \
132         gelf_fsize.3                                            \
133         gelf_getcap.3                                           \
134         gelf_getchdr.3                                          \
135         gelf_getclass.3                                         \
136         gelf_getdyn.3                                           \
137         gelf_getehdr.3                                          \
138         gelf_getmove.3                                          \
139         gelf_getphdr.3                                          \
140         gelf_getrel.3                                           \
141         gelf_getrela.3                                          \
142         gelf_getshdr.3                                          \
143         gelf_getsym.3                                           \
144         gelf_getsyminfo.3                                       \
145         gelf_getsymshndx.3                                      \
146         gelf_newehdr.3                                          \
147         gelf_newphdr.3                                          \
148         gelf_update_ehdr.3                                      \
149         gelf_xlatetof.3
150
151 MLINKS+= \
152         elf_errmsg.3 elf_errno.3                \
153         elf_flagdata.3 elf_flagarhdr.3          \
154         elf_flagdata.3 elf_flagehdr.3           \
155         elf_flagdata.3 elf_flagelf.3            \
156         elf_flagdata.3 elf_flagphdr.3           \
157         elf_flagdata.3 elf_flagscn.3            \
158         elf_flagdata.3 elf_flagshdr.3           \
159         elf_getdata.3 elf_newdata.3             \
160         elf_getdata.3 elf_rawdata.3             \
161         elf_getscn.3 elf_ndxscn.3               \
162         elf_getscn.3 elf_newscn.3               \
163         elf_getscn.3 elf_nextscn.3              \
164         elf_getshstrndx.3 elf_setshstrndx.3     \
165         elf_open.3 elf_openmemory.3             \
166         gelf_getcap.3 gelf_update_cap.3         \
167         gelf_getdyn.3 gelf_update_dyn.3         \
168         gelf_getmove.3 gelf_update_move.3       \
169         gelf_getrel.3 gelf_update_rel.3         \
170         gelf_getrela.3 gelf_update_rela.3       \
171         gelf_getsym.3 gelf_update_sym.3         \
172         gelf_getsyminfo.3 gelf_update_syminfo.3 \
173         gelf_getsymshndx.3 gelf_update_symshndx.3 \
174         gelf_update_ehdr.3 gelf_update_phdr.3   \
175         gelf_update_ehdr.3 gelf_update_shdr.3   \
176         gelf_xlatetof.3 gelf_xlatetom.3
177
178 .for E in 32 64
179 MLINKS+= \
180         gelf_checksum.3 elf${E}_checksum.3      \
181         gelf_fsize.3    elf${E}_fsize.3         \
182         gelf_getchdr.3  elf${E}_getchdr.3       \
183         gelf_getehdr.3  elf${E}_getehdr.3       \
184         gelf_getphdr.3  elf${E}_getphdr.3       \
185         gelf_getshdr.3  elf${E}_getshdr.3       \
186         gelf_newehdr.3  elf${E}_newehdr.3       \
187         gelf_newphdr.3  elf${E}_newphdr.3       \
188         gelf_xlatetof.3 elf${E}_xlatetof.3      \
189         gelf_xlatetof.3 elf${E}_xlatetom.3
190 .endfor
191
192 VERSION_MAP=           ${SRCDIR}/Version.map
193
194 libelf_convert.c:       elf_types.m4 libelf_convert.m4
195 libelf_fsize.c:         elf_types.m4 libelf_fsize.m4
196 libelf_msize.c:         elf_types.m4 libelf_msize.m4
197
198 .include <bsd.lib.mk>
199
200 # Keep the .SUFFIXES line after the include of bsd.lib.mk
201 .SUFFIXES:      .m4 .c
202 .m4.c:
203         m4 -D SRCDIR=${SRCDIR} ${M4FLAGS} ${.IMPSRC} > ${.TARGET}
204