diff options
author | grant <grant@pkgsrc.org> | 2004-03-11 13:03:58 +0000 |
---|---|---|
committer | grant <grant@pkgsrc.org> | 2004-03-11 13:03:58 +0000 |
commit | dc1847996633ea9194a36b797e49f693c9f5fc72 (patch) | |
tree | 3434d463e0789e4ff8d9e78dbc0ec913e5aec800 /bootstrap/mods/mk | |
parent | 19aa548dc050dbaf77264e958e3f443d950ee350 (diff) | |
download | pkgsrc-dc1847996633ea9194a36b797e49f693c9f5fc72.tar.gz |
import the required bits of bootstrap-pkgsrc from 20040311.
Diffstat (limited to 'bootstrap/mods/mk')
-rw-r--r-- | bootstrap/mods/mk/Darwin.bsd.lib.mk | 524 | ||||
-rw-r--r-- | bootstrap/mods/mk/Darwin.bsd.man.mk | 199 | ||||
-rw-r--r-- | bootstrap/mods/mk/Darwin.sys.mk | 210 | ||||
-rw-r--r-- | bootstrap/mods/mk/FreeBSD.bsd.man.mk | 137 | ||||
-rw-r--r-- | bootstrap/mods/mk/IRIX.bsd.lib.mk | 524 | ||||
-rw-r--r-- | bootstrap/mods/mk/IRIX.own.mk | 244 | ||||
-rw-r--r-- | bootstrap/mods/mk/IRIX.sys.mk | 193 | ||||
-rw-r--r-- | bootstrap/mods/mk/Linux.bsd.lib.mk | 524 | ||||
-rw-r--r-- | bootstrap/mods/mk/Linux.sys.mk | 194 | ||||
-rw-r--r-- | bootstrap/mods/mk/NetBSD.bsd.man.mk | 199 | ||||
-rw-r--r-- | bootstrap/mods/mk/NetBSD.sys.mk | 207 | ||||
-rw-r--r-- | bootstrap/mods/mk/OpenBSD.bsd.man.mk | 137 | ||||
-rw-r--r-- | bootstrap/mods/mk/OpenBSD.bsd.own.mk | 306 | ||||
-rw-r--r-- | bootstrap/mods/mk/OpenBSD.bsd.prog.mk | 176 | ||||
-rw-r--r-- | bootstrap/mods/mk/OpenBSD.sys.mk | 202 | ||||
-rw-r--r-- | bootstrap/mods/mk/SunOS.bsd.sys.mk | 141 | ||||
-rw-r--r-- | bootstrap/mods/mk/SunOS.sys.mk | 211 | ||||
-rw-r--r-- | bootstrap/mods/mk/bsd.own.mk.in | 328 | ||||
-rw-r--r-- | bootstrap/mods/mk/generic.sys.mk | 208 |
19 files changed, 4864 insertions, 0 deletions
diff --git a/bootstrap/mods/mk/Darwin.bsd.lib.mk b/bootstrap/mods/mk/Darwin.bsd.lib.mk new file mode 100644 index 00000000000..b932da779ef --- /dev/null +++ b/bootstrap/mods/mk/Darwin.bsd.lib.mk @@ -0,0 +1,524 @@ +# $NetBSD: Darwin.bsd.lib.mk,v 1.1.1.1 2004/03/11 13:03:59 grant Exp $ +# @(#)bsd.lib.mk 8.3 (Berkeley) 4/22/94 + +.if !target(__initialized__) +__initialized__: +.if exists(${.CURDIR}/../Makefile.inc) +.include "${.CURDIR}/../Makefile.inc" +.endif +.include <bsd.own.mk> +.include <bsd.obj.mk> +.include <bsd.depall.mk> +.MAIN: all +.endif + +.PHONY: checkver cleanlib libinstall +realinstall: checkver libinstall +clean cleandir: cleanlib + +.if exists(${SHLIB_VERSION_FILE}) +SHLIB_MAJOR != . ${SHLIB_VERSION_FILE} ; echo $$major +SHLIB_MINOR != . ${SHLIB_VERSION_FILE} ; echo $$minor +SHLIB_TEENY != . ${SHLIB_VERSION_FILE} ; echo $$teeny + +# Check for higher installed library versions. +.if !defined(NOCHECKVER) && !defined(NOCHECKVER_${LIB}) && \ + exists(${BSDSRCDIR}/lib/checkver) +checkver: + @(cd ${.CURDIR} && \ + sh ${BSDSRCDIR}/lib/checkver -v ${SHLIB_VERSION_FILE} \ + -d ${DESTDIR}${LIBDIR} ${LIB}) +.endif +.endif + +.if !target(checkver) +checkver: +.endif + +print-shlib-major: +.if defined(SHLIB_MAJOR) + @echo ${SHLIB_MAJOR} +.else + @false +.endif + +print-shlib-minor: +.if defined(SHLIB_MINOR) + @echo ${SHLIB_MINOR} +.else + @false +.endif + +print-shlib-teeny: +.if defined(SHLIB_TEENY) + @echo ${SHLIB_TEENY} +.else + @false +.endif + +.if defined(SHLIB_MAJOR) && !empty(SHLIB_MAJOR) +.if defined(SHLIB_MINOR) && !empty(SHLIB_MINOR) +.if defined(SHLIB_TEENY) && !empty(SHLIB_TEENY) +SHLIB_FULLVERSION=${SHLIB_MAJOR}.${SHLIB_MINOR}.${SHLIB_TEENY} +.else +SHLIB_FULLVERSION=${SHLIB_MAJOR}.${SHLIB_MINOR} +.endif +.else +SHLIB_FULLVERSION=${SHLIB_MAJOR} +.endif +.endif + +# add additional suffixes not exported. +# .po is used for profiling object files. +# .so is used for PIC object files. +.SUFFIXES: .out .a .ln .so .po .o .s .S .c .cc .C .m .F .f .r .y .l .cl .p .h +.SUFFIXES: .sh .m4 .m + + +# Set PICFLAGS to cc flags for producing position-independent code, +# if not already set. Includes -DPIC, if required. + +# Data-driven table using make variables to control how shared libraries +# are built for different platforms and object formats. +# OBJECT_FMT: currently either "ELF" or "a.out", from <bsd.own.mk> +# SHLIB_SOVERSION: version number to be compiled into a shared library +# via -soname. Usualy ${SHLIB_MAJOR} on ELF. +# NetBSD/pmax used to use ${SHLIB_MAJOR}[.${SHLIB_MINOR} +# [.${SHLIB_TEENY}]] +# SHLIB_SHFLAGS: Flags to tell ${LD} to emit shared library. +# with ELF, also set shared-lib version for ld.so. +# SHLIB_LDSTARTFILE: support .o file, call C++ file-level constructors +# SHLIB_LDENDFILE: support .o file, call C++ file-level destructors +# FPICFLAGS: flags for ${FC} to compile .[fF] files to .so objects. +# CPPICFLAGS: flags for ${CPP} to preprocess .[sS] files for ${AS} +# CPICFLAGS: flags for ${CC} to compile .[cC] files to .so objects. +# CAPICFLAGS flags for {$CC} to compiling .[Ss] files +# (usually just ${CPPPICFLAGS} ${CPICFLAGS}) +# APICFLAGS: flags for ${AS} to assemble .[sS] to .so objects. + +.if ${MACHINE_ARCH} == "alpha" + # Alpha-specific shared library flags +FPICFLAGS ?= -fPIC +CPICFLAGS ?= -fPIC -DPIC +CPPPICFLAGS?= -DPIC +CAPICFLAGS?= ${CPPPICFLAGS} ${CPICFLAGS} +APICFLAGS ?= +.elif ${MACHINE_ARCH} == "mipsel" || ${MACHINE_ARCH} == "mipseb" + # mips-specific shared library flags + +# On mips, all libs are compiled with ABIcalls, not just sharedlibs. +MKPICLIB= no + +# so turn shlib PIC flags on for ${AS}. +AINC+=-DABICALLS +AFLAGS+= -fPIC +AS+= -KPIC + +.elif ${MACHINE_ARCH} == "vax" && ${OBJECT_FMT} == "ELF" +# On the VAX, all object are PIC by default, not just sharedlibs. +MKPICLIB= no + +.elif (${MACHINE_ARCH} == "sparc" || ${MACHINE_ARCH} == "sparc64") && \ + ${OBJECT_FMT} == "ELF" + +FPICFLAGS ?= -fPIC +CPICFLAGS ?= -fPIC -DPIC +CPPPICFLAGS?= -DPIC +CAPICFLAGS?= ${CPPPICFLAGS} ${CPICFLAGS} +APICFLAGS ?= -KPIC + +.else + +# Platform-independent flags for NetBSD a.out shared libraries (and PowerPC) +SHLIB_LDSTARTFILE= +SHLIB_LDENDFILE= +SHLIB_SOVERSION=${SHLIB_FULLVERSION} +SHLIB_SHFLAGS= +FPICFLAGS ?= -fPIC +CPICFLAGS?= -fPIC -DPIC +CPPPICFLAGS?= -DPIC +CAPICFLAGS?= ${CPPPICFLAGS} ${CPICFLAGS} +APICFLAGS?= -k + +.endif + +MKPICLIB?= yes + +# Platform-independent linker flags for ELF shared libraries +.if ${OBJECT_FMT} == "ELF" +SHLIB_SOVERSION= ${SHLIB_MAJOR} +SHLIB_SHFLAGS= -soname lib${LIB}.so.${SHLIB_SOVERSION} +SHLIB_LDSTARTFILE?= ${DESTDIR}/usr/lib/crtbeginS.o +SHLIB_LDENDFILE?= ${DESTDIR}/usr/lib/crtendS.o +.endif + +CFLAGS+= ${COPTS} +FFLAGS+= ${FOPTS} + +.c.o: +.if defined(COPTS) && !empty(COPTS:M*-g*) + ${COMPILE.c} ${.IMPSRC} +.else + @echo ${COMPILE.c:Q} ${.IMPSRC} + @${COMPILE.c} ${.IMPSRC} -o ${.TARGET}.o + @${LD} -x -r ${.TARGET}.o -o ${.TARGET} + @rm -f ${.TARGET}.o +.endif + +.c.po: +.if defined(COPTS) && !empty(COPTS:M*-g*) + ${COMPILE.c} -pg ${.IMPSRC} -o ${.TARGET} +.else + @echo ${COMPILE.c:Q} -pg ${.IMPSRC} -o ${.TARGET} + @${COMPILE.c} -pg ${.IMPSRC} -o ${.TARGET}.o + @${LD} -X -r ${.TARGET}.o -o ${.TARGET} + @rm -f ${.TARGET}.o +.endif + +.c.so: +.if defined(COPTS) && !empty(COPTS:M*-g*) + ${COMPILE.c} ${CPICFLAGS} ${.IMPSRC} -o ${.TARGET} +.else + @echo ${COMPILE.c:Q} ${CPICFLAGS} ${.IMPSRC} -o ${.TARGET} + @${COMPILE.c} ${CPICFLAGS} ${.IMPSRC} -o ${.TARGET}.o + @${LD} -x -r ${.TARGET}.o -o ${.TARGET} + @rm -f ${.TARGET}.o +.endif + +.c.ln: + ${LINT} ${LINTFLAGS} ${CPPFLAGS:M-[IDU]*} -i ${.IMPSRC} + +.cc.o .C.o: +.if defined(COPTS) && !empty(COPTS:M*-g*) + ${COMPILE.cc} ${.IMPSRC} +.else + @echo ${COMPILE.cc:Q} ${.IMPSRC} + @${COMPILE.cc} ${.IMPSRC} -o ${.TARGET}.o + @${LD} -x -r ${.TARGET}.o -o ${.TARGET} + @rm -f ${.TARGET}.o +.endif + +.cc.po .C.po: +.if defined(COPTS) && !empty(COPTS:M*-g*) + ${COMPILE.cc} -pg ${.IMPSRC} -o ${.TARGET} +.else + @echo ${COMPILE.cc:Q} -pg ${.IMPSRC} -o ${.TARGET} + @${COMPILE.cc} -pg ${.IMPSRC} -o ${.TARGET}.o + @${LD} -X -r ${.TARGET}.o -o ${.TARGET} + @rm -f ${.TARGET}.o +.endif + +.cc.so .C.so: +.if defined(COPTS) && !empty(COPTS:M*-g*) + ${COMPILE.cc} ${CPICFLAGS} ${.IMPSRC} -o ${.TARGET} +.else + @echo ${COMPILE.cc:Q} ${CPICFLAGS} ${.IMPSRC} -o ${.TARGET} + @${COMPILE.cc} ${CPICFLAGS} ${.IMPSRC} -o ${.TARGET}.o + @${LD} -x -r ${.TARGET}.o -o ${.TARGET} + @rm -f ${.TARGET}.o +.endif + +.f.o: +.if defined(FOPTS) && !empty(FOPTS:M*-g*) + ${COMPILE.f} ${.IMPSRC} +.else + @echo ${COMPILE.f:Q} ${.IMPSRC} + @${COMPILE.f} ${.IMPSRC} -o ${.TARGET}.o + @${LD} -x -r ${.TARGET}.o -o ${.TARGET} + @rm -f ${.TARGET}.o +.endif + +.f.po: +.if defined(FOPTS) && !empty(FOPTS:M*-g*) + ${COMPILE.f} -pg ${.IMPSRC} -o ${.TARGET} +.else + @echo ${COMPILE.f:Q} -pg ${.IMPSRC} -o ${.TARGET} + @${COMPILE.f} -pg ${.IMPSRC} -o ${.TARGET}.o + @${LD} -X -r ${.TARGET}.o -o ${.TARGET} + @rm -f ${.TARGET}.o +.endif + +.f.so: +.if defined(FOPTS) && !empty(FOPTS:M*-g*) + ${COMPILE.f} ${FPICFLAGS} ${.IMPSRC} -o ${.TARGET} +.else + @echo ${COMPILE.f:Q} ${FPICFLAGS} ${.IMPSRC} -o ${.TARGET} + @${COMPILE.f} ${FPICFLAGS} ${.IMPSRC} -o ${.TARGET}.o + @${LD} -x -r ${.TARGET}.o -o ${.TARGET} + @rm -f ${.TARGET}.o +.endif + +.f.ln: + ${ECHO} Skipping lint for Fortran libraries. + +.m.o: +.if defined(OBJCFLAGS) && !empty(OBJCFLAGS:M*-g*) + ${COMPILE.m} ${.IMPSRC} +.else + @echo ${COMPILE.m:Q} ${.IMPSRC} + @${COMPILE.m} ${.IMPSRC} -o ${.TARGET}.o + @${LD} -x -r ${.TARGET}.o -o ${.TARGET} + @rm -f ${.TARGET}.o +.endif + +.m.po: +.if defined(OBJCFLAGS) && !empty(OBJCFLAGS:M*-g*) + ${COMPILE.m} -pg ${.IMPSRC} -o ${.TARGET} +.else + @echo ${COMPILE.m:Q} -pg ${.IMPSRC} -o ${.TARGET} + @${COMPILE.m} -pg ${.IMPSRC} -o ${.TARGET}.o + @${LD} -X -r ${.TARGET}.o -o ${.TARGET} + @rm -f ${.TARGET}.o +.endif + +.m.so: +.if defined(OBJCFLAGS) && !empty(OBJCFLAGS:M*-g*) + ${COMPILE.m} ${CPICFLAGS} ${.IMPSRC} -o ${.TARGET} +.else + @echo ${COMPILE.m:Q} ${CPICFLAGS} ${.IMPSRC} -o ${.TARGET} + @${COMPILE.m} ${CPICFLAGS} ${.IMPSRC} -o ${.TARGET}.o + @${LD} -x -r ${.TARGET}.o -o ${.TARGET} + @rm -f ${.TARGET}.o +.endif + +.S.o .s.o: + @echo ${COMPILE.S:Q} ${CFLAGS:M-[ID]*} ${AINC} ${.IMPSRC} + @${COMPILE.S} ${CFLAGS:M-[ID]*} ${AINC} ${.IMPSRC} -o ${.TARGET}.o + @${LD} -x -r ${.TARGET}.o -o ${.TARGET} + @rm -f ${.TARGET}.o + +.S.po .s.po: + @echo ${COMPILE.S:Q} -DGPROF -DPROF ${CFLAGS:M-[ID]*} ${AINC} ${.IMPSRC} -o ${.TARGET} + @${COMPILE.S} -DGPROF -DPROF ${CFLAGS:M-[ID]*} ${AINC} ${.IMPSRC} -o ${.TARGET}.o + @${LD} -X -r ${.TARGET}.o -o ${.TARGET} + @rm -f ${.TARGET}.o + +.S.so .s.so: + @echo ${COMPILE.S:Q} ${CAPICFLAGS} ${CFLAGS:M-[ID]*} ${AINC} ${.IMPSRC} -o ${.TARGET} + @${COMPILE.S} ${CAPICFLAGS} ${CFLAGS:M-[ID]*} ${AINC} ${.IMPSRC} -o ${.TARGET}.o + @${LD} -x -r ${.TARGET}.o -o ${.TARGET} + @rm -f ${.TARGET}.o + +.if ${MKPIC} == "no" || (defined(LDSTATIC) && ${LDSTATIC} != "") \ + || ${MKLINKLIB} != "no" +_LIBS=lib${LIB}.a +.else +_LIBS= +.endif + +OBJS+=${SRCS:N*.h:N*.sh:R:S/$/.o/g} + +.if ${MKPROFILE} != "no" +_LIBS+=lib${LIB}_p.a +POBJS+=${OBJS:.o=.po} +.endif + +.if ${MKPIC} != "no" +.if ${MKPICLIB} == "no" +SOLIB=lib${LIB}.a +.else +SOLIB=lib${LIB}_pic.a +_LIBS+=${SOLIB} +SOBJS+=${OBJS:.o=.so} +.endif +.if defined(SHLIB_FULLVERSION) +_LIBS+=lib${LIB}.so.${SHLIB_FULLVERSION} +.endif +.endif + +LOBJS+=${LSRCS:.c=.ln} ${SRCS:M*.c:.c=.ln} +.if ${MKLINT} != "no" && ${MKLINKLIB} != "no" && !empty(LOBJS) +_LIBS+=llib-l${LIB}.ln +.endif + +.if ${MKPIC} == "no" || (defined(LDSTATIC) && ${LDSTATIC} != "") \ + || ${MKLINKLIB} != "no" +ALLOBJS=${OBJS} ${POBJS} ${SOBJS} +.else +ALLOBJS=${POBJS} ${SOBJS} +.endif +.if ${MKLINT} != "no" && ${MKLINKLIB} != "no" && !empty(LOBJS) +ALLOBJS+=${LOBJS} +.endif +.NOPATH: ${ALLOBJS} ${_LIBS} + +realall: ${SRCS} ${ALLOBJS:O} ${_LIBS} + +__archivebuild: .USE + @rm -f ${.TARGET} + ${AR} -c -q ${.TARGET} `NM=${NM} ${LORDER} ${.ALLSRC:M*o} | ${TSORT}` + ${RANLIB} ${.TARGET} + +__archiveinstall: .USE + ${INSTALL} ${RENAME} ${PRESERVE} ${COPY} ${INSTPRIV} -o ${LIBOWN} \ + -g ${LIBGRP} -m 600 ${.ALLSRC} ${.TARGET} + ${RANLIB} -t ${.TARGET} + chmod ${LIBMODE} ${.TARGET} + +DPSRCS+= ${SRCS:M*.l:.l=.c} ${SRCS:M*.y:.y=.c} +CLEANFILES+= ${DPSRCS} +.if defined(YHEADER) +CLEANFILES+= ${SRCS:M*.y:.y=.h} +.endif + +lib${LIB}.a:: ${OBJS} __archivebuild + @echo building standard ${LIB} library + +lib${LIB}_p.a:: ${POBJS} __archivebuild + @echo building profiled ${LIB} library + +lib${LIB}_pic.a:: ${SOBJS} __archivebuild + @echo building shared object ${LIB} library + +lib${LIB}.so.${SHLIB_FULLVERSION}: ${SOLIB} ${DPADD} \ + ${SHLIB_LDSTARTFILE} ${SHLIB_LDENDFILE} + @echo building shared ${LIB} library \(version ${SHLIB_FULLVERSION}\) + @rm -f lib${LIB}.so.${SHLIB_FULLVERSION} +.if defined(DESTDIR) + $(LD) -nostdlib -x -shared ${SHLIB_SHFLAGS} -o ${.TARGET} \ + ${SHLIB_LDSTARTFILE} \ + --whole-archive ${SOLIB} \ + --no-whole-archive ${LDADD} \ + -L${DESTDIR}${LIBDIR} -R${LIBDIR} \ + ${SHLIB_LDENDFILE} +.else + $(LD) -x -shared ${SHLIB_SHFLAGS} -o ${.TARGET} \ + ${SHLIB_LDSTARTFILE} \ + --whole-archive ${SOLIB} --no-whole-archive ${LDADD} \ + ${SHLIB_LDENDFILE} +.endif +.if ${OBJECT_FMT} == "ELF" + ln -sf lib${LIB}.so.${SHLIB_FULLVERSION} lib${LIB}.so.${SHLIB_MAJOR}.tmp + mv -f lib${LIB}.so.${SHLIB_MAJOR}.tmp lib${LIB}.so.${SHLIB_MAJOR} + ln -sf lib${LIB}.so.${SHLIB_FULLVERSION} lib${LIB}.so.tmp + mv -f lib${LIB}.so.tmp lib${LIB}.so +.endif + +.if !empty(LOBJS) +LLIBS?= -lc +llib-l${LIB}.ln: ${LOBJS} + @echo building llib-l${LIB}.ln + @rm -f llib-l${LIB}.ln + @${LINT} -C${LIB} ${.ALLSRC} ${LLIBS} +.endif + +cleanlib: + rm -f a.out [Ee]rrs mklog core *.core ${CLEANFILES} + rm -f lib${LIB}.a ${OBJS} + rm -f lib${LIB}_p.a ${POBJS} + rm -f lib${LIB}_pic.a lib${LIB}.so.* lib${LIB}.so ${SOBJS} + rm -f llib-l${LIB}.ln ${LOBJS} + +.if defined(SRCS) +afterdepend: .depend + @(TMP=/tmp/_depend$$$$; \ + sed -e 's/^\([^\.]*\).o[ ]*:/\1.o \1.po \1.so \1.ln:/' \ + < .depend > $$TMP; \ + mv $$TMP .depend) +.endif + +.if !target(libinstall) +# Make sure it gets defined, in case MKPIC==no && MKLINKLIB==no +libinstall:: + +.if ${MKLINKLIB} != "no" +libinstall:: ${DESTDIR}${LIBDIR}/lib${LIB}.a +.PRECIOUS: ${DESTDIR}${LIBDIR}/lib${LIB}.a +.if !defined(UPDATE) +.PHONY: ${DESTDIR}${LIBDIR}/lib${LIB}.a +.endif + +.if !defined(BUILD) && !make(all) && !make(lib${LIB}.a) +${DESTDIR}${LIBDIR}/lib${LIB}.a: .MADE +.endif +${DESTDIR}${LIBDIR}/lib${LIB}.a: lib${LIB}.a __archiveinstall +.endif + +.if ${MKPROFILE} != "no" +libinstall:: ${DESTDIR}${LIBDIR}/lib${LIB}_p.a +.PRECIOUS: ${DESTDIR}${LIBDIR}/lib${LIB}_p.a +.if !defined(UPDATE) +.PHONY: ${DESTDIR}${LIBDIR}/lib${LIB}_p.a +.endif + +.if !defined(BUILD) && !make(all) && !make(lib${LIB}_p.a) +${DESTDIR}${LIBDIR}/lib${LIB}_p.a: .MADE +.endif +${DESTDIR}${LIBDIR}/lib${LIB}_p.a: lib${LIB}_p.a __archiveinstall +.endif + +.if ${MKPIC} != "no" && ${MKPICINSTALL} != "no" +libinstall:: ${DESTDIR}${LIBDIR}/lib${LIB}_pic.a +.PRECIOUS: ${DESTDIR}${LIBDIR}/lib${LIB}_pic.a +.if !defined(UPDATE) +.PHONY: ${DESTDIR}${LIBDIR}/lib${LIB}_pic.a +.endif + +.if !defined(BUILD) && !make(all) && !make(lib${LIB}_pic.a) +${DESTDIR}${LIBDIR}/lib${LIB}_pic.a: .MADE +.endif +.if ${MKPICLIB} == "no" +${DESTDIR}${LIBDIR}/lib${LIB}_pic.a: + rm -f ${DESTDIR}${LIBDIR}/lib${LIB}_pic.a + ln -s lib${LIB}.a ${DESTDIR}${LIBDIR}/lib${LIB}_pic.a +.else +${DESTDIR}${LIBDIR}/lib${LIB}_pic.a: lib${LIB}_pic.a __archiveinstall +.endif +.endif + +.if ${MKPIC} != "no" && defined(SHLIB_FULLVERSION) +libinstall:: ${DESTDIR}${LIBDIR}/lib${LIB}.so.${SHLIB_FULLVERSION} +.PRECIOUS: ${DESTDIR}${LIBDIR}/lib${LIB}.so.${SHLIB_FULLVERSION} +.if !defined(UPDATE) +.PHONY: ${DESTDIR}${LIBDIR}/lib${LIB}.so.${SHLIB_FULLVERSION} +.endif + +.if !defined(BUILD) && !make(all) && !make(lib${LIB}.so.${SHLIB_FULLVERSION}) +${DESTDIR}${LIBDIR}/lib${LIB}.so.${SHLIB_FULLVERSION}: .MADE +.endif +${DESTDIR}${LIBDIR}/lib${LIB}.so.${SHLIB_FULLVERSION}: lib${LIB}.so.${SHLIB_FULLVERSION} + ${INSTALL} ${RENAME} ${PRESERVE} ${COPY} ${INSTPRIV} -o ${LIBOWN} \ + -g ${LIBGRP} -m ${LIBMODE} ${.ALLSRC} ${.TARGET} +.if ${OBJECT_FMT} == "a.out" && !defined(DESTDIR) + /sbin/ldconfig -m ${LIBDIR} +.endif +.if ${OBJECT_FMT} == "ELF" + ln -sf lib${LIB}.so.${SHLIB_FULLVERSION}\ + ${DESTDIR}${LIBDIR}/lib${LIB}.so.${SHLIB_MAJOR}.tmp + mv -f ${DESTDIR}${LIBDIR}/lib${LIB}.so.${SHLIB_MAJOR}.tmp\ + ${DESTDIR}${LIBDIR}/lib${LIB}.so.${SHLIB_MAJOR} +.if ${MKLINKLIB} != "no" + ln -sf lib${LIB}.so.${SHLIB_FULLVERSION}\ + ${DESTDIR}${LIBDIR}/lib${LIB}.so.tmp + mv -f ${DESTDIR}${LIBDIR}/lib${LIB}.so.tmp\ + ${DESTDIR}${LIBDIR}/lib${LIB}.so +.endif +.endif +.endif + +.if ${MKLINT} != "no" && ${MKLINKLIB} != "no" && !empty(LOBJS) +libinstall:: ${DESTDIR}${LINTLIBDIR}/llib-l${LIB}.ln +.PRECIOUS: ${DESTDIR}${LINTLIBDIR}/llib-l${LIB}.ln +.if !defined(UPDATE) +.PHONY: ${DESTDIR}${LINTLIBDIR}/llib-l${LIB}.ln +.endif + +.if !defined(BUILD) && !make(all) && !make(llib-l${LIB}.ln) +${DESTDIR}${LINTLIBDIR}/llib-l${LIB}.ln: .MADE +.endif +${DESTDIR}${LINTLIBDIR}/llib-l${LIB}.ln: llib-l${LIB}.ln + ${INSTALL} ${RENAME} ${PRESERVE} ${COPY} ${INSTPRIV} -o ${LIBOWN} \ + -g ${LIBGRP} -m ${LIBMODE} ${.ALLSRC} ${DESTDIR}${LINTLIBDIR} +.endif +.endif + +.include <bsd.man.mk> +.include <bsd.nls.mk> +.include <bsd.files.mk> +.include <bsd.inc.mk> +.include <bsd.links.mk> +.include <bsd.dep.mk> +.include <bsd.sys.mk> + +# Make sure all of the standard targets are defined, even if they do nothing. +lint regress: diff --git a/bootstrap/mods/mk/Darwin.bsd.man.mk b/bootstrap/mods/mk/Darwin.bsd.man.mk new file mode 100644 index 00000000000..b284ecda951 --- /dev/null +++ b/bootstrap/mods/mk/Darwin.bsd.man.mk @@ -0,0 +1,199 @@ +# $NetBSD: Darwin.bsd.man.mk,v 1.1.1.1 2004/03/11 13:03:59 grant Exp $ +# @(#)bsd.man.mk 8.1 (Berkeley) 6/8/93 + +.if !target(__initialized__) +__initialized__: +.if exists(${.CURDIR}/../Makefile.inc) +.include "${.CURDIR}/../Makefile.inc" +.endif +.include <bsd.own.mk> +.include <bsd.obj.mk> +.include <bsd.depall.mk> +.MAIN: all +.endif + +.PHONY: catinstall maninstall catpages manpages catlinks manlinks cleanman html installhtml cleanhtml +.if ${MKMAN} != "no" +realinstall: ${MANINSTALL} +.endif +cleandir: cleanman + +TMACDIR?= ${DESTDIR}/usr/share/groff/tmac +HTMLDIR?= ${DESTDIR}/usr/share/man +CATDEPS?= ${TMACDIR}/tmac.andoc \ + ${TMACDIR}/tmac.doc +MANTARGET?= cat +NROFF?= nroff -Tascii +GROFF?= groff -Tascii +TBL?= tbl + + +.SUFFIXES: .1 .2 .3 .4 .5 .6 .7 .8 .9 \ + .cat1 .cat2 .cat3 .cat4 .cat5 .cat6 .cat7 .cat8 .cat9 \ + .html1 .html2 .html3 .html4 .html5 .html6 .html7 .html8 .html9 + +.9.cat9 .8.cat8 .7.cat7 .6.cat6 .5.cat5 .4.cat4 .3.cat3 .2.cat2 .1.cat1: \ + ${CATDEPS} +.if !defined(USETBL) + @echo "${NROFF} -mandoc ${.IMPSRC} > ${.TARGET}" + @${NROFF} -mandoc ${.IMPSRC} > ${.TARGET} || \ + (rm -f ${.TARGET}; false) +.else + @echo "${TBL} ${.IMPSRC} | ${NROFF} -mandoc > ${.TARGET}" + @${TBL} ${.IMPSRC} | ${NROFF} -mandoc > ${.TARGET} || \ + (rm -f ${.TARGET}; false) +.endif + +.9.html9 .8.html8 .7.html7 .6.html6 .5.html5 .4.html4 .3.html3 .2.html2 .1.html1: \ + ${CATDEPS} +.if !defined(USETBL) + @echo "${GROFF} -mdoc2html -P-b -P-u -P-o ${.IMPSRC} > ${.TARGET}" + @${GROFF} -mdoc2html -P-b -P-u -P-o ${.IMPSRC} > ${.TARGET} || \ + (rm -f ${.TARGET}; false) +.else + @echo "${TBL} ${.IMPSRC} | ${GROFF} -mdoc2html -P-b -P-u -P-o > ${.TARGET}" + @cat ${.IMPSRC} | ${GROFF} -mdoc2html -P-b -P-u -P-o > ${.TARGET} || \ + (rm -f ${.TARGET}; false) +.endif + +.if defined(MAN) && !empty(MAN) +MANPAGES= ${MAN} +CATPAGES= ${MANPAGES:C/(.*).([1-9])/\1.cat\2/} +.NOPATH: ${CATPAGES} +.if !defined(NOHTML) +HTMLPAGES= ${MANPAGES:C/(.*).([1-9])/\1.html\2/} +.endif +.endif + +MINSTALL= ${INSTALL} ${RENAME} ${PRESERVE} ${COPY} ${INSTPRIV} \ + -o ${MANOWN} -g ${MANGRP} -m ${MANMODE} + +.if defined(MANZ) +# chown and chmod are done afterward automatically +MCOMPRESS= gzip -cf +MCOMPRESSSUFFIX= .gz +.endif + +catinstall: catlinks +maninstall: manlinks + +__installpage: .USE +.if defined(MCOMPRESS) && !empty(MCOMPRESS) + @rm -f ${.TARGET} + ${MCOMPRESS} ${.ALLSRC} > ${.TARGET} + @chown ${MANOWN}:${MANGRP} ${.TARGET} + @chmod ${MANMODE} ${.TARGET} +.else + @cmp -s ${.ALLSRC} ${.TARGET} > /dev/null 2>&1 || \ + (echo "${MINSTALL} ${.ALLSRC} ${.TARGET}" && \ + ${MINSTALL} ${.ALLSRC} ${.TARGET}) +.endif + + +# Rules for cat'ed man page installation +.if defined(CATPAGES) && !empty(CATPAGES) && ${MKCATPAGES} != "no" +catpages:: ${CATPAGES:@P@${DESTDIR}${MANDIR}/${P:T:E}${MANSUBDIR}/${P:T:R}.0${MCOMPRESSSUFFIX}@} +.PRECIOUS: ${CATPAGES:@P@${DESTDIR}${MANDIR}/${P:T:E}${MANSUBDIR}/${P:T:R}.0${MCOMPRESSSUFFIX}@} +.if !defined(UPDATE) +.PHONY: ${CATPAGES:@P@${DESTDIR}${MANDIR}/${P:T:E}${MANSUBDIR}/${P:T:R}.0${MCOMPRESSSUFFIX}@} +.endif + +. for P in ${CATPAGES:O:u} +. if !defined(BUILD) && !make(all) && !make(${P}) +${DESTDIR}${MANDIR}/${P:T:E}${MANSUBDIR}/${P:T:R}.0${MCOMPRESSSUFFIX}: .MADE +. endif +${DESTDIR}${MANDIR}/${P:T:E}${MANSUBDIR}/${P:T:R}.0${MCOMPRESSSUFFIX}: ${P} __installpage +. endfor +.else +catpages:: +.endif + +# Rules for source page installation +.if defined(MANPAGES) && !empty(MANPAGES) +manpages:: ${MANPAGES:@P@${DESTDIR}${MANDIR}/man${P:T:E}${MANSUBDIR}/${P}${MCOMPRESSSUFFIX}@} +.PRECIOUS: ${MANPAGES:@P@${DESTDIR}${MANDIR}/man${P:T:E}${MANSUBDIR}/${P}${MCOMPRESSSUFFIX}@} +.if !defined(UPDATE) +.PHONY: ${MANPAGES:@P@${DESTDIR}${MANDIR}/man${P:T:E}${MANSUBDIR}/${P}${MCOMPRESSSUFFIX}@} +.endif + +. for P in ${MANPAGES:O:u} +${DESTDIR}${MANDIR}/man${P:T:E}${MANSUBDIR}/${P}${MCOMPRESSSUFFIX}: ${P} __installpage +. endfor +.else +manpages:: +.endif + +.if ${MKCATPAGES} != "no" +catlinks: catpages +.if defined(MLINKS) && !empty(MLINKS) + @set ${MLINKS}; \ + while test $$# -ge 2; do \ + name=$$1; \ + shift; \ + dir=${DESTDIR}${MANDIR}/cat$${name##*.}; \ + l=$${dir}${MANSUBDIR}/$${name%.*}.0${MCOMPRESSSUFFIX}; \ + name=$$1; \ + shift; \ + dir=${DESTDIR}${MANDIR}/cat$${name##*.}; \ + t=$${dir}${MANSUBDIR}/$${name%.*}.0${MCOMPRESSSUFFIX}; \ + if test $$l -nt $$t -o ! -f $$t; then \ + echo $$t -\> $$l; \ + ln -f $$l $$t; \ + fi; \ + done +.endif +.else +catlinks: +.endif + +manlinks: manpages +.if defined(MLINKS) && !empty(MLINKS) + @set ${MLINKS}; \ + while test $$# -ge 2; do \ + name=$$1; \ + shift; \ + dir=${DESTDIR}${MANDIR}/man$${name##*.}; \ + l=$${dir}${MANSUBDIR}/$${name}${MCOMPRESSSUFFIX}; \ + name=$$1; \ + shift; \ + dir=${DESTDIR}${MANDIR}/man$${name##*.}; \ + t=$${dir}${MANSUBDIR}/$${name}${MCOMPRESSSUFFIX}; \ + if test $$l -nt $$t -o ! -f $$t; then \ + echo $$t -\> $$l; \ + ln -f $$l $$t; \ + fi; \ + done +.endif + +# Html rules +html: ${HTMLPAGES} + +.if defined(HTMLPAGES) && !empty(HTMLPAGES) +.for P in ${HTMLPAGES:O:u} +${HTMLDIR}/${P:T:E}/${P:T:R}.html: ${P} + ${MINSTALL} ${.ALLSRC} ${.TARGET} +.endfor +.endif +installhtml: ${HTMLPAGES:@P@${HTMLDIR}/${P:T:E}/${P:T:R}.html@} + +cleanhtml: +.if defined(HTMLPAGES) && !empty(HTMLPAGES) + rm -f ${HTMLPAGES} +.endif + + +.if defined(CATPAGES) +.if ${MKCATPAGES} != "no" && ${MKMAN} != "no" +realall: ${CATPAGES} +.else +realall: +.endif + +cleanman: + rm -f ${CATPAGES} +.else +cleanman: +.endif + +# Make sure all of the standard targets are defined, even if they do nothing. +clean depend includes lint regress tags: diff --git a/bootstrap/mods/mk/Darwin.sys.mk b/bootstrap/mods/mk/Darwin.sys.mk new file mode 100644 index 00000000000..80a5ac1288b --- /dev/null +++ b/bootstrap/mods/mk/Darwin.sys.mk @@ -0,0 +1,210 @@ +# $NetBSD: Darwin.sys.mk,v 1.1.1.1 2004/03/11 13:03:59 grant Exp $ +# @(#)sys.mk 8.2 (Berkeley) 3/21/94 + +unix= We run UNIX. +OS!= uname -s + +.SUFFIXES: .out .a .ln .o .s .S .c .cc .cpp .cxx .C .F .f .r .y .l .cl .p .h +.SUFFIXES: .sh .m4 + +.LIBS: .a + +AR?= ar +ARFLAGS?= rl +RANLIB?= ranlib + +AS?= as +AFLAGS?= +COMPILE.s?= ${AS} ${AFLAGS} +LINK.s?= ${CC} ${AFLAGS} ${LDFLAGS} +COMPILE.S?= ${CC} ${AFLAGS} ${CPPFLAGS} -c +LINK.S?= ${CC} ${AFLAGS} ${CPPFLAGS} ${LDFLAGS} + +.if exists(/usr/bin/gcc) +CC?= gcc -pipe +.else +CC?= cc -pipe +.endif +DBG?= -O2 +CFLAGS?= ${DBG} +COMPILE.c?= ${CC} ${CFLAGS} ${CPPFLAGS} -c +LINK.c?= ${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} + +.if exists(/usr/bin/g++) +CXX?= g++ +.else +CXX?= c++ +.endif +CXXFLAGS?= ${CFLAGS} +COMPILE.cc?= ${CXX} ${CXXFLAGS} ${CPPFLAGS} -c +LINK.cc?= ${CXX} ${CXXFLAGS} ${CPPFLAGS} ${LDFLAGS} + +OBJC?= ${CC} +OBJCFLAGS?= ${CFLAGS} +COMPILE.m?= ${OBJC} ${OBJCFLAGS} ${CPPFLAGS} -c +LINK.m?= ${OBJC} ${OBJCFLAGS} ${CPPFLAGS} ${LDFLAGS} + +CPP?= cpp +NOLINT= 1 +CPPFLAGS?= + +MK_DEP?= mkdeps.sh -N + +FC?= f77 +FFLAGS?= -O +RFLAGS?= +COMPILE.f?= ${FC} ${FFLAGS} -c +LINK.f?= ${FC} ${FFLAGS} ${LDFLAGS} +COMPILE.F?= ${FC} ${FFLAGS} ${CPPFLAGS} -c +LINK.F?= ${FC} ${FFLAGS} ${CPPFLAGS} ${LDFLAGS} +COMPILE.r?= ${FC} ${FFLAGS} ${RFLAGS} -c +LINK.r?= ${FC} ${FFLAGS} ${RFLAGS} ${LDFLAGS} + +INSTALL?= install + +LEX?= lex +LFLAGS?= +LEX.l?= ${LEX} ${LFLAGS} + +LD?= ld +LDFLAGS?= + +LINT?= lint +LINTFLAGS?= -chapbx + +LORDER?= lorder + +MAKE?= bmake + +NM?= nm + +PC?= pc +PFLAGS?= +COMPILE.p?= ${PC} ${PFLAGS} ${CPPFLAGS} -c +LINK.p?= ${PC} ${PFLAGS} ${CPPFLAGS} ${LDFLAGS} + +SHELL?= sh + +SIZE?= size + +TSORT?= tsort -q + +YACC?= yacc +YFLAGS?= -d +YACC.y?= ${YACC} ${YFLAGS} + +# C +.c: + ${LINK.c} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} +.c.o: + ${COMPILE.c} ${.IMPSRC} +.c.a: + ${COMPILE.c} ${.IMPSRC} + ${AR} ${ARFLAGS} $@ $*.o + rm -f $*.o + +# C++ +.cc: + ${LINK.cc} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} +.cc.o: + ${COMPILE.cc} ${.IMPSRC} +.cc.a: + ${COMPILE.cc} ${.IMPSRC} + ${AR} ${ARFLAGS} $@ $*.o + rm -f $*.o + +.C: + ${LINK.cc} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} +.C.o: + ${COMPILE.cc} ${.IMPSRC} +.C.a: + ${COMPILE.cc} ${.IMPSRC} + ${AR} ${ARFLAGS} $@ $*.o + rm -f $*.o + +# Fortran/Ratfor +.f: + ${LINK.f} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} +.f.o: + ${COMPILE.f} ${.IMPSRC} +.f.a: + ${COMPILE.f} ${.IMPSRC} + ${AR} ${ARFLAGS} $@ $*.o + rm -f $*.o + +.F: + ${LINK.F} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} +.F.o: + ${COMPILE.F} ${.IMPSRC} +.F.a: + ${COMPILE.F} ${.IMPSRC} + ${AR} ${ARFLAGS} $@ $*.o + rm -f $*.o + +.r: + ${LINK.r} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} +.r.o: + ${COMPILE.r} ${.IMPSRC} +.r.a: + ${COMPILE.r} ${.IMPSRC} + ${AR} ${ARFLAGS} $@ $*.o + rm -f $*.o + +# Pascal +.p: + ${LINK.p} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} +.p.o: + ${COMPILE.p} ${.IMPSRC} +.p.a: + ${COMPILE.p} ${.IMPSRC} + ${AR} ${ARFLAGS} $@ $*.o + rm -f $*.o + +# Assembly +.s: + ${LINK.s} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} +.s.o: + ${COMPILE.s} -o ${.TARGET} ${.IMPSRC} +.s.a: + ${COMPILE.s} ${.IMPSRC} + ${AR} ${ARFLAGS} $@ $*.o + rm -f $*.o +.S: + ${LINK.S} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} +.S.o: + ${COMPILE.S} ${.IMPSRC} +.S.a: + ${COMPILE.S} ${.IMPSRC} + ${AR} ${ARFLAGS} $@ $*.o + rm -f $*.o + +# Lex +.l: + ${LEX.l} ${.IMPSRC} + ${LINK.c} -o ${.TARGET} lex.yy.c ${LDLIBS} -ll + rm -f lex.yy.c +.l.c: + ${LEX.l} ${.IMPSRC} + mv lex.yy.c ${.TARGET} +.l.o: + ${LEX.l} ${.IMPSRC} + ${COMPILE.c} -o ${.TARGET} lex.yy.c + rm -f lex.yy.c + +# Yacc +.y: + ${YACC.y} ${.IMPSRC} + ${LINK.c} -o ${.TARGET} y.tab.c ${LDLIBS} + rm -f y.tab.c +.y.c: + ${YACC.y} ${.IMPSRC} + mv y.tab.c ${.TARGET} +.y.o: + ${YACC.y} ${.IMPSRC} + ${COMPILE.c} -o ${.TARGET} y.tab.c + rm -f y.tab.c + +# Shell +.sh: + rm -f ${.TARGET} + cp ${.IMPSRC} ${.TARGET} diff --git a/bootstrap/mods/mk/FreeBSD.bsd.man.mk b/bootstrap/mods/mk/FreeBSD.bsd.man.mk new file mode 100644 index 00000000000..5fae9a8ce63 --- /dev/null +++ b/bootstrap/mods/mk/FreeBSD.bsd.man.mk @@ -0,0 +1,137 @@ +# $NetBSD: FreeBSD.bsd.man.mk,v 1.1.1.1 2004/03/11 13:03:59 grant Exp $ +# From: +# OpenBSD: bsd.man.mk,v 1.23 2001/07/20 23:02:21 espie Exp +# NetBSD: bsd.man.mk,v 1.23 1996/02/10 07:49:33 jtc Exp +# @(#)bsd.man.mk 5.2 (Berkeley) 5/11/90 + +MANTARGET?= cat +NROFF?= nroff -Tascii +TBL?= tbl + +.if !target(.MAIN) +.if exists(${.CURDIR}/../Makefile.inc) +.include "${.CURDIR}/../Makefile.inc" +.endif + +.MAIN: all +.endif + +.SUFFIXES: .1 .2 .3 .3p .4 .5 .6 .7 .8 .9 .1tbl .2tbl .3tbl .4tbl .5tbl .6tbl \ + .7tbl .8tbl .9tbl .cat1 .cat2 .cat3 .cat4 .cat5 .cat6 .cat7 .cat8 .cat9 \ + .ps1 .ps2 .ps3 .ps4 .ps5 .ps6 .ps7 .ps8 .ps9 + +.9.cat9 .8.cat8 .7.cat7 .6.cat6 .5.cat5 .4.cat4 .3p.cat3p .3.cat3 .2.cat2 .1.cat1: + @echo "${NROFF} -mandoc ${.IMPSRC} > ${.TARGET}" + @${NROFF} -mandoc ${.IMPSRC} > ${.TARGET} || (rm -f ${.TARGET}; false) + +.9tbl.cat9 .8tbl.cat8 .7tbl.cat7 .6tbl.cat6 .5tbl.cat5 .4tbl.cat4 .3tbl.cat3 \ +.2tbl.cat2 .1tbl.cat1: + @echo "${TBL} ${.IMPSRC} | ${NROFF} -mandoc > ${.TARGET}" + @${TBL} ${.IMPSRC} | ${NROFF} -mandoc > ${.TARGET} || \ + (rm -f ${.TARGET}; false) + +.9.ps9 .8.ps8 .7.ps7 .6.ps6 .5.ps5 .4.ps4 .3p.ps3p .3.ps3 .2.ps2 .1.ps1: + @echo "nroff -Tps -mandoc ${.IMPSRC} > ${.TARGET}" + @nroff -Tps -mandoc ${.IMPSRC} > ${.TARGET} || (rm -f ${.TARGET}; false) + +.9tbl.ps9 .8tbl.ps8 .7tbl.ps7 .6tbl.ps6 .5tbl.ps5 .4tbl.ps4 .3tbl.ps3 \ +.2tbl.ps2 .1tbl.ps1: + @echo "${TBL} ${.IMPSRC} | nroff -Tps -mandoc > ${.TARGET}" + @${TBL} ${.IMPSRC} | nroff -Tps -mandoc > ${.TARGET} || (rm -f ${.TARGET}; false) + +.if defined(MAN) && !empty(MAN) && !defined(MANALL) + +MANALL= ${MAN:S/.1$/.cat1/g:S/.2$/.cat2/g:S/.3$/.cat3/g:S/.3p$/.cat3p/g:S/.4$/.cat4/g:S/.5$/.cat5/g:S/.6$/.cat6/g:S/.7$/.cat7/g:S/.8$/.cat8/g:S/.9$/.cat9/g:S/.1tbl$/.cat1/g:S/.2tbl$/.cat2/g:S/.3tbl$/.cat3/g:S/.4tbl$/.cat4/g:S/.5tbl$/.cat5/g:S/.6tbl$/.cat6/g:S/.7tbl$/.cat7/g:S/.8tbl$/.cat8/g:S/.9tbl$/.cat9/g} + +.if defined(MANPS) + +PSALL= ${MAN:S/.1$/.ps1/g:S/.2$/.ps2/g:S/.3$/.ps3/g:S/.3p$/.ps3p/g:S/.4$/.ps4/g:S/.5$/.ps5/g:S/.6$/.ps6/g:S/.7$/.ps7/g:S/.8$/.ps8/g:S/.9$/.ps9/g:S/.1tbl$/.ps1/g:S/.2tbl$/.ps2/g:S/.3tbl$/.ps3/g:S/.4tbl$/.ps4/g:S/.5tbl$/.ps5/g:S/.6tbl$/.ps6/g:S/.7tbl$/.ps7/g:S/.8tbl$/.ps8/g:S/.9tbl$/.ps9/g} + +.endif + +.endif + +MINSTALL= ${INSTALL} ${INSTALL_COPY} -o ${MANOWN} -g ${MANGRP} -m ${MANMODE} +.if defined(MANZ) +# chown and chmod are done afterward automatically +MCOMPRESS= gzip -cf +MCOMPRESSSUFFIX= .gz +.endif + +.if defined(MANSUBDIR) +# Add / so that we don't have to specify it. Better arch -> MANSUBDIR mapping +MANSUBDIR:=${MANSUBDIR:S,^,/,} +.else +# XXX MANSUBDIR must be non empty for the mlink loops to work +MANSUBDIR='' +.endif + +maninstall: +.if defined(MANALL) + @for page in ${MANALL}; do \ + set -- ${MANSUBDIR}; \ + subdir=$$1; \ + dir=${DESTDIR}${MANDIR}$${page##*.cat}; \ + base=$${page##*/}; \ + instpage=$${dir}$${subdir}/$${base%.*}.0${MCOMPRESSSUFFIX}; \ + if [ X"${MCOMPRESS}" = X ]; then \ + echo ${MINSTALL} $$page $$instpage; \ + ${MINSTALL} $$page $$instpage; \ + else \ + rm -f $$instpage; \ + echo ${MCOMPRESS} $$page \> $$instpage; \ + ${MCOMPRESS} $$page > $$instpage; \ + chown ${MANOWN}:${MANGRP} $$instpage; \ + chmod ${MANMODE} $$instpage; \ + fi; \ + while test $$# -ge 2; do \ + shift; \ + extra=$${dir}$$1/$${base%.*}.0${MCOMPRESSSUFFIX}; \ + echo $$extra -\> $$instpage; \ + ln -f $$instpage $$extra; \ + done; \ + done +.endif +.if defined(PSALL) + @for page in ${PSALL}; do \ + set -- ${MANSUBDIR}; \ + subdir=$$1; \ + dir=${DESTDIR}${PSDIR}$${page##*.ps}; \ + base=$${page##*/}; \ + instpage=$${dir}$${subdir}/$${base%.*}.ps${MCOMPRESSSUFFIX}; \ + if [ X"${MCOMPRESS}" = X ]; then \ + echo ${MINSTALL} $$page $$instpage; \ + ${MINSTALL} $$page $$instpage; \ + else \ + rm -f $$instpage; \ + echo ${MCOMPRESS} $$page \> $$instpage; \ + ${MCOMPRESS} $$page > $$instpage; \ + chown ${PSOWN}:${PSGRP} $$instpage; \ + chmod ${PSMODE} $$instpage; \ + fi; \ + while test $$# -ge 2; do \ + shift; \ + extra=$${dir}$$1/$${base%.*}.ps${MCOMPRESSSUFFIX}; \ + echo $$extra -\> $$instpage; \ + ln -f $$instpage $$extra; \ + done; \ + done +.endif +.if defined(MLINKS) && !empty(MLINKS) +. for sub in ${MANSUBDIR} +. for lnk file in ${MLINKS} + @l=${DESTDIR}${MANDIR}${lnk:E}${sub}/${lnk:R}.0${MCOMPRESSSUFFIX}; \ + t=${DESTDIR}${MANDIR}${file:E}${sub}/${file:R}.0${MCOMPRESSSUFFIX}; \ + echo $$t -\> $$l; \ + rm -f $$t; ln $$l $$t; +. endfor +. endfor +.endif + +.if (defined(MANALL) || defined(PSALL)) && !defined(MANLOCALBUILD) +all: ${MANALL} ${PSALL} + +cleandir: cleanman +cleanman: + rm -f ${MANALL} ${PSALL} +.endif diff --git a/bootstrap/mods/mk/IRIX.bsd.lib.mk b/bootstrap/mods/mk/IRIX.bsd.lib.mk new file mode 100644 index 00000000000..2fa5f4d254c --- /dev/null +++ b/bootstrap/mods/mk/IRIX.bsd.lib.mk @@ -0,0 +1,524 @@ +# $NetBSD: IRIX.bsd.lib.mk,v 1.1.1.1 2004/03/11 13:03:59 grant Exp $ +# @(#)bsd.lib.mk 8.3 (Berkeley) 4/22/94 + +.if !target(__initialized__) +__initialized__: +.if exists(${.CURDIR}/../Makefile.inc) +.include "${.CURDIR}/../Makefile.inc" +.endif +.include <bsd.own.mk> +.include <bsd.obj.mk> +.include <bsd.depall.mk> +.MAIN: all +.endif + +.PHONY: checkver cleanlib libinstall +realinstall: checkver libinstall +clean cleandir: cleanlib + +.if exists(${SHLIB_VERSION_FILE}) +SHLIB_MAJOR != . ${SHLIB_VERSION_FILE} ; echo $$major +SHLIB_MINOR != . ${SHLIB_VERSION_FILE} ; echo $$minor +SHLIB_TEENY != . ${SHLIB_VERSION_FILE} ; echo $$teeny + +# Check for higher installed library versions. +.if !defined(NOCHECKVER) && !defined(NOCHECKVER_${LIB}) && \ + exists(${BSDSRCDIR}/lib/checkver) +checkver: + @(cd ${.CURDIR} && \ + sh ${BSDSRCDIR}/lib/checkver -v ${SHLIB_VERSION_FILE} \ + -d ${DESTDIR}${LIBDIR} ${LIB}) +.endif +.endif + +.if !target(checkver) +checkver: +.endif + +print-shlib-major: +.if defined(SHLIB_MAJOR) + @echo ${SHLIB_MAJOR} +.else + @false +.endif + +print-shlib-minor: +.if defined(SHLIB_MINOR) + @echo ${SHLIB_MINOR} +.else + @false +.endif + +print-shlib-teeny: +.if defined(SHLIB_TEENY) + @echo ${SHLIB_TEENY} +.else + @false +.endif + +.if defined(SHLIB_MAJOR) && !empty(SHLIB_MAJOR) +.if defined(SHLIB_MINOR) && !empty(SHLIB_MINOR) +.if defined(SHLIB_TEENY) && !empty(SHLIB_TEENY) +SHLIB_FULLVERSION=${SHLIB_MAJOR}.${SHLIB_MINOR}.${SHLIB_TEENY} +.else +SHLIB_FULLVERSION=${SHLIB_MAJOR}.${SHLIB_MINOR} +.endif +.else +SHLIB_FULLVERSION=${SHLIB_MAJOR} +.endif +.endif + +# add additional suffixes not exported. +# .po is used for profiling object files. +# .so is used for PIC object files. +.SUFFIXES: .out .a .ln .so .po .o .s .S .c .cc .C .m .F .f .r .y .l .cl .p .h +.SUFFIXES: .sh .m4 .m + + +# Set PICFLAGS to cc flags for producing position-independent code, +# if not already set. Includes -DPIC, if required. + +# Data-driven table using make variables to control how shared libraries +# are built for different platforms and object formats. +# OBJECT_FMT: currently either "ELF" or "a.out", from <bsd.own.mk> +# SHLIB_SOVERSION: version number to be compiled into a shared library +# via -soname. Usualy ${SHLIB_MAJOR} on ELF. +# NetBSD/pmax used to use ${SHLIB_MAJOR}[.${SHLIB_MINOR} +# [.${SHLIB_TEENY}]] +# SHLIB_SHFLAGS: Flags to tell ${LD} to emit shared library. +# with ELF, also set shared-lib version for ld.so. +# SHLIB_LDSTARTFILE: support .o file, call C++ file-level constructors +# SHLIB_LDENDFILE: support .o file, call C++ file-level destructors +# FPICFLAGS: flags for ${FC} to compile .[fF] files to .so objects. +# CPPICFLAGS: flags for ${CPP} to preprocess .[sS] files for ${AS} +# CPICFLAGS: flags for ${CC} to compile .[cC] files to .so objects. +# CAPICFLAGS flags for {$CC} to compiling .[Ss] files +# (usually just ${CPPPICFLAGS} ${CPICFLAGS}) +# APICFLAGS: flags for ${AS} to assemble .[sS] to .so objects. + +.if ${MACHINE_ARCH} == "alpha" + # Alpha-specific shared library flags +FPICFLAGS ?= -fPIC +CPICFLAGS ?= -fPIC -DPIC +CPPPICFLAGS?= -DPIC +CAPICFLAGS?= ${CPPPICFLAGS} ${CPICFLAGS} +APICFLAGS ?= +.elif ${MACHINE_ARCH} == "mipsel" || ${MACHINE_ARCH} == "mipseb" + # mips-specific shared library flags + +# On mips, all libs are compiled with ABIcalls, not just sharedlibs. +MKPICLIB= no + +# so turn shlib PIC flags on for ${AS}. +AINC+=-DABICALLS +AFLAGS+= -fPIC +AS+= -KPIC + +.elif ${MACHINE_ARCH} == "vax" && ${OBJECT_FMT} == "ELF" +# On the VAX, all object are PIC by default, not just sharedlibs. +MKPICLIB= no + +.elif (${MACHINE_ARCH} == "sparc" || ${MACHINE_ARCH} == "sparc64") && \ + ${OBJECT_FMT} == "ELF" + +FPICFLAGS ?= -fPIC +CPICFLAGS ?= -fPIC -DPIC +CPPPICFLAGS?= -DPIC +CAPICFLAGS?= ${CPPPICFLAGS} ${CPICFLAGS} +APICFLAGS ?= -KPIC + +.else + +# Platform-independent flags for NetBSD a.out shared libraries (and PowerPC) +SHLIB_LDSTARTFILE= +SHLIB_LDENDFILE= +SHLIB_SOVERSION=${SHLIB_FULLVERSION} +SHLIB_SHFLAGS= +FPICFLAGS ?= -fPIC +CPICFLAGS?= -fPIC -DPIC +CPPPICFLAGS?= -DPIC +CAPICFLAGS?= ${CPPPICFLAGS} ${CPICFLAGS} +APICFLAGS?= -k + +.endif + +MKPICLIB?= yes + +# Platform-independent linker flags for ELF shared libraries +.if ${OBJECT_FMT} == "ELF" +SHLIB_SOVERSION= ${SHLIB_MAJOR} +SHLIB_SHFLAGS= -soname lib${LIB}.so.${SHLIB_SOVERSION} +SHLIB_LDSTARTFILE?= ${DESTDIR}/usr/lib/crtbeginS.o +SHLIB_LDENDFILE?= ${DESTDIR}/usr/lib/crtendS.o +.endif + +CFLAGS+= ${COPTS} +FFLAGS+= ${FOPTS} + +.c.o: +.if defined(COPTS) && !empty(COPTS:M*-g*) + ${COMPILE.c} ${.IMPSRC} +.else + @echo ${COMPILE.c:Q} ${.IMPSRC} + @${COMPILE.c} ${.IMPSRC} -o ${.TARGET}.o + @${LD} -x -r ${.TARGET}.o -o ${.TARGET} + @rm -f ${.TARGET}.o +.endif + +.c.po: +.if defined(COPTS) && !empty(COPTS:M*-g*) + ${COMPILE.c} -pg ${.IMPSRC} -o ${.TARGET} +.else + @echo ${COMPILE.c:Q} -pg ${.IMPSRC} -o ${.TARGET} + @${COMPILE.c} -pg ${.IMPSRC} -o ${.TARGET}.o + @${LD} -X -r ${.TARGET}.o -o ${.TARGET} + @rm -f ${.TARGET}.o +.endif + +.c.so: +.if defined(COPTS) && !empty(COPTS:M*-g*) + ${COMPILE.c} ${CPICFLAGS} ${.IMPSRC} -o ${.TARGET} +.else + @echo ${COMPILE.c:Q} ${CPICFLAGS} ${.IMPSRC} -o ${.TARGET} + @${COMPILE.c} ${CPICFLAGS} ${.IMPSRC} -o ${.TARGET}.o + @${LD} -x -r ${.TARGET}.o -o ${.TARGET} + @rm -f ${.TARGET}.o +.endif + +.c.ln: + ${LINT} ${LINTFLAGS} ${CPPFLAGS:M-[IDU]*} -i ${.IMPSRC} + +.cc.o .C.o: +.if defined(COPTS) && !empty(COPTS:M*-g*) + ${COMPILE.cc} ${.IMPSRC} +.else + @echo ${COMPILE.cc:Q} ${.IMPSRC} + @${COMPILE.cc} ${.IMPSRC} -o ${.TARGET}.o + @${LD} -x -r ${.TARGET}.o -o ${.TARGET} + @rm -f ${.TARGET}.o +.endif + +.cc.po .C.po: +.if defined(COPTS) && !empty(COPTS:M*-g*) + ${COMPILE.cc} -pg ${.IMPSRC} -o ${.TARGET} +.else + @echo ${COMPILE.cc:Q} -pg ${.IMPSRC} -o ${.TARGET} + @${COMPILE.cc} -pg ${.IMPSRC} -o ${.TARGET}.o + @${LD} -X -r ${.TARGET}.o -o ${.TARGET} + @rm -f ${.TARGET}.o +.endif + +.cc.so .C.so: +.if defined(COPTS) && !empty(COPTS:M*-g*) + ${COMPILE.cc} ${CPICFLAGS} ${.IMPSRC} -o ${.TARGET} +.else + @echo ${COMPILE.cc:Q} ${CPICFLAGS} ${.IMPSRC} -o ${.TARGET} + @${COMPILE.cc} ${CPICFLAGS} ${.IMPSRC} -o ${.TARGET}.o + @${LD} -x -r ${.TARGET}.o -o ${.TARGET} + @rm -f ${.TARGET}.o +.endif + +.f.o: +.if defined(FOPTS) && !empty(FOPTS:M*-g*) + ${COMPILE.f} ${.IMPSRC} +.else + @echo ${COMPILE.f:Q} ${.IMPSRC} + @${COMPILE.f} ${.IMPSRC} -o ${.TARGET}.o + @${LD} -x -r ${.TARGET}.o -o ${.TARGET} + @rm -f ${.TARGET}.o +.endif + +.f.po: +.if defined(FOPTS) && !empty(FOPTS:M*-g*) + ${COMPILE.f} -pg ${.IMPSRC} -o ${.TARGET} +.else + @echo ${COMPILE.f:Q} -pg ${.IMPSRC} -o ${.TARGET} + @${COMPILE.f} -pg ${.IMPSRC} -o ${.TARGET}.o + @${LD} -X -r ${.TARGET}.o -o ${.TARGET} + @rm -f ${.TARGET}.o +.endif + +.f.so: +.if defined(FOPTS) && !empty(FOPTS:M*-g*) + ${COMPILE.f} ${FPICFLAGS} ${.IMPSRC} -o ${.TARGET} +.else + @echo ${COMPILE.f:Q} ${FPICFLAGS} ${.IMPSRC} -o ${.TARGET} + @${COMPILE.f} ${FPICFLAGS} ${.IMPSRC} -o ${.TARGET}.o + @${LD} -x -r ${.TARGET}.o -o ${.TARGET} + @rm -f ${.TARGET}.o +.endif + +.f.ln: + ${ECHO} Skipping lint for Fortran libraries. + +.m.o: +.if defined(OBJCFLAGS) && !empty(OBJCFLAGS:M*-g*) + ${COMPILE.m} ${.IMPSRC} +.else + @echo ${COMPILE.m:Q} ${.IMPSRC} + @${COMPILE.m} ${.IMPSRC} -o ${.TARGET}.o + @${LD} -x -r ${.TARGET}.o -o ${.TARGET} + @rm -f ${.TARGET}.o +.endif + +.m.po: +.if defined(OBJCFLAGS) && !empty(OBJCFLAGS:M*-g*) + ${COMPILE.m} -pg ${.IMPSRC} -o ${.TARGET} +.else + @echo ${COMPILE.m:Q} -pg ${.IMPSRC} -o ${.TARGET} + @${COMPILE.m} -pg ${.IMPSRC} -o ${.TARGET}.o + @${LD} -X -r ${.TARGET}.o -o ${.TARGET} + @rm -f ${.TARGET}.o +.endif + +.m.so: +.if defined(OBJCFLAGS) && !empty(OBJCFLAGS:M*-g*) + ${COMPILE.m} ${CPICFLAGS} ${.IMPSRC} -o ${.TARGET} +.else + @echo ${COMPILE.m:Q} ${CPICFLAGS} ${.IMPSRC} -o ${.TARGET} + @${COMPILE.m} ${CPICFLAGS} ${.IMPSRC} -o ${.TARGET}.o + @${LD} -x -r ${.TARGET}.o -o ${.TARGET} + @rm -f ${.TARGET}.o +.endif + +.S.o .s.o: + @echo ${COMPILE.S:Q} ${CFLAGS:M-[ID]*} ${AINC} ${.IMPSRC} + @${COMPILE.S} ${CFLAGS:M-[ID]*} ${AINC} ${.IMPSRC} -o ${.TARGET}.o + @${LD} -x -r ${.TARGET}.o -o ${.TARGET} + @rm -f ${.TARGET}.o + +.S.po .s.po: + @echo ${COMPILE.S:Q} -DGPROF -DPROF ${CFLAGS:M-[ID]*} ${AINC} ${.IMPSRC} -o ${.TARGET} + @${COMPILE.S} -DGPROF -DPROF ${CFLAGS:M-[ID]*} ${AINC} ${.IMPSRC} -o ${.TARGET}.o + @${LD} -X -r ${.TARGET}.o -o ${.TARGET} + @rm -f ${.TARGET}.o + +.S.so .s.so: + @echo ${COMPILE.S:Q} ${CAPICFLAGS} ${CFLAGS:M-[ID]*} ${AINC} ${.IMPSRC} -o ${.TARGET} + @${COMPILE.S} ${CAPICFLAGS} ${CFLAGS:M-[ID]*} ${AINC} ${.IMPSRC} -o ${.TARGET}.o + @${LD} -x -r ${.TARGET}.o -o ${.TARGET} + @rm -f ${.TARGET}.o + +.if ${MKPIC} == "no" || (defined(LDSTATIC) && ${LDSTATIC} != "") \ + || ${MKLINKLIB} != "no" +_LIBS=lib${LIB}.a +.else +_LIBS= +.endif + +OBJS+=${SRCS:N*.h:N*.sh:R:S/$/.o/g} + +.if ${MKPROFILE} != "no" +_LIBS+=lib${LIB}_p.a +POBJS+=${OBJS:.o=.po} +.endif + +.if ${MKPIC} != "no" +.if ${MKPICLIB} == "no" +SOLIB=lib${LIB}.a +.else +SOLIB=lib${LIB}_pic.a +_LIBS+=${SOLIB} +SOBJS+=${OBJS:.o=.so} +.endif +.if defined(SHLIB_FULLVERSION) +_LIBS+=lib${LIB}.so.${SHLIB_FULLVERSION} +.endif +.endif + +LOBJS+=${LSRCS:.c=.ln} ${SRCS:M*.c:.c=.ln} +.if ${MKLINT} != "no" && ${MKLINKLIB} != "no" && !empty(LOBJS) +_LIBS+=llib-l${LIB}.ln +.endif + +.if ${MKPIC} == "no" || (defined(LDSTATIC) && ${LDSTATIC} != "") \ + || ${MKLINKLIB} != "no" +ALLOBJS=${OBJS} ${POBJS} ${SOBJS} +.else +ALLOBJS=${POBJS} ${SOBJS} +.endif +.if ${MKLINT} != "no" && ${MKLINKLIB} != "no" && !empty(LOBJS) +ALLOBJS+=${LOBJS} +.endif +.NOPATH: ${ALLOBJS} ${_LIBS} + +realall: ${SRCS} ${ALLOBJS:O} ${_LIBS} + +__archivebuild: .USE + @rm -f ${.TARGET} + ${AR} cq ${.TARGET} `NM=${NM} ${LORDER} ${.ALLSRC:M*o} | ${TSORT}` + ${RANLIB} ${.TARGET} + +__archiveinstall: .USE + ${INSTALL} ${RENAME} ${PRESERVE} ${COPY} ${INSTPRIV} -o ${LIBOWN} \ + -g ${LIBGRP} -m 600 ${.ALLSRC} ${.TARGET} + ${RANLIB} -t ${.TARGET} + chmod ${LIBMODE} ${.TARGET} + +DPSRCS+= ${SRCS:M*.l:.l=.c} ${SRCS:M*.y:.y=.c} +CLEANFILES+= ${DPSRCS} +.if defined(YHEADER) +CLEANFILES+= ${SRCS:M*.y:.y=.h} +.endif + +lib${LIB}.a:: ${OBJS} __archivebuild + @echo building standard ${LIB} library + +lib${LIB}_p.a:: ${POBJS} __archivebuild + @echo building profiled ${LIB} library + +lib${LIB}_pic.a:: ${SOBJS} __archivebuild + @echo building shared object ${LIB} library + +lib${LIB}.so.${SHLIB_FULLVERSION}: ${SOLIB} ${DPADD} \ + ${SHLIB_LDSTARTFILE} ${SHLIB_LDENDFILE} + @echo building shared ${LIB} library \(version ${SHLIB_FULLVERSION}\) + @rm -f lib${LIB}.so.${SHLIB_FULLVERSION} +.if defined(DESTDIR) + $(LD) -nostdlib -x -shared ${SHLIB_SHFLAGS} -o ${.TARGET} \ + ${SHLIB_LDSTARTFILE} \ + --whole-archive ${SOLIB} \ + --no-whole-archive ${LDADD} \ + -L${DESTDIR}${LIBDIR} -rpath ${LIBDIR} \ + ${SHLIB_LDENDFILE} +.else + $(LD) -x -shared ${SHLIB_SHFLAGS} -o ${.TARGET} \ + ${SHLIB_LDSTARTFILE} \ + --whole-archive ${SOLIB} --no-whole-archive ${LDADD} \ + ${SHLIB_LDENDFILE} +.endif +.if ${OBJECT_FMT} == "ELF" + ln -sf lib${LIB}.so.${SHLIB_FULLVERSION} lib${LIB}.so.${SHLIB_MAJOR}.tmp + mv -f lib${LIB}.so.${SHLIB_MAJOR}.tmp lib${LIB}.so.${SHLIB_MAJOR} + ln -sf lib${LIB}.so.${SHLIB_FULLVERSION} lib${LIB}.so.tmp + mv -f lib${LIB}.so.tmp lib${LIB}.so +.endif + +.if !empty(LOBJS) +LLIBS?= -lc +llib-l${LIB}.ln: ${LOBJS} + @echo building llib-l${LIB}.ln + @rm -f llib-l${LIB}.ln + @${LINT} -C${LIB} ${.ALLSRC} ${LLIBS} +.endif + +cleanlib: + rm -f a.out [Ee]rrs mklog core *.core ${CLEANFILES} + rm -f lib${LIB}.a ${OBJS} + rm -f lib${LIB}_p.a ${POBJS} + rm -f lib${LIB}_pic.a lib${LIB}.so.* lib${LIB}.so ${SOBJS} + rm -f llib-l${LIB}.ln ${LOBJS} + +.if defined(SRCS) +afterdepend: .depend + @(TMP=/tmp/_depend$$$$; \ + sed -e 's/^\([^\.]*\).o[ ]*:/\1.o \1.po \1.so \1.ln:/' \ + < .depend > $$TMP; \ + mv $$TMP .depend) +.endif + +.if !target(libinstall) +# Make sure it gets defined, in case MKPIC==no && MKLINKLIB==no +libinstall:: + +.if ${MKLINKLIB} != "no" +libinstall:: ${DESTDIR}${LIBDIR}/lib${LIB}.a +.PRECIOUS: ${DESTDIR}${LIBDIR}/lib${LIB}.a +.if !defined(UPDATE) +.PHONY: ${DESTDIR}${LIBDIR}/lib${LIB}.a +.endif + +.if !defined(BUILD) && !make(all) && !make(lib${LIB}.a) +${DESTDIR}${LIBDIR}/lib${LIB}.a: .MADE +.endif +${DESTDIR}${LIBDIR}/lib${LIB}.a: lib${LIB}.a __archiveinstall +.endif + +.if ${MKPROFILE} != "no" +libinstall:: ${DESTDIR}${LIBDIR}/lib${LIB}_p.a +.PRECIOUS: ${DESTDIR}${LIBDIR}/lib${LIB}_p.a +.if !defined(UPDATE) +.PHONY: ${DESTDIR}${LIBDIR}/lib${LIB}_p.a +.endif + +.if !defined(BUILD) && !make(all) && !make(lib${LIB}_p.a) +${DESTDIR}${LIBDIR}/lib${LIB}_p.a: .MADE +.endif +${DESTDIR}${LIBDIR}/lib${LIB}_p.a: lib${LIB}_p.a __archiveinstall +.endif + +.if ${MKPIC} != "no" && ${MKPICINSTALL} != "no" +libinstall:: ${DESTDIR}${LIBDIR}/lib${LIB}_pic.a +.PRECIOUS: ${DESTDIR}${LIBDIR}/lib${LIB}_pic.a +.if !defined(UPDATE) +.PHONY: ${DESTDIR}${LIBDIR}/lib${LIB}_pic.a +.endif + +.if !defined(BUILD) && !make(all) && !make(lib${LIB}_pic.a) +${DESTDIR}${LIBDIR}/lib${LIB}_pic.a: .MADE +.endif +.if ${MKPICLIB} == "no" +${DESTDIR}${LIBDIR}/lib${LIB}_pic.a: + rm -f ${DESTDIR}${LIBDIR}/lib${LIB}_pic.a + ln -s lib${LIB}.a ${DESTDIR}${LIBDIR}/lib${LIB}_pic.a +.else +${DESTDIR}${LIBDIR}/lib${LIB}_pic.a: lib${LIB}_pic.a __archiveinstall +.endif +.endif + +.if ${MKPIC} != "no" && defined(SHLIB_FULLVERSION) +libinstall:: ${DESTDIR}${LIBDIR}/lib${LIB}.so.${SHLIB_FULLVERSION} +.PRECIOUS: ${DESTDIR}${LIBDIR}/lib${LIB}.so.${SHLIB_FULLVERSION} +.if !defined(UPDATE) +.PHONY: ${DESTDIR}${LIBDIR}/lib${LIB}.so.${SHLIB_FULLVERSION} +.endif + +.if !defined(BUILD) && !make(all) && !make(lib${LIB}.so.${SHLIB_FULLVERSION}) +${DESTDIR}${LIBDIR}/lib${LIB}.so.${SHLIB_FULLVERSION}: .MADE +.endif +${DESTDIR}${LIBDIR}/lib${LIB}.so.${SHLIB_FULLVERSION}: lib${LIB}.so.${SHLIB_FULLVERSION} + ${INSTALL} ${RENAME} ${PRESERVE} ${COPY} ${INSTPRIV} -o ${LIBOWN} \ + -g ${LIBGRP} -m ${LIBMODE} ${.ALLSRC} ${.TARGET} +.if ${OBJECT_FMT} == "a.out" && !defined(DESTDIR) + /sbin/ldconfig -m ${LIBDIR} +.endif +.if ${OBJECT_FMT} == "ELF" + ln -sf lib${LIB}.so.${SHLIB_FULLVERSION}\ + ${DESTDIR}${LIBDIR}/lib${LIB}.so.${SHLIB_MAJOR}.tmp + mv -f ${DESTDIR}${LIBDIR}/lib${LIB}.so.${SHLIB_MAJOR}.tmp\ + ${DESTDIR}${LIBDIR}/lib${LIB}.so.${SHLIB_MAJOR} +.if ${MKLINKLIB} != "no" + ln -sf lib${LIB}.so.${SHLIB_FULLVERSION}\ + ${DESTDIR}${LIBDIR}/lib${LIB}.so.tmp + mv -f ${DESTDIR}${LIBDIR}/lib${LIB}.so.tmp\ + ${DESTDIR}${LIBDIR}/lib${LIB}.so +.endif +.endif +.endif + +.if ${MKLINT} != "no" && ${MKLINKLIB} != "no" && !empty(LOBJS) +libinstall:: ${DESTDIR}${LINTLIBDIR}/llib-l${LIB}.ln +.PRECIOUS: ${DESTDIR}${LINTLIBDIR}/llib-l${LIB}.ln +.if !defined(UPDATE) +.PHONY: ${DESTDIR}${LINTLIBDIR}/llib-l${LIB}.ln +.endif + +.if !defined(BUILD) && !make(all) && !make(llib-l${LIB}.ln) +${DESTDIR}${LINTLIBDIR}/llib-l${LIB}.ln: .MADE +.endif +${DESTDIR}${LINTLIBDIR}/llib-l${LIB}.ln: llib-l${LIB}.ln + ${INSTALL} ${RENAME} ${PRESERVE} ${COPY} ${INSTPRIV} -o ${LIBOWN} \ + -g ${LIBGRP} -m ${LIBMODE} ${.ALLSRC} ${DESTDIR}${LINTLIBDIR} +.endif +.endif + +.include <bsd.man.mk> +.include <bsd.nls.mk> +.include <bsd.files.mk> +.include <bsd.inc.mk> +.include <bsd.links.mk> +.include <bsd.dep.mk> +.include <bsd.sys.mk> + +# Make sure all of the standard targets are defined, even if they do nothing. +lint regress: diff --git a/bootstrap/mods/mk/IRIX.own.mk b/bootstrap/mods/mk/IRIX.own.mk new file mode 100644 index 00000000000..04c3634df84 --- /dev/null +++ b/bootstrap/mods/mk/IRIX.own.mk @@ -0,0 +1,244 @@ +# $NetBSD: IRIX.own.mk,v 1.1.1.1 2004/03/11 13:04:00 grant Exp $ + +.if !defined(_IRIX_OWN_MK_) +_IRIX_OWN_MK_=1 + +.if defined(MAKECONF) && exists(${MAKECONF}) +.include "${MAKECONF}" +.elif exists(/etc/mk.conf) +.include "/etc/mk.conf" +.endif + +# Defining `SKEY' causes support for S/key authentication to be compiled in. +SKEY= yes + +# where the system object and source trees are kept; can be configurable +# by the user in case they want them in ~/foosrc and ~/fooobj, for example +BSDSRCDIR?= /opt/bsd/src +BSDOBJDIR?= /opt/bsd/obj + +BINGRP?= @ROOT_GROUP@ +BINOWN?= root +BINMODE?= 555 +NONBINMODE?= 444 + +# Define MANZ to have the man pages compressed (gzip) +#MANZ= 1 + +MANDIR?= /usr/share/man +MANGRP?= @ROOT_GROUP@ +MANOWN?= ${BINOWN} +MANMODE?= ${NONBINMODE} +MANINSTALL?= maninstall catinstall + +INFODIR?= /usr/share/info +INFOGRP?= @ROOT_GROUP@ +INFOOWN?= ${BINOWN} +INFOMODE?= ${NONBINMODE} + +LIBDIR?= /usr/lib +LINTLIBDIR?= ${LIBDIR}/lint +LIBGRP?= ${BINGRP} +LIBOWN?= ${BINOWN} +LIBMODE?= ${NONBINMODE} + +DOCDIR?= /usr/share/doc +HTMLDOCDIR?= /usr/share/doc/html +DOCGRP?= @ROOT_GROUP@ +DOCOWN?= ${BINOWN} +DOCMODE?= ${NONBINMODE} + +NLSDIR?= /usr/share/nls +NLSGRP?= @ROOT_GROUP@ +NLSOWN?= ${BINOWN} +NLSMODE?= ${NONBINMODE} + +LOCALEDIR?= /usr/lib/locale +LOCALEGRP?= @ROOT_GROUP@ +LOCALEOWN?= ${BINOWN} +LOCALEMODE?= ${NONBINMODE} + +COPY?= -c +.if defined(UPDATE) +PRESERVE?= -p +.else +PRESERVE?= +.endif +.if defined(UNPRIVILEGED) +INSTPRIV?= -U +.endif +STRIPFLAG?= -s + +# Define SYS_INCLUDE to indicate whether you want symbolic links to the system +# source (``symlinks''), or a separate copy (``copies''); (latter useful +# in environments where it's not possible to keep /sys publicly readable) +#SYS_INCLUDE= symlinks + +OBJECT_FMT?=ELF + +# GNU sources and packages sometimes see architecture names differently. +# This table maps an architecture name to its GNU counterpart. +# Use as so: ${GNU_ARCH.${TARGET_ARCH}} or ${MACHINE_GNU_ARCH} +.ifndef MACHINE_GNU_ARCH +GNU_ARCH.alpha=alpha +GNU_ARCH.arm26=arm +GNU_ARCH.arm32=arm +GNU_ARCH.arm=arm +GNU_ARCH.i386=i386 +GNU_ARCH.m68k=m68k +GNU_ARCH.mipseb=mipseb +GNU_ARCH.mipsel=mipsel +GNU_ARCH.ns32k=ns32k +GNU_ARCH.powerpc=powerpc +GNU_ARCH.sh3eb=sh +GNU_ARCH.sh3el=sh +GNU_ARCH.sparc=sparc +GNU_ARCH.sparc64=sparc64 +GNU_ARCH.vax=vax +MACHINE_GNU_ARCH=${GNU_ARCH.${MACHINE_ARCH}} +.endif + +# CPU model, derived from MACHINE_ARCH +MACHINE_CPU= ${MACHINE_ARCH:C/mipse[bl]/mips/:S/arm26/arm/:S/arm32/arm/:C/sh3e[bl]/sh3/:S/m68000/m68k/} + +TARGETS+= all clean cleandir depend dependall includes \ + install lint obj regress tags html installhtml cleanhtml +.PHONY: all clean cleandir depend dependall distclean includes \ + install lint obj regress tags beforedepend afterdepend \ + beforeinstall afterinstall realinstall realdepend realall \ + html installhtml cheanhtml + +# set NEED_OWN_INSTALL_TARGET, if it's not already set, to yes +# this is used by bsd.pkg.mk to stop "install" being defined +NEED_OWN_INSTALL_TARGET?= yes + +.if ${NEED_OWN_INSTALL_TARGET} == "yes" +.if !target(install) +install: .NOTMAIN beforeinstall subdir-install realinstall afterinstall +beforeinstall: .NOTMAIN +subdir-install: .NOTMAIN beforeinstall +realinstall: .NOTMAIN beforeinstall +afterinstall: .NOTMAIN subdir-install realinstall +.endif +all: .NOTMAIN realall subdir-all +subdir-all: .NOTMAIN +realall: .NOTMAIN +depend: .NOTMAIN realdepend subdir-depend +subdir-depend: .NOTMAIN +realdepend: .NOTMAIN +distclean: .NOTMAIN cleandir +.endif + +PRINTOBJDIR= printf "xxx: .MAKE\n\t@echo \$${.OBJDIR}\n" | ${MAKE} -B -s -f- + +# Define MKxxx variables (which are either yes or no) for users +# to set in /etc/mk.conf and override on the make commandline. +# These should be tested with `== "no"' or `!= "no"'. +# The NOxxx variables should only be used by Makefiles. +# + +MKCATPAGES?=yes + +.if defined(NODOC) +MKDOC=no +#.elif !defined(MKDOC) +#MKDOC=yes +.else +MKDOC?=yes +.endif + +MKINFO?=yes + +.if defined(NOLINKLIB) +MKLINKLIB=no +.else +MKLINKLIB?=yes +.endif +.if ${MKLINKLIB} == "no" +MKPICINSTALL=no +MKPROFILE=no +.endif + +.if defined(NOLINT) +MKLINT=no +.else +MKLINT?=yes +.endif + +.if defined(NOMAN) +MKMAN=no +.else +MKMAN?=yes +.endif +.if ${MKMAN} == "no" +MKCATPAGES=no +.endif + +.if defined(NONLS) +MKNLS=no +.else +MKNLS?=yes +.endif + +# +# MKOBJDIRS controls whether object dirs are created during "make build". +# MKOBJ controls whether the "make obj" rule does anything. +# +.if defined(NOOBJ) +MKOBJ=no +MKOBJDIRS=no +.else +MKOBJ?=yes +MKOBJDIRS?=no +.endif + +.if defined(NOPIC) +MKPIC=no +.else +MKPIC?=yes +.endif + +.if defined(NOPICINSTALL) +MKPICINSTALL=no +.else +MKPICINSTALL?=yes +.endif + +.if defined(NOPROFILE) +MKPROFILE=no +.else +MKPROFILE?=yes +.endif + +.if defined(NOSHARE) +MKSHARE=no +.else +MKSHARE?=yes +.endif +.if ${MKSHARE} == "no" +MKCATPAGES=no +MKDOC=no +MKINFO=no +MKMAN=no +MKNLS=no +.endif + +.if defined(NOCRYPTO) +MKCRYPTO=no +.else +MKCRYPTO?=yes +.endif + +MKCRYPTO_IDEA?=no + +MKCRYPTO_RC5?=no + +.if defined(NOKERBEROS) || (${MKCRYPTO} == "no") +MKKERBEROS=no +.else +MKKERBEROS?=yes +.endif + +MKSOFTFLOAT?=no + +.endif # _IRIX_OWN_MK_ diff --git a/bootstrap/mods/mk/IRIX.sys.mk b/bootstrap/mods/mk/IRIX.sys.mk new file mode 100644 index 00000000000..0f66963b65c --- /dev/null +++ b/bootstrap/mods/mk/IRIX.sys.mk @@ -0,0 +1,193 @@ +# $NetBSD: IRIX.sys.mk,v 1.1.1.1 2004/03/11 13:04:00 grant Exp $ +# @(#)sys.mk 8.2 (Berkeley) 3/21/94 + +unix?= We run Unix +OS!= uname -s + +.SUFFIXES: .out .a .ln .o .s .S .c .cc .cpp .cxx .C .F .f .r .y .l .cl .p .h +.SUFFIXES: .sh .m4 + +.LIBS: .a + +AR?= ar +ARFLAGS?= rl +RANLIB?= ranlib + +AS?= as +AFLAGS?= +COMPILE.s?= ${CC} ${AFLAGS} -c +LINK.s?= ${CC} ${AFLAGS} ${LDFLAGS} +COMPILE.S?= ${CC} ${AFLAGS} ${CPPFLAGS} -c -traditional-cpp +LINK.S?= ${CC} ${AFLAGS} ${CPPFLAGS} ${LDFLAGS} + +CC?= cc +NOGCCERROR?= # defined +DBG?= -O2 +CFLAGS?= ${DBG} +COMPILE.c?= ${CC} ${CFLAGS} ${CPPFLAGS} -c +LINK.c?= ${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} + +CXX?= CC +CXXFLAGS?= ${CFLAGS} +COMPILE.cc?= ${CXX} ${CXXFLAGS} ${CPPFLAGS} -c +LINK.cc?= ${CXX} ${CXXFLAGS} ${CPPFLAGS} ${LDFLAGS} + +OBJC?= ${CC} +OBJCFLAGS?= ${CFLAGS} +COMPILE.m?= ${OBJC} ${OBJCFLAGS} ${CPPFLAGS} -c +LINK.m?= ${OBJC} ${OBJCFLAGS} ${CPPFLAGS} ${LDFLAGS} + +CPP?= CC +CPPFLAGS?= + +FC?= f77 +FFLAGS?= -O +RFLAGS?= +COMPILE.f?= ${FC} ${FFLAGS} -c +LINK.f?= ${FC} ${FFLAGS} ${LDFLAGS} +COMPILE.F?= ${FC} ${FFLAGS} ${CPPFLAGS} -c +LINK.F?= ${FC} ${FFLAGS} ${CPPFLAGS} ${LDFLAGS} +COMPILE.r?= ${FC} ${FFLAGS} ${RFLAGS} -c +LINK.r?= ${FC} ${FFLAGS} ${RFLAGS} ${LDFLAGS} + +INSTALL?= ${PREFIX}/bin/install-sh + +LEX?= lex +LFLAGS?= +LEX.l?= ${LEX} ${LFLAGS} + +LD?= ld +LDFLAGS?= + +LINT?= lint +LINTFLAGS?= -chapbxzF + +LORDER?= lorder + +MAKE?= make + +NM?= nm + +PC?= pc +PFLAGS?= +COMPILE.p?= ${PC} ${PFLAGS} ${CPPFLAGS} -c +LINK.p?= ${PC} ${PFLAGS} ${CPPFLAGS} ${LDFLAGS} + +SHELL?= sh + +SIZE?= size + +TSORT?= tsort -q + +YACC?= yacc +YFLAGS?= +YACC.y?= ${YACC} ${YFLAGS} + +# C +.c: + ${LINK.c} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} +.c.o: + ${COMPILE.c} ${.IMPSRC} +.c.a: + ${COMPILE.c} ${.IMPSRC} + ${AR} ${ARFLAGS} $@ $*.o + rm -f $*.o +.c.ln: + ${LINT} ${LINTFLAGS} ${CPPFLAGS:M-[IDU]*} -i ${.IMPSRC} + +# C++ +.cc .cpp .cxx .C: + ${LINK.cc} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} +.cc.o .cpp.o .cxx.o .C.o: + ${COMPILE.cc} ${.IMPSRC} +.cc.a .cpp.a .cxx.a .C.a: + ${COMPILE.cc} ${.IMPSRC} + ${AR} ${ARFLAGS} $@ $*.o + rm -f $*.o + +# Fortran/Ratfor +.f: + ${LINK.f} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} +.f.o: + ${COMPILE.f} ${.IMPSRC} +.f.a: + ${COMPILE.f} ${.IMPSRC} + ${AR} ${ARFLAGS} $@ $*.o + rm -f $*.o + +.F: + ${LINK.F} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} +.F.o: + ${COMPILE.F} ${.IMPSRC} +.F.a: + ${COMPILE.F} ${.IMPSRC} + ${AR} ${ARFLAGS} $@ $*.o + rm -f $*.o + +.r: + ${LINK.r} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} +.r.o: + ${COMPILE.r} ${.IMPSRC} +.r.a: + ${COMPILE.r} ${.IMPSRC} + ${AR} ${ARFLAGS} $@ $*.o + rm -f $*.o + +# Pascal +.p: + ${LINK.p} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} +.p.o: + ${COMPILE.p} ${.IMPSRC} +.p.a: + ${COMPILE.p} ${.IMPSRC} + ${AR} ${ARFLAGS} $@ $*.o + rm -f $*.o + +# Assembly +.s: + ${LINK.s} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} +.s.o: + ${COMPILE.s} ${.IMPSRC} +.s.a: + ${COMPILE.s} ${.IMPSRC} + ${AR} ${ARFLAGS} $@ $*.o + rm -f $*.o +.S: + ${LINK.S} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} +.S.o: + ${COMPILE.S} ${.IMPSRC} +.S.a: + ${COMPILE.S} ${.IMPSRC} + ${AR} ${ARFLAGS} $@ $*.o + rm -f $*.o + +# Lex +.l: + ${LEX.l} ${.IMPSRC} + ${LINK.c} -o ${.TARGET} lex.yy.c ${LDLIBS} -ll + rm -f lex.yy.c +.l.c: + ${LEX.l} ${.IMPSRC} + mv lex.yy.c ${.TARGET} +.l.o: + ${LEX.l} ${.IMPSRC} + ${COMPILE.c} -o ${.TARGET} lex.yy.c + rm -f lex.yy.c + +# Yacc +.y: + ${YACC.y} ${.IMPSRC} + ${LINK.c} -o ${.TARGET} y.tab.c ${LDLIBS} + rm -f y.tab.c +.y.c: + ${YACC.y} ${.IMPSRC} + mv y.tab.c ${.TARGET} +.y.o: + ${YACC.y} ${.IMPSRC} + ${COMPILE.c} -o ${.TARGET} y.tab.c + rm -f y.tab.c + +# Shell +.sh: + rm -f ${.TARGET} + cp ${.IMPSRC} ${.TARGET} diff --git a/bootstrap/mods/mk/Linux.bsd.lib.mk b/bootstrap/mods/mk/Linux.bsd.lib.mk new file mode 100644 index 00000000000..78b4a270227 --- /dev/null +++ b/bootstrap/mods/mk/Linux.bsd.lib.mk @@ -0,0 +1,524 @@ +# $NetBSD: Linux.bsd.lib.mk,v 1.1.1.1 2004/03/11 13:04:00 grant Exp $ +# @(#)bsd.lib.mk 8.3 (Berkeley) 4/22/94 + +.if !target(__initialized__) +__initialized__: +.if exists(${.CURDIR}/../Makefile.inc) +.include "${.CURDIR}/../Makefile.inc" +.endif +.include <bsd.own.mk> +.include <bsd.obj.mk> +.include <bsd.depall.mk> +.MAIN: all +.endif + +.PHONY: checkver cleanlib libinstall +realinstall: checkver libinstall +clean cleandir: cleanlib + +.if exists(${SHLIB_VERSION_FILE}) +SHLIB_MAJOR != . ${SHLIB_VERSION_FILE} ; echo $$major +SHLIB_MINOR != . ${SHLIB_VERSION_FILE} ; echo $$minor +SHLIB_TEENY != . ${SHLIB_VERSION_FILE} ; echo $$teeny + +# Check for higher installed library versions. +.if !defined(NOCHECKVER) && !defined(NOCHECKVER_${LIB}) && \ + exists(${BSDSRCDIR}/lib/checkver) +checkver: + @(cd ${.CURDIR} && \ + sh ${BSDSRCDIR}/lib/checkver -v ${SHLIB_VERSION_FILE} \ + -d ${DESTDIR}${LIBDIR} ${LIB}) +.endif +.endif + +.if !target(checkver) +checkver: +.endif + +print-shlib-major: +.if defined(SHLIB_MAJOR) + @echo ${SHLIB_MAJOR} +.else + @false +.endif + +print-shlib-minor: +.if defined(SHLIB_MINOR) + @echo ${SHLIB_MINOR} +.else + @false +.endif + +print-shlib-teeny: +.if defined(SHLIB_TEENY) + @echo ${SHLIB_TEENY} +.else + @false +.endif + +.if defined(SHLIB_MAJOR) && !empty(SHLIB_MAJOR) +.if defined(SHLIB_MINOR) && !empty(SHLIB_MINOR) +.if defined(SHLIB_TEENY) && !empty(SHLIB_TEENY) +SHLIB_FULLVERSION=${SHLIB_MAJOR}.${SHLIB_MINOR}.${SHLIB_TEENY} +.else +SHLIB_FULLVERSION=${SHLIB_MAJOR}.${SHLIB_MINOR} +.endif +.else +SHLIB_FULLVERSION=${SHLIB_MAJOR} +.endif +.endif + +# add additional suffixes not exported. +# .po is used for profiling object files. +# .so is used for PIC object files. +.SUFFIXES: .out .a .ln .so .po .o .s .S .c .cc .C .m .F .f .r .y .l .cl .p .h +.SUFFIXES: .sh .m4 .m + + +# Set PICFLAGS to cc flags for producing position-independent code, +# if not already set. Includes -DPIC, if required. + +# Data-driven table using make variables to control how shared libraries +# are built for different platforms and object formats. +# OBJECT_FMT: currently either "ELF" or "a.out", from <bsd.own.mk> +# SHLIB_SOVERSION: version number to be compiled into a shared library +# via -soname. Usualy ${SHLIB_MAJOR} on ELF. +# NetBSD/pmax used to use ${SHLIB_MAJOR}[.${SHLIB_MINOR} +# [.${SHLIB_TEENY}]] +# SHLIB_SHFLAGS: Flags to tell ${LD} to emit shared library. +# with ELF, also set shared-lib version for ld.so. +# SHLIB_LDSTARTFILE: support .o file, call C++ file-level constructors +# SHLIB_LDENDFILE: support .o file, call C++ file-level destructors +# FPICFLAGS: flags for ${FC} to compile .[fF] files to .so objects. +# CPPICFLAGS: flags for ${CPP} to preprocess .[sS] files for ${AS} +# CPICFLAGS: flags for ${CC} to compile .[cC] files to .so objects. +# CAPICFLAGS flags for {$CC} to compiling .[Ss] files +# (usually just ${CPPPICFLAGS} ${CPICFLAGS}) +# APICFLAGS: flags for ${AS} to assemble .[sS] to .so objects. + +.if ${MACHINE_ARCH} == "alpha" + # Alpha-specific shared library flags +FPICFLAGS ?= -fPIC +CPICFLAGS ?= -fPIC -DPIC +CPPPICFLAGS?= -DPIC +CAPICFLAGS?= ${CPPPICFLAGS} ${CPICFLAGS} +APICFLAGS ?= +.elif ${MACHINE_ARCH} == "mipsel" || ${MACHINE_ARCH} == "mipseb" + # mips-specific shared library flags + +# On mips, all libs are compiled with ABIcalls, not just sharedlibs. +MKPICLIB= no + +# so turn shlib PIC flags on for ${AS}. +AINC+=-DABICALLS +AFLAGS+= -fPIC +AS+= -KPIC + +.elif ${MACHINE_ARCH} == "vax" && ${OBJECT_FMT} == "ELF" +# On the VAX, all object are PIC by default, not just sharedlibs. +MKPICLIB= no + +.elif (${MACHINE_ARCH} == "sparc" || ${MACHINE_ARCH} == "sparc64") && \ + ${OBJECT_FMT} == "ELF" + +FPICFLAGS ?= -fPIC +CPICFLAGS ?= -fPIC -DPIC +CPPPICFLAGS?= -DPIC +CAPICFLAGS?= ${CPPPICFLAGS} ${CPICFLAGS} +APICFLAGS ?= -KPIC + +.else + +# Platform-independent flags for NetBSD a.out shared libraries (and PowerPC) +SHLIB_LDSTARTFILE= +SHLIB_LDENDFILE= +SHLIB_SOVERSION=${SHLIB_FULLVERSION} +SHLIB_SHFLAGS= +FPICFLAGS ?= -fPIC +CPICFLAGS?= -fPIC -DPIC +CPPPICFLAGS?= -DPIC +CAPICFLAGS?= ${CPPPICFLAGS} ${CPICFLAGS} +APICFLAGS?= -k + +.endif + +MKPICLIB?= yes + +# Platform-independent linker flags for ELF shared libraries +.if ${OBJECT_FMT} == "ELF" +SHLIB_SOVERSION= ${SHLIB_MAJOR} +SHLIB_SHFLAGS= -soname lib${LIB}.so.${SHLIB_SOVERSION} +SHLIB_LDSTARTFILE?= ${DESTDIR}/usr/lib/crtbeginS.o +SHLIB_LDENDFILE?= ${DESTDIR}/usr/lib/crtendS.o +.endif + +CFLAGS+= ${COPTS} +FFLAGS+= ${FOPTS} + +.c.o: +.if defined(COPTS) && !empty(COPTS:M*-g*) + ${COMPILE.c} ${.IMPSRC} +.else + @echo ${COMPILE.c:Q} ${.IMPSRC} + @${COMPILE.c} ${.IMPSRC} -o ${.TARGET}.o + @${LD} -x -r ${.TARGET}.o -o ${.TARGET} + @rm -f ${.TARGET}.o +.endif + +.c.po: +.if defined(COPTS) && !empty(COPTS:M*-g*) + ${COMPILE.c} -pg ${.IMPSRC} -o ${.TARGET} +.else + @echo ${COMPILE.c:Q} -pg ${.IMPSRC} -o ${.TARGET} + @${COMPILE.c} -pg ${.IMPSRC} -o ${.TARGET}.o + @${LD} -X -r ${.TARGET}.o -o ${.TARGET} + @rm -f ${.TARGET}.o +.endif + +.c.so: +.if defined(COPTS) && !empty(COPTS:M*-g*) + ${COMPILE.c} ${CPICFLAGS} ${.IMPSRC} -o ${.TARGET} +.else + @echo ${COMPILE.c:Q} ${CPICFLAGS} ${.IMPSRC} -o ${.TARGET} + @${COMPILE.c} ${CPICFLAGS} ${.IMPSRC} -o ${.TARGET}.o + @${LD} -x -r ${.TARGET}.o -o ${.TARGET} + @rm -f ${.TARGET}.o +.endif + +.c.ln: + ${LINT} ${LINTFLAGS} ${CPPFLAGS:M-[IDU]*} -i ${.IMPSRC} + +.cc.o .C.o: +.if defined(COPTS) && !empty(COPTS:M*-g*) + ${COMPILE.cc} ${.IMPSRC} +.else + @echo ${COMPILE.cc:Q} ${.IMPSRC} + @${COMPILE.cc} ${.IMPSRC} -o ${.TARGET}.o + @${LD} -x -r ${.TARGET}.o -o ${.TARGET} + @rm -f ${.TARGET}.o +.endif + +.cc.po .C.po: +.if defined(COPTS) && !empty(COPTS:M*-g*) + ${COMPILE.cc} -pg ${.IMPSRC} -o ${.TARGET} +.else + @echo ${COMPILE.cc:Q} -pg ${.IMPSRC} -o ${.TARGET} + @${COMPILE.cc} -pg ${.IMPSRC} -o ${.TARGET}.o + @${LD} -X -r ${.TARGET}.o -o ${.TARGET} + @rm -f ${.TARGET}.o +.endif + +.cc.so .C.so: +.if defined(COPTS) && !empty(COPTS:M*-g*) + ${COMPILE.cc} ${CPICFLAGS} ${.IMPSRC} -o ${.TARGET} +.else + @echo ${COMPILE.cc:Q} ${CPICFLAGS} ${.IMPSRC} -o ${.TARGET} + @${COMPILE.cc} ${CPICFLAGS} ${.IMPSRC} -o ${.TARGET}.o + @${LD} -x -r ${.TARGET}.o -o ${.TARGET} + @rm -f ${.TARGET}.o +.endif + +.f.o: +.if defined(FOPTS) && !empty(FOPTS:M*-g*) + ${COMPILE.f} ${.IMPSRC} +.else + @echo ${COMPILE.f:Q} ${.IMPSRC} + @${COMPILE.f} ${.IMPSRC} -o ${.TARGET}.o + @${LD} -x -r ${.TARGET}.o -o ${.TARGET} + @rm -f ${.TARGET}.o +.endif + +.f.po: +.if defined(FOPTS) && !empty(FOPTS:M*-g*) + ${COMPILE.f} -pg ${.IMPSRC} -o ${.TARGET} +.else + @echo ${COMPILE.f:Q} -pg ${.IMPSRC} -o ${.TARGET} + @${COMPILE.f} -pg ${.IMPSRC} -o ${.TARGET}.o + @${LD} -X -r ${.TARGET}.o -o ${.TARGET} + @rm -f ${.TARGET}.o +.endif + +.f.so: +.if defined(FOPTS) && !empty(FOPTS:M*-g*) + ${COMPILE.f} ${FPICFLAGS} ${.IMPSRC} -o ${.TARGET} +.else + @echo ${COMPILE.f:Q} ${FPICFLAGS} ${.IMPSRC} -o ${.TARGET} + @${COMPILE.f} ${FPICFLAGS} ${.IMPSRC} -o ${.TARGET}.o + @${LD} -x -r ${.TARGET}.o -o ${.TARGET} + @rm -f ${.TARGET}.o +.endif + +.f.ln: + ${ECHO} Skipping lint for Fortran libraries. + +.m.o: +.if defined(OBJCFLAGS) && !empty(OBJCFLAGS:M*-g*) + ${COMPILE.m} ${.IMPSRC} +.else + @echo ${COMPILE.m:Q} ${.IMPSRC} + @${COMPILE.m} ${.IMPSRC} -o ${.TARGET}.o + @${LD} -x -r ${.TARGET}.o -o ${.TARGET} + @rm -f ${.TARGET}.o +.endif + +.m.po: +.if defined(OBJCFLAGS) && !empty(OBJCFLAGS:M*-g*) + ${COMPILE.m} -pg ${.IMPSRC} -o ${.TARGET} +.else + @echo ${COMPILE.m:Q} -pg ${.IMPSRC} -o ${.TARGET} + @${COMPILE.m} -pg ${.IMPSRC} -o ${.TARGET}.o + @${LD} -X -r ${.TARGET}.o -o ${.TARGET} + @rm -f ${.TARGET}.o +.endif + +.m.so: +.if defined(OBJCFLAGS) && !empty(OBJCFLAGS:M*-g*) + ${COMPILE.m} ${CPICFLAGS} ${.IMPSRC} -o ${.TARGET} +.else + @echo ${COMPILE.m:Q} ${CPICFLAGS} ${.IMPSRC} -o ${.TARGET} + @${COMPILE.m} ${CPICFLAGS} ${.IMPSRC} -o ${.TARGET}.o + @${LD} -x -r ${.TARGET}.o -o ${.TARGET} + @rm -f ${.TARGET}.o +.endif + +.S.o .s.o: + @echo ${COMPILE.S:Q} ${CFLAGS:M-[ID]*} ${AINC} ${.IMPSRC} + @${COMPILE.S} ${CFLAGS:M-[ID]*} ${AINC} ${.IMPSRC} -o ${.TARGET}.o + @${LD} -x -r ${.TARGET}.o -o ${.TARGET} + @rm -f ${.TARGET}.o + +.S.po .s.po: + @echo ${COMPILE.S:Q} -DGPROF -DPROF ${CFLAGS:M-[ID]*} ${AINC} ${.IMPSRC} -o ${.TARGET} + @${COMPILE.S} -DGPROF -DPROF ${CFLAGS:M-[ID]*} ${AINC} ${.IMPSRC} -o ${.TARGET}.o + @${LD} -X -r ${.TARGET}.o -o ${.TARGET} + @rm -f ${.TARGET}.o + +.S.so .s.so: + @echo ${COMPILE.S:Q} ${CAPICFLAGS} ${CFLAGS:M-[ID]*} ${AINC} ${.IMPSRC} -o ${.TARGET} + @${COMPILE.S} ${CAPICFLAGS} ${CFLAGS:M-[ID]*} ${AINC} ${.IMPSRC} -o ${.TARGET}.o + @${LD} -x -r ${.TARGET}.o -o ${.TARGET} + @rm -f ${.TARGET}.o + +.if ${MKPIC} == "no" || (defined(LDSTATIC) && ${LDSTATIC} != "") \ + || ${MKLINKLIB} != "no" +_LIBS=lib${LIB}.a +.else +_LIBS= +.endif + +OBJS+=${SRCS:N*.h:N*.sh:R:S/$/.o/g} + +.if ${MKPROFILE} != "no" +_LIBS+=lib${LIB}_p.a +POBJS+=${OBJS:.o=.po} +.endif + +.if ${MKPIC} != "no" +.if ${MKPICLIB} == "no" +SOLIB=lib${LIB}.a +.else +SOLIB=lib${LIB}_pic.a +_LIBS+=${SOLIB} +SOBJS+=${OBJS:.o=.so} +.endif +.if defined(SHLIB_FULLVERSION) +_LIBS+=lib${LIB}.so.${SHLIB_FULLVERSION} +.endif +.endif + +LOBJS+=${LSRCS:.c=.ln} ${SRCS:M*.c:.c=.ln} +.if ${MKLINT} != "no" && ${MKLINKLIB} != "no" && !empty(LOBJS) +_LIBS+=llib-l${LIB}.ln +.endif + +.if ${MKPIC} == "no" || (defined(LDSTATIC) && ${LDSTATIC} != "") \ + || ${MKLINKLIB} != "no" +ALLOBJS=${OBJS} ${POBJS} ${SOBJS} +.else +ALLOBJS=${POBJS} ${SOBJS} +.endif +.if ${MKLINT} != "no" && ${MKLINKLIB} != "no" && !empty(LOBJS) +ALLOBJS+=${LOBJS} +.endif +.NOPATH: ${ALLOBJS} ${_LIBS} + +realall: ${SRCS} ${ALLOBJS:O} ${_LIBS} + +__archivebuild: .USE + @rm -f ${.TARGET} + ${AR} cq ${.TARGET} `NM=${NM} ${LORDER} ${.ALLSRC:M*o} | ${TSORT}` + ${RANLIB} ${.TARGET} + +__archiveinstall: .USE + ${INSTALL} ${RENAME} ${PRESERVE} ${COPY} ${INSTPRIV} -o ${LIBOWN} \ + -g ${LIBGRP} -m 600 ${.ALLSRC} ${.TARGET} + ${RANLIB} -t ${.TARGET} + chmod ${LIBMODE} ${.TARGET} + +DPSRCS+= ${SRCS:M*.l:.l=.c} ${SRCS:M*.y:.y=.c} +CLEANFILES+= ${DPSRCS} +.if defined(YHEADER) +CLEANFILES+= ${SRCS:M*.y:.y=.h} +.endif + +lib${LIB}.a:: ${OBJS} __archivebuild + @echo building standard ${LIB} library + +lib${LIB}_p.a:: ${POBJS} __archivebuild + @echo building profiled ${LIB} library + +lib${LIB}_pic.a:: ${SOBJS} __archivebuild + @echo building shared object ${LIB} library + +lib${LIB}.so.${SHLIB_FULLVERSION}: ${SOLIB} ${DPADD} \ + ${SHLIB_LDSTARTFILE} ${SHLIB_LDENDFILE} + @echo building shared ${LIB} library \(version ${SHLIB_FULLVERSION}\) + @rm -f lib${LIB}.so.${SHLIB_FULLVERSION} +.if defined(DESTDIR) + $(LD) -nostdlib -x -shared ${SHLIB_SHFLAGS} -o ${.TARGET} \ + ${SHLIB_LDSTARTFILE} \ + --whole-archive ${SOLIB} \ + --no-whole-archive ${LDADD} \ + -L${DESTDIR}${LIBDIR} -R${LIBDIR} \ + ${SHLIB_LDENDFILE} +.else + $(LD) -x -shared ${SHLIB_SHFLAGS} -o ${.TARGET} \ + ${SHLIB_LDSTARTFILE} \ + --whole-archive ${SOLIB} --no-whole-archive ${LDADD} \ + ${SHLIB_LDENDFILE} +.endif +.if ${OBJECT_FMT} == "ELF" + ln -sf lib${LIB}.so.${SHLIB_FULLVERSION} lib${LIB}.so.${SHLIB_MAJOR}.tmp + mv -f lib${LIB}.so.${SHLIB_MAJOR}.tmp lib${LIB}.so.${SHLIB_MAJOR} + ln -sf lib${LIB}.so.${SHLIB_FULLVERSION} lib${LIB}.so.tmp + mv -f lib${LIB}.so.tmp lib${LIB}.so +.endif + +.if !empty(LOBJS) +LLIBS?= -lc +llib-l${LIB}.ln: ${LOBJS} + @echo building llib-l${LIB}.ln + @rm -f llib-l${LIB}.ln + @${LINT} -C${LIB} ${.ALLSRC} ${LLIBS} +.endif + +cleanlib: + rm -f a.out [Ee]rrs mklog core *.core ${CLEANFILES} + rm -f lib${LIB}.a ${OBJS} + rm -f lib${LIB}_p.a ${POBJS} + rm -f lib${LIB}_pic.a lib${LIB}.so.* lib${LIB}.so ${SOBJS} + rm -f llib-l${LIB}.ln ${LOBJS} + +.if defined(SRCS) +afterdepend: .depend + @(TMP=/tmp/_depend$$$$; \ + sed -e 's/^\([^\.]*\).o[ ]*:/\1.o \1.po \1.so \1.ln:/' \ + < .depend > $$TMP; \ + mv $$TMP .depend) +.endif + +.if !target(libinstall) +# Make sure it gets defined, in case MKPIC==no && MKLINKLIB==no +libinstall:: + +.if ${MKLINKLIB} != "no" +libinstall:: ${DESTDIR}${LIBDIR}/lib${LIB}.a +.PRECIOUS: ${DESTDIR}${LIBDIR}/lib${LIB}.a +.if !defined(UPDATE) +.PHONY: ${DESTDIR}${LIBDIR}/lib${LIB}.a +.endif + +.if !defined(BUILD) && !make(all) && !make(lib${LIB}.a) +${DESTDIR}${LIBDIR}/lib${LIB}.a: .MADE +.endif +${DESTDIR}${LIBDIR}/lib${LIB}.a: lib${LIB}.a __archiveinstall +.endif + +.if ${MKPROFILE} != "no" +libinstall:: ${DESTDIR}${LIBDIR}/lib${LIB}_p.a +.PRECIOUS: ${DESTDIR}${LIBDIR}/lib${LIB}_p.a +.if !defined(UPDATE) +.PHONY: ${DESTDIR}${LIBDIR}/lib${LIB}_p.a +.endif + +.if !defined(BUILD) && !make(all) && !make(lib${LIB}_p.a) +${DESTDIR}${LIBDIR}/lib${LIB}_p.a: .MADE +.endif +${DESTDIR}${LIBDIR}/lib${LIB}_p.a: lib${LIB}_p.a __archiveinstall +.endif + +.if ${MKPIC} != "no" && ${MKPICINSTALL} != "no" +libinstall:: ${DESTDIR}${LIBDIR}/lib${LIB}_pic.a +.PRECIOUS: ${DESTDIR}${LIBDIR}/lib${LIB}_pic.a +.if !defined(UPDATE) +.PHONY: ${DESTDIR}${LIBDIR}/lib${LIB}_pic.a +.endif + +.if !defined(BUILD) && !make(all) && !make(lib${LIB}_pic.a) +${DESTDIR}${LIBDIR}/lib${LIB}_pic.a: .MADE +.endif +.if ${MKPICLIB} == "no" +${DESTDIR}${LIBDIR}/lib${LIB}_pic.a: + rm -f ${DESTDIR}${LIBDIR}/lib${LIB}_pic.a + ln -s lib${LIB}.a ${DESTDIR}${LIBDIR}/lib${LIB}_pic.a +.else +${DESTDIR}${LIBDIR}/lib${LIB}_pic.a: lib${LIB}_pic.a __archiveinstall +.endif +.endif + +.if ${MKPIC} != "no" && defined(SHLIB_FULLVERSION) +libinstall:: ${DESTDIR}${LIBDIR}/lib${LIB}.so.${SHLIB_FULLVERSION} +.PRECIOUS: ${DESTDIR}${LIBDIR}/lib${LIB}.so.${SHLIB_FULLVERSION} +.if !defined(UPDATE) +.PHONY: ${DESTDIR}${LIBDIR}/lib${LIB}.so.${SHLIB_FULLVERSION} +.endif + +.if !defined(BUILD) && !make(all) && !make(lib${LIB}.so.${SHLIB_FULLVERSION}) +${DESTDIR}${LIBDIR}/lib${LIB}.so.${SHLIB_FULLVERSION}: .MADE +.endif +${DESTDIR}${LIBDIR}/lib${LIB}.so.${SHLIB_FULLVERSION}: lib${LIB}.so.${SHLIB_FULLVERSION} + ${INSTALL} ${RENAME} ${PRESERVE} ${COPY} ${INSTPRIV} -o ${LIBOWN} \ + -g ${LIBGRP} -m ${LIBMODE} ${.ALLSRC} ${.TARGET} +.if ${OBJECT_FMT} == "a.out" && !defined(DESTDIR) + /sbin/ldconfig -m ${LIBDIR} +.endif +.if ${OBJECT_FMT} == "ELF" + ln -sf lib${LIB}.so.${SHLIB_FULLVERSION}\ + ${DESTDIR}${LIBDIR}/lib${LIB}.so.${SHLIB_MAJOR}.tmp + mv -f ${DESTDIR}${LIBDIR}/lib${LIB}.so.${SHLIB_MAJOR}.tmp\ + ${DESTDIR}${LIBDIR}/lib${LIB}.so.${SHLIB_MAJOR} +.if ${MKLINKLIB} != "no" + ln -sf lib${LIB}.so.${SHLIB_FULLVERSION}\ + ${DESTDIR}${LIBDIR}/lib${LIB}.so.tmp + mv -f ${DESTDIR}${LIBDIR}/lib${LIB}.so.tmp\ + ${DESTDIR}${LIBDIR}/lib${LIB}.so +.endif +.endif +.endif + +.if ${MKLINT} != "no" && ${MKLINKLIB} != "no" && !empty(LOBJS) +libinstall:: ${DESTDIR}${LINTLIBDIR}/llib-l${LIB}.ln +.PRECIOUS: ${DESTDIR}${LINTLIBDIR}/llib-l${LIB}.ln +.if !defined(UPDATE) +.PHONY: ${DESTDIR}${LINTLIBDIR}/llib-l${LIB}.ln +.endif + +.if !defined(BUILD) && !make(all) && !make(llib-l${LIB}.ln) +${DESTDIR}${LINTLIBDIR}/llib-l${LIB}.ln: .MADE +.endif +${DESTDIR}${LINTLIBDIR}/llib-l${LIB}.ln: llib-l${LIB}.ln + ${INSTALL} ${RENAME} ${PRESERVE} ${COPY} ${INSTPRIV} -o ${LIBOWN} \ + -g ${LIBGRP} -m ${LIBMODE} ${.ALLSRC} ${DESTDIR}${LINTLIBDIR} +.endif +.endif + +.include <bsd.man.mk> +.include <bsd.nls.mk> +.include <bsd.files.mk> +.include <bsd.inc.mk> +.include <bsd.links.mk> +.include <bsd.dep.mk> +.include <bsd.sys.mk> + +# Make sure all of the standard targets are defined, even if they do nothing. +lint regress: diff --git a/bootstrap/mods/mk/Linux.sys.mk b/bootstrap/mods/mk/Linux.sys.mk new file mode 100644 index 00000000000..a301af139c8 --- /dev/null +++ b/bootstrap/mods/mk/Linux.sys.mk @@ -0,0 +1,194 @@ +# $NetBSD: Linux.sys.mk,v 1.1.1.1 2004/03/11 13:04:00 grant Exp $ +# NetBSD: sys.mk,v 1.58 2000/08/22 17:38:49 bjh21 Exp +# @(#)sys.mk 8.2 (Berkeley) 3/21/94 + +unix?= We run Unix. +OS?= Linux + +.SUFFIXES: .out .a .ln .o .s .S .c .cc .cpp .cxx .C .F .f .r .y .l .cl .p .h +.SUFFIXES: .sh .m4 + +.LIBS: .a + +AR?= ar +ARFLAGS?= rl +RANLIB?= ranlib + +AS?= as +AFLAGS?= +COMPILE.s?= ${CC} ${AFLAGS} -c +LINK.s?= ${CC} ${AFLAGS} ${LDFLAGS} +COMPILE.S?= ${CC} ${AFLAGS} ${CPPFLAGS} -c -traditional-cpp +LINK.S?= ${CC} ${AFLAGS} ${CPPFLAGS} ${LDFLAGS} + +CC?= gcc +DBG?= -O2 +CFLAGS?= ${DBG} +COMPILE.c?= ${CC} ${CFLAGS} ${CPPFLAGS} -c +LINK.c?= ${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} + +CXX?= g++ +CXXFLAGS?= ${CFLAGS} +COMPILE.cc?= ${CXX} ${CXXFLAGS} ${CPPFLAGS} -c +LINK.cc?= ${CXX} ${CXXFLAGS} ${CPPFLAGS} ${LDFLAGS} + +OBJC?= ${CC} +OBJCFLAGS?= ${CFLAGS} +COMPILE.m?= ${OBJC} ${OBJCFLAGS} ${CPPFLAGS} -c +LINK.m?= ${OBJC} ${OBJCFLAGS} ${CPPFLAGS} ${LDFLAGS} + +CPP?= cpp +NOLINT= 1 +CPPFLAGS?= + +FC?= f77 +FFLAGS?= -O +RFLAGS?= +COMPILE.f?= ${FC} ${FFLAGS} -c +LINK.f?= ${FC} ${FFLAGS} ${LDFLAGS} +COMPILE.F?= ${FC} ${FFLAGS} ${CPPFLAGS} -c +LINK.F?= ${FC} ${FFLAGS} ${CPPFLAGS} ${LDFLAGS} +COMPILE.r?= ${FC} ${FFLAGS} ${RFLAGS} -c +LINK.r?= ${FC} ${FFLAGS} ${RFLAGS} ${LDFLAGS} + +INSTALL?= install + +LEX?= lex +LFLAGS?= +LEX.l?= ${LEX} ${LFLAGS} + +LD?= ld +LDFLAGS?= + +LINT?= lint +LINTFLAGS?= -chapbxzF + +LORDER?= echo + +MAKE?= make + +NM?= nm + +PC?= pc +PFLAGS?= +COMPILE.p?= ${PC} ${PFLAGS} ${CPPFLAGS} -c +LINK.p?= ${PC} ${PFLAGS} ${CPPFLAGS} ${LDFLAGS} + +SHELL?= sh + +SIZE?= size + +TSORT?= tsort + +YACC?= yacc +YFLAGS?= +YACC.y?= ${YACC} ${YFLAGS} + +# C +.c: + ${LINK.c} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} +.c.o: + ${COMPILE.c} ${.IMPSRC} +.c.a: + ${COMPILE.c} ${.IMPSRC} + ${AR} ${ARFLAGS} $@ $*.o + rm -f $*.o +.c.ln: + ${LINT} ${LINTFLAGS} ${CPPFLAGS:M-[IDU]*} -i ${.IMPSRC} + +# C++ +.cc .cpp .cxx .C: + ${LINK.cc} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} +.cc.o .cpp.o .cxx.o .C.o: + ${COMPILE.cc} ${.IMPSRC} +.cc.a .cpp.a .cxx.a .C.a: + ${COMPILE.cc} ${.IMPSRC} + ${AR} ${ARFLAGS} $@ $*.o + rm -f $*.o + +# Fortran/Ratfor +.f: + ${LINK.f} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} +.f.o: + ${COMPILE.f} ${.IMPSRC} +.f.a: + ${COMPILE.f} ${.IMPSRC} + ${AR} ${ARFLAGS} $@ $*.o + rm -f $*.o + +.F: + ${LINK.F} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} +.F.o: + ${COMPILE.F} ${.IMPSRC} +.F.a: + ${COMPILE.F} ${.IMPSRC} + ${AR} ${ARFLAGS} $@ $*.o + rm -f $*.o + +.r: + ${LINK.r} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} +.r.o: + ${COMPILE.r} ${.IMPSRC} +.r.a: + ${COMPILE.r} ${.IMPSRC} + ${AR} ${ARFLAGS} $@ $*.o + rm -f $*.o + +# Pascal +.p: + ${LINK.p} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} +.p.o: + ${COMPILE.p} ${.IMPSRC} +.p.a: + ${COMPILE.p} ${.IMPSRC} + ${AR} ${ARFLAGS} $@ $*.o + rm -f $*.o + +# Assembly +.s: + ${LINK.s} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} +.s.o: + ${COMPILE.s} ${.IMPSRC} +.s.a: + ${COMPILE.s} ${.IMPSRC} + ${AR} ${ARFLAGS} $@ $*.o + rm -f $*.o +.S: + ${LINK.S} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} +.S.o: + ${COMPILE.S} ${.IMPSRC} +.S.a: + ${COMPILE.S} ${.IMPSRC} + ${AR} ${ARFLAGS} $@ $*.o + rm -f $*.o + +# Lex +.l: + ${LEX.l} ${.IMPSRC} + ${LINK.c} -o ${.TARGET} lex.yy.c ${LDLIBS} -ll + rm -f lex.yy.c +.l.c: + ${LEX.l} ${.IMPSRC} + mv lex.yy.c ${.TARGET} +.l.o: + ${LEX.l} ${.IMPSRC} + ${COMPILE.c} -o ${.TARGET} lex.yy.c + rm -f lex.yy.c + +# Yacc +.y: + ${YACC.y} ${.IMPSRC} + ${LINK.c} -o ${.TARGET} y.tab.c ${LDLIBS} + rm -f y.tab.c +.y.c: + ${YACC.y} ${.IMPSRC} + mv y.tab.c ${.TARGET} +.y.o: + ${YACC.y} ${.IMPSRC} + ${COMPILE.c} -o ${.TARGET} y.tab.c + rm -f y.tab.c + +# Shell +.sh: + rm -f ${.TARGET} + cp ${.IMPSRC} ${.TARGET} diff --git a/bootstrap/mods/mk/NetBSD.bsd.man.mk b/bootstrap/mods/mk/NetBSD.bsd.man.mk new file mode 100644 index 00000000000..a09adc77b26 --- /dev/null +++ b/bootstrap/mods/mk/NetBSD.bsd.man.mk @@ -0,0 +1,199 @@ +# $NetBSD: NetBSD.bsd.man.mk,v 1.1.1.1 2004/03/11 13:04:00 grant Exp $ +# @(#)bsd.man.mk 8.1 (Berkeley) 6/8/93 + +.if !target(__initialized__) +__initialized__: +.if exists(${.CURDIR}/../Makefile.inc) +.include "${.CURDIR}/../Makefile.inc" +.endif +.include <bsd.own.mk> +.include <bsd.obj.mk> +.include <bsd.depall.mk> +.MAIN: all +.endif + +.PHONY: catinstall maninstall catpages manpages catlinks manlinks cleanman html installhtml cleanhtml +.if ${MKMAN} != "no" +realinstall: ${MANINSTALL} +.endif +cleandir: cleanman + +TMACDIR?= ${DESTDIR}/usr/share/tmac +HTMLDIR?= ${DESTDIR}/usr/share/man +CATDEPS?= ${TMACDIR}/tmac.andoc \ + ${TMACDIR}/tmac.doc +MANTARGET?= cat +NROFF?= nroff -Tascii +GROFF?= groff -Tascii +TBL?= tbl + + +.SUFFIXES: .1 .2 .3 .4 .5 .6 .7 .8 .9 \ + .cat1 .cat2 .cat3 .cat4 .cat5 .cat6 .cat7 .cat8 .cat9 \ + .html1 .html2 .html3 .html4 .html5 .html6 .html7 .html8 .html9 + +.9.cat9 .8.cat8 .7.cat7 .6.cat6 .5.cat5 .4.cat4 .3.cat3 .2.cat2 .1.cat1: \ + ${CATDEPS} +.if !defined(USETBL) + @echo "${NROFF} -mandoc ${.IMPSRC} > ${.TARGET}" + @${NROFF} -mandoc ${.IMPSRC} > ${.TARGET} || \ + (rm -f ${.TARGET}; false) +.else + @echo "${TBL} ${.IMPSRC} | ${NROFF} -mandoc > ${.TARGET}" + @${TBL} ${.IMPSRC} | ${NROFF} -mandoc > ${.TARGET} || \ + (rm -f ${.TARGET}; false) +.endif + +.9.html9 .8.html8 .7.html7 .6.html6 .5.html5 .4.html4 .3.html3 .2.html2 .1.html1: \ + ${CATDEPS} +.if !defined(USETBL) + @echo "${GROFF} -mdoc2html -P-b -P-u -P-o ${.IMPSRC} > ${.TARGET}" + @${GROFF} -mdoc2html -P-b -P-u -P-o ${.IMPSRC} > ${.TARGET} || \ + (rm -f ${.TARGET}; false) +.else + @echo "${TBL} ${.IMPSRC} | ${GROFF} -mdoc2html -P-b -P-u -P-o > ${.TARGET}" + @cat ${.IMPSRC} | ${GROFF} -mdoc2html -P-b -P-u -P-o > ${.TARGET} || \ + (rm -f ${.TARGET}; false) +.endif + +.if defined(MAN) && !empty(MAN) +MANPAGES= ${MAN} +CATPAGES= ${MANPAGES:C/(.*).([1-9])/\1.cat\2/} +.NOPATH: ${CATPAGES} +.if !defined(NOHTML) +HTMLPAGES= ${MANPAGES:C/(.*).([1-9])/\1.html\2/} +.endif +.endif + +MINSTALL= ${INSTALL} ${RENAME} ${PRESERVE} ${COPY} ${INSTPRIV} \ + -o ${MANOWN} -g ${MANGRP} -m ${MANMODE} + +.if defined(MANZ) +# chown and chmod are done afterward automatically +MCOMPRESS= gzip -cf +MCOMPRESSSUFFIX= .gz +.endif + +catinstall: catlinks +maninstall: manlinks + +__installpage: .USE +.if defined(MCOMPRESS) && !empty(MCOMPRESS) + @rm -f ${.TARGET} + ${MCOMPRESS} ${.ALLSRC} > ${.TARGET} + @chown ${MANOWN}:${MANGRP} ${.TARGET} + @chmod ${MANMODE} ${.TARGET} +.else + @cmp -s ${.ALLSRC} ${.TARGET} > /dev/null 2>&1 || \ + (echo "${MINSTALL} ${.ALLSRC} ${.TARGET}" && \ + ${MINSTALL} ${.ALLSRC} ${.TARGET}) +.endif + + +# Rules for cat'ed man page installation +.if defined(CATPAGES) && !empty(CATPAGES) && ${MKCATPAGES} != "no" +catpages:: ${CATPAGES:@P@${DESTDIR}${MANDIR}/${P:T:E}${MANSUBDIR}/${P:T:R}.0${MCOMPRESSSUFFIX}@} +.PRECIOUS: ${CATPAGES:@P@${DESTDIR}${MANDIR}/${P:T:E}${MANSUBDIR}/${P:T:R}.0${MCOMPRESSSUFFIX}@} +.if !defined(UPDATE) +.PHONY: ${CATPAGES:@P@${DESTDIR}${MANDIR}/${P:T:E}${MANSUBDIR}/${P:T:R}.0${MCOMPRESSSUFFIX}@} +.endif + +. for P in ${CATPAGES:O:u} +. if !defined(BUILD) && !make(all) && !make(${P}) +${DESTDIR}${MANDIR}/${P:T:E}${MANSUBDIR}/${P:T:R}.0${MCOMPRESSSUFFIX}: .MADE +. endif +${DESTDIR}${MANDIR}/${P:T:E}${MANSUBDIR}/${P:T:R}.0${MCOMPRESSSUFFIX}: ${P} __installpage +. endfor +.else +catpages:: +.endif + +# Rules for source page installation +.if defined(MANPAGES) && !empty(MANPAGES) +manpages:: ${MANPAGES:@P@${DESTDIR}${MANDIR}/man${P:T:E}${MANSUBDIR}/${P}${MCOMPRESSSUFFIX}@} +.PRECIOUS: ${MANPAGES:@P@${DESTDIR}${MANDIR}/man${P:T:E}${MANSUBDIR}/${P}${MCOMPRESSSUFFIX}@} +.if !defined(UPDATE) +.PHONY: ${MANPAGES:@P@${DESTDIR}${MANDIR}/man${P:T:E}${MANSUBDIR}/${P}${MCOMPRESSSUFFIX}@} +.endif + +. for P in ${MANPAGES:O:u} +${DESTDIR}${MANDIR}/man${P:T:E}${MANSUBDIR}/${P}${MCOMPRESSSUFFIX}: ${P} __installpage +. endfor +.else +manpages:: +.endif + +.if ${MKCATPAGES} != "no" +catlinks: catpages +.if defined(MLINKS) && !empty(MLINKS) + @set ${MLINKS}; \ + while test $$# -ge 2; do \ + name=$$1; \ + shift; \ + dir=${DESTDIR}${MANDIR}/cat$${name##*.}; \ + l=$${dir}${MANSUBDIR}/$${name%.*}.0${MCOMPRESSSUFFIX}; \ + name=$$1; \ + shift; \ + dir=${DESTDIR}${MANDIR}/cat$${name##*.}; \ + t=$${dir}${MANSUBDIR}/$${name%.*}.0${MCOMPRESSSUFFIX}; \ + if test $$l -nt $$t -o ! -f $$t; then \ + echo $$t -\> $$l; \ + ln -f $$l $$t; \ + fi; \ + done +.endif +.else +catlinks: +.endif + +manlinks: manpages +.if defined(MLINKS) && !empty(MLINKS) + @set ${MLINKS}; \ + while test $$# -ge 2; do \ + name=$$1; \ + shift; \ + dir=${DESTDIR}${MANDIR}/man$${name##*.}; \ + l=$${dir}${MANSUBDIR}/$${name}${MCOMPRESSSUFFIX}; \ + name=$$1; \ + shift; \ + dir=${DESTDIR}${MANDIR}/man$${name##*.}; \ + t=$${dir}${MANSUBDIR}/$${name}${MCOMPRESSSUFFIX}; \ + if test $$l -nt $$t -o ! -f $$t; then \ + echo $$t -\> $$l; \ + ln -f $$l $$t; \ + fi; \ + done +.endif + +# Html rules +html: ${HTMLPAGES} + +.if defined(HTMLPAGES) && !empty(HTMLPAGES) +.for P in ${HTMLPAGES:O:u} +${HTMLDIR}/${P:T:E}/${P:T:R}.html: ${P} + ${MINSTALL} ${.ALLSRC} ${.TARGET} +.endfor +.endif +installhtml: ${HTMLPAGES:@P@${HTMLDIR}/${P:T:E}/${P:T:R}.html@} + +cleanhtml: +.if defined(HTMLPAGES) && !empty(HTMLPAGES) + rm -f ${HTMLPAGES} +.endif + + +.if defined(CATPAGES) +.if ${MKCATPAGES} != "no" && ${MKMAN} != "no" +realall: ${CATPAGES} +.else +realall: +.endif + +cleanman: + rm -f ${CATPAGES} +.else +cleanman: +.endif + +# Make sure all of the standard targets are defined, even if they do nothing. +clean depend includes lint regress tags: diff --git a/bootstrap/mods/mk/NetBSD.sys.mk b/bootstrap/mods/mk/NetBSD.sys.mk new file mode 100644 index 00000000000..519b2791fde --- /dev/null +++ b/bootstrap/mods/mk/NetBSD.sys.mk @@ -0,0 +1,207 @@ +# $NetBSD: NetBSD.sys.mk,v 1.1.1.1 2004/03/11 13:04:00 grant Exp $ +# @(#)sys.mk 8.2 (Berkeley) 3/21/94 + +unix?= We run NetBSD. + +.SUFFIXES: .out .a .ln .o .s .S .c .cc .cpp .cxx .C .F .f .r .y .l .cl .p .h +.SUFFIXES: .sh .m4 + +.LIBS: .a + +AR?= ar +ARFLAGS?= rl +RANLIB?= ranlib + +AS?= as +AFLAGS?= +.if ${MACHINE_ARCH} == "sparc64" +AFLAGS+= -Wa,-Av9a +.endif +COMPILE.s?= ${CC} ${AFLAGS} -c +LINK.s?= ${CC} ${AFLAGS} ${LDFLAGS} +COMPILE.S?= ${CC} ${AFLAGS} ${CPPFLAGS} -c -traditional-cpp +LINK.S?= ${CC} ${AFLAGS} ${CPPFLAGS} ${LDFLAGS} + +CC?= cc +.if ${MACHINE_ARCH} == "alpha" || \ + ${MACHINE_ARCH} == "arm" || ${MACHINE_ARCH} == "arm26" || \ + ${MACHINE_ARCH} == "arm32" || \ + ${MACHINE_ARCH} == "i386" || \ + ${MACHINE_ARCH} == "m68k" || \ + ${MACHINE_ARCH} == "mipsel" || ${MACHINE_ARCH} == "mipseb" || \ + ${MACHINE_ARCH} == "sparc" || \ + ${MACHINE_ARCH} == "vax" +DBG?= -O2 +.elif ${MACHINE_ARCH} == "x86_64" +DBG?= +.else +DBG?= -O +.endif +CFLAGS?= ${DBG} +COMPILE.c?= ${CC} ${CFLAGS} ${CPPFLAGS} -c +LINK.c?= ${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} + +CXX?= c++ +CXXFLAGS?= ${CFLAGS} +COMPILE.cc?= ${CXX} ${CXXFLAGS} ${CPPFLAGS} -c +LINK.cc?= ${CXX} ${CXXFLAGS} ${CPPFLAGS} ${LDFLAGS} + +OBJC?= ${CC} +OBJCFLAGS?= ${CFLAGS} +COMPILE.m?= ${OBJC} ${OBJCFLAGS} ${CPPFLAGS} -c +LINK.m?= ${OBJC} ${OBJCFLAGS} ${CPPFLAGS} ${LDFLAGS} + +CPP?= cpp +CPPFLAGS?= + +FC?= f77 +FFLAGS?= -O +RFLAGS?= +COMPILE.f?= ${FC} ${FFLAGS} -c +LINK.f?= ${FC} ${FFLAGS} ${LDFLAGS} +COMPILE.F?= ${FC} ${FFLAGS} ${CPPFLAGS} -c +LINK.F?= ${FC} ${FFLAGS} ${CPPFLAGS} ${LDFLAGS} +COMPILE.r?= ${FC} ${FFLAGS} ${RFLAGS} -c +LINK.r?= ${FC} ${FFLAGS} ${RFLAGS} ${LDFLAGS} + +INSTALL?= install + +LEX?= lex +LFLAGS?= +LEX.l?= ${LEX} ${LFLAGS} + +LD?= ld +LDFLAGS?= + +LINT?= lint +LINTFLAGS?= -chapbxzF + +LORDER?= lorder + +MAKE?= make + +NM?= nm + +PC?= pc +PFLAGS?= +COMPILE.p?= ${PC} ${PFLAGS} ${CPPFLAGS} -c +LINK.p?= ${PC} ${PFLAGS} ${CPPFLAGS} ${LDFLAGS} + +SHELL?= sh + +SIZE?= size + +TSORT?= tsort -q + +YACC?= yacc +YFLAGS?= +YACC.y?= ${YACC} ${YFLAGS} + +# C +.c: + ${LINK.c} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} +.c.o: + ${COMPILE.c} ${.IMPSRC} +.c.a: + ${COMPILE.c} ${.IMPSRC} + ${AR} ${ARFLAGS} $@ $*.o + rm -f $*.o +.c.ln: + ${LINT} ${LINTFLAGS} ${CPPFLAGS:M-[IDU]*} -i ${.IMPSRC} + +# C++ +.cc .cpp .cxx .C: + ${LINK.cc} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} +.cc.o .cpp.o .cxx.o .C.o: + ${COMPILE.cc} ${.IMPSRC} +.cc.a .cpp.a .cxx.a .C.a: + ${COMPILE.cc} ${.IMPSRC} + ${AR} ${ARFLAGS} $@ $*.o + rm -f $*.o + +# Fortran/Ratfor +.f: + ${LINK.f} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} +.f.o: + ${COMPILE.f} ${.IMPSRC} +.f.a: + ${COMPILE.f} ${.IMPSRC} + ${AR} ${ARFLAGS} $@ $*.o + rm -f $*.o + +.F: + ${LINK.F} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} +.F.o: + ${COMPILE.F} ${.IMPSRC} +.F.a: + ${COMPILE.F} ${.IMPSRC} + ${AR} ${ARFLAGS} $@ $*.o + rm -f $*.o + +.r: + ${LINK.r} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} +.r.o: + ${COMPILE.r} ${.IMPSRC} +.r.a: + ${COMPILE.r} ${.IMPSRC} + ${AR} ${ARFLAGS} $@ $*.o + rm -f $*.o + +# Pascal +.p: + ${LINK.p} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} +.p.o: + ${COMPILE.p} ${.IMPSRC} +.p.a: + ${COMPILE.p} ${.IMPSRC} + ${AR} ${ARFLAGS} $@ $*.o + rm -f $*.o + +# Assembly +.s: + ${LINK.s} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} +.s.o: + ${COMPILE.s} ${.IMPSRC} +.s.a: + ${COMPILE.s} ${.IMPSRC} + ${AR} ${ARFLAGS} $@ $*.o + rm -f $*.o +.S: + ${LINK.S} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} +.S.o: + ${COMPILE.S} ${.IMPSRC} +.S.a: + ${COMPILE.S} ${.IMPSRC} + ${AR} ${ARFLAGS} $@ $*.o + rm -f $*.o + +# Lex +.l: + ${LEX.l} ${.IMPSRC} + ${LINK.c} -o ${.TARGET} lex.yy.c ${LDLIBS} -ll + rm -f lex.yy.c +.l.c: + ${LEX.l} ${.IMPSRC} + mv lex.yy.c ${.TARGET} +.l.o: + ${LEX.l} ${.IMPSRC} + ${COMPILE.c} -o ${.TARGET} lex.yy.c + rm -f lex.yy.c + +# Yacc +.y: + ${YACC.y} ${.IMPSRC} + ${LINK.c} -o ${.TARGET} y.tab.c ${LDLIBS} + rm -f y.tab.c +.y.c: + ${YACC.y} ${.IMPSRC} + mv y.tab.c ${.TARGET} +.y.o: + ${YACC.y} ${.IMPSRC} + ${COMPILE.c} -o ${.TARGET} y.tab.c + rm -f y.tab.c + +# Shell +.sh: + rm -f ${.TARGET} + cp ${.IMPSRC} ${.TARGET} diff --git a/bootstrap/mods/mk/OpenBSD.bsd.man.mk b/bootstrap/mods/mk/OpenBSD.bsd.man.mk new file mode 100644 index 00000000000..6ef567495a1 --- /dev/null +++ b/bootstrap/mods/mk/OpenBSD.bsd.man.mk @@ -0,0 +1,137 @@ +# $NetBSD: OpenBSD.bsd.man.mk,v 1.1.1.1 2004/03/11 13:04:00 grant Exp $ +# From: +# OpenBSD: bsd.man.mk,v 1.23 2001/07/20 23:02:21 espie Exp +# NetBSD: bsd.man.mk,v 1.23 1996/02/10 07:49:33 jtc Exp +# @(#)bsd.man.mk 5.2 (Berkeley) 5/11/90 + +MANTARGET?= cat +NROFF?= nroff -Tascii +TBL?= tbl + +.if !target(.MAIN) +.if exists(${.CURDIR}/../Makefile.inc) +.include "${.CURDIR}/../Makefile.inc" +.endif + +.MAIN: all +.endif + +.SUFFIXES: .1 .2 .3 .3p .4 .5 .6 .7 .8 .9 .1tbl .2tbl .3tbl .4tbl .5tbl .6tbl \ + .7tbl .8tbl .9tbl .cat1 .cat2 .cat3 .cat4 .cat5 .cat6 .cat7 .cat8 .cat9 \ + .ps1 .ps2 .ps3 .ps4 .ps5 .ps6 .ps7 .ps8 .ps9 + +.9.cat9 .8.cat8 .7.cat7 .6.cat6 .5.cat5 .4.cat4 .3p.cat3p .3.cat3 .2.cat2 .1.cat1: + @echo "${NROFF} -mandoc ${.IMPSRC} > ${.TARGET}" + @${NROFF} -mandoc ${.IMPSRC} > ${.TARGET} || (rm -f ${.TARGET}; false) + +.9tbl.cat9 .8tbl.cat8 .7tbl.cat7 .6tbl.cat6 .5tbl.cat5 .4tbl.cat4 .3tbl.cat3 \ +.2tbl.cat2 .1tbl.cat1: + @echo "${TBL} ${.IMPSRC} | ${NROFF} -mandoc > ${.TARGET}" + @${TBL} ${.IMPSRC} | ${NROFF} -mandoc > ${.TARGET} || \ + (rm -f ${.TARGET}; false) + +.9.ps9 .8.ps8 .7.ps7 .6.ps6 .5.ps5 .4.ps4 .3p.ps3p .3.ps3 .2.ps2 .1.ps1: + @echo "nroff -Tps -mandoc ${.IMPSRC} > ${.TARGET}" + @nroff -Tps -mandoc ${.IMPSRC} > ${.TARGET} || (rm -f ${.TARGET}; false) + +.9tbl.ps9 .8tbl.ps8 .7tbl.ps7 .6tbl.ps6 .5tbl.ps5 .4tbl.ps4 .3tbl.ps3 \ +.2tbl.ps2 .1tbl.ps1: + @echo "${TBL} ${.IMPSRC} | nroff -Tps -mandoc > ${.TARGET}" + @${TBL} ${.IMPSRC} | nroff -Tps -mandoc > ${.TARGET} || (rm -f ${.TARGET}; false) + +.if defined(MAN) && !empty(MAN) && !defined(MANALL) + +MANALL= ${MAN:S/.1$/.cat1/g:S/.2$/.cat2/g:S/.3$/.cat3/g:S/.3p$/.cat3p/g:S/.4$/.cat4/g:S/.5$/.cat5/g:S/.6$/.cat6/g:S/.7$/.cat7/g:S/.8$/.cat8/g:S/.9$/.cat9/g:S/.1tbl$/.cat1/g:S/.2tbl$/.cat2/g:S/.3tbl$/.cat3/g:S/.4tbl$/.cat4/g:S/.5tbl$/.cat5/g:S/.6tbl$/.cat6/g:S/.7tbl$/.cat7/g:S/.8tbl$/.cat8/g:S/.9tbl$/.cat9/g} + +.if defined(MANPS) + +PSALL= ${MAN:S/.1$/.ps1/g:S/.2$/.ps2/g:S/.3$/.ps3/g:S/.3p$/.ps3p/g:S/.4$/.ps4/g:S/.5$/.ps5/g:S/.6$/.ps6/g:S/.7$/.ps7/g:S/.8$/.ps8/g:S/.9$/.ps9/g:S/.1tbl$/.ps1/g:S/.2tbl$/.ps2/g:S/.3tbl$/.ps3/g:S/.4tbl$/.ps4/g:S/.5tbl$/.ps5/g:S/.6tbl$/.ps6/g:S/.7tbl$/.ps7/g:S/.8tbl$/.ps8/g:S/.9tbl$/.ps9/g} + +.endif + +.endif + +MINSTALL= ${INSTALL} ${INSTALL_COPY} -o ${MANOWN} -g ${MANGRP} -m ${MANMODE} +.if defined(MANZ) +# chown and chmod are done afterward automatically +MCOMPRESS= gzip -cf +MCOMPRESSSUFFIX= .gz +.endif + +.if defined(MANSUBDIR) +# Add / so that we don't have to specify it. Better arch -> MANSUBDIR mapping +MANSUBDIR:=${MANSUBDIR:S,^,/,} +.else +# XXX MANSUBDIR must be non empty for the mlink loops to work +MANSUBDIR='' +.endif + +maninstall: +.if defined(MANALL) + @for page in ${MANALL}; do \ + set -- ${MANSUBDIR}; \ + subdir=$$1; \ + dir=${DESTDIR}${MANDIR}$${page##*.cat}; \ + base=$${page##*/}; \ + instpage=$${dir}$${subdir}/$${base%.*}.0${MCOMPRESSSUFFIX}; \ + if [ X"${MCOMPRESS}" = X ]; then \ + echo ${MINSTALL} $$page $$instpage; \ + ${MINSTALL} $$page $$instpage; \ + else \ + rm -f $$instpage; \ + echo ${MCOMPRESS} $$page \> $$instpage; \ + ${MCOMPRESS} $$page > $$instpage; \ + chown ${MANOWN}:${MANGRP} $$instpage; \ + chmod ${MANMODE} $$instpage; \ + fi; \ + while test $$# -ge 2; do \ + shift; \ + extra=$${dir}$$1/$${base%.*}.0${MCOMPRESSSUFFIX}; \ + echo $$extra -\> $$instpage; \ + ln -f $$instpage $$extra; \ + done; \ + done +.endif +.if defined(PSALL) + @for page in ${PSALL}; do \ + set -- ${MANSUBDIR}; \ + subdir=$$1; \ + dir=${DESTDIR}${PSDIR}$${page##*.ps}; \ + base=$${page##*/}; \ + instpage=$${dir}$${subdir}/$${base%.*}.ps${MCOMPRESSSUFFIX}; \ + if [ X"${MCOMPRESS}" = X ]; then \ + echo ${MINSTALL} $$page $$instpage; \ + ${MINSTALL} $$page $$instpage; \ + else \ + rm -f $$instpage; \ + echo ${MCOMPRESS} $$page \> $$instpage; \ + ${MCOMPRESS} $$page > $$instpage; \ + chown ${PSOWN}:${PSGRP} $$instpage; \ + chmod ${PSMODE} $$instpage; \ + fi; \ + while test $$# -ge 2; do \ + shift; \ + extra=$${dir}$$1/$${base%.*}.ps${MCOMPRESSSUFFIX}; \ + echo $$extra -\> $$instpage; \ + ln -f $$instpage $$extra; \ + done; \ + done +.endif +.if defined(MLINKS) && !empty(MLINKS) +. for sub in ${MANSUBDIR} +. for lnk file in ${MLINKS} + @l=${DESTDIR}${MANDIR}${lnk:E}${sub}/${lnk:R}.0${MCOMPRESSSUFFIX}; \ + t=${DESTDIR}${MANDIR}${file:E}${sub}/${file:R}.0${MCOMPRESSSUFFIX}; \ + echo $$t -\> $$l; \ + rm -f $$t; ln $$l $$t; +. endfor +. endfor +.endif + +.if (defined(MANALL) || defined(PSALL)) && !defined(MANLOCALBUILD) +all: ${MANALL} ${PSALL} + +cleandir: cleanman +cleanman: + rm -f ${MANALL} ${PSALL} +.endif diff --git a/bootstrap/mods/mk/OpenBSD.bsd.own.mk b/bootstrap/mods/mk/OpenBSD.bsd.own.mk new file mode 100644 index 00000000000..e0814b9af18 --- /dev/null +++ b/bootstrap/mods/mk/OpenBSD.bsd.own.mk @@ -0,0 +1,306 @@ +# $NetBSD: OpenBSD.bsd.own.mk,v 1.1.1.1 2004/03/11 13:04:00 grant Exp $ + +.if !defined(_BSD_OWN_MK_) +_BSD_OWN_MK_=1 + +# XXX On systems with a Berkeley-style make, perhaps we ought to check +# XXX for and source a file other than /etc/mk.conf + +.if defined(MAKECONF) && exists(${MAKECONF}) +.include "${MAKECONF}" +.elif exists(/etc/mk.conf) +.include "/etc/mk.conf" +.endif + +# Defining `SKEY' causes support for S/key authentication to be compiled in. +SKEY= yes + +# where the system object and source trees are kept; can be configurable +# by the user in case they want them in ~/foosrc and ~/fooobj, for example +BSDSRCDIR?= /usr/src +BSDOBJDIR?= /usr/obj + +BINGRP?= wheel +BINOWN?= root +BINMODE?= 555 +NONBINMODE?= 444 + +# Define MANZ to have the man pages compressed (gzip) +#MANZ= 1 + +MANDIR?= /usr/share/man +MANGRP?= wheel +MANOWN?= root +MANMODE?= ${NONBINMODE} +MANINSTALL?= maninstall catinstall + +INFODIR?= /usr/share/info +INFOGRP?= wheel +INFOOWN?= root +INFOMODE?= ${NONBINMODE} + +LIBDIR?= /usr/lib +LINTLIBDIR?= /usr/libdata/lint +LIBGRP?= ${BINGRP} +LIBOWN?= ${BINOWN} +LIBMODE?= ${NONBINMODE} + +DOCDIR?= /usr/share/doc +HTMLDOCDIR?= /usr/share/doc/html +DOCGRP?= wheel +DOCOWN?= root +DOCMODE?= ${NONBINMODE} + +NLSDIR?= /usr/share/nls +NLSGRP?= wheel +NLSOWN?= root +NLSMODE?= ${NONBINMODE} + +KMODDIR?= /usr/lkm +KMODGRP?= wheel +KMODOWN?= root +KMODMODE?= ${NONBINMODE} + +LOCALEDIR?= /usr/share/locale +LOCALEGRP?= wheel +LOCALEOWN?= root +LOCALEMODE?= ${NONBINMODE} + +COPY?= -c +.if defined(UPDATE) +PRESERVE?= -p +.else +PRESERVE?= +.endif +.if defined(UNPRIVILEGED) +INSTPRIV?= -U +.endif +STRIPFLAG?= -s + +# Define SYS_INCLUDE to indicate whether you want symbolic links to the system +# source (``symlinks''), or a separate copy (``copies''); (latter useful +# in environments where it's not possible to keep /sys publicly readable) +#SYS_INCLUDE= symlinks + +# Profiling and linting is also off on the x86_64 port at the moment. +.if ${MACHINE_ARCH} == "sparc64" +NOPROFILE=1 +NOLINT=1 +.endif + +# The m68000 port is incomplete. +.if ${MACHINE_ARCH} == "m68000" +NOLINT=1 +NOPROFILE=1 +NOPIC?=1 +.endif + +# Data-driven table using make variables to control how +# toolchain-dependent targets and shared libraries are built +# for different platforms and object formats. +# OBJECT_FMT: currently either "ELF" or "a.out". +# SHLIB_TYPE: "ELF" or "a.out" or "" to force static libraries. +# +.if ${MACHINE_ARCH} == "alpha" || \ + ${MACHINE_ARCH} == "powerpc" || \ + ${MACHINE_ARCH} == "sparc" +OBJECT_FMT?=ELF +.else +OBJECT_FMT?=a.out +.endif + +# Location of the file that contains the major and minor numbers of the +# version of a shared library. If this file exists a shared library +# will be built by <bsd.lib.mk>. +SHLIB_VERSION_FILE?= ${.CURDIR}/shlib_version + +# GNU sources and packages sometimes see architecture names differently. +# This table maps an architecture name to its GNU counterpart. +# Use as so: ${GNU_ARCH.${TARGET_ARCH}} or ${MACHINE_GNU_ARCH} +.ifndef MACHINE_GNU_ARCH +GNU_ARCH.alpha=alpha +GNU_ARCH.arm26=arm +GNU_ARCH.arm32=arm +GNU_ARCH.arm=arm +GNU_ARCH.i386=i386 +GNU_ARCH.m68k=m68k +GNU_ARCH.mipseb=mipseb +GNU_ARCH.mipsel=mipsel +GNU_ARCH.ns32k=ns32k +GNU_ARCH.powerpc=powerpc +GNU_ARCH.sh3eb=sh +GNU_ARCH.sh3el=sh +GNU_ARCH.sparc=sparc +GNU_ARCH.sparc64=sparc64 +GNU_ARCH.vax=vax +MACHINE_GNU_ARCH=${GNU_ARCH.${MACHINE_ARCH}} +.endif + +# In order to identify NetBSD to GNU packages, we sometimes need +# an "elf" tag for historically a.out platforms. +.if ${OBJECT_FMT} == "ELF" && \ + (${MACHINE_ARCH} == "arm" || \ + ${MACHINE_ARCH} == "i386" || \ + ${MACHINE_ARCH} == "m68k" || \ + ${MACHINE_ARCH} == "sparc" || \ + ${MACHINE_ARCH} == "vax") +MACHINE_GNU_PLATFORM?= netbsdelf +.else +MACHINE_GNU_PLATFORM?= netbsd +.endif + +# CPU model, derived from MACHINE_ARCH +MACHINE_CPU= ${MACHINE_ARCH:C/mipse[bl]/mips/:S/arm26/arm/:S/arm32/arm/:C/sh3e[bl]/sh3/:S/m68000/m68k/} + +.if ${MACHINE_ARCH} == "mips" +.BEGIN: + @echo Must set MACHINE_ARCH to one of mipseb or mipsel + @false +.endif +.if ${MACHINE_ARCH} == "sh3" +.BEGIN: + @echo Must set MACHINE_ARCH to one of sh3eb or sh3el + @false +.endif + +TARGETS+= all clean cleandir depend dependall includes \ + install lint obj regress tags html installhtml cleanhtml +.PHONY: all clean cleandir depend dependall distclean includes \ + install lint obj regress tags beforedepend afterdepend \ + beforeinstall afterinstall realinstall realdepend realall \ + html installhtml cheanhtml + +# set NEED_OWN_INSTALL_TARGET, if it's not already set, to yes +# this is used by bsd.pkg.mk to stop "install" being defined +NEED_OWN_INSTALL_TARGET?= yes + +.if ${NEED_OWN_INSTALL_TARGET} == "yes" +.if !target(install) +install: .NOTMAIN beforeinstall subdir-install realinstall afterinstall +beforeinstall: .NOTMAIN +subdir-install: .NOTMAIN beforeinstall +realinstall: .NOTMAIN beforeinstall +afterinstall: .NOTMAIN subdir-install realinstall +.endif +all: .NOTMAIN realall subdir-all +subdir-all: .NOTMAIN +realall: .NOTMAIN +depend: .NOTMAIN realdepend subdir-depend +subdir-depend: .NOTMAIN +realdepend: .NOTMAIN +distclean: .NOTMAIN cleandir +.endif + +PRINTOBJDIR= printf "xxx: .MAKE\n\t@echo \$${.OBJDIR}\n" | ${MAKE} -B -s -f- + +# Define MKxxx variables (which are either yes or no) for users +# to set in /etc/mk.conf and override on the make commandline. +# These should be tested with `== "no"' or `!= "no"'. +# The NOxxx variables should only be used by Makefiles. +# + +MKCATPAGES?=yes + +.if defined(NODOC) +MKDOC=no +#.elif !defined(MKDOC) +#MKDOC=yes +.else +MKDOC?=yes +.endif + +MKINFO?=yes + +.if defined(NOLINKLIB) +MKLINKLIB=no +.else +MKLINKLIB?=yes +.endif +.if ${MKLINKLIB} == "no" +MKPICINSTALL=no +MKPROFILE=no +.endif + +.if defined(NOLINT) +MKLINT=no +.else +MKLINT?=yes +.endif + +.if defined(NOMAN) +MKMAN=no +.else +MKMAN?=yes +.endif +.if ${MKMAN} == "no" +MKCATPAGES=no +.endif + +.if defined(NONLS) +MKNLS=no +.else +MKNLS?=yes +.endif + +# +# MKOBJDIRS controls whether object dirs are created during "make build". +# MKOBJ controls whether the "make obj" rule does anything. +# +.if defined(NOOBJ) +MKOBJ=no +MKOBJDIRS=no +.else +MKOBJ?=yes +MKOBJDIRS?=no +.endif + +.if defined(NOPIC) +MKPIC=no +.else +MKPIC?=yes +.endif + +.if defined(NOPICINSTALL) +MKPICINSTALL=no +.else +MKPICINSTALL?=yes +.endif + +.if defined(NOPROFILE) +MKPROFILE=no +.else +MKPROFILE?=yes +.endif + +.if defined(NOSHARE) +MKSHARE=no +.else +MKSHARE?=yes +.endif +.if ${MKSHARE} == "no" +MKCATPAGES=no +MKDOC=no +MKINFO=no +MKMAN=no +MKNLS=no +.endif + +.if defined(NOCRYPTO) +MKCRYPTO=no +.else +MKCRYPTO?=yes +.endif + +MKCRYPTO_IDEA?=no + +MKCRYPTO_RC5?=no + +.if defined(NOKERBEROS) || (${MKCRYPTO} == "no") +MKKERBEROS=no +.else +MKKERBEROS?=yes +.endif + +MKSOFTFLOAT?=no + +.endif # _BSD_OWN_MK_ diff --git a/bootstrap/mods/mk/OpenBSD.bsd.prog.mk b/bootstrap/mods/mk/OpenBSD.bsd.prog.mk new file mode 100644 index 00000000000..1e54a5f7fdb --- /dev/null +++ b/bootstrap/mods/mk/OpenBSD.bsd.prog.mk @@ -0,0 +1,176 @@ +# $NetBSD: OpenBSD.bsd.prog.mk,v 1.1.1.1 2004/03/11 13:04:00 grant Exp $ +# From: +# OpenBSD: bsd.prog.mk,v 1.30 2001/08/23 16:39:33 art Exp +# NetBSD: bsd.prog.mk,v 1.55 1996/04/08 21:19:26 jtc Exp +# @(#)bsd.prog.mk 5.26 (Berkeley) 6/25/91 + +.if exists(${.CURDIR}/../Makefile.inc) +.include "${.CURDIR}/../Makefile.inc" +.endif + +.include <bsd.own.mk> + +.SUFFIXES: .out .o .c .cc .C .cxx .y .l .s .8 .7 .6 .5 .4 .3 .2 .1 .0 + +.if ${WARNINGS:L} == "yes" +CFLAGS+= ${CDIAGFLAGS} +CXXFLAGS+= ${CXXDIAGFLAGS} +.endif +CFLAGS+= ${COPTS} +CXXFLAGS+= ${CXXOPTS} + +.if (${MACHINE_ARCH} == "powerpc") || (${MACHINE_ARCH} == "alpha") || (${MACHINE_ARCH} == "sparc64") +CRTBEGIN?= ${DESTDIR}/usr/lib/crtbegin.o +CRTEND?= ${DESTDIR}/usr/lib/crtend.o +.endif + +LIBCRT0?= ${DESTDIR}/usr/lib/crt0.o +LIBC?= ${DESTDIR}/usr/lib/libc.a +LIBCOMPAT?= ${DESTDIR}/usr/lib/libcompat.a +LIBCURSES?= ${DESTDIR}/usr/lib/libcurses.a +LIBCRYPTO?= ${DESTDIR}/usr/lib/libcrypto.a +LIBDBM?= ${DESTDIR}/usr/lib/libdbm.a +LIBDES?= ${DESTDIR}/usr/lib/libdes.a +LIBEDIT?= ${DESTDIR}/usr/lib/libedit.a +LIBGCC?= ${DESTDIR}/usr/lib/libgcc.a +LIBKDB?= ${DESTDIR}/usr/lib/libkdb.a +LIBKEYNOTE?= ${DESTDIR}/usr/lib/libkeynote.a +LIBKRB?= ${DESTDIR}/usr/lib/libkrb.a +LIBKAFS?= ${DESTDIR}/usr/lib/libkafs.a +LIBKVM?= ${DESTDIR}/usr/lib/libkvm.a +LIBL?= ${DESTDIR}/usr/lib/libl.a +LIBM?= ${DESTDIR}/usr/lib/libm.a +LIBMP?= ${DESTDIR}/usr/lib/libmp.a +LIBOLDCURSES?= ${DESTDIR}/usr/lib/libocurses.a +LIBPC?= ${DESTDIR}/usr/lib/libpc.a +LIBPERL?= ${DESTDIR}/usr/lib/libperl.a +LIBPLOT?= ${DESTDIR}/usr/lib/libplot.a +LIBRESOLV?= ${DESTDIR}/usr/lib/libresolv.a +LIBRPCSVC?= ${DESTDIR}/usr/lib/librpcsvc.a +LIBSKEY?= ${DESTDIR}/usr/lib/libskey.a +LIBSSL?= ${DESTDIR}/usr/lib/libssl.a +LIBTELNET?= ${DESTDIR}/usr/lib/libtelnet.a +LIBTERMCAP?= ${DESTDIR}/usr/lib/libtermcap.a +LIBTERMLIB?= ${DESTDIR}/usr/lib/libtermlib.a +LIBUTIL?= ${DESTDIR}/usr/lib/libutil.a +LIBWRAP?= ${DESTDIR}/usr/lib/libwrap.a +LIBY?= ${DESTDIR}/usr/lib/liby.a +LIBZ?= ${DESTDIR}/usr/lib/libz.a + +.if defined(SHAREDSTRINGS) +CLEANFILES+=strings +.c.o: + ${CC} -E ${CFLAGS} ${.IMPSRC} | xstr -c - + @${CC} ${CFLAGS} -c x.c -o ${.TARGET} + @rm -f x.c + +.cc.o: + ${CXX} -E ${CXXFLAGS} ${.IMPSRC} | xstr -c - + @mv -f x.c x.cc + @${CXX} ${CXXFLAGS} -c x.cc -o ${.TARGET} + @rm -f x.cc + +.C.o: + ${CXX} -E ${CXXFLAGS} ${.IMPSRC} | xstr -c - + @mv -f x.c x.C + @${CXX} ${CXXFLAGS} -c x.C -o ${.TARGET} + @rm -f x.C + +.cxx.o: + ${CXX} -E ${CXXFLAGS} ${.IMPSRC} | xstr -c - + @mv -f x.c x.cxx + @${CXX} ${CXXFLAGS} -c x.cxx -o ${.TARGET} + @rm -f x.cxx +.endif + + +.if defined(PROG) +SRCS?= ${PROG}.c +.if !empty(SRCS:N*.h:N*.sh) +OBJS+= ${SRCS:N*.h:N*.sh:R:S/$/.o/g} +LOBJS+= ${LSRCS:.c=.ln} ${SRCS:M*.c:.c=.ln} +.endif + +.if defined(OBJS) && !empty(OBJS) +.if defined(DESTDIR) + +${PROG}: ${LIBCRT0} ${OBJS} ${LIBC} ${CRTBEGIN} ${CRTEND} ${DPADD} + ${CC} ${LDFLAGS} ${LDSTATIC} -o ${.TARGET} -nostdlib -L${DESTDIR}/usr/lib ${LIBCRT0} ${CRTBEGIN} ${OBJS} ${LDADD} -lgcc -lc -lgcc ${CRTEND} + +.else + +${PROG}: ${LIBCRT0} ${OBJS} ${LIBC} ${CRTBEGIN} ${CRTEND} ${DPADD} + ${CC} ${LDFLAGS} ${LDSTATIC} -o ${.TARGET} ${OBJS} ${LDADD} + +.endif # defined(DESTDIR) +.endif # defined(OBJS) && !empty(OBJS) + +.if !defined(MAN) +MAN= ${PROG}.1 +.endif # !defined(MAN) +.endif # defined(PROG) + +.MAIN: all +all: ${PROG} _SUBDIRUSE + +.if !target(clean) +clean: _SUBDIRUSE + rm -f a.out [Ee]rrs mklog core *.core \ + ${PROG} ${OBJS} ${LOBJS} ${CLEANFILES} +.endif + +cleandir: _SUBDIRUSE clean + +.if !target(install) +.if !target(beforeinstall) +beforeinstall: +.endif +.if !target(afterinstall) +afterinstall: +.endif + +.if !target(realinstall) +realinstall: +.if defined(PROG) + ${INSTALL} ${INSTALL_COPY} ${INSTALL_STRIP} -o ${BINOWN} -g ${BINGRP} \ + -m ${BINMODE} ${PROG} ${DESTDIR}${BINDIR} +.endif +.if defined(HIDEGAME) + (cd ${DESTDIR}/usr/games; rm -f ${PROG}; ln -s dm ${PROG}) +.endif +.endif + +install: maninstall _SUBDIRUSE +.if defined(LINKS) && !empty(LINKS) +. for lnk file in ${LINKS} + @l=${DESTDIR}${lnk}; \ + t=${DESTDIR}${file}; \ + echo $$t -\> $$l; \ + rm -f $$t; ln $$l $$t +. endfor +.endif + +maninstall: afterinstall +afterinstall: realinstall +realinstall: beforeinstall +.endif + +.if !target(lint) +lint: ${LOBJS} +.if defined(LOBJS) && !empty(LOBJS) + @${LINT} ${LINTFLAGS} ${LDFLAGS:M-L*} ${LOBJS} ${LDADD} +.endif +.endif + +.if !defined(NOMAN) +.include <bsd.man.mk> +.endif + +.if !defined(NONLS) +.include <bsd.nls.mk> +.endif + +.include <bsd.obj.mk> +.include <bsd.dep.mk> +.include <bsd.subdir.mk> +.include <bsd.sys.mk> diff --git a/bootstrap/mods/mk/OpenBSD.sys.mk b/bootstrap/mods/mk/OpenBSD.sys.mk new file mode 100644 index 00000000000..8c2713f76ba --- /dev/null +++ b/bootstrap/mods/mk/OpenBSD.sys.mk @@ -0,0 +1,202 @@ +# $NetBSD: OpenBSD.sys.mk,v 1.1.1.1 2004/03/11 13:04:00 grant Exp $ +# @(#)sys.mk 8.2 (Berkeley) 3/21/94 + +unix?= We run OpenBSD. + +.SUFFIXES: .out .a .ln .o .s .S .c .cc .cpp .cxx .C .F .f .r .y .l .cl .p .h +.SUFFIXES: .sh .m4 + +.LIBS: .a + +AR?= ar +ARFLAGS?= rl +RANLIB?= ranlib + +AS?= as +AFLAGS?= +.if ${MACHINE_ARCH} == "sparc64" +AFLAGS+= -Wa,-Av9a +.endif +COMPILE.s?= ${CC} ${AFLAGS} -c +LINK.s?= ${CC} ${AFLAGS} ${LDFLAGS} +COMPILE.S?= ${CC} ${AFLAGS} ${CPPFLAGS} -c -traditional-cpp +LINK.S?= ${CC} ${AFLAGS} ${CPPFLAGS} ${LDFLAGS} + +CC?= cc +.if ${MACHINE_ARCH} == "alpha" || \ + ${MACHINE_ARCH} == "i386" || \ + ${MACHINE_ARCH} == "m68k" || \ + ${MACHINE_ARCH} == "sparc" || \ + ${MACHINE_ARCH} == "vax" +DBG?= -O2 +.else +DBG?= -O +.endif +CFLAGS?= ${DBG} +COMPILE.c?= ${CC} ${CFLAGS} ${CPPFLAGS} -c +LINK.c?= ${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} + +CXX?= c++ +CXXFLAGS?= ${CFLAGS} +COMPILE.cc?= ${CXX} ${CXXFLAGS} ${CPPFLAGS} -c +LINK.cc?= ${CXX} ${CXXFLAGS} ${CPPFLAGS} ${LDFLAGS} + +OBJC?= ${CC} +OBJCFLAGS?= ${CFLAGS} +COMPILE.m?= ${OBJC} ${OBJCFLAGS} ${CPPFLAGS} -c +LINK.m?= ${OBJC} ${OBJCFLAGS} ${CPPFLAGS} ${LDFLAGS} + +CPP?= cpp +CPPFLAGS?= + +FC?= f77 +FFLAGS?= -O +RFLAGS?= +COMPILE.f?= ${FC} ${FFLAGS} -c +LINK.f?= ${FC} ${FFLAGS} ${LDFLAGS} +COMPILE.F?= ${FC} ${FFLAGS} ${CPPFLAGS} -c +LINK.F?= ${FC} ${FFLAGS} ${CPPFLAGS} ${LDFLAGS} +COMPILE.r?= ${FC} ${FFLAGS} ${RFLAGS} -c +LINK.r?= ${FC} ${FFLAGS} ${RFLAGS} ${LDFLAGS} + +INSTALL?= install + +LEX?= lex +LFLAGS?= +LEX.l?= ${LEX} ${LFLAGS} + +LD?= ld +LDFLAGS?= + +LINT?= lint +LINTFLAGS?= -chapbxzF + +LORDER?= lorder + +MAKE?= make + +NM?= nm + +PC?= pc +PFLAGS?= +COMPILE.p?= ${PC} ${PFLAGS} ${CPPFLAGS} -c +LINK.p?= ${PC} ${PFLAGS} ${CPPFLAGS} ${LDFLAGS} + +SHELL?= sh + +SIZE?= size + +TSORT?= tsort -q + +YACC?= yacc +YFLAGS?= +YACC.y?= ${YACC} ${YFLAGS} + +# C +.c: + ${LINK.c} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} +.c.o: + ${COMPILE.c} ${.IMPSRC} +.c.a: + ${COMPILE.c} ${.IMPSRC} + ${AR} ${ARFLAGS} $@ $*.o + rm -f $*.o +.c.ln: + ${LINT} ${LINTFLAGS} ${CPPFLAGS:M-[IDU]*} -i ${.IMPSRC} + +# C++ +.cc .cpp .cxx .C: + ${LINK.cc} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} +.cc.o .cpp.o .cxx.o .C.o: + ${COMPILE.cc} ${.IMPSRC} +.cc.a .cpp.a .cxx.a .C.a: + ${COMPILE.cc} ${.IMPSRC} + ${AR} ${ARFLAGS} $@ $*.o + rm -f $*.o + +# Fortran/Ratfor +.f: + ${LINK.f} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} +.f.o: + ${COMPILE.f} ${.IMPSRC} +.f.a: + ${COMPILE.f} ${.IMPSRC} + ${AR} ${ARFLAGS} $@ $*.o + rm -f $*.o + +.F: + ${LINK.F} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} +.F.o: + ${COMPILE.F} ${.IMPSRC} +.F.a: + ${COMPILE.F} ${.IMPSRC} + ${AR} ${ARFLAGS} $@ $*.o + rm -f $*.o + +.r: + ${LINK.r} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} +.r.o: + ${COMPILE.r} ${.IMPSRC} +.r.a: + ${COMPILE.r} ${.IMPSRC} + ${AR} ${ARFLAGS} $@ $*.o + rm -f $*.o + +# Pascal +.p: + ${LINK.p} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} +.p.o: + ${COMPILE.p} ${.IMPSRC} +.p.a: + ${COMPILE.p} ${.IMPSRC} + ${AR} ${ARFLAGS} $@ $*.o + rm -f $*.o + +# Assembly +.s: + ${LINK.s} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} +.s.o: + ${COMPILE.s} ${.IMPSRC} +.s.a: + ${COMPILE.s} ${.IMPSRC} + ${AR} ${ARFLAGS} $@ $*.o + rm -f $*.o +.S: + ${LINK.S} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} +.S.o: + ${COMPILE.S} ${.IMPSRC} +.S.a: + ${COMPILE.S} ${.IMPSRC} + ${AR} ${ARFLAGS} $@ $*.o + rm -f $*.o + +# Lex +.l: + ${LEX.l} ${.IMPSRC} + ${LINK.c} -o ${.TARGET} lex.yy.c ${LDLIBS} -ll + rm -f lex.yy.c +.l.c: + ${LEX.l} ${.IMPSRC} + mv lex.yy.c ${.TARGET} +.l.o: + ${LEX.l} ${.IMPSRC} + ${COMPILE.c} -o ${.TARGET} lex.yy.c + rm -f lex.yy.c + +# Yacc +.y: + ${YACC.y} ${.IMPSRC} + ${LINK.c} -o ${.TARGET} y.tab.c ${LDLIBS} + rm -f y.tab.c +.y.c: + ${YACC.y} ${.IMPSRC} + mv y.tab.c ${.TARGET} +.y.o: + ${YACC.y} ${.IMPSRC} + ${COMPILE.c} -o ${.TARGET} y.tab.c + rm -f y.tab.c + +# Shell +.sh: + rm -f ${.TARGET} + cp ${.IMPSRC} ${.TARGET} diff --git a/bootstrap/mods/mk/SunOS.bsd.sys.mk b/bootstrap/mods/mk/SunOS.bsd.sys.mk new file mode 100644 index 00000000000..415747618c0 --- /dev/null +++ b/bootstrap/mods/mk/SunOS.bsd.sys.mk @@ -0,0 +1,141 @@ +# $NetBSD: SunOS.bsd.sys.mk,v 1.1.1.1 2004/03/11 13:04:00 grant Exp $ +# +# Overrides used for NetBSD source tree builds. + +.if ${CC:M*gcc*} != "" + +.if defined(WARNS) +.if ${WARNS} > 0 +CFLAGS+= -Wall -Wstrict-prototypes -Wmissing-prototypes +# XXX Delete -Wuninitialized by default for now -- the compiler doesn't +# XXX always get it right. +CFLAGS+= -Wno-uninitialized +.endif +.if ${WARNS} > 1 +CFLAGS+= -Wreturn-type -Wpointer-arith +.endif +.if ${WARNS} > 2 +CFLAGS+= -Wcast-qual -Wwrite-strings +.endif +CFLAGS+= -Wswitch -Wshadow +.endif + +.if defined(WFORMAT) && defined(FORMAT_AUDIT) +.if ${WFORMAT} > 1 +CFLAGS+= -Wnetbsd-format-audit -Wno-format-extra-args +.endif +.endif + +.if !defined(NOGCCERROR) +CFLAGS+= -Werror +.endif +CFLAGS+= ${CWARNFLAGS} + +.if defined(DESTDIR) +CPPFLAGS+= -nostdinc -idirafter ${DESTDIR}/usr/include +LINTFLAGS+= -d ${DESTDIR}/usr/include +.endif + +.if defined(MKSOFTFLOAT) && (${MKSOFTFLOAT} != "no") +COPTS+= -msoft-float +FOPTS+= -msoft-float +.endif + +.endif # gcc + +.if defined(AUDIT) +CPPFLAGS+= -D__AUDIT__ +.endif + +# Helpers for cross-compiling +HOST_CC?= cc +HOST_CFLAGS?= -O +HOST_COMPILE.c?=${HOST_CC} ${HOST_CFLAGS} ${HOST_CPPFLAGS} -c +HOST_LINK.c?= ${HOST_CC} ${HOST_CFLAGS} ${HOST_CPPFLAGS} ${HOST_LDFLAGS} + +HOST_CPP?= cpp +HOST_CPPFLAGS?= + +HOST_LD?= ld +HOST_LDFLAGS?= + +OBJCOPY?= objcopy +STRIP?= strip +CONFIG?= config +RPCGEN?= rpcgen +MKLOCALE?= mklocale + +.SUFFIXES: .m .o .ln .lo + +# Objective C +# (Defined here rather than in <sys.mk> because `.m' is not just +# used for Objective C source) +.m: + ${LINK.m} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} +.m.o: + ${COMPILE.m} ${.IMPSRC} + +# Host-compiled C objects +.c.lo: + ${HOST_COMPILE.c} -o ${.TARGET} ${.IMPSRC} + + +.if defined(PARALLEL) || defined(LPREFIX) +LPREFIX?=yy +LFLAGS+=-P${LPREFIX} +# Lex +.l: + ${LEX.l} -o${.TARGET:R}.${LPREFIX}.c ${.IMPSRC} + ${LINK.c} -o ${.TARGET} ${.TARGET:R}.${LPREFIX}.c ${LDLIBS} -ll + rm -f ${.TARGET:R}.${LPREFIX}.c +.l.c: + ${LEX.l} -o${.TARGET} ${.IMPSRC} +.l.o: + ${LEX.l} -o${.TARGET:R}.${LPREFIX}.c ${.IMPSRC} + ${COMPILE.c} -o ${.TARGET} ${.TARGET:R}.${LPREFIX}.c + rm -f ${.TARGET:R}.${LPREFIX}.c +.l.lo: + ${LEX.l} -o${.TARGET:R}.${LPREFIX}.c ${.IMPSRC} + ${HOST_COMPILE.c} -o ${.TARGET} ${.TARGET:R}.${LPREFIX}.c + rm -f ${.TARGET:R}.${LPREFIX}.c +.endif + +# Yacc +.if defined(YHEADER) || defined(YPREFIX) +.if defined(YPREFIX) +YFLAGS+=-p${YPREFIX} +.endif +.if defined(YHEADER) +YFLAGS+=-d +.endif +.y: + ${YACC.y} -b ${.TARGET:R} ${.IMPSRC} + ${LINK.c} -o ${.TARGET} ${.TARGET:R}.tab.c ${LDLIBS} + rm -f ${.TARGET:R}.tab.c ${.TARGET:R}.tab.h +.y.h: ${.TARGET:R}.c +.y.c: + ${YACC.y} -o ${.TARGET} ${.IMPSRC} +.y.o: + ${YACC.y} -b ${.TARGET:R} ${.IMPSRC} + ${COMPILE.c} -o ${.TARGET} ${.TARGET:R}.tab.c + rm -f ${.TARGET:R}.tab.c ${TARGET:R}.tab.h +.y.lo: + ${YACC.y} -b ${.TARGET:R} ${.IMPSRC} + ${HOST_COMPILE.c} -o ${.TARGET} ${.TARGET:R}.tab.c + rm -f ${.TARGET:R}.tab.c ${TARGET:R}.tab.h +.elif defined(PARALLEL) +.y: + ${YACC.y} -b ${.TARGET:R} ${.IMPSRC} + ${LINK.c} -o ${.TARGET} ${.TARGET:R}.tab.c ${LDLIBS} + rm -f ${.TARGET:R}.tab.c +.y.c: + ${YACC.y} -o ${.TARGET} ${.IMPSRC} +.y.o: + ${YACC.y} -b ${.TARGET:R} ${.IMPSRC} + ${COMPILE.c} -o ${.TARGET} ${.TARGET:R}.tab.c + rm -f ${.TARGET:R}.tab.c +.y.lo: + ${YACC.y} -b ${.TARGET:R} ${.IMPSRC} + ${HOST_COMPILE.c} -o ${.TARGET} ${.TARGET:R}.tab.c + rm -f ${.TARGET:R}.tab.c +.endif diff --git a/bootstrap/mods/mk/SunOS.sys.mk b/bootstrap/mods/mk/SunOS.sys.mk new file mode 100644 index 00000000000..e73ef9d9e6f --- /dev/null +++ b/bootstrap/mods/mk/SunOS.sys.mk @@ -0,0 +1,211 @@ +# $NetBSD: SunOS.sys.mk,v 1.1.1.1 2004/03/11 13:04:00 grant Exp $ +# NetBSD: sys.mk,v 1.58 2000/08/22 17:38:49 bjh21 Exp +# @(#)sys.mk 8.2 (Berkeley) 3/21/94 + +unix?= We run Unix. +OS?= SunOS.5 + +.SUFFIXES: .out .a .ln .o .s .S .c .cc .cpp .cxx .C .F .f .r .y .l .cl .p .h +.SUFFIXES: .sh .m4 + +.LIBS: .a + +AR?= ar +ARFLAGS?= rl +RANLIB?= ranlib + +AS?= as +AFLAGS?= +COMPILE.s?= ${CC} ${AFLAGS} -c +LINK.s?= ${CC} ${AFLAGS} ${LDFLAGS} +COMPILE.S?= ${AS} ${AFLAGS} ${CPPFLAGS} -P +LINK.S?= ${CC} ${AFLAGS} ${CPPFLAGS} ${LDFLAGS} + +# Unless told otherwise, assume GNU CC +CC?= gcc + +DBG?= -O + +CFLAGS?= ${DBG} +COMPILE.c?= ${CC} ${CFLAGS} ${CPPFLAGS} -c +LINK.c?= ${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} + +CXX?= g++ +CXXFLAGS?= ${CFLAGS} +COMPILE.cc?= ${CXX} ${CXXFLAGS} ${CPPFLAGS} -c +LINK.cc?= ${CXX} ${CXXFLAGS} ${CPPFLAGS} ${LDFLAGS} + +OBJC?= ${CC} +OBJCFLAGS?= ${CFLAGS} +COMPILE.m?= ${OBJC} ${OBJCFLAGS} ${CPPFLAGS} -c +LINK.m?= ${OBJC} ${OBJCFLAGS} ${CPPFLAGS} ${LDFLAGS} + +CPP?= cpp +.if defined(NETBSD_COMPATIBLE) +CPPFLAGS?= -I${BSDDIR}/include -D__EXTENSIONS__ -D_XPG4_2 -DSUNOS_5 +HOST_CPPFLAGS?= ${CPPFLAGS} +NOLINT=1 +.else +CPPFLAGS?= +.endif + +FC?= f77 +FFLAGS?= -O +RFLAGS?= +COMPILE.f?= ${FC} ${FFLAGS} -c +LINK.f?= ${FC} ${FFLAGS} ${LDFLAGS} +COMPILE.F?= ${FC} ${FFLAGS} ${CPPFLAGS} -c +LINK.F?= ${FC} ${FFLAGS} ${CPPFLAGS} ${LDFLAGS} +COMPILE.r?= ${FC} ${FFLAGS} ${RFLAGS} -c +LINK.r?= ${FC} ${FFLAGS} ${RFLAGS} ${LDFLAGS} + +INSTALL?= /usr/ucb/install + +LEX?= lex +LFLAGS?= +LEX.l?= ${LEX} ${LFLAGS} + +LD?= ld +LDFLAGS?= + +LINT?= lint +LINTFLAGS?= -chapbxzF + +LORDER?= lorder + +MAKE?= make + +NM?= nm + +PC?= pc +PFLAGS?= +COMPILE.p?= ${PC} ${PFLAGS} ${CPPFLAGS} -c +LINK.p?= ${PC} ${PFLAGS} ${CPPFLAGS} ${LDFLAGS} + +SHELL?= sh + +SIZE?= size + +TSORT?= tsort + +YACC?= yacc +YFLAGS?= +YACC.y?= ${YACC} ${YFLAGS} + +# C +.c: + ${LINK.c} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} +.c.o: + ${COMPILE.c} ${.IMPSRC} +.c.a: + ${COMPILE.c} ${.IMPSRC} + ${AR} ${ARFLAGS} $@ $*.o + rm -f $*.o +.c.ln: + ${LINT} ${LINTFLAGS} ${CPPFLAGS:M-[IDU]*} -i ${.IMPSRC} + +# C++ +.cc .cpp .cxx .C: + ${LINK.cc} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} +.cc.o .cpp.o .cxx.o .C.o: + ${COMPILE.cc} ${.IMPSRC} +.cc.a .cpp.a .cxx.a .C.a: + ${COMPILE.cc} ${.IMPSRC} + ${AR} ${ARFLAGS} $@ $*.o + rm -f $*.o + +# Fortran/Ratfor +.f: + ${LINK.f} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} +.f.o: + ${COMPILE.f} ${.IMPSRC} +.f.a: + ${COMPILE.f} ${.IMPSRC} + ${AR} ${ARFLAGS} $@ $*.o + rm -f $*.o + +.F: + ${LINK.F} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} +.F.o: + ${COMPILE.F} ${.IMPSRC} +.F.a: + ${COMPILE.F} ${.IMPSRC} + ${AR} ${ARFLAGS} $@ $*.o + rm -f $*.o + +.r: + ${LINK.r} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} +.r.o: + ${COMPILE.r} ${.IMPSRC} +.r.a: + ${COMPILE.r} ${.IMPSRC} + ${AR} ${ARFLAGS} $@ $*.o + rm -f $*.o + +# Pascal +.p: + ${LINK.p} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} +.p.o: + ${COMPILE.p} ${.IMPSRC} +.p.a: + ${COMPILE.p} ${.IMPSRC} + ${AR} ${ARFLAGS} $@ $*.o + rm -f $*.o + +# Assembly +.s: + ${LINK.s} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} +.s.o: + ${COMPILE.s} ${.IMPSRC} +.s.a: + ${COMPILE.s} ${.IMPSRC} + ${AR} ${ARFLAGS} $@ $*.o + rm -f $*.o +.S: + ${LINK.S} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} +.S.o: + ${COMPILE.S} ${.IMPSRC} +.S.a: + ${COMPILE.S} ${.IMPSRC} + ${AR} ${ARFLAGS} $@ $*.o + rm -f $*.o + +# Lex +.l: + ${LEX.l} ${.IMPSRC} + ${LINK.c} -o ${.TARGET} lex.yy.c ${LDLIBS} -ll + rm -f lex.yy.c +.l.c: + ${LEX.l} ${.IMPSRC} + mv lex.yy.c ${.TARGET} +.l.o: + ${LEX.l} ${.IMPSRC} + ${COMPILE.c} -o ${.TARGET} lex.yy.c + rm -f lex.yy.c + +# Yacc +.y: + ${YACC.y} ${.IMPSRC} + ${LINK.c} -o ${.TARGET} y.tab.c ${LDLIBS} + rm -f y.tab.c +.y.c: + ${YACC.y} ${.IMPSRC} + mv y.tab.c ${.TARGET} +.y.o: + ${YACC.y} ${.IMPSRC} + ${COMPILE.c} -o ${.TARGET} y.tab.c + rm -f y.tab.c + +# Shell +.sh: + rm -f ${.TARGET} + cp ${.IMPSRC} ${.TARGET} + +# override the definitions in bsd.own.mk for Solaris +BINGRP?= root +MANGRP?= root +INFOGRP?= root +DOCGRP?= root +NLSGRP?= root +KMODGRP?= root +LOCALEGRP?= root diff --git a/bootstrap/mods/mk/bsd.own.mk.in b/bootstrap/mods/mk/bsd.own.mk.in new file mode 100644 index 00000000000..22d1f185e6d --- /dev/null +++ b/bootstrap/mods/mk/bsd.own.mk.in @@ -0,0 +1,328 @@ +# $NetBSD: bsd.own.mk.in,v 1.1.1.1 2004/03/11 13:04:00 grant Exp $ + +.if !defined(_BSD_OWN_MK_) +_BSD_OWN_MK_=1 + +.if defined(MAKECONF) && exists(${MAKECONF}) +.include "${MAKECONF}" +.elif exists(/etc/mk.conf) +.include "/etc/mk.conf" +.endif + +# Defining `SKEY' causes support for S/key authentication to be compiled in. +SKEY= yes + +# where the system object and source trees are kept; can be configurable +# by the user in case they want them in ~/foosrc and ~/fooobj, for example +BSDSRCDIR?= /usr/src +BSDOBJDIR?= /usr/obj + +BINGRP?= @ROOT_GROUP@ +BINOWN?= root +BINMODE?= 555 +NONBINMODE?= 444 + +# Define MANZ to have the man pages compressed (gzip) +#MANZ= 1 + +MANDIR?= /usr/share/man +MANGRP?= @ROOT_GROUP@ +MANOWN?= root +MANMODE?= ${NONBINMODE} +MANINSTALL?= maninstall catinstall + +INFODIR?= /usr/share/info +INFOGRP?= @ROOT_GROUP@ +INFOOWN?= root +INFOMODE?= ${NONBINMODE} + +LIBDIR?= /usr/lib +LINTLIBDIR?= /usr/libdata/lint +LIBGRP?= ${BINGRP} +LIBOWN?= ${BINOWN} +LIBMODE?= ${NONBINMODE} + +DOCDIR?= /usr/share/doc +HTMLDOCDIR?= /usr/share/doc/html +DOCGRP?= @ROOT_GROUP@ +DOCOWN?= root +DOCMODE?= ${NONBINMODE} + +NLSDIR?= /usr/share/nls +NLSGRP?= @ROOT_GROUP@ +NLSOWN?= root +NLSMODE?= ${NONBINMODE} + +KMODDIR?= /usr/lkm +KMODGRP?= @ROOT_GROUP@ +KMODOWN?= root +KMODMODE?= ${NONBINMODE} + +LOCALEDIR?= /usr/share/locale +LOCALEGRP?= @ROOT_GROUP@ +LOCALEOWN?= root +LOCALEMODE?= ${NONBINMODE} + +COPY?= -c +.if defined(UPDATE) +PRESERVE?= -p +.else +PRESERVE?= +.endif +.if defined(UNPRIVILEGED) +INSTPRIV?= -U +.endif +STRIPFLAG?= -s + +# Define SYS_INCLUDE to indicate whether you want symbolic links to the system +# source (``symlinks''), or a separate copy (``copies''); (latter useful +# in environments where it's not possible to keep /sys publicly readable) +#SYS_INCLUDE= symlinks + +# The sh3 port is incomplete. +.if ${MACHINE_ARCH} == "sh3eb" || ${MACHINE_ARCH} == "sh3el" +NOLINT=1 +NOPROFILE=1 +OBJECT_FMT?=COFF +NOPIC?=1 +.endif + +# The sparc64 port is incomplete. +# Profiling and linting is also off on the x86_64 port at the moment. +.if ${MACHINE_ARCH} == "sparc64" || ${MACHINE_ARCH} == "x86_64" +NOPROFILE=1 +NOLINT=1 +.endif + +# The m68000 port is incomplete. +.if ${MACHINE_ARCH} == "m68000" +NOLINT=1 +NOPROFILE=1 +NOPIC?=1 +.endif + +# Data-driven table using make variables to control how +# toolchain-dependent targets and shared libraries are built +# for different platforms and object formats. +# OBJECT_FMT: currently either "ELF" or "a.out". +# SHLIB_TYPE: "ELF" or "a.out" or "" to force static libraries. +# +.if ${MACHINE_ARCH} == "alpha" || \ + ${MACHINE_ARCH} == "mipsel" || ${MACHINE_ARCH} == "mipseb" || \ + ${MACHINE_ARCH} == "powerpc" || \ + ${MACHINE_ARCH} == "sparc" || \ + ${MACHINE_ARCH} == "sparc64" || \ + ${MACHINE_ARCH} == "x86_64" || \ + ${MACHINE_ARCH} == "i386" || \ + ${MACHINE_ARCH} == "m68000" || \ + ${MACHINE_ARCH} == "arm" || \ + ${MACHINE} == "next68k" || \ + ${MACHINE} == "sun3" || \ + ${MACHINE} == "mvme68k" || \ + ${MACHINE} == "hp300" || \ + ${MACHINE} == "news68k" || \ + ${MACHINE} == "arm26" +OBJECT_FMT?=ELF +.else +OBJECT_FMT?=a.out +.endif + +.if ${MACHINE_ARCH} == "x86_64" +CFLAGS+=-Wno-format -fno-builtin +.endif + +# Location of the file that contains the major and minor numbers of the +# version of a shared library. If this file exists a shared library +# will be built by <bsd.lib.mk>. +SHLIB_VERSION_FILE?= ${.CURDIR}/shlib_version + +# GNU sources and packages sometimes see architecture names differently. +# This table maps an architecture name to its GNU counterpart. +# Use as so: ${GNU_ARCH.${TARGET_ARCH}} or ${MACHINE_GNU_ARCH} +.ifndef MACHINE_GNU_ARCH +GNU_ARCH.alpha=alpha +GNU_ARCH.arm26=arm +GNU_ARCH.arm32=arm +GNU_ARCH.arm=arm +GNU_ARCH.i386=i386 +GNU_ARCH.m68k=m68k +GNU_ARCH.mipseb=mipseb +GNU_ARCH.mipsel=mipsel +GNU_ARCH.ns32k=ns32k +GNU_ARCH.powerpc=powerpc +GNU_ARCH.sh3eb=sh +GNU_ARCH.sh3el=sh +GNU_ARCH.sparc=sparc +GNU_ARCH.sparc64=sparc64 +GNU_ARCH.vax=vax +MACHINE_GNU_ARCH=${GNU_ARCH.${MACHINE_ARCH}} +.endif + +# In order to identify NetBSD to GNU packages, we sometimes need +# an "elf" tag for historically a.out platforms. +.if ${OBJECT_FMT} == "ELF" && \ + (${MACHINE_ARCH} == "arm" || \ + ${MACHINE_ARCH} == "i386" || \ + ${MACHINE_ARCH} == "m68k" || \ + ${MACHINE_ARCH} == "sparc" || \ + ${MACHINE_ARCH} == "vax") +MACHINE_GNU_PLATFORM?= netbsdelf +.else +MACHINE_GNU_PLATFORM?= netbsd +.endif + +# CPU model, derived from MACHINE_ARCH +MACHINE_CPU= ${MACHINE_ARCH:C/mipse[bl]/mips/:S/arm26/arm/:S/arm32/arm/:C/sh3e[bl]/sh3/:S/m68000/m68k/} + +.if ${MACHINE_ARCH} == "mips" +.BEGIN: + @echo Must set MACHINE_ARCH to one of mipseb or mipsel + @false +.endif +.if ${MACHINE_ARCH} == "sh3" +.BEGIN: + @echo Must set MACHINE_ARCH to one of sh3eb or sh3el + @false +.endif + +TARGETS+= all clean cleandir depend dependall includes \ + install lint obj regress tags html installhtml cleanhtml +.PHONY: all clean cleandir depend dependall distclean includes \ + install lint obj regress tags beforedepend afterdepend \ + beforeinstall afterinstall realinstall realdepend realall \ + html installhtml cheanhtml + +# set NEED_OWN_INSTALL_TARGET, if it's not already set, to yes +# this is used by bsd.pkg.mk to stop "install" being defined +NEED_OWN_INSTALL_TARGET?= yes + +.if ${NEED_OWN_INSTALL_TARGET} == "yes" +.if !target(install) +install: .NOTMAIN beforeinstall subdir-install realinstall afterinstall +beforeinstall: .NOTMAIN +subdir-install: .NOTMAIN beforeinstall +realinstall: .NOTMAIN beforeinstall +afterinstall: .NOTMAIN subdir-install realinstall +.endif +all: .NOTMAIN realall subdir-all +subdir-all: .NOTMAIN +realall: .NOTMAIN +depend: .NOTMAIN realdepend subdir-depend +subdir-depend: .NOTMAIN +realdepend: .NOTMAIN +distclean: .NOTMAIN cleandir +.endif + +PRINTOBJDIR= printf "xxx: .MAKE\n\t@echo \$${.OBJDIR}\n" | ${MAKE} -B -s -f- + +# Define MKxxx variables (which are either yes or no) for users +# to set in /etc/mk.conf and override on the make commandline. +# These should be tested with `== "no"' or `!= "no"'. +# The NOxxx variables should only be used by Makefiles. +# + +MKCATPAGES?=yes + +.if defined(NODOC) +MKDOC=no +#.elif !defined(MKDOC) +#MKDOC=yes +.else +MKDOC?=yes +.endif + +MKINFO?=yes + +.if defined(NOLINKLIB) +MKLINKLIB=no +.else +MKLINKLIB?=yes +.endif +.if ${MKLINKLIB} == "no" +MKPICINSTALL=no +MKPROFILE=no +.endif + +.if defined(NOLINT) +MKLINT=no +.else +MKLINT?=yes +.endif + +.if defined(NOMAN) +MKMAN=no +.else +MKMAN?=yes +.endif +.if ${MKMAN} == "no" +MKCATPAGES=no +.endif + +.if defined(NONLS) +MKNLS=no +.else +MKNLS?=yes +.endif + +# +# MKOBJDIRS controls whether object dirs are created during "make build". +# MKOBJ controls whether the "make obj" rule does anything. +# +.if defined(NOOBJ) +MKOBJ=no +MKOBJDIRS=no +.else +MKOBJ?=yes +MKOBJDIRS?=no +.endif + +.if defined(NOPIC) +MKPIC=no +.else +MKPIC?=yes +.endif + +.if defined(NOPICINSTALL) +MKPICINSTALL=no +.else +MKPICINSTALL?=yes +.endif + +.if defined(NOPROFILE) +MKPROFILE=no +.else +MKPROFILE?=yes +.endif + +.if defined(NOSHARE) +MKSHARE=no +.else +MKSHARE?=yes +.endif +.if ${MKSHARE} == "no" +MKCATPAGES=no +MKDOC=no +MKINFO=no +MKMAN=no +MKNLS=no +.endif + +.if defined(NOCRYPTO) +MKCRYPTO=no +.else +MKCRYPTO?=yes +.endif + +MKCRYPTO_IDEA?=no + +MKCRYPTO_RC5?=no + +.if defined(NOKERBEROS) || (${MKCRYPTO} == "no") +MKKERBEROS=no +.else +MKKERBEROS?=yes +.endif + +MKSOFTFLOAT?=no + +.endif # _BSD_OWN_MK_ diff --git a/bootstrap/mods/mk/generic.sys.mk b/bootstrap/mods/mk/generic.sys.mk new file mode 100644 index 00000000000..1a629a119a7 --- /dev/null +++ b/bootstrap/mods/mk/generic.sys.mk @@ -0,0 +1,208 @@ +# $NetBSD: generic.sys.mk,v 1.1.1.1 2004/03/11 13:04:00 grant Exp $ +# @(#)sys.mk 8.2 (Berkeley) 3/21/94 + +unix?= We run Unix +OS!= uname -s + +.SUFFIXES: .out .a .ln .o .s .S .c .cc .cpp .cxx .C .F .f .r .y .l .cl .p .h +.SUFFIXES: .sh .m4 + +.LIBS: .a + +AR?= ar +ARFLAGS?= rl +RANLIB?= ranlib + +AS?= as +AFLAGS?= +.if ${MACHINE_ARCH} == "sparc64" +AFLAGS+= -Wa,-Av9a +.endif +COMPILE.s?= ${CC} ${AFLAGS} -c +LINK.s?= ${CC} ${AFLAGS} ${LDFLAGS} +COMPILE.S?= ${CC} ${AFLAGS} ${CPPFLAGS} -c -traditional-cpp +LINK.S?= ${CC} ${AFLAGS} ${CPPFLAGS} ${LDFLAGS} + +CC?= cc +.if ${MACHINE_ARCH} == "alpha" || \ + ${MACHINE_ARCH} == "arm" || ${MACHINE_ARCH} == "arm26" || \ + ${MACHINE_ARCH} == "arm32" || \ + ${MACHINE_ARCH} == "i386" || \ + ${MACHINE_ARCH} == "m68k" || \ + ${MACHINE_ARCH} == "mipsel" || ${MACHINE_ARCH} == "mipseb" || \ + ${MACHINE_ARCH} == "sparc" || \ + ${MACHINE_ARCH} == "vax" +DBG?= -O2 +.elif ${MACHINE_ARCH} == "x86_64" +DBG?= +.else +DBG?= -O +.endif +CFLAGS?= ${DBG} +COMPILE.c?= ${CC} ${CFLAGS} ${CPPFLAGS} -c +LINK.c?= ${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} + +CXX?= c++ +CXXFLAGS?= ${CFLAGS} +COMPILE.cc?= ${CXX} ${CXXFLAGS} ${CPPFLAGS} -c +LINK.cc?= ${CXX} ${CXXFLAGS} ${CPPFLAGS} ${LDFLAGS} + +OBJC?= ${CC} +OBJCFLAGS?= ${CFLAGS} +COMPILE.m?= ${OBJC} ${OBJCFLAGS} ${CPPFLAGS} -c +LINK.m?= ${OBJC} ${OBJCFLAGS} ${CPPFLAGS} ${LDFLAGS} + +CPP?= cpp +CPPFLAGS?= + +FC?= f77 +FFLAGS?= -O +RFLAGS?= +COMPILE.f?= ${FC} ${FFLAGS} -c +LINK.f?= ${FC} ${FFLAGS} ${LDFLAGS} +COMPILE.F?= ${FC} ${FFLAGS} ${CPPFLAGS} -c +LINK.F?= ${FC} ${FFLAGS} ${CPPFLAGS} ${LDFLAGS} +COMPILE.r?= ${FC} ${FFLAGS} ${RFLAGS} -c +LINK.r?= ${FC} ${FFLAGS} ${RFLAGS} ${LDFLAGS} + +INSTALL?= install + +LEX?= lex +LFLAGS?= +LEX.l?= ${LEX} ${LFLAGS} + +LD?= ld +LDFLAGS?= + +LINT?= lint +LINTFLAGS?= -chapbxzF + +LORDER?= lorder + +MAKE?= make + +NM?= nm + +PC?= pc +PFLAGS?= +COMPILE.p?= ${PC} ${PFLAGS} ${CPPFLAGS} -c +LINK.p?= ${PC} ${PFLAGS} ${CPPFLAGS} ${LDFLAGS} + +SHELL?= sh + +SIZE?= size + +TSORT?= tsort -q + +YACC?= yacc +YFLAGS?= +YACC.y?= ${YACC} ${YFLAGS} + +# C +.c: + ${LINK.c} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} +.c.o: + ${COMPILE.c} ${.IMPSRC} +.c.a: + ${COMPILE.c} ${.IMPSRC} + ${AR} ${ARFLAGS} $@ $*.o + rm -f $*.o +.c.ln: + ${LINT} ${LINTFLAGS} ${CPPFLAGS:M-[IDU]*} -i ${.IMPSRC} + +# C++ +.cc .cpp .cxx .C: + ${LINK.cc} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} +.cc.o .cpp.o .cxx.o .C.o: + ${COMPILE.cc} ${.IMPSRC} +.cc.a .cpp.a .cxx.a .C.a: + ${COMPILE.cc} ${.IMPSRC} + ${AR} ${ARFLAGS} $@ $*.o + rm -f $*.o + +# Fortran/Ratfor +.f: + ${LINK.f} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} +.f.o: + ${COMPILE.f} ${.IMPSRC} +.f.a: + ${COMPILE.f} ${.IMPSRC} + ${AR} ${ARFLAGS} $@ $*.o + rm -f $*.o + +.F: + ${LINK.F} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} +.F.o: + ${COMPILE.F} ${.IMPSRC} +.F.a: + ${COMPILE.F} ${.IMPSRC} + ${AR} ${ARFLAGS} $@ $*.o + rm -f $*.o + +.r: + ${LINK.r} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} +.r.o: + ${COMPILE.r} ${.IMPSRC} +.r.a: + ${COMPILE.r} ${.IMPSRC} + ${AR} ${ARFLAGS} $@ $*.o + rm -f $*.o + +# Pascal +.p: + ${LINK.p} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} +.p.o: + ${COMPILE.p} ${.IMPSRC} +.p.a: + ${COMPILE.p} ${.IMPSRC} + ${AR} ${ARFLAGS} $@ $*.o + rm -f $*.o + +# Assembly +.s: + ${LINK.s} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} +.s.o: + ${COMPILE.s} ${.IMPSRC} +.s.a: + ${COMPILE.s} ${.IMPSRC} + ${AR} ${ARFLAGS} $@ $*.o + rm -f $*.o +.S: + ${LINK.S} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} +.S.o: + ${COMPILE.S} ${.IMPSRC} +.S.a: + ${COMPILE.S} ${.IMPSRC} + ${AR} ${ARFLAGS} $@ $*.o + rm -f $*.o + +# Lex +.l: + ${LEX.l} ${.IMPSRC} + ${LINK.c} -o ${.TARGET} lex.yy.c ${LDLIBS} -ll + rm -f lex.yy.c +.l.c: + ${LEX.l} ${.IMPSRC} + mv lex.yy.c ${.TARGET} +.l.o: + ${LEX.l} ${.IMPSRC} + ${COMPILE.c} -o ${.TARGET} lex.yy.c + rm -f lex.yy.c + +# Yacc +.y: + ${YACC.y} ${.IMPSRC} + ${LINK.c} -o ${.TARGET} y.tab.c ${LDLIBS} + rm -f y.tab.c +.y.c: + ${YACC.y} ${.IMPSRC} + mv y.tab.c ${.TARGET} +.y.o: + ${YACC.y} ${.IMPSRC} + ${COMPILE.c} -o ${.TARGET} y.tab.c + rm -f y.tab.c + +# Shell +.sh: + rm -f ${.TARGET} + cp ${.IMPSRC} ${.TARGET} |