1# $NetBSD: Makefile,v 1.46 2008/10/31 20:24:52 mrg Exp $ 2 3.include <bsd.own.mk> # for OBJECT_FMT definition 4.include <bsd.shlib.mk> # for SHLINKINSTALLDIR definition 5.if ${MKPIC} != "no" 6.if (${OBJECT_FMT} == "a.out") 7PROG= ld.so 8SRCS= mdprologue.S rtld.c malloc.c shlib.c md.c vfprintf.c 9BINDIR= ${SHLINKINSTALLDIR} 10 11CLIB= ${NETBSDSRCDIR}/lib/libc 12CLIBOBJ!=cd ${CLIB} && ${PRINTOBJDIR} 13PICFLAG=-fpic -fno-function-cse 14CPPFLAGS+=$(PICFLAG) -DRTLD -DLIBC_SCCS \ 15 -I${CLIB}/include -I$(.CURDIR)/arch/$(MACHINE_ARCH) -I$(.CURDIR) 16.if defined(DEBUG) 17CPPFLAGS+=-DDEBUG 18.endif 19.if ${SHLIBINSTALLDIR} != ${LIBDIR} 20CPPFLAGS+=-DSTANDARD_SEARCH_DIRS=\"${SHLIBINSTALLDIR}\",\"${LIBDIR}\" 21.endif 22ASFLAGS+=-k 23LDFLAGS+=-Bshareable -Bsymbolic -assert nosymbolic -L${CLIBOBJ} 24.if defined(DESTDIR) 25LDFLAGS+= -nostdlib -L${DESTDIR}/usr/lib 26.endif 27LDADD+= -lc_pic 28DPADD+= ${LIBC_PIC} 29 30.PATH: ${CLIB}/stdio $(.CURDIR)/arch/$(MACHINE_ARCH) 31 32$(PROG): 33 $(LD) -o $(PROG) $(LDFLAGS) $(OBJS) $(LDADD) 34 35.S.o: 36 ${CPP} ${.IMPSRC} | ${AS} ${ASFLAGS} -o ${.TARGET} - 37 38.if ${SHLINKINSTALLDIR} != "/usr/libexec" 39SYMLINKS+= ${SHLINKINSTALLDIR}/${PROG} /usr/libexec/${PROG} 40.endif 41 42.elif (${OBJECT_FMT} == "ELF" && \ 43 (${MACHINE_ARCH} == "arm" || \ 44 ${MACHINE_ARCH} == "i386" || \ 45 ${MACHINE_ARCH} == "m68k" || \ 46 ${MACHINE_ARCH} == "sparc" || \ 47 ${MACHINE_ARCH} == "vax")) 48 49FILES= ld.so 50FILESDIR= /usr/libexec 51FILESMODE= ${BINMODE} 52UUDECODE_FILES= ld.so.${MACHINE_ARCH} 53UUDECODE_FILES_RENAME_${UUDECODE_FILES}= ld.so 54 55all dependall: ${FILES} 56 57ld.so: ld.so.${MACHINE_ARCH} 58 59.endif 60.endif 61 62MAN= ld.aout_so.1 63 64.include <bsd.files.mk> 65.include <bsd.prog.mk> 66