1# $NetBSD: Makefile,v 1.40 2002/11/12 14:33:49 itohy 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") 6PROG= ld.so 7SRCS= mdprologue.S rtld.c malloc.c shlib.c md.c vfprintf.c 8BINDIR= ${SHLINKINSTALLDIR} 9 10CLIB= ${NETBSDSRCDIR}/lib/libc 11CLIBOBJ!=cd ${CLIB} && ${PRINTOBJDIR} 12PICFLAG=-fpic -fno-function-cse 13CPPFLAGS+=$(PICFLAG) -DRTLD -DLIBC_SCCS \ 14 -I${CLIB}/include -I$(.CURDIR)/arch/$(MACHINE_ARCH) -I$(.CURDIR) 15.if defined(DEBUG) 16CPPFLAGS+=-DDEBUG 17.endif 18.if ${SHLIBINSTALLDIR} != ${LIBDIR} 19CPPFLAGS+=-DSTANDARD_SEARCH_DIRS=\"${SHLIBINSTALLDIR}\",\"${LIBDIR}\" 20.endif 21ASFLAGS+=-k 22LDFLAGS+=-Bshareable -Bsymbolic -assert nosymbolic -L${CLIBOBJ} 23.if defined(DESTDIR) 24LDFLAGS+= -nostdlib -L${DESTDIR}/usr/lib 25.endif 26LDADD+= -lc_pic 27DPADD+= ${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" 38SYMLINKS+= ${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 48FILES= ld.so 49FILESDIR= /usr/libexec 50FILESMODE= ${BINMODE} 51CLEANFILES+= ld.so 52 53all dependall: ${FILES} 54 55UUDECODE?= uudecode 56 57ld.so: ${.CURDIR}/ld.so.${MACHINE_ARCH}.uue 58 ${UUDECODE} ${.ALLSRC} 59 60.endif 61 62MAN= ld.aout_so.1 63 64.include <bsd.prog.mk> 65