Makefile revision 119044
1# $FreeBSD: head/libexec/rtld-elf/Makefile 119044 2003-08-17 18:50:56Z gordon $ 2 3PROG= ld-elf.so.1 4SRCS= rtld_start.S rtld.c rtld_lock.c map_object.c malloc.c \ 5 xmalloc.c debug.c reloc.c 6MAN= rtld.1 7CSTD?= gnu99 8CFLAGS+= -Wall -DFREEBSD_ELF -DIN_RTLD 9CFLAGS+= -I${.CURDIR}/${MACHINE_ARCH} -I${.CURDIR} 10LDFLAGS+= -nostdlib -e .rtld_start 11INSTALLFLAGS= -fschg -C -b 12BINDIR= /libexec 13SYMLINKS= ${BINDIR}/ld-elf.so.1 /usr/libexec/ld-elf.so.1 14MLINKS= rtld.1 ld-elf.so.1.1 \ 15 rtld.1 ld.so.1 16 17# 18# To enable the libmap.conf functionality please 19# add 'WITH_LIBMAP=yes' to /etc/make.conf, recompile 20# and reinstall rtld-elf. 21.ifdef WITH_LIBMAP 22CFLAGS+= -DWITH_LIBMAP 23SRCS+= libmap.c 24.endif 25 26.if exists(${.CURDIR}/${MACHINE_ARCH}/Makefile.inc) 27.include "${.CURDIR}/${MACHINE_ARCH}/Makefile.inc" 28.endif 29 30# If LDSCRIPT is defined, we build the dynamic linker as an 31# executable. Otherwise we build it as a shared object. We ignore 32# LDSCRIPT if the running kernel is too old to support it. 33.if defined(LDSCRIPT) 34KERN_OSRELDATE!= /sbin/sysctl -n kern.osreldate 2>/dev/null || echo 0 35.if ${KERN_OSRELDATE} >= 400001 36LDSO_IS_EXECUTABLE= yes 37.endif 38.endif 39 40.ifdef LDSO_IS_EXECUTABLE 41OBJS+= dyn_hack.so 42LDFLAGS+= -Wl,-T,${LDSCRIPT} -Wl,-E -Wl,-Bstatic 43DPADD= ${LIBC} 44LDADD= -lc 45.else 46CFLAGS+= -fpic -DPIC 47LDFLAGS+= -shared -Wl,-Bsymbolic 48DPADD= ${LIBC_PIC} 49LDADD= -lc_pic 50.endif 51 52dyn_hack.so: 53 ${CC} -shared -nostdlib -o dyn_hack.so -x c /dev/null 54 55# Since moving rtld-elf to /libexec, we need to create a symlink. 56# Fixup the existing binary that's there so we can symlink over it. 57beforeinstall: 58 -chflags noschg /usr/libexec/ld-elf.so.1 59 60.PATH: ${.CURDIR}/${MACHINE_ARCH} 61 62.include <bsd.prog.mk> 63