From c5391aab21e1ea6edb66a0164c92bc384e5be262 Mon Sep 17 00:00:00 2001 From: sevan Date: Thu, 4 Jun 2015 15:48:45 +0000 Subject: Introduce preliminary support for Bitrig to pkgsrc Initial patchset to add support by rodent@ Further adjustments made based on feedback by joerg@ Tested by myself with numerous bulkbuilds thanks to Patrick Wildt @ Bitrig Reviewed by bsiegert@ joerg@ wiz@ --- bootstrap/README.Bitrig | 26 ++ bootstrap/bootstrap | 11 +- mk/bsd.prefs.mk | 9 +- mk/platform/Bitrig.mk | 75 ++++ mk/tools/tools.Bitrig.mk | 88 ++++ .../files/mods/Bitrig.bsd.lib.mk | 496 +++++++++++++++++++++ .../files/mods/Bitrig.bsd.man.mk | 181 ++++++++ .../files/mods/Bitrig.bsd.own.mk.in | 254 +++++++++++ .../bootstrap-mk-files/files/mods/Bitrig.sys.mk | 191 ++++++++ 9 files changed, 1329 insertions(+), 2 deletions(-) create mode 100644 bootstrap/README.Bitrig create mode 100644 mk/platform/Bitrig.mk create mode 100644 mk/tools/tools.Bitrig.mk create mode 100644 pkgtools/bootstrap-mk-files/files/mods/Bitrig.bsd.lib.mk create mode 100644 pkgtools/bootstrap-mk-files/files/mods/Bitrig.bsd.man.mk create mode 100644 pkgtools/bootstrap-mk-files/files/mods/Bitrig.bsd.own.mk.in create mode 100644 pkgtools/bootstrap-mk-files/files/mods/Bitrig.sys.mk diff --git a/bootstrap/README.Bitrig b/bootstrap/README.Bitrig new file mode 100644 index 00000000000..2c9178f6576 --- /dev/null +++ b/bootstrap/README.Bitrig @@ -0,0 +1,26 @@ +$NetBSD: README.Bitrig,v 1.1 2015/06/04 15:48:45 sevan Exp $ + +Please read the general README file as well. + +Care should be taken so that the tools that this kit installs do not conflict +with the Bitrig userland tools. There are several steps: + +1. Bitrig stores its ports pkg database in /var/db/pkg. Therefore, you must +choose a different location (e.g. /var/db/pkgsrc) by using the --pkgdbdir +option to the bootstrap script. If you don't do this, installing pkgsrc +packages will result in numerous PLIST errors upon install. + +2. If you do not intend to use the Bitrig ports tools, it's probably a +good idea to move them out of the way to avoid confusion, e.g.: + cd /usr/sbin + mv pkg_add pkg_add.orig + mv pkg_create pkg_create.orig + mv pkg_delete pkg_delete.orig + mv pkg_info pkg_info.orig + +3. The bootstrap script will create an example mk.conf file located in +pkgsrc/bootstrap/work/mk.conf.example. It contains the settings you provided to +bootstrap. Copy it to your $sysconfdir directory. If $sysconfdir/mk.conf doesn't +exist, the example is copied into place. + +bootstrap-pkgsrc has been tested on Bitrig 1.0 (amd64). diff --git a/bootstrap/bootstrap b/bootstrap/bootstrap index 3c601ae2492..712feb74c48 100755 --- a/bootstrap/bootstrap +++ b/bootstrap/bootstrap @@ -1,6 +1,6 @@ #! /bin/sh -# $NetBSD: bootstrap,v 1.216 2015/05/03 14:26:57 sevan Exp $ +# $NetBSD: bootstrap,v 1.217 2015/06/04 15:48:45 sevan Exp $ # # Copyright (c) 2001-2011 Alistair Crooks # All rights reserved. @@ -503,6 +503,15 @@ AIX) set_opsys=no machine_arch=`get_machine_arch_aix` ;; +Bitrig) + root_group=wheel + need_bsd_install=no + need_awk=no + need_sed=no + set_opsys=no + machine_arch=`uname -m` + check_compiler=yes + ;; CYGWIN_*) is_root () { if id -nG | grep -q 'Administrators'; then diff --git a/mk/bsd.prefs.mk b/mk/bsd.prefs.mk index c5e45f2899e..edd787f6628 100644 --- a/mk/bsd.prefs.mk +++ b/mk/bsd.prefs.mk @@ -1,4 +1,4 @@ -# $NetBSD: bsd.prefs.mk,v 1.364 2015/04/29 14:23:23 jperkin Exp $ +# $NetBSD: bsd.prefs.mk,v 1.365 2015/06/04 15:48:46 sevan Exp $ # # This file includes the mk.conf file, which contains the user settings. # @@ -147,6 +147,13 @@ LOWER_VENDOR?= ibm .elif ${OPSYS} == "BSDOS" LOWER_OPSYS?= bsdi +.elif ${OPSYS} == "Bitrig" +LOWER_OPSYS?= bitrig +LOWER_ARCH!= ${UNAME} -p +MACHINE_ARCH= ${LOWER_ARCH} +MAKEFLAGS+= LOWER_ARCH=${LOWER_ARCH:Q} +LOWER_VENDOR?= unknown + .elif ${OPSYS} == "Cygwin" LOWER_OPSYS?= cygwin LOWER_VENDOR?= pc diff --git a/mk/platform/Bitrig.mk b/mk/platform/Bitrig.mk new file mode 100644 index 00000000000..ce03f6a6630 --- /dev/null +++ b/mk/platform/Bitrig.mk @@ -0,0 +1,75 @@ +# $NetBSD: Bitrig.mk,v 1.1 2015/06/04 15:48:45 sevan Exp $ +# +# Variable definitions for the Bitrig operating system. + +ECHO_N?= ${ECHO} -n +LDD?= /usr/bin/ldd +LDD_ENV?= LD_TRACE_LOADED_OBJECTS_FMT1='\t-l%o => %p\n' \ + LD_TRACE_LOADED_OBJECTS_FMT2= +IMAKE_MAKE?= ${MAKE} # program which gets invoked by imake +PKGLOCALEDIR?= share +PS?= /bin/ps +SU?= /usr/bin/su +TYPE?= type # Shell builtin + +USERADD?= /usr/sbin/useradd +GROUPADD?= /usr/sbin/groupadd + +CPP_PRECOMP_FLAGS?= # unset +DEF_UMASK?= 0022 +EXPORT_SYMBOLS_LDFLAGS?=-Wl,-E # add symbols to the dynamic symbol table +MOTIF_TYPE_DEFAULT?= motif # default 2.0 compatible libs type +NOLOGIN?= /sbin/nologin +PKG_TOOLS_BIN?= ${LOCALBASE}/sbin +ROOT_CMD?= ${SU} - root -c +ROOT_USER?= root +ROOT_GROUP?= wheel +ULIMIT_CMD_datasize?= ulimit -d `ulimit -H -d` +ULIMIT_CMD_stacksize?= ulimit -s `ulimit -H -s` +ULIMIT_CMD_memorysize?= ulimit -m `ulimit -H -m` + +X11_TYPE?= native + +_OPSYS_SYSTEM_RPATH?= /usr/lib +_OPSYS_LIB_DIRS?= /usr/lib +_OPSYS_INCLUDE_DIRS?= /usr/include + +.if exists(/usr/include/netinet6) +_OPSYS_HAS_INET6= yes # IPv6 is standard +.else +_OPSYS_HAS_INET6= no # IPv6 is not standard +.endif +_OPSYS_HAS_JAVA= no # Java is not standard +_OPSYS_HAS_MANZ= yes # MANZ controls gzipping of man pages +_OPSYS_HAS_OSSAUDIO= yes # libossaudio is available +_OPSYS_PERL_REQD= # no base version of perl required +_OPSYS_PTHREAD_AUTO= no # -lpthread needed for pthreads +_OPSYS_SHLIB_TYPE= ELF # shared lib type +_PATCH_CAN_BACKUP= yes # native patch(1) can make backups +_PATCH_BACKUP_ARG?= -V simple -z # switch to patch(1) for backup suffix +_USE_RPATH= yes # add rpath to LDFLAGS + +# flags passed to the linker to extract all symbols from static archives. +# this is GNU ld. +_OPSYS_WHOLE_ARCHIVE_FLAG= -Wl,--whole-archive +_OPSYS_NO_WHOLE_ARCHIVE_FLAG= -Wl,--no-whole-archive + +_STRIPFLAG_CC?= ${_INSTALL_UNSTRIPPED:D:U-s} # cc(1) option to strip +_STRIPFLAG_INSTALL?= ${_INSTALL_UNSTRIPPED:D:U-s} # install(1) option to strip + +.if (${MACHINE_ARCH} == "amd64") || (${MACHINE_ARCH} == "arm") +DEFAULT_SERIAL_DEVICE?= /dev/tty00 +SERIAL_DEVICES?= /dev/tty00 \ + /dev/tty01 +.else +DEFAULT_SERIAL_DEVICE?= /dev/null +SERIAL_DEVICES?= /dev/null +.endif + +PKG_HAVE_KQUEUE= # defined + +_OPSYS_CAN_CHECK_SHLIBS= no + +# check for maximum command line length and set it in configure's environment, +# to avoid a test required by the libtool script that takes forever. +_OPSYS_MAX_CMDLEN_CMD= /sbin/sysctl -n kern.argmax diff --git a/mk/tools/tools.Bitrig.mk b/mk/tools/tools.Bitrig.mk new file mode 100644 index 00000000000..3ea39e7c296 --- /dev/null +++ b/mk/tools/tools.Bitrig.mk @@ -0,0 +1,88 @@ +# $NetBSD: tools.Bitrig.mk,v 1.1 2015/06/04 15:48:45 sevan Exp $ +# +# System-supplied tools for the Bitrig operating system. + +TOOLS_PLATFORM.[?= [ # shell builtin +TOOLS_PLATFORM.awk?= /usr/bin/awk +TOOLS_PLATFORM.basename?= /usr/bin/basename +TOOLS_PLATFORM.byacc?= /usr/bin/yacc +TOOLS_PLATFORM.cat?= /bin/cat +TOOLS_PLATFORM.chgrp?= /bin/chgrp +TOOLS_PLATFORM.chmod?= /bin/chmod +TOOLS_PLATFORM.chown?= /sbin/chown +TOOLS_PLATFORM.cmp?= /usr/bin/cmp +TOOLS_PLATFORM.cp?= /bin/cp +TOOLS_PLATFORM.csh?= /bin/csh +TOOLS_PLATFORM.cut?= /usr/bin/cut +TOOLS_PLATFORM.date?= /bin/date +TOOLS_PLATFORM.diff?= /usr/bin/diff +TOOLS_PLATFORM.diff3?= /usr/bin/diff3 +TOOLS_PLATFORM.dirname?= /usr/bin/dirname +TOOLS_PLATFORM.echo?= echo # shell builtin +TOOLS_PLATFORM.egrep?= /usr/bin/egrep +TOOLS_PLATFORM.env?= /usr/bin/env +TOOLS_PLATFORM.expr?= /bin/expr +TOOLS_PLATFORM.false?= false # shell builtin +TOOLS_PLATFORM.fgrep?= /usr/bin/fgrep +TOOLS_PLATFORM.file?= /usr/bin/file +TOOLS_PLATFORM.find?= /usr/bin/find +TOOLS_PLATFORM.flex?= /usr/bin/flex +TOOLS_PLATFORM.grep?= /usr/bin/grep +TOOLS_PLATFORM.gunzip?= /usr/bin/gunzip -f +TOOLS_PLATFORM.gzcat?= /usr/bin/gzcat +TOOLS_PLATFORM.gzip?= /usr/bin/gzip -nf ${GZIP} +TOOLS_PLATFORM.head?= /usr/bin/head +TOOLS_PLATFORM.hostname?= /bin/hostname +TOOLS_PLATFORM.id?= /usr/bin/id +TOOLS_PLATFORM.ident?= /usr/bin/ident +TOOLS_PLATFORM.install?= /usr/bin/install +TOOLS_PLATFORM.install-info?= /usr/bin/install-info +TOOLS_PLATFORM.ldconfig?= /sbin/ldconfig +TOOLS_PLATFORM.ksh?= /bin/ksh +TOOLS_PLATFORM.lex?= /usr/bin/lex +TOOLS_PLATFORM.ln?= /bin/ln +TOOLS_PLATFORM.ls?= /bin/ls +TOOLS_PLATFORM.m4?= /usr/bin/m4 +TOOLS_PLATFORM.mail?= /usr/bin/mail +TOOLS_PLATFORM.makeinfo?= /usr/bin/makeinfo +TOOLS_PLATFORM.mkdir?= /bin/mkdir -p +TOOLS_PLATFORM.mktemp?= /usr/bin/mktemp +TOOLS_PLATFORM.mtree?= /usr/sbin/mtree +TOOLS_PLATFORM.mv?= /bin/mv +TOOLS_PLATFORM.nice?= /usr/bin/nice +.if exists(/usr/bin/nroff) +TOOLS_PLATFORM.nroff?= /usr/bin/nroff +.endif +TOOLS_PLATFORM.openssl?= /usr/sbin/openssl +TOOLS_PLATFORM.patch?= /usr/bin/patch +TOOLS_PLATFORM.pax?= /bin/pax +TOOLS_PLATFORM.printf?= /usr/bin/printf +TOOLS_PLATFORM.pwd?= /bin/pwd +TOOLS_PLATFORM.readelf?= /usr/bin/readelf +TOOLS_PLATFORM.readlink?= /usr/bin/readlink +TOOLS_PLATFORM.rm?= /bin/rm +TOOLS_PLATFORM.rmdir?= /bin/rmdir +TOOLS_PLATFORM.sdiff?= /usr/bin/sdiff +TOOLS_PLATFORM.sed?= /usr/bin/sed +TOOLS_PLATFORM.sh?= /bin/sh +TOOLS_PLATFORM.sleep?= /bin/sleep +.if exists(/usr/bin/soelim) +TOOLS_PLATFORM.soelim?= /usr/bin/soelim +.endif +TOOLS_PLATFORM.sort?= /usr/bin/sort +TOOLS_PLATFORM.strip?= /usr/bin/strip +TOOLS_PLATFORM.tail?= /usr/bin/tail +TOOLS_PLATFORM.tar?= /bin/tar +.if exists(/usr/bin/tbl) +TOOLS_PLATFORM.tbl?= /usr/bin/tbl +.endif +TOOLS_PLATFORM.tee?= /usr/bin/tee +TOOLS_PLATFORM.test?= test # shell builtin +TOOLS_PLATFORM.touch?= /usr/bin/touch +TOOLS_PLATFORM.tr?= /usr/bin/tr +TOOLS_PLATFORM.true?= true # shell builtin +TOOLS_PLATFORM.tsort?= /usr/bin/tsort +TOOLS_PLATFORM.uniq?= /usr/bin/uniq +TOOLS_PLATFORM.wc?= /usr/bin/wc +TOOLS_PLATFORM.xargs?= /usr/bin/xargs -r +TOOLS_PLATFORM.yacc?= /usr/bin/yacc diff --git a/pkgtools/bootstrap-mk-files/files/mods/Bitrig.bsd.lib.mk b/pkgtools/bootstrap-mk-files/files/mods/Bitrig.bsd.lib.mk new file mode 100644 index 00000000000..5a5a7a12787 --- /dev/null +++ b/pkgtools/bootstrap-mk-files/files/mods/Bitrig.bsd.lib.mk @@ -0,0 +1,496 @@ +# $NetBSD: Bitrig.bsd.lib.mk,v 1.1 2015/06/04 15:48:45 sevan 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 +.include +.include +.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 +# SHLIB_MAJOR, SHLIB_MINOR, SHLIB_TEENY: Major, minor, and teeny version +# numbers of shared library +# 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. +# CPPPICFLAGS: flags for ${CPP} to preprocess .[sS] files for ${AS} +# CPICFLAGS: flags for ${CC} to compile .[cC] files to pic objects. +# CSHLIBFLAGS: flags for ${CC} to compile .[cC] files to .so objects. +# (usually includes ${CPICFLAGS}) +# CAPICFLAGS: flags for ${CC} to compiling .[Ss] files +# (usually just ${CPPPICFLAGS} ${CPICFLAGS}) +# APICFLAGS: flags for ${AS} to assemble .[sS] to .so objects. + +# Platform-independent flags for Bitrig a.out shared libraries +SHLIB_LDSTARTFILE= +SHLIB_LDENDFILE= +SHLIB_SOVERSION=${SHLIB_FULLVERSION} +SHLIB_SHFLAGS= +FPICFLAGS ?= -fPIC +CPICFLAGS?= -fPIC -DPIC +CPPPICFLAGS?= -DPIC +CAPICFLAGS?= ${CPPPICFLAGS} ${CPICFLAGS} +APICFLAGS?= -k + +MKPICLIB?= yes + +# Platform-independent linker flags for ELF shared libraries +.if ${OBJECT_FMT} == "ELF" +SHLIB_SOVERSION= ${SHLIB_MAJOR} +SHLIB_SHFLAGS= -Wl,-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} -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} -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} -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} -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} -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} -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} -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} -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} -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} -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} -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} -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} -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} -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} -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) + $(CC) -nostdlib -shared ${SHLIB_SHFLAGS} -o ${.TARGET} \ + ${SHLIB_LDSTARTFILE} \ + -Wl,--whole-archive,${SOLIB} \ + -Wl,--no-whole-archive,${LDADD} \ + -L${DESTDIR}${LIBDIR} ${RPATH_FLAG}${LIBDIR} \ + ${SHLIB_LDENDFILE} +.else + $(CC) -shared ${SHLIB_SHFLAGS} -o ${.TARGET} \ + ${SHLIB_LDSTARTFILE} \ + -Wl,--whole-archive,${SOLIB} -Wl,--no-whole-archive,${LDADD} \ + ${SHLIB_LDENDFILE} +.endif +.if ${OBJECT_FMT} == "ELF" +.if defined(SHLIB_FULLVERSION) && defined(SHLIB_MAJOR) && \ + "${SHLIB_FULLVERSION}" != "${SHLIB_MAJOR}" + 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} +.endif + 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 +.include +.include +.include +.include +.include +.include + +# Make sure all of the standard targets are defined, even if they do nothing. +lint regress: diff --git a/pkgtools/bootstrap-mk-files/files/mods/Bitrig.bsd.man.mk b/pkgtools/bootstrap-mk-files/files/mods/Bitrig.bsd.man.mk new file mode 100644 index 00000000000..5ee833f8ee4 --- /dev/null +++ b/pkgtools/bootstrap-mk-files/files/mods/Bitrig.bsd.man.mk @@ -0,0 +1,181 @@ +# $NetBSD: Bitrig.bsd.man.mk,v 1.1 2015/06/04 15:48:45 sevan 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 +.include +.include +.MAIN: all +.endif + +.PHONY: catinstall maninstall catpages manpages catlinks manlinks cleanman html installhtml cleanhtml +.if ${MKMAN} != "no" +realinstall: ${MANINSTALL} +.endif +cleandir: cleanman + +HTMLDIR?= ${DESTDIR}/usr/share/man + +MANTARGET?= cat +MANDOC?= mandoc -Tascii + + +.SUFFIXES: .1 .2 .3 .3p .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 3p.cat3p .3.cat3 .2.cat2 .1.cat1: + @echo "${MANDOC} ${.IMPSRC} > ${.TARGET}" + @${MANDOC} ${.IMPSRC} > ${.TARGET} || \ + (rm -f ${.TARGET}; false) + +.9.html9 .8.html8 .7.html7 .6.html6 .5.html5 .4.html4 .3p.html3p .3.html3 .2.html2 .1.html1: + @echo "${MANDOC} -Thtml ${.IMPSRC} > ${.TARGET}" + @${MANDOC} -Thtml ${.IMPSRC} > ${.TARGET} || \ + (rm -f ${.TARGET}; false) + +.if defined(MAN) && !empty(MAN) +MANPAGES= ${MAN} +CATPAGES= ${MANPAGES:C/(.*).([1-9]p?)/\1.cat\2/} +.NOPATH: ${CATPAGES} +.if !defined(NOHTML) +HTMLPAGES= ${MANPAGES:C/(.*).([1-9]p?)/\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 + +# PS rules +ps: ${PSPAGES} + +.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/pkgtools/bootstrap-mk-files/files/mods/Bitrig.bsd.own.mk.in b/pkgtools/bootstrap-mk-files/files/mods/Bitrig.bsd.own.mk.in new file mode 100644 index 00000000000..6ecc1306134 --- /dev/null +++ b/pkgtools/bootstrap-mk-files/files/mods/Bitrig.bsd.own.mk.in @@ -0,0 +1,254 @@ +# $NetBSD: Bitrig.bsd.own.mk.in,v 1.1 2015/06/04 15:48:45 sevan 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(@SYSCONFDIR@/mk.conf) +.include "@SYSCONFDIR@/mk.conf" +.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 + +# 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} == "x86_64" +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 . +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 +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 $sysconfdir/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/pkgtools/bootstrap-mk-files/files/mods/Bitrig.sys.mk b/pkgtools/bootstrap-mk-files/files/mods/Bitrig.sys.mk new file mode 100644 index 00000000000..9b91cca954e --- /dev/null +++ b/pkgtools/bootstrap-mk-files/files/mods/Bitrig.sys.mk @@ -0,0 +1,191 @@ +# $NetBSD: Bitrig.sys.mk,v 1.1 2015/06/04 15:48:45 sevan Exp $ +# @(#)sys.mk 8.2 (Berkeley) 3/21/94 + +unix?= We run Bitrig. + +.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 +DBG?= -O +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} -- cgit v1.2.3