1 # $NetBSD: Makefile,v 1.42 2003/10/19 01:19:10 lukem 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 CLEANFILES+= ld.so 52 53 all dependall: ${FILES} 54 55 ld.so: ${.CURDIR}/ld.so.${MACHINE_ARCH}.uue 56 ${_MKMSG} " create ${.TARGET}" 57 ${_MKCMD}\ 58 ${TOOL_UUDECODE} ${.ALLSRC} 59 60 .endif 61 62 MAN= ld.aout_so.1 63 64 .include <bsd.prog.mk> 65