xref: /dflybsd-src/lib/libelf/Makefile (revision dba3e8e975b88aa7d118fe1b423e50360a6c7394)
1f63db962SJohn Marino# ELF library is a component of ELF Tool Chain (replacement for binutils)
2f63db962SJohn Marino# For now, do not expose this library.  It is needed for execinfo library.
3f63db962SJohn Marino
4f63db962SJohn Marino
5f63db962SJohn MarinoLIB=			elf
6f63db962SJohn MarinoINTERNALLIB=		yes
7*dba3e8e9SzrjINTERNALLIBPROF=	yes
8f63db962SJohn MarinoINSTALL_PIC_ARCHIVE=	yes
9f63db962SJohn MarinoTOOLCHAINDIR=		${.CURDIR}/../../contrib/elftoolchain
10f63db962SJohn MarinoSRCDIR=			${TOOLCHAINDIR}/libelf
11f63db962SJohn MarinoCOMMON=			${TOOLCHAINDIR}/common
12f63db962SJohn MarinoCFLAGS+=		-I. -I${SRCDIR} -I${COMMON}
13f63db962SJohn Marino
14f63db962SJohn Marino.PATH:			${SRCDIR}
15f63db962SJohn Marino
16f63db962SJohn Marino# verbatim from vendor sourcefile
17f63db962SJohn MarinoSRCS=	elf.c							\
18f63db962SJohn Marino	elf_begin.c						\
19f63db962SJohn Marino	elf_cntl.c						\
20f63db962SJohn Marino	elf_end.c elf_errmsg.c elf_errno.c			\
21f63db962SJohn Marino	elf_data.c						\
22f63db962SJohn Marino	elf_fill.c						\
23f63db962SJohn Marino	elf_flag.c						\
24f63db962SJohn Marino	elf_getarhdr.c						\
25f63db962SJohn Marino	elf_getarsym.c						\
26f63db962SJohn Marino	elf_getbase.c						\
27f63db962SJohn Marino	elf_getident.c						\
28f63db962SJohn Marino	elf_hash.c						\
29f63db962SJohn Marino	elf_kind.c						\
30f63db962SJohn Marino	elf_memory.c						\
31f63db962SJohn Marino	elf_next.c						\
32f63db962SJohn Marino	elf_open.c						\
33f63db962SJohn Marino	elf_rand.c						\
34f63db962SJohn Marino	elf_rawfile.c						\
35f63db962SJohn Marino	elf_phnum.c						\
36f63db962SJohn Marino	elf_shnum.c						\
37f63db962SJohn Marino	elf_shstrndx.c						\
38f63db962SJohn Marino	elf_scn.c						\
39f63db962SJohn Marino	elf_strptr.c						\
40f63db962SJohn Marino	elf_update.c						\
41f63db962SJohn Marino	elf_version.c						\
42f63db962SJohn Marino	gelf_cap.c						\
43f63db962SJohn Marino	gelf_checksum.c						\
44f63db962SJohn Marino	gelf_dyn.c						\
45f63db962SJohn Marino	gelf_ehdr.c						\
46f63db962SJohn Marino	gelf_getclass.c						\
47f63db962SJohn Marino	gelf_fsize.c						\
48f63db962SJohn Marino	gelf_move.c						\
49f63db962SJohn Marino	gelf_phdr.c						\
50f63db962SJohn Marino	gelf_rel.c						\
51f63db962SJohn Marino	gelf_rela.c						\
52f63db962SJohn Marino	gelf_shdr.c						\
53f63db962SJohn Marino	gelf_sym.c						\
54f63db962SJohn Marino	gelf_syminfo.c						\
55f63db962SJohn Marino	gelf_symshndx.c						\
56f63db962SJohn Marino	gelf_xlate.c						\
57f63db962SJohn Marino	libelf_align.c						\
58f63db962SJohn Marino	libelf_allocate.c					\
59f63db962SJohn Marino	libelf_ar.c						\
60f63db962SJohn Marino	libelf_ar_util.c					\
61f63db962SJohn Marino	libelf_checksum.c					\
62f63db962SJohn Marino	libelf_data.c						\
63f63db962SJohn Marino	libelf_ehdr.c						\
64f63db962SJohn Marino	libelf_extended.c					\
65f63db962SJohn Marino	libelf_memory.c						\
66f63db962SJohn Marino	libelf_open.c						\
67f63db962SJohn Marino	libelf_phdr.c						\
68f63db962SJohn Marino	libelf_shdr.c						\
69f63db962SJohn Marino	libelf_xlate.c						\
70f63db962SJohn Marino	${GENSRCS}
71f63db962SJohn Marino
72f63db962SJohn MarinoGENSRCS=	libelf_fsize.c libelf_msize.c libelf_convert.c
73f63db962SJohn Marino
74f63db962SJohn Marinolibelf_convert.c:	elf_types.m4 libelf_convert.m4
75f63db962SJohn Marinolibelf_fsize.c:		elf_types.m4 libelf_fsize.m4
76f63db962SJohn Marinolibelf_msize.c:		elf_types.m4 libelf_msize.m4
77f63db962SJohn Marino
78f63db962SJohn Marino# Copy correct headers over to object directory
79f63db962SJohn Marino
80f63db962SJohn MarinoELFHEAD=	sys/elf32.h sys/elf64.h sys/elf_common.h
81f63db962SJohn MarinoSRCS+=		${ELFHEAD}
82f63db962SJohn Marino
83f63db962SJohn Marino${.OBJDIR}/sys:
84f63db962SJohn Marino	mkdir -p ${.TARGET}
85f63db962SJohn Marino
86f63db962SJohn Marino${ELFHEAD}: ${.OBJDIR}/sys ${.CURDIR}/../../sys/${.TARGET}
87f63db962SJohn Marino	ln -sf ${.CURDIR}/../../sys/${.TARGET} ${.TARGET}
88f63db962SJohn Marino
89f63db962SJohn MarinoCLEANFILES=	${GENSRCS}
90f63db962SJohn MarinoCLEANDIRS=	sys
91f63db962SJohn Marino
92f63db962SJohn Marino.include <bsd.lib.mk>
93f63db962SJohn Marino
94f63db962SJohn Marino# Keep the .SUFFIXES line after the include of <bsd.lib.mk>
95f63db962SJohn Marino.SUFFIXES:	.m4 .c
96f63db962SJohn Marino.m4.c:
97f63db962SJohn Marino	m4 -D SRCDIR=${SRCDIR} ${M4FLAGS} ${.IMPSRC} > ${.TARGET}
98