diff options
-rw-r--r-- | Makefile | 46 | ||||
-rw-r--r-- | Makefile.upgrade | 255 |
2 files changed, 0 insertions, 301 deletions
@@ -17,13 +17,6 @@ # upgrade - Upgrade a.out (2.2.x/3.0) system to the new ELF way # most - Build user commands, no libraries or include files. # installmost - Install user commands, no libraries or include files. -# aout-to-elf - Upgrade a system from a.out to elf format (see below). -# aout-to-elf-build - Build everything required to upgrade a system from -# a.out to elf format (see below). -# aout-to-elf-install - Install everything built by aout-to-elf-build (see -# below). -# move-aout-libs - Move the a.out libraries into an aout sub-directory -# of each elf library sub-directory. # # This makefile is simple by design. The FreeBSD make automatically reads # the /usr/share/mk/sys.mk unless the -m argument is specified on the @@ -63,28 +56,6 @@ # and once the world is built you can cross build a kernel using the # buildkernel target. # -# ---------------------------------------------------------------------------- -# -# Upgrading an i386 system from a.out to elf format -# -# -# The aout->elf transition build is performed by doing a `make upgrade' (or -# `make aout-to-elf') or in two steps by a `make aout-to-elf-build' followed -# by a `make aout-to-elf-install', depending on user preference. -# You need to have at least 320 MB of free space for the object tree. -# -# The upgrade process checks the installed release. If this is 3.0-CURRENT, -# it is assumed that your kernel contains all the syscalls required by the -# current sources. -# -# The upgrade procedure will stop and ask for confirmation to proceed -# several times. On each occasion, you can type Ctrl-C to abort the -# upgrade. Optionally, you can also start it with NOCONFIRM=yes and skip -# the confirmation steps. -# -# ---------------------------------------------------------------------------- -# -# # Define the user-driven targets. These are listed here in alphabetical # order, but that's not important. # @@ -194,23 +165,6 @@ make: ${MMAKE} install DESTDIR=${MAKEPATH} BINDIR= # -# Define the upgrade targets. These are listed here in alphabetical -# order, but that's not important. -# -UPGRADE= aout-to-elf aout-to-elf-build aout-to-elf-install \ - move-aout-libs - -# -# Handle the upgrade targets, using the source relative mk files. -# - -upgrade: aout-to-elf - -${UPGRADE} : upgrade_checks - @cd ${.CURDIR}; \ - ${_MAKE} -f Makefile.upgrade -m ${.CURDIR}/share/mk ${.TARGET} - -# # universe # # Attempt to rebuild *everything* for all supported architectures, diff --git a/Makefile.upgrade b/Makefile.upgrade deleted file mode 100644 index 444acd1..0000000 --- a/Makefile.upgrade +++ /dev/null @@ -1,255 +0,0 @@ -# -# $FreeBSD$ -# -# This makefile contains rules for preforming upgrades that are outside -# the scope of the normal build world process. -# - -# -# Make sure the PATH is set correctly -# -PATH=/sbin:/bin:/usr/sbin:/usr/bin - -# -# Build things relative to the user's preferred object directory, -# defaulting to /usr/obj if not defined. -# -MAKEOBJDIRPREFIX?=/usr/obj - -# -# The installed operating system release gives us the hint as to whether -# we need to build a kernel too. -# -INSTALLEDVERSION!=sh ${.CURDIR}/tools/tools/upgrade/getosreldate.sh -INSTALLEDNAME!=uname -r - -# -# Upgrade the installed make to the current version using the installed -# headers, libraries and build tools. This is required on installed versions -# prior to 2.2.5 in which the installed make doesn't support the -m argument. -# -make : - @echo - @echo "--------------------------------------------------------------" - @echo " Upgrading the installed make" - @echo "--------------------------------------------------------------" - @cd ${.CURDIR}/usr.bin/make; \ - make obj && make depend && make all && make install - -# -# Upgrade from aout to elf, doing an aout build first to ensure that there -# are up-to-date tools before building the initial elf world. The aout -# tools just built into the object directory tree and executed from there -# during the elf build. Then install the aout tools, build an aout kernel -# with them (in case the installed kernel is an older version), then -# install the elf world. -# -aout-to-elf aout-to-elf-install : /var/db/update.cfg \ - ${MAKEOBJDIRPREFIX}/do_aout_buildworld \ - ${MAKEOBJDIRPREFIX}/do_elf_buildworld \ - ${MAKEOBJDIRPREFIX}/do_move_aout_libs \ - ${MAKEOBJDIRPREFIX}/do_aout_installworld \ - ${MAKEOBJDIRPREFIX}/do_elf_installworld \ - ${MAKEOBJDIRPREFIX}/do_elf_kernel \ - ${MAKEOBJDIRPREFIX}/do_set_objformat \ - ${MAKEOBJDIRPREFIX}/do_reboot - -# front-load all the information we're going to need. -/var/db/update.cfg: - @if [ -f ${.CURDIR}/tools/tools/upgrade/doupgrade.sh ]; then \ - MACHINE=${MACHINE} CURDIR=${.CURDIR} sh ${.CURDIR}/tools/tools/upgrade/doupgrade.sh 1 /var/db/update.cfg; \ - else \ - echo "Your source tree must not be fully populated; unable to find upgrade script"; echo "in ${.CURDIR}/tools/tools/upgrade/doupgrade.sh."; exit 1; \ - fi - -# -# Just do the build parts of the transition build. -# -aout-to-elf-build : \ - ${MAKEOBJDIRPREFIX}/do_aout_buildworld \ - ${MAKEOBJDIRPREFIX}/do_elf_buildworld - -# -# The installed system may not have tools capable of building an elf -# aware world, so a complete aout buildworld is required to get a known -# set of tools. -# -${MAKEOBJDIRPREFIX}/do_aout_buildworld : - @echo - @echo "--------------------------------------------------------------" - @echo " Doing an aout buildworld to get an up-to-date set of tools" - @echo "--------------------------------------------------------------" - @cd ${.CURDIR}; MAKEOBJDIRPREFIX=${MAKEOBJDIRPREFIX}/aout \ - OBJFORMAT=aout REALLY_WANT_DEPRECIATED_AOUT=yes \ - ${MAKE} -f Makefile.inc1 -m ${.CURDIR}/share/mk buildworld - @touch ${MAKEOBJDIRPREFIX}/do_aout_buildworld - -# -# Temporary path for initial elf build. -# -AOUTTMPPATH= ${MAKEOBJDIRPREFIX}/aout${.CURDIR}/tmp/sbin:${MAKEOBJDIRPREFIX}/aout${.CURDIR}/tmp/bin:${MAKEOBJDIRPREFIX}/aout${.CURDIR}/tmp/usr/sbin:${MAKEOBJDIRPREFIX}/aout${.CURDIR}/tmp/usr/bin:${MAKEOBJDIRPREFIX}/aout${.CURDIR}/tmp/usr/games - -# -# Use the aout tools from the aout buildworld to do an elf buildworld. -# -${MAKEOBJDIRPREFIX}/do_elf_buildworld : - @echo - @echo "--------------------------------------------------------------" - @echo " Doing an elf buildworld using the aout tools in the aout" - @echo " obj tree." - @echo "--------------------------------------------------------------" - @cd ${.CURDIR}; MAKEOBJDIRPREFIX=${MAKEOBJDIRPREFIX}/elf \ - PATH=${AOUTTMPPATH} OBJFORMAT=elf NOTOOLS=1 \ - TOOLROOT=${MAKEOBJDIRPREFIX}/aout${.CURDIR}/tmp \ - X11BASE=/nonexistent \ - ${MAKE} -f Makefile.inc1 -m ${.CURDIR}/share/mk buildworld - @touch ${MAKEOBJDIRPREFIX}/do_elf_buildworld - -# -# ldconfig should list the directories that the system is currently using. -# -CUSTOM_LIBDIRS!=ldconfig -r | grep search | sed "s/search directories: //" | sed "s/:/ /g" - -# -# These are the standard library directories that should end up containing -# just elf libraries. -# -LIBDIRS=/usr/lib /usr/lib/compat /usr/local/lib /usr/X11R6/lib - -# -# Go through the list of library directories from ldconfig and add any -# directory that doesn't contain an aout path component to the list of -# library directories to search. -# -.for _lib in ${CUSTOM_LIBDIRS} -_lib1=${_lib:S/\/aout//} -.if ${_lib1} == ${_lib} -.if ${LIBDIRS:R:M${_lib:R}} == "" -LIBDIRS+=${_lib} -.endif -.endif -.endfor - -# -# Go through the list of library directories and prepare a list of -# aout directories. -# -AOUTLIBDIRS= -.for _lib in ${LIBDIRS} -AOUTLIBDIRS+=${_lib}/aout -.endfor - -# -# Move the aout libraries into an aout sub-directory of each elf library -# directory. -# -${MAKEOBJDIRPREFIX}/do_move_aout_libs move-aout-libs : -.if !defined(NOCONFIRM) - @echo - @echo "--------------------------------------------------------------" - @echo " You are about to move all the installed a.out libraries into" - @echo " an aout sub-directory of each elf library directory. You can" - @echo " type Ctrl-C to abort now or press return to start the moving" - @echo " the libraries." - @echo "--------------------------------------------------------------" - @echo Directories to search: ${LIBDIRS} - @/bin/sh -c "read -p \"Return to continue or Ctrl-C to abort: \" _e" - @sh ${.CURDIR}/tools/tools/upgrade/move_aout_libs.sh ${LIBDIRS} -.else - @NOCONFIRM=1 sh ${.CURDIR}/tools/tools/upgrade/move_aout_libs.sh ${LIBDIRS} -.endif - @ldconfig ${AOUTLIBDIRS} - @touch ${MAKEOBJDIRPREFIX}/do_move_aout_libs - -# -# Before installing the aout world, allow for the possibility that the -# world about to be installed has some different syscalls to the installed -# kernel which will make shutting the system down problematic. We set aside -# copies of certain programs which match the running kernel. -# -# Install the aout world so that anything that isn't replaced by the -# elf world will be updated. -# -${MAKEOBJDIRPREFIX}/do_aout_installworld : -.if ${INSTALLEDVERSION} < 300003 - @echo - @echo "--------------------------------------------------------------" - @echo " Saving a copy of programs required to shut the system down" - @echo "--------------------------------------------------------------" - @cp /bin/sh ${MAKEOBJDIRPREFIX} - @cp /sbin/reboot ${MAKEOBJDIRPREFIX} -.endif - @touch ${MAKEOBJDIRPREFIX}/do_aout_installworld - -# -# Build and install a new kernel, as well as the boot blocks necessary to -# boot it. -# -${MAKEOBJDIRPREFIX}/do_elf_kernel : - @if [ -f /var/db/update.cfg -a -f ${.CURDIR}/tools/tools/upgrade/doupgrade.sh ]; then \ - MACHINE=${MACHINE} CURDIR=${.CURDIR} sh ${.CURDIR}/tools/tools/upgrade/doupgrade.sh 2 /var/db/update.cfg; \ - fi - @touch ${MAKEOBJDIRPREFIX}/do_elf_kernel - @rm -f /var/db/update.cfg - -# -# Install the elf world overwriting just about all the previously installed -# aout world. Any aout things that need to be kept have already been -# installed in different places (typically in aout subdirectories). -# -${MAKEOBJDIRPREFIX}/do_elf_installworld : -.if !defined(NOCONFIRM) - @echo - @echo "--------------------------------------------------------------" - @echo " You are about to update the installed system (or the system" - @echo " that your DESTDIR points to) with the elf versions of" - @echo " everything, replacing the aout versions. You can type Ctrl-C" - @echo " to abort now, leaving just the aout world installed, or" - @echo " press return to start the second phase of the update." - @echo "--------------------------------------------------------------" - @/bin/sh -c "read -p \"Return to continue or Ctrl-C to abort: \" _e" -.endif - @echo - @echo "--------------------------------------------------------------" - @echo " Doing an elf installworld using the aout tools in the aout" - @echo " obj tree." - @echo "--------------------------------------------------------------" - @cd ${.CURDIR}; MAKEOBJDIRPREFIX=${MAKEOBJDIRPREFIX}/elf \ - PATH=${AOUTTMPPATH} OBJFORMAT=elf NOTOOLS=1 \ - TOOLROOT=${MAKEOBJDIRPREFIX}/aout${.CURDIR}/tmp \ - ${MAKE} -f Makefile.inc1 -m ${.CURDIR}/share/mk installworld - @if [ ! -f /etc/pam.conf ]; then cp ${.CURDIR}/etc/pam.conf /etc; fi - @if [ ! -f /etc/auth.conf ]; then cp ${.CURDIR}/etc/auth.conf /etc; fi - @if [ ! -f /etc/login.conf ]; then cp ${.CURDIR}/etc/login.conf /etc; fi - @touch ${MAKEOBJDIRPREFIX}/do_elf_installworld - -# -# Now that the elf world has been installed, we can set the default -# object format to elf. -# -${MAKEOBJDIRPREFIX}/do_set_objformat : - @echo - @echo "--------------------------------------------------------------" - @echo " Setting the default object format to elf" - @echo "--------------------------------------------------------------" - @echo "OBJFORMAT=elf" > ${DESTDIR}/etc/objformat - @touch ${MAKEOBJDIRPREFIX}/do_set_objformat - -# -# Time to reboot! -${MAKEOBJDIRPREFIX}/do_reboot : -.if !defined(NOCONFIRM) - @echo - @echo "--------------------------------------------------------------" - @echo " Your system has now been fully updated to elf!" - @echo - @echo " It's now time to reboot from your new ELF kernel." - @echo " You can type Ctrl-C to abort this (at your own risk)" - @echo " or press return to reboot the system." - @echo "--------------------------------------------------------------" - @${MAKEOBJDIRPREFIX}/sh -c "read -p \"Return to continue or Ctrl-C to abort: \" _e" -.endif - @echo " Rebooting......." - @echo "--------------------------------------------------------------" - @touch ${MAKEOBJDIRPREFIX}/do_reboot - @-${MAKEOBJDIRPREFIX}/reboot |