13eb1a62eSJoseph Koshy# $FreeBSD$ 2e5e23eccSBryan Drewery 3a70cba95SGlen BarberPACKAGE=lib${LIB} 4e5e23eccSBryan DrewerySHLIBDIR?= /lib 5e5e23eccSBryan Drewery 6edbef29bSKai Wang.include <bsd.own.mk> 7edbef29bSKai Wang 8*2821bdccSEd MasteELFTCDIR=${SRCTOP}/contrib/elftoolchain 9*2821bdccSEd MasteSRCDIR= ${ELFTCDIR}/libelf 10edbef29bSKai Wang 11edbef29bSKai Wang.PATH: ${SRCDIR} 123eb1a62eSJoseph Koshy 133eb1a62eSJoseph KoshyLIB= elf 143eb1a62eSJoseph Koshy 15edbef29bSKai WangSRCS= elf.c \ 16edbef29bSKai Wang elf_begin.c \ 173eb1a62eSJoseph Koshy elf_cntl.c \ 183eb1a62eSJoseph Koshy elf_end.c elf_errmsg.c elf_errno.c \ 193eb1a62eSJoseph Koshy elf_data.c \ 203eb1a62eSJoseph Koshy elf_fill.c \ 213eb1a62eSJoseph Koshy elf_flag.c \ 223eb1a62eSJoseph Koshy elf_getarhdr.c \ 233eb1a62eSJoseph Koshy elf_getarsym.c \ 243eb1a62eSJoseph Koshy elf_getbase.c \ 253eb1a62eSJoseph Koshy elf_getident.c \ 263eb1a62eSJoseph Koshy elf_hash.c \ 273eb1a62eSJoseph Koshy elf_kind.c \ 283eb1a62eSJoseph Koshy elf_memory.c \ 293eb1a62eSJoseph Koshy elf_next.c \ 30edbef29bSKai Wang elf_open.c \ 313eb1a62eSJoseph Koshy elf_rand.c \ 323eb1a62eSJoseph Koshy elf_rawfile.c \ 33f6c0f35eSJoseph Koshy elf_phnum.c \ 343eb1a62eSJoseph Koshy elf_shnum.c \ 353eb1a62eSJoseph Koshy elf_shstrndx.c \ 363eb1a62eSJoseph Koshy elf_scn.c \ 373eb1a62eSJoseph Koshy elf_strptr.c \ 383eb1a62eSJoseph Koshy elf_update.c \ 393eb1a62eSJoseph Koshy elf_version.c \ 402dacb27eSJoseph Koshy gelf_cap.c \ 413eb1a62eSJoseph Koshy gelf_checksum.c \ 423eb1a62eSJoseph Koshy gelf_dyn.c \ 433eb1a62eSJoseph Koshy gelf_ehdr.c \ 442dacb27eSJoseph Koshy gelf_getclass.c \ 452dacb27eSJoseph Koshy gelf_fsize.c \ 462dacb27eSJoseph Koshy gelf_move.c \ 473eb1a62eSJoseph Koshy gelf_phdr.c \ 483eb1a62eSJoseph Koshy gelf_rel.c \ 493eb1a62eSJoseph Koshy gelf_rela.c \ 503eb1a62eSJoseph Koshy gelf_shdr.c \ 513eb1a62eSJoseph Koshy gelf_sym.c \ 522dacb27eSJoseph Koshy gelf_syminfo.c \ 533eb1a62eSJoseph Koshy gelf_symshndx.c \ 543eb1a62eSJoseph Koshy gelf_xlate.c \ 553eb1a62eSJoseph Koshy libelf_align.c \ 563eb1a62eSJoseph Koshy libelf_allocate.c \ 573eb1a62eSJoseph Koshy libelf_ar.c \ 58d961c5b4SKai Wang libelf_ar_util.c \ 593eb1a62eSJoseph Koshy libelf_checksum.c \ 603eb1a62eSJoseph Koshy libelf_data.c \ 613eb1a62eSJoseph Koshy libelf_ehdr.c \ 62f6c0f35eSJoseph Koshy libelf_extended.c \ 63edbef29bSKai Wang libelf_memory.c \ 64edbef29bSKai Wang libelf_open.c \ 653eb1a62eSJoseph Koshy libelf_phdr.c \ 663eb1a62eSJoseph Koshy libelf_shdr.c \ 679167cd63SJoseph Koshy libelf_xlate.c \ 689167cd63SJoseph Koshy ${GENSRCS} 693eb1a62eSJoseph Koshy 70edbef29bSKai WangINCS= libelf.h gelf.h 71ec280fdbSAndrew Turner 724aa63711SBryan Drewery# This same hack is in lib/libdwarf/Makefile and usr.bin/readelf/Makefile 736eabfa96SKai Wang# We need to link against the correct version of these files. One 746eabfa96SKai Wang# solution is to include ../../sys in the include path. This causes 756eabfa96SKai Wang# problems when a header file in sys depends on a file in another 766eabfa96SKai Wang# part of the tree, e.g. a machine dependent header. 776eabfa96SKai Wang# 786eabfa96SKai WangSRCS+= sys/elf32.h sys/elf64.h sys/elf_common.h 796eabfa96SKai Wang 8073eee246SRuslan ErmilovGENSRCS= libelf_fsize.c libelf_msize.c libelf_convert.c 8173eee246SRuslan ErmilovCLEANFILES= ${GENSRCS} 826eabfa96SKai WangCLEANDIRS= sys 83*2821bdccSEd MasteCFLAGS+= -I. -I${SRCDIR} -I${ELFTCDIR}/common 843eb1a62eSJoseph Koshy 85b791fbe6SBryan Drewerysys/elf32.h sys/elf64.h sys/elf_common.h: ${.CURDIR}/../../sys/${.TARGET} .NOMETA 866eabfa96SKai Wang mkdir -p ${.OBJDIR}/sys 87b791fbe6SBryan Drewery ln -sf ${.ALLSRC} ${.TARGET} 886eabfa96SKai Wang 8988d795a0SKai WangSHLIB_MAJOR= 2 903eb1a62eSJoseph Koshy 913eb1a62eSJoseph KoshyMAN= elf.3 \ 923eb1a62eSJoseph Koshy elf_begin.3 \ 933eb1a62eSJoseph Koshy elf_cntl.3 \ 9486f5401bSKai Wang elf_end.3 \ 9586f5401bSKai Wang elf_errmsg.3 \ 963eb1a62eSJoseph Koshy elf_fill.3 \ 973eb1a62eSJoseph Koshy elf_flagdata.3 \ 983eb1a62eSJoseph Koshy elf_getarhdr.3 \ 993eb1a62eSJoseph Koshy elf_getarsym.3 \ 1003eb1a62eSJoseph Koshy elf_getbase.3 \ 1013eb1a62eSJoseph Koshy elf_getdata.3 \ 1023eb1a62eSJoseph Koshy elf_getident.3 \ 1033eb1a62eSJoseph Koshy elf_getscn.3 \ 10486f5401bSKai Wang elf_getphdrnum.3 \ 105f6c0f35eSJoseph Koshy elf_getphnum.3 \ 10686f5401bSKai Wang elf_getshdrnum.3 \ 1073eb1a62eSJoseph Koshy elf_getshnum.3 \ 10886f5401bSKai Wang elf_getshdrstrndx.3 \ 1093eb1a62eSJoseph Koshy elf_getshstrndx.3 \ 1103eb1a62eSJoseph Koshy elf_hash.3 \ 1113eb1a62eSJoseph Koshy elf_kind.3 \ 1123eb1a62eSJoseph Koshy elf_memory.3 \ 1133eb1a62eSJoseph Koshy elf_next.3 \ 114edbef29bSKai Wang elf_open.3 \ 1153eb1a62eSJoseph Koshy elf_rawfile.3 \ 1163eb1a62eSJoseph Koshy elf_rand.3 \ 1173eb1a62eSJoseph Koshy elf_strptr.3 \ 1183eb1a62eSJoseph Koshy elf_update.3 \ 1193eb1a62eSJoseph Koshy elf_version.3 \ 1203eb1a62eSJoseph Koshy gelf.3 \ 1213eb1a62eSJoseph Koshy gelf_checksum.3 \ 1223eb1a62eSJoseph Koshy gelf_fsize.3 \ 1233eb1a62eSJoseph Koshy gelf_getcap.3 \ 1243eb1a62eSJoseph Koshy gelf_getclass.3 \ 1253eb1a62eSJoseph Koshy gelf_getdyn.3 \ 1263eb1a62eSJoseph Koshy gelf_getehdr.3 \ 1273eb1a62eSJoseph Koshy gelf_getmove.3 \ 1283eb1a62eSJoseph Koshy gelf_getphdr.3 \ 1293eb1a62eSJoseph Koshy gelf_getrel.3 \ 1303eb1a62eSJoseph Koshy gelf_getrela.3 \ 1313eb1a62eSJoseph Koshy gelf_getshdr.3 \ 1323eb1a62eSJoseph Koshy gelf_getsym.3 \ 1333eb1a62eSJoseph Koshy gelf_getsyminfo.3 \ 1343eb1a62eSJoseph Koshy gelf_getsymshndx.3 \ 1353eb1a62eSJoseph Koshy gelf_newehdr.3 \ 1363eb1a62eSJoseph Koshy gelf_newphdr.3 \ 1373eb1a62eSJoseph Koshy gelf_update_ehdr.3 \ 1383eb1a62eSJoseph Koshy gelf_xlatetof.3 1393eb1a62eSJoseph Koshy 1403eb1a62eSJoseph KoshyMLINKS+= \ 1413eb1a62eSJoseph Koshy elf_errmsg.3 elf_errno.3 \ 142edbef29bSKai Wang elf_flagdata.3 elf_flagarhdr.3 \ 1433eb1a62eSJoseph Koshy elf_flagdata.3 elf_flagehdr.3 \ 1443eb1a62eSJoseph Koshy elf_flagdata.3 elf_flagelf.3 \ 1453eb1a62eSJoseph Koshy elf_flagdata.3 elf_flagphdr.3 \ 1463eb1a62eSJoseph Koshy elf_flagdata.3 elf_flagscn.3 \ 1473eb1a62eSJoseph Koshy elf_flagdata.3 elf_flagshdr.3 \ 1483eb1a62eSJoseph Koshy elf_getdata.3 elf_newdata.3 \ 1493eb1a62eSJoseph Koshy elf_getdata.3 elf_rawdata.3 \ 1503eb1a62eSJoseph Koshy elf_getscn.3 elf_ndxscn.3 \ 1513eb1a62eSJoseph Koshy elf_getscn.3 elf_newscn.3 \ 1523eb1a62eSJoseph Koshy elf_getscn.3 elf_nextscn.3 \ 1533eb1a62eSJoseph Koshy elf_getshstrndx.3 elf_setshstrndx.3 \ 154edbef29bSKai Wang elf_open.3 elf_openmemory.3 \ 1553eb1a62eSJoseph Koshy gelf_getcap.3 gelf_update_cap.3 \ 1563eb1a62eSJoseph Koshy gelf_getdyn.3 gelf_update_dyn.3 \ 1573eb1a62eSJoseph Koshy gelf_getmove.3 gelf_update_move.3 \ 1583eb1a62eSJoseph Koshy gelf_getrel.3 gelf_update_rel.3 \ 1593eb1a62eSJoseph Koshy gelf_getrela.3 gelf_update_rela.3 \ 1603eb1a62eSJoseph Koshy gelf_getsym.3 gelf_update_sym.3 \ 1613eb1a62eSJoseph Koshy gelf_getsyminfo.3 gelf_update_syminfo.3 \ 1623eb1a62eSJoseph Koshy gelf_getsymshndx.3 gelf_update_symshndx.3 \ 1633eb1a62eSJoseph Koshy gelf_update_ehdr.3 gelf_update_phdr.3 \ 1643eb1a62eSJoseph Koshy gelf_update_ehdr.3 gelf_update_shdr.3 \ 1653eb1a62eSJoseph Koshy gelf_xlatetof.3 gelf_xlatetom.3 1663eb1a62eSJoseph Koshy 1673eb1a62eSJoseph Koshy.for E in 32 64 1683eb1a62eSJoseph KoshyMLINKS+= \ 1693eb1a62eSJoseph Koshy gelf_checksum.3 elf${E}_checksum.3 \ 1703eb1a62eSJoseph Koshy gelf_fsize.3 elf${E}_fsize.3 \ 1713eb1a62eSJoseph Koshy gelf_getehdr.3 elf${E}_getehdr.3 \ 1723eb1a62eSJoseph Koshy gelf_getphdr.3 elf${E}_getphdr.3 \ 1733eb1a62eSJoseph Koshy gelf_getshdr.3 elf${E}_getshdr.3 \ 1743eb1a62eSJoseph Koshy gelf_newehdr.3 elf${E}_newehdr.3 \ 1753eb1a62eSJoseph Koshy gelf_newphdr.3 elf${E}_newphdr.3 \ 1763eb1a62eSJoseph Koshy gelf_xlatetof.3 elf${E}_xlatetof.3 \ 1773eb1a62eSJoseph Koshy gelf_xlatetof.3 elf${E}_xlatetom.3 1783eb1a62eSJoseph Koshy.endfor 1793eb1a62eSJoseph Koshy 180edbef29bSKai WangVERSION_MAP= ${SRCDIR}/Version.map 1813eb1a62eSJoseph Koshy 1823eb1a62eSJoseph Koshylibelf_convert.c: elf_types.m4 libelf_convert.m4 1833eb1a62eSJoseph Koshylibelf_fsize.c: elf_types.m4 libelf_fsize.m4 1843eb1a62eSJoseph Koshylibelf_msize.c: elf_types.m4 libelf_msize.m4 1853eb1a62eSJoseph Koshy 1863eb1a62eSJoseph Koshy.include <bsd.lib.mk> 1873eb1a62eSJoseph Koshy 1889167cd63SJoseph Koshy# Keep the .SUFFIXES line after the include of bsd.lib.mk 1893eb1a62eSJoseph Koshy.SUFFIXES: .m4 .c 1903eb1a62eSJoseph Koshy.m4.c: 191edbef29bSKai Wang m4 -D SRCDIR=${SRCDIR} ${M4FLAGS} ${.IMPSRC} > ${.TARGET} 192edbef29bSKai Wang 193