156 lines
3.8 KiB
Makefile
156 lines
3.8 KiB
Makefile
# $NetBSD: Makefile,v 1.18 2000/05/13 19:50:51 msaitoh Exp $
|
|
|
|
# for OBJECT_FMT, UNPRIVILEGED
|
|
.include <bsd.own.mk>
|
|
|
|
.if (${OBJECT_FMT} == "ELF") || defined(BOOTSTRAP_ELF)
|
|
ELF_PLEASE=
|
|
.endif
|
|
|
|
.if (${MACHINE_ARCH} == "alpha") || \
|
|
(${MACHINE_ARCH} == "i386" && defined(ELF_PLEASE)) || \
|
|
(${MACHINE_ARCH} == "m68k" && defined(ELF_PLEASE)) || \
|
|
(${MACHINE_ARCH} == "mipseb") || \
|
|
(${MACHINE_ARCH} == "mipsel") || \
|
|
(${MACHINE_ARCH} == "powerpc") || \
|
|
(${MACHINE_ARCH} == "sh3") || \
|
|
(${MACHINE_ARCH} == "sparc" && defined(ELF_PLEASE)) || \
|
|
(${MACHINE_ARCH} == "sparc64")
|
|
PROG= ld
|
|
MAN= ld.1
|
|
SRCS= ldctor.c ldemul.c ldexp.c ldfile.c ldlang.c ldmain.c ldmisc.c \
|
|
ldver.c ldwrite.c lexsup.c mri.c ldcref.c ldgram.y ldlex.l
|
|
DPSRCS= ldemul-list.h
|
|
.else
|
|
NOPROG=
|
|
.endif
|
|
|
|
CPPFLAGS+= -I. -I${.CURDIR} -I${BFDOBJ} -I${DIST}/ld \
|
|
-I${DIST}/bfd -I${DIST}/include \
|
|
-DDEFAULT_EMULATION='"${DEFAULT_EMUL.${MACHINE_ARCH}}"' \
|
|
-DSCRIPTDIR=\"${SCRIPTDIR}\" \
|
|
-DTARGET='"${MACHINE_GNU_ARCH}--netbsd"' \
|
|
-DEMULATION_LIST='${EMULS:S/^/\&ld_/:S/$/_emulation,/} 0'
|
|
LDADD+= -L${BFDOBJ} -lbfd
|
|
DPADD+= ${BFDOBJ}/libbfd_pic.a
|
|
YHEADER=1
|
|
|
|
TEXINFO= ld.texi
|
|
INFOFLAGS= -I${DIST}/ld -I${DIST}/bfd/doc
|
|
|
|
DIST= ${.CURDIR}/../../dist
|
|
BFDOBJ!= cd ${.CURDIR}/../../lib/libbfd; ${MAKE} print-objdir
|
|
SCRIPTDIR= /usr/share/ldscripts
|
|
|
|
.PATH: ${DIST}/ld
|
|
|
|
##### alpha ######
|
|
EMULS.alpha= elf64alpha
|
|
DEFAULT_EMUL.alpha= elf64alpha
|
|
|
|
##### i386 #####
|
|
EMULS.i386= i386nbsd elf_i386
|
|
.if defined(ELF_PLEASE)
|
|
DEFAULT_EMUL.i386= elf_i386
|
|
.else
|
|
DEFAULT_EMUL.i386= i386nbsd
|
|
.endif
|
|
|
|
##### m68k #####
|
|
EMULS.m68k= m68knbsd m68kelf
|
|
.if defined(ELF_PLEASE)
|
|
DEFAULT_EMUL.m68k= m68kelf
|
|
.else
|
|
DEFAULT_EMUL.m68k= m68knbsd
|
|
.endif
|
|
|
|
##### mipseb #####
|
|
EMULS.mipseb= elf32lmip elf32bmip
|
|
DEFAULT_EMUL.mipseb= elf32bmip
|
|
|
|
##### mipsel #####
|
|
EMULS.mipsel= elf32lmip elf32bmip
|
|
DEFAULT_EMUL.mipsel= elf32lmip
|
|
|
|
##### powerpc #####
|
|
EMULS.powerpc= elf32ppc
|
|
DEFAULT_EMUL.powerpc= elf32ppc
|
|
|
|
##### sh3 #####
|
|
EMULS.sh3= shunx shlunx elf32shunx elf32shlunx
|
|
.if defined(ELF_PLEASE)
|
|
DEFAULT_EMUL.sh3= elf32shunx
|
|
.else
|
|
DEFAULT_EMUL.sh3= shunx
|
|
.endif
|
|
|
|
##### sparc #####
|
|
EMULS.sparc= sparcnbsd elf32_sparc sun4
|
|
.if defined(ELF_PLEASE)
|
|
DEFAULT_EMUL.sparc= elf32_sparc
|
|
.else
|
|
DEFAULT_EMUL.sparc= sparcnbsd
|
|
.endif
|
|
|
|
##### sparc64 #####
|
|
EMULS.sparc64= elf64_sparc sparcnbsd elf32_sparc sun4
|
|
DEFAULT_EMUL.sparc64= elf64_sparc
|
|
|
|
ALL_EMULS!= (for i in ${EMULS.alpha} ${EMULS.i386} ${EMULS.m68k} \
|
|
${EMULS.mipseb} ${EMULS.mipsel} ${EMULS.powerpc} \
|
|
${EMULS.sh3} ${EMULS.sparc} ${EMULS.sparc64}; \
|
|
do echo $$i; done) | \
|
|
sort | uniq
|
|
|
|
LIB_PATH= ${LIBDIR} # passed to genscripts
|
|
|
|
# The ldscripts need to be generated even if we don't build ld.
|
|
.for _EMUL_ in ${ALL_EMULS}
|
|
CLEANFILES+= e${_EMUL_}.c
|
|
realall: e${_EMUL_}.c
|
|
e${_EMUL_}.c: ${DIST}/ld/genscripts.sh ${DIST}/ld/emulparams/${_EMUL_}.sh
|
|
sh ${DIST}/ld/genscripts.sh ${DIST}/ld ${LIBDIR} \
|
|
${MACHINE_GNU_ARCH}-netbsd ${MACHINE_GNU_ARCH}-netbsd \
|
|
${MACHINE_GNU_ARCH}-netbsd ${_EMUL_} \
|
|
"" ${_EMUL_}
|
|
.endfor
|
|
|
|
.if !defined(NOPROG)
|
|
#.if defined(UNIFIED_LD)
|
|
#EMULS= ${ALL_EMULS} # XXX not quite functional yet
|
|
#.else
|
|
EMULS= ${EMULS.${MACHINE_ARCH}}
|
|
#.endif
|
|
.for _EMUL_ in ${EMULS}
|
|
SRCS+= e${_EMUL_}.c
|
|
.endfor
|
|
|
|
ldemul-list.h: Makefile
|
|
@rm -f $@
|
|
@echo updating $@
|
|
@for emul in ${EMULS}; do \
|
|
echo "extern ld_emulation_xfer_type ld_$${emul}_emulation;" >>$@; \
|
|
done
|
|
.endif
|
|
|
|
.include <bsd.own.mk>
|
|
|
|
afterinstall:
|
|
.if ${MKSHARE} != "no"
|
|
(cd ldscripts ; pax -rw . ${DESTDIR}${SCRIPTDIR})
|
|
.if !defined(UNPRIVILEGED)
|
|
chown -R ${BINOWN}:${BINGRP} ${DESTDIR}${SCRIPTDIR}
|
|
.endif
|
|
find ${DESTDIR}${SCRIPTDIR} -type f | xargs chmod a=rX
|
|
find ${DESTDIR}${SCRIPTDIR} -type d | xargs chmod u=rwX,go=rX
|
|
.endif
|
|
|
|
cleanprog: __cleanldscripts
|
|
__cleanldscripts:
|
|
rm -rf ldscripts
|
|
|
|
.include <bsd.info.mk>
|
|
.include <bsd.prog.mk>
|
|
|
|
${OBJS}: ldemul-list.h
|