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