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