diff --git a/lib/libdwarf/Makefile b/lib/libdwarf/Makefile index 5366733c4c1d..aa4197fb1540 100644 --- a/lib/libdwarf/Makefile +++ b/lib/libdwarf/Makefile @@ -75,14 +75,27 @@ SRCS= \ INCS= dwarf.h libdwarf.h +# +# We need to link against the correct version of these files. One +# solution is to include ../../sys in the include path. This causes +# problems when a header file in sys depends on a file in another +# part of the tree, e.g. a machine dependent header. +# +SRCS+= sys/elf32.h sys/elf64.h sys/elf_common.h + GENSRCS= dwarf_pubnames.c dwarf_pubtypes.c dwarf_weaks.c \ dwarf_funcs.c dwarf_vars.c dwarf_types.c \ dwarf_pro_pubnames.c dwarf_pro_weaks.c \ dwarf_pro_funcs.c dwarf_pro_types.c \ dwarf_pro_vars.c CLEANFILES= ${GENSRCS} +CLEANDIRS= sys CFLAGS+= -I. -I${SRCDIR} -I${TOP}/common -I${TOP}/libelf +sys/elf32.h sys/elf64.h sys/elf_common.h: ${.CURDIR}/../../sys/${.TARGET} + mkdir -p ${.OBJDIR}/sys + ln -sf ${.CURDIR}/../../sys/${.TARGET} ${.TARGET} + LDADD+= -lelf DPADD+= ${LIBELF} diff --git a/lib/libelf/Makefile b/lib/libelf/Makefile index f1200920d958..58692cfe0f3e 100644 --- a/lib/libelf/Makefile +++ b/lib/libelf/Makefile @@ -65,10 +65,23 @@ SRCS= elf.c \ INCS= libelf.h gelf.h +# +# We need to link against the correct version of these files. One +# solution is to include ../../sys in the include path. This causes +# problems when a header file in sys depends on a file in another +# part of the tree, e.g. a machine dependent header. +# +SRCS+= sys/elf32.h sys/elf64.h sys/elf_common.h + GENSRCS= libelf_fsize.c libelf_msize.c libelf_convert.c CLEANFILES= ${GENSRCS} +CLEANDIRS= sys CFLAGS+= -I. -I${SRCDIR} -I${TOP}/common +sys/elf32.h sys/elf64.h sys/elf_common.h: ${.CURDIR}/../../sys/${.TARGET} + mkdir -p ${.OBJDIR}/sys + ln -sf ${.CURDIR}/../../sys/${.TARGET} ${.TARGET} + SHLIB_MAJOR= 1 MAN= elf.3 \