polling.4: Add ix(4)
[dragonfly.git] / Makefile.inc1
index df8ef9e..860362c 100644 (file)
 # Put initial settings here.
 SUBDIR=
 
+# /libexec/ld-elf.so.2 needs to be installed first
+# Otherwise, install(1) beeing a dynamically linked binary will fail
+# during the first upgrade from a static to a dynamic world
+.if exists(${.CURDIR}/libexec)
+SUBDIR+= libexec
+.endif
+
 # We must do share/info early so that installation of info `dir'
 # entries works correctly.  Do it first since it is less likely to
 # grow dependencies on include and lib than vice versa.
@@ -58,9 +65,6 @@ SUBDIR+= games
 .if exists(${.CURDIR}/gnu)
 SUBDIR+= gnu
 .endif
-.if exists(${.CURDIR}/libexec)
-SUBDIR+= libexec
-.endif
 .if exists(${.CURDIR}/sbin)
 SUBDIR+= sbin
 .endif
@@ -118,7 +122,7 @@ OBJTREE?=           ${MAKEOBJDIRPREFIX}
 
 # Used for stage installs and pathing
 #
-DESTDIRBASE?=          ${OBJTREE}${.CURDIR}
+DESTDIRBASE:=          ${OBJTREE}${.CURDIR}
 
 # Remove DESTDIR from MAKEFLAGS.  It is present in the environment
 # anyhow, and we need to be able to override it for stage installs
@@ -127,24 +131,13 @@ DESTDIRBASE?=             ${OBJTREE}${.CURDIR}
 # This section sets the tools used to build the world/kernel
 WORLD_CCVER?=          gcc47
 WORLD_LDVER?=          ld.bfd
-WORLD_BINUTILSVER?=    binutils222
+WORLD_BINUTILSVER?=    binutils224
 
 # Set the backup parameters if they are not already defined
 #
 WORLD_BACKUP?=         /var/backups/world_backup
 AUTO_BACKUP?=          ${OBJTREE}/world_backup/${DESTDIR}
 
-# temporary until everybody has converted to x86_64
-.if ${MACHINE_ARCH} == "amd64"
-MACHINE_ARCH=  x86_64
-.if defined(.PARSEDIR)
-.export MACHINE_ARCH
-.else
-# LEGACY MAKE - REMOVE FOR DFLY 3.6
-.makeenv MACHINE_ARCH
-.endif
-.endif
-
 TARGET_ARCH?=  ${MACHINE_ARCH}
 .if ${TARGET_ARCH} == ${MACHINE_ARCH}
 TARGET?=       ${MACHINE}
@@ -222,7 +215,7 @@ BTOOLSPATH= ${BTOOLSDEST}/usr/sbin:${BTOOLSDEST}/usr/bin:${BTOOLSDEST}/bin:${BTO
 # The strict temporary command path contains all binaries required
 # by the buildworld system after the cross-tools stage.
 #
-STRICTTMPPATH= ${CTOOLSDEST}/usr/sbin:${CTOOLSDEST}/usr/bin:${CTOOLSDEST}/bin:${CTOOLSDEST}/usr/games:${BTOOLSDEST}/usr/sbin:${BTOOLSDEST}/usr/bin:${BTOOLSDEST}/bin:${BTOOLSDEST}/usr/games:/usr/pkg/bin:/usr/local/bin
+STRICTTMPPATH= ${CTOOLSDEST}/usr/sbin:${CTOOLSDEST}/usr/bin:${CTOOLSDEST}/bin:${CTOOLSDEST}/usr/games:${BTOOLSDEST}/usr/sbin:${BTOOLSDEST}/usr/bin:${BTOOLSDEST}/bin:${BTOOLSDEST}/usr/games:/usr/local/bin:/usr/pkg/bin
 
 TMPDIR?=       /tmp
 TMPPID!=       echo $$$$
@@ -293,6 +286,7 @@ TMAKE=              ${TMAKEENV} make -f Makefile.inc1 -DBOOTSTRAPPING \
 XMAKEENV=      MAKEOBJDIRPREFIX=${CTOOLSDEST} \
                OBJTREE=${OBJTREE} \
                DESTDIR=${CTOOLSDEST} \
+               _SHLIBDIRPREFIX=${CTOOLSDEST} \
                INSTALL="sh ${.CURDIR}/tools/install.sh" \
                TOOLS_PREFIX=${CTOOLSDEST} \
                USRDATA_PREFIX=${WORLDDEST} \
@@ -322,6 +316,7 @@ CROSSENV=   MAKEOBJDIRPREFIX=${WORLDDEST} \
 
 WMAKEENV=      ${CROSSENV} \
                DESTDIR=${WORLDDEST} \
+               _SHLIBDIRPREFIX=${WORLDDEST} \
                INSTALL="sh ${.CURDIR}/tools/install.sh" \
                M4=${BTOOLSDEST}/usr/bin/m4 \
                PATH=${STRICTTMPPATH}
@@ -475,14 +470,23 @@ installcheck:
 .if !defined(DESTDIR) || ${DESTDIR} == "" || ${DESTDIR} == "/"
        @case `uname -r` in 1.2*|1.3-*|1.3.*|1.4.*|1.5.0-*|1.5.1-*|1.5.2-*|1.5.3-*) echo "You must upgrade your kernel to at least 1.5.4 and reboot before you can safely installworld, due to libc/system call ABI changes" ; /usr/bin/false ; esac
 .endif
+
 #
 # installworld
 #
+# Backs up the current world if ${AUTO_BACKUP} is writable.
 # Installs everything compiled by a 'buildworld'.
-#
-installworld: installcheck backupworld-auto
+
+installworld: installcheck
+       -@mkdir -p ${AUTO_BACKUP} > /dev/null 2>&1
+       @cd ${.CURDIR}; \
+           (touch ${AUTO_BACKUP}/.updating > /dev/null 2>&1 && \
+            ${IMAKE} backupworld-auto) || \
+           echo "Cannot write to ${AUTO_BACKUP} - world not backed up"
+
        cd ${.CURDIR}; ${IMAKE} re${.TARGET:S/world$//}
        ${INSTALL} -o root -g wheel -m 644 ${.CURDIR}/Makefile_upgrade.inc ${DESTDIR}/etc/upgrade/
+       mkinitrd -b ${DESTDIR}/boot
 
 #
 # reinstall
@@ -816,7 +820,8 @@ BSTRAPDIRS2= \
        usr.sbin/chown usr.sbin/mtree usr.sbin/config \
        usr.sbin/btxld usr.sbin/zic usr.sbin/makewhatis \
        gnu/usr.bin/texinfo gnu/usr.bin/grep usr.bin/sort \
-       usr.bin/gzip usr.bin/bzip2 usr.bin/mkcsmapper usr.bin/mkesdb
+       usr.bin/gzip usr.bin/bzip2 usr.bin/mkcsmapper usr.bin/mkesdb \
+       usr.bin/crunch
 
 bootstrap-tools: bootstrap-tools-before bootstrap-tools-targets1 bootstrap-tools-targets2
        touch ${BTOOLSDEST}/.bootstrap_done
@@ -888,7 +893,9 @@ btools-${_tool}!
 _btxld=        usr.sbin/btxld
 .endif
 
-CTOOLSDIRS= ${_btxld} ${_binutils} usr.bin/objformat ${_gcc_common_cross} \
+CTOOLSDIRS= ${_btxld} ${_binutils} \
+               usr.bin/objformat usr.bin/crunch/crunchide \
+               ${_gcc_common_cross} \
                ${_gcc44_cross} ${_gcc47_cross} ${_custom_cross}
 
 cross-tools: cross-tools-targets