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