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