1164190Sjkoshy# $FreeBSD$
2164190Sjkoshy
3164190SjkoshyLIB=	elf
4164190Sjkoshy
5164190SjkoshySRCS=	elf_begin.c						\
6164190Sjkoshy	elf_cntl.c						\
7164190Sjkoshy	elf_end.c elf_errmsg.c elf_errno.c			\
8164190Sjkoshy	elf_data.c						\
9164190Sjkoshy	elf_fill.c						\
10164190Sjkoshy	elf_flag.c						\
11164190Sjkoshy	elf_getarhdr.c						\
12164190Sjkoshy	elf_getarsym.c						\
13164190Sjkoshy	elf_getbase.c						\
14164190Sjkoshy	elf_getident.c						\
15164190Sjkoshy	elf_hash.c						\
16164190Sjkoshy	elf_kind.c						\
17164190Sjkoshy	elf_memory.c						\
18164190Sjkoshy	elf_next.c						\
19164190Sjkoshy	elf_rand.c						\
20164190Sjkoshy	elf_rawfile.c						\
21165535Sjkoshy	elf_phnum.c						\
22164190Sjkoshy	elf_shnum.c						\
23164190Sjkoshy	elf_shstrndx.c						\
24164190Sjkoshy	elf_scn.c						\
25164190Sjkoshy	elf_strptr.c						\
26164190Sjkoshy	elf_update.c						\
27164190Sjkoshy	elf_version.c						\
28165317Sjkoshy	gelf_cap.c						\
29164190Sjkoshy	gelf_checksum.c						\
30164190Sjkoshy	gelf_dyn.c						\
31164190Sjkoshy	gelf_ehdr.c						\
32165317Sjkoshy	gelf_getclass.c						\
33165317Sjkoshy	gelf_fsize.c						\
34165317Sjkoshy	gelf_move.c						\
35164190Sjkoshy	gelf_phdr.c						\
36164190Sjkoshy	gelf_rel.c						\
37164190Sjkoshy	gelf_rela.c						\
38164190Sjkoshy	gelf_shdr.c						\
39164190Sjkoshy	gelf_sym.c						\
40165317Sjkoshy	gelf_syminfo.c						\
41164190Sjkoshy	gelf_symshndx.c						\
42164190Sjkoshy	gelf_xlate.c						\
43164190Sjkoshy	libelf.c						\
44164190Sjkoshy	libelf_align.c						\
45164190Sjkoshy	libelf_allocate.c					\
46164190Sjkoshy	libelf_ar.c						\
47210348Skaiw	libelf_ar_util.c					\
48164190Sjkoshy	libelf_checksum.c					\
49164190Sjkoshy	libelf_data.c						\
50164190Sjkoshy	libelf_ehdr.c						\
51165535Sjkoshy	libelf_extended.c					\
52164190Sjkoshy	libelf_phdr.c						\
53164190Sjkoshy	libelf_shdr.c						\
54164225Sjkoshy	libelf_xlate.c						\
55164225Sjkoshy	${GENSRCS}
56164190SjkoshyINCS=	libelf.h gelf.h
57164190Sjkoshy
58237528Sandrew#
59237528Sandrew# We need to link against the correct version of these files. One
60237528Sandrew# solution is to include ../../sys in the include path. This causes
61237528Sandrew# problems when a header file in sys depends on a file in another
62237528Sandrew# part of the tree, e.g. a machine dependent header.
63237528Sandrew#
64237528SandrewSRCS+=	sys/elf32.h sys/elf64.h sys/elf_common.h
65237528Sandrew
66164577SruGENSRCS=	libelf_fsize.c libelf_msize.c libelf_convert.c
67164577SruCLEANFILES=	${GENSRCS}
68237531SandrewCLEANDIRS=	sys
69237528SandrewCFLAGS+=	-I${.CURDIR} -I.
70164190Sjkoshy
71238741Sachesys/elf32.h sys/elf64.h sys/elf_common.h: ${.CURDIR}/../../sys/${.TARGET}
72238741Sache	mkdir -p ${.OBJDIR}/sys
73237528Sandrew	ln -sf ${.CURDIR}/../../sys/${.TARGET} ${.TARGET}
74237528Sandrew
75164190SjkoshySHLIB_MAJOR=	1
76164190Sjkoshy
77164190SjkoshyMAN=	elf.3							\
78164190Sjkoshy	elf_begin.3						\
79164190Sjkoshy	elf_cntl.3						\
80210345Skaiw	elf_end.3						\
81210345Skaiw	elf_errmsg.3						\
82164190Sjkoshy	elf_fill.3						\
83164190Sjkoshy	elf_flagdata.3						\
84164190Sjkoshy	elf_getarhdr.3						\
85164190Sjkoshy	elf_getarsym.3						\
86164190Sjkoshy	elf_getbase.3						\
87164190Sjkoshy	elf_getdata.3						\
88164190Sjkoshy	elf_getident.3						\
89164190Sjkoshy	elf_getscn.3						\
90210345Skaiw	elf_getphdrnum.3					\
91165535Sjkoshy	elf_getphnum.3						\
92210345Skaiw	elf_getshdrnum.3					\
93164190Sjkoshy	elf_getshnum.3						\
94210345Skaiw	elf_getshdrstrndx.3					\
95164190Sjkoshy	elf_getshstrndx.3					\
96164190Sjkoshy	elf_hash.3						\
97164190Sjkoshy	elf_kind.3						\
98164190Sjkoshy	elf_memory.3						\
99164190Sjkoshy	elf_next.3						\
100164190Sjkoshy	elf_rawfile.3						\
101164190Sjkoshy	elf_rand.3						\
102164190Sjkoshy	elf_strptr.3						\
103164190Sjkoshy	elf_update.3						\
104164190Sjkoshy	elf_version.3						\
105164190Sjkoshy	gelf.3							\
106164190Sjkoshy	gelf_checksum.3						\
107164190Sjkoshy	gelf_fsize.3						\
108164190Sjkoshy	gelf_getcap.3						\
109164190Sjkoshy	gelf_getclass.3						\
110164190Sjkoshy	gelf_getdyn.3						\
111164190Sjkoshy	gelf_getehdr.3						\
112164190Sjkoshy	gelf_getmove.3						\
113164190Sjkoshy	gelf_getphdr.3						\
114164190Sjkoshy	gelf_getrel.3						\
115164190Sjkoshy	gelf_getrela.3						\
116164190Sjkoshy	gelf_getshdr.3						\
117164190Sjkoshy	gelf_getsym.3						\
118164190Sjkoshy	gelf_getsyminfo.3					\
119164190Sjkoshy	gelf_getsymshndx.3					\
120164190Sjkoshy	gelf_newehdr.3						\
121164190Sjkoshy	gelf_newphdr.3						\
122164190Sjkoshy	gelf_update_ehdr.3					\
123164190Sjkoshy	gelf_xlatetof.3
124164190Sjkoshy
125164190SjkoshyMLINKS+= \
126164190Sjkoshy	elf_errmsg.3 elf_errno.3		\
127164190Sjkoshy	elf_flagdata.3 elf_flagehdr.3		\
128164190Sjkoshy	elf_flagdata.3 elf_flagelf.3		\
129164190Sjkoshy	elf_flagdata.3 elf_flagphdr.3		\
130164190Sjkoshy	elf_flagdata.3 elf_flagscn.3		\
131164190Sjkoshy	elf_flagdata.3 elf_flagshdr.3		\
132164190Sjkoshy	elf_getdata.3 elf_newdata.3		\
133164190Sjkoshy	elf_getdata.3 elf_rawdata.3		\
134164190Sjkoshy	elf_getscn.3 elf_ndxscn.3		\
135164190Sjkoshy	elf_getscn.3 elf_newscn.3		\
136164190Sjkoshy	elf_getscn.3 elf_nextscn.3		\
137164190Sjkoshy	elf_getshstrndx.3 elf_setshstrndx.3	\
138164190Sjkoshy	gelf_getcap.3 gelf_update_cap.3		\
139164190Sjkoshy	gelf_getdyn.3 gelf_update_dyn.3		\
140164190Sjkoshy	gelf_getmove.3 gelf_update_move.3	\
141164190Sjkoshy	gelf_getrel.3 gelf_update_rel.3		\
142164190Sjkoshy	gelf_getrela.3 gelf_update_rela.3	\
143164190Sjkoshy	gelf_getsym.3 gelf_update_sym.3		\
144164190Sjkoshy	gelf_getsyminfo.3 gelf_update_syminfo.3	\
145164190Sjkoshy	gelf_getsymshndx.3 gelf_update_symshndx.3 \
146164190Sjkoshy	gelf_update_ehdr.3 gelf_update_phdr.3	\
147164190Sjkoshy	gelf_update_ehdr.3 gelf_update_shdr.3	\
148164190Sjkoshy	gelf_xlatetof.3 gelf_xlatetom.3
149164190Sjkoshy
150164190Sjkoshy.for E in 32 64
151164190SjkoshyMLINKS+= \
152164190Sjkoshy	gelf_checksum.3	elf${E}_checksum.3 	\
153164190Sjkoshy	gelf_fsize.3	elf${E}_fsize.3 	\
154164190Sjkoshy	gelf_getehdr.3	elf${E}_getehdr.3	\
155164190Sjkoshy	gelf_getphdr.3	elf${E}_getphdr.3	\
156164190Sjkoshy	gelf_getshdr.3	elf${E}_getshdr.3	\
157164190Sjkoshy	gelf_newehdr.3	elf${E}_newehdr.3	\
158164190Sjkoshy	gelf_newphdr.3	elf${E}_newphdr.3	\
159164190Sjkoshy	gelf_xlatetof.3	elf${E}_xlatetof.3	\
160164190Sjkoshy	gelf_xlatetof.3	elf${E}_xlatetom.3
161164190Sjkoshy.endfor
162164190Sjkoshy
163164190SjkoshyVERSION_MAP=		${.CURDIR}/Version.map
164164190Sjkoshy
165164190SjkoshyLIBELF_TEST_HOOKS?=	1
166164190Sjkoshy.if defined(LIBELF_TEST_HOOKS) && (${LIBELF_TEST_HOOKS} > 0)
167189721SobrienCFLAGS+= -DLIBELF_TEST_HOOKS
168164190Sjkoshy.endif
169164190Sjkoshy
170164190Sjkoshylibelf_convert.c:	elf_types.m4 libelf_convert.m4
171164190Sjkoshylibelf_fsize.c:		elf_types.m4 libelf_fsize.m4
172164190Sjkoshylibelf_msize.c:		elf_types.m4 libelf_msize.m4
173164190Sjkoshy
174164190Sjkoshy.include <bsd.lib.mk>
175164190Sjkoshy
176164225Sjkoshy# Keep the .SUFFIXES line after the include of bsd.lib.mk
177164190Sjkoshy.SUFFIXES:	.m4 .c
178164190Sjkoshy.m4.c:
179165317Sjkoshy	m4 -D SRCDIR=${.CURDIR} ${.IMPSRC} > ${.TARGET}
180