ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/src/trunk/Makefile.inc1
(Generate patch)

Comparing trunk/Makefile.inc1 (file contents):
Revision 1926 by laffer1, Tue Oct 7 01:56:49 2008 UTC vs.
Revision 4653 by laffer1, Sun Feb 19 22:59:20 2012 UTC

# Line 1 | Line 1
1   #
2   # $FreeBSD: src/Makefile.inc1,v 1.499.2.7 2006/01/07 19:40:08 netchild Exp $
3 < # $MidnightBSD: src/Makefile.inc1,v 1.11 2008/10/05 21:14:01 laffer1 Exp $
3 > # $MidnightBSD: src/Makefile.inc1,v 1.35 2012/02/19 22:55:13 laffer1 Exp $
4   #
5   # Make command line options:
6   #       -DNO_CLEANDIR run ${MAKE} clean, instead of ${MAKE} cleandir
# Line 12 | Line 12
12   #       -DNO_PORTSUPDATE do not update ports in ${MAKE} update
13   #       -DNO_DOCUPDATE do not update doc in ${MAKE} update
14   #       LOCAL_DIRS="list of dirs" to add additional dirs to the SUBDIR list
15 + #       LOCAL_TOOL_DIRS="list of dirs" to add additional dirs to the build-tools#           list
16   #       TARGET="machine" to crossbuild world for a different machine type
17  
18   #
# Line 25 | Line 26
26   # /usr/share/mk.  These include:
27   #               obj depend all install clean cleandepend cleanobj
28  
29 + # You are supposed to define both of these when calling Makefile.inc1
30 + # directly.  However, some old scripts don't.  Cope for the moment, but
31 + # issue a new warning for a transition period.
32 + .if defined(TARGET) && !defined(TARGET_ARCH)
33 + .warning "You must pass both TARGET and TARGET_ARCH to Makefile.inc1.  Setting TARGET_ARCH=${TARGET}."
34 + TARGET_ARCH=${TARGET}
35 + .endif
36 + .if !defined(TARGET) || !defined(TARGET_ARCH)
37 + .error "Both TARGET and TARGET_ARCH must be defined."
38 + .endif
39 +
40   .include <bsd.own.mk>
41  
42   # We must do share/info early so that installation of info `dir'
# Line 38 | Line 50
50   #
51   SUBDIR= share/info lib libexec
52   SUBDIR+=bin
53 + .if ${MK_APACHE} != "no"
54 + SUBDIR+=apache
55 + .endif
56   .if ${MK_GAMES} != "no"
57   SUBDIR+=games
58   .endif
# Line 85 | Line 100 | CLEANDIR=      clean cleandepend
100   CLEANDIR=       cleandir
101   .endif
102  
103 + BUILDENV_SHELL?=/bin/sh
104 + LOCAL_TOOL_DIRS?=
105 +
106   CVS?=           cvs
107   CVSFLAGS?=      -r . -P -d -I!
108 < SUP?=           /usr/bin/csup
108 > SUP?=           /usr/local/bin/cvsup
109   SUPFLAGS?=      -g -L 2
110   .if defined(SUPHOST)
111   SUPFLAGS+=      -h ${SUPHOST}
# Line 96 | Line 114 | SUPFLAGS+=     -h ${SUPHOST}
114   MAKEOBJDIRPREFIX?=      /usr/obj
115   .if !defined(OSRELDATE)
116   .if exists(/usr/include/osreldate.h)
117 < OSRELDATE!=     awk '/^\#define[[:space:]]*__FreeBSD_version/ { print $$3 }' \
117 > OSRELDATE!=     awk '/^\#define[[:space:]]*__MidnightBSD_version/ { print $$3 }' \
118                  /usr/include/osreldate.h
119   .else
120   OSRELDATE=      0
# Line 105 | Line 123 | OSRELDATE=     0
123  
124   # Guess machine architecture from machine type, and vice versa.
125   .if !defined(TARGET_ARCH) && defined(TARGET)
126 < TARGET_ARCH=    ${TARGET:S/pc98/i386/:S/sun4v/sparc64/}
126 > TARGET_ARCH=    ${TARGET}
127   .elif !defined(TARGET) && defined(TARGET_ARCH) && \
128      ${TARGET_ARCH} != ${MACHINE_ARCH}
129   TARGET=         ${TARGET_ARCH}
# Line 114 | Line 132 | TARGET=                ${TARGET_ARCH}
132   TARGET?=        ${MACHINE}
133   TARGET_ARCH?=   ${MACHINE_ARCH}
134  
135 < KNOWN_ARCHES?=  amd64 arm i386 i386/pc98 ia64 powerpc sparc64 sparc64/sun4v
135 > KNOWN_ARCHES?=  amd64 i386 sparc64
136   .if ${TARGET} == ${TARGET_ARCH}
137   _t=             ${TARGET}
138   .else
# Line 148 | Line 166 | BUILD_ARCH!=   uname -p
166   .error To cross-build, set TARGET_ARCH.
167   .endif
168   .endif
169 < .if ${MACHINE} == ${TARGET} && !defined(CROSS_BUILD_TESTING)
169 > .if ${MACHINE} == ${TARGET} && ${MACHINE_ARCH} == ${TARGET_ARCH} && !defined(CROSS_BUILD_TESTING)
170   OBJTREE=        ${MAKEOBJDIRPREFIX}
171   .else
172 < OBJTREE=        ${MAKEOBJDIRPREFIX}/${TARGET}
172 > OBJTREE=        ${MAKEOBJDIRPREFIX}/${TARGET}.${TARGET_ARCH}
173   .endif
174   WORLDTMP=       ${OBJTREE}${.CURDIR}/tmp
175   # /usr/games added for fortune which depend on strfile
# Line 160 | Line 178 | XPATH=         ${WORLDTMP}/usr/sbin:${WORLDTMP}/usr/bin:${WOR
178   STRICTTMPPATH=  ${BPATH}:${XPATH}
179   TMPPATH=        ${STRICTTMPPATH}:${PATH}
180  
181 + #
182 + # Avoid running mktemp(1) unless actually needed.
183 + # It may not be functional, e.g., due to new ABI
184 + # when in the middle of installing over this system.
185 + #
186 + .if make(distributeworld) || make(installworld)
187   INSTALLTMP!=    /usr/bin/mktemp -d -u -t install
188 + .endif
189  
190   #
191   # Building a world goes through the following stages
# Line 261 | Line 286 | LIB32WMAKEENV= MAKEOBJDIRPREFIX=${OBJTREE}/lib32 \
286  
287   LIB32WMAKE=     ${LIB32WMAKEENV} ${MAKE} -DNO_CPU_CFLAGS -DCOMPAT_32BIT \
288                  -DWITHOUT_BIND -DWITHOUT_MAN -DWITHOUT_NLS -DWITHOUT_INFO \
289 <                -DWITHOUT_HTML DESTDIR=${LIB32TMP}
289 >                -DWITHOUT_HTML -DNO_LINT -ECC -ECXX -EAS -ELD \
290 >                -DESTDIR=${LIB32TMP}
291   LIB32IMAKE=     ${LIB32WMAKE:NINSTALL=*:NDESTDIR=*} -DNO_INCS
292   .endif
293  
294   # install stage
295 + IMAKEENV=       ${CROSSENV}
296 + IMAKE=          ${IMAKEENV} ${MAKE} -f Makefile.inc1
297   .if empty(.MAKEFLAGS:M-n)
298 < IMAKEENV=       ${CROSSENV} \
299 <                PATH=${STRICTTMPPATH}:${INSTALLTMP}
298 > IMAKEENV+=      PATH=${STRICTTMPPATH}:${INSTALLTMP} \
299 >                LD_LIBRARY_PATH=${INSTALLTMP} \
300 >                PATH_LOCALE=${INSTALLTMP}/locale
301 > IMAKE+=         __MAKE_SHELL=${INSTALLTMP}/sh
302   .else
303 < IMAKEENV=       ${CROSSENV} \
274 <                PATH=${TMPPATH}:${INSTALLTMP}
303 > IMAKEENV+=      PATH=${TMPPATH}:${INSTALLTMP}
304   .endif
276 IMAKE=          ${IMAKEENV} ${MAKE} -f Makefile.inc1
305  
306   # kernel stage
307   KMAKEENV=       ${WMAKEENV}
# Line 307 | Line 335 | _worldtmp:
335          rm -rf ${WORLDTMP}/legacy/usr/include
336   #       XXX - These two can depend on any header file.
337          rm -f ${OBJTREE}${.CURDIR}/usr.bin/kdump/ioctl.c
338 +        rm -f ${OBJTREE}${.CURDIR}/usr.bin/kdump/kdump_subr.c
339          rm -f ${OBJTREE}${.CURDIR}/usr.bin/truss/ioctl.c
340   .endif
341   .for _dir in \
342 <    usr/bin usr/games usr/include/sys usr/lib \
314 <    usr/libexec usr/sbin usr/share/dict \
315 <    usr/share/groff_font/devX100 \
316 <    usr/share/groff_font/devX100-12 \
317 <    usr/share/groff_font/devX75 \
318 <    usr/share/groff_font/devX75-12 \
319 <    usr/share/groff_font/devascii \
320 <    usr/share/groff_font/devcp1047 \
321 <    usr/share/groff_font/devdvi \
322 <    usr/share/groff_font/devhtml \
323 <    usr/share/groff_font/devkoi8-r \
324 <    usr/share/groff_font/devlatin1 \
325 <    usr/share/groff_font/devlbp \
326 <    usr/share/groff_font/devlj4 \
327 <    usr/share/groff_font/devps \
328 <    usr/share/groff_font/devutf8 \
329 <    usr/share/tmac/mdoc usr/share/tmac/mm
330 <        mkdir -p ${WORLDTMP}/legacy/${_dir}
331 < .endfor
332 < .for _dir in \
333 <    lib usr/bin usr/include usr/lib/compat/aout usr/libdata/ldscripts \
334 <    usr/libexec usr/sbin usr/share/misc
342 >    lib usr legacy/usr
343          mkdir -p ${WORLDTMP}/${_dir}
344   .endfor
345 +        mtree -deU -f ${.CURDIR}/etc/mtree/BSD.usr.dist \
346 +            -p ${WORLDTMP}/legacy/usr >/dev/null
347 +        mtree -deU -f ${.CURDIR}/etc/mtree/BSD.usr.dist \
348 +            -p ${WORLDTMP}/usr >/dev/null
349          mtree -deU -f ${.CURDIR}/etc/mtree/BSD.include.dist \
350              -p ${WORLDTMP}/usr/include >/dev/null
351          ln -sf ${.CURDIR}/sys ${WORLDTMP}
# Line 414 | Line 426 | build32:
426          @echo "--------------------------------------------------------------"
427          @echo ">>> stage 5.1: building 32 bit shim libraries"
428          @echo "--------------------------------------------------------------"
429 < .for _dir in \
430 <    usr/include usr/lib32 usr/share/misc
431 <        mkdir -p ${LIB32TMP}/${_dir}
420 < .endfor
429 >        mkdir -p ${LIB32TMP}/usr/include
430 >        mtree -deU -f ${.CURDIR}/etc/mtree/BSD.usr.dist \
431 >            -p ${LIB32TMP}/usr >/dev/null
432          mtree -deU -f ${.CURDIR}/etc/mtree/BSD.include.dist \
433              -p ${LIB32TMP}/usr/include >/dev/null
434          mkdir -p ${WORLDTMP}
# Line 431 | Line 442 | build32:
442   .for _t in obj includes
443          cd ${.CURDIR}/include; ${LIB32WMAKE} ${_t}
444          cd ${.CURDIR}/lib; ${LIB32WMAKE} ${_t}
445 + .if ${MK_APACHE} != "no"
446 +        cd ${.CURDIR}/apache/lib; ${LIB32WMAKE} ${_t}
447 + .endif
448   .if ${MK_CDDL} != "no"
449 <        cd ${.CURDIR}/cddl/lib; ${LIB32WMAKE} ${_t}
449 >        cd ${.CURDIR}/cddl/lib; ${LIB32WMAKE} DIRPRFX=cddl/lib/ ${_t}
450   .endif
451 <        cd ${.CURDIR}/gnu/lib; ${LIB32WMAKE} ${_t}
451 >        cd ${.CURDIR}/gnu/lib; ${LIB32WMAKE} DIRPRFX=gnu/lib/ ${_t}
452   .if ${MK_CRYPT} != "no"
453 <        cd ${.CURDIR}/secure/lib; ${LIB32WMAKE} ${_t}
453 >        cd ${.CURDIR}/secure/lib; ${LIB32WMAKE} DIRPRFX=secure/lib/ ${_t}
454   .endif
455   .if ${MK_KERBEROS} != "no"
456 <        cd ${.CURDIR}/kerberos5/lib; ${LIB32WMAKE} ${_t}
456 >        cd ${.CURDIR}/kerberos5/lib; ${LIB32WMAKE} DIRPRFX=kerberos5/lib ${_t}
457   .endif
458   .endfor
459   .for _dir in usr.bin/lex/lib
460 <        cd ${.CURDIR}/${_dir}; ${LIB32WMAKE} obj
460 >        cd ${.CURDIR}/${_dir}; ${LIB32WMAKE} DIRPRFX=${_dir}/ obj
461   .endfor
462   .for _dir in lib/ncurses/ncurses lib/ncurses/ncursesw lib/libmagic
463          cd ${.CURDIR}/${_dir}; \
464 <            MAKEOBJDIRPREFIX=${OBJTREE}/lib32 ${MAKE} DESTDIR= build-tools
464 >            MAKEOBJDIRPREFIX=${OBJTREE}/lib32 ${MAKE} SSP_CFLAGS= DESTDIR= \
465 >            DIRPRFX=${_dir}/ build-tools
466   .endfor
467          cd ${.CURDIR}; \
468              ${LIB32WMAKE} -f Makefile.inc1 libraries
469   .for _t in obj depend all
470 <        cd ${.CURDIR}/libexec/rtld-elf; \
471 <            PROG=ld-elf32.so.1 ${LIB32WMAKE} ${_t}
470 >        cd ${.CURDIR}/libexec/rtld-elf; PROG=ld-elf32.so.1 ${LIB32WMAKE} \
471 >            DIRPRFX=libexec/rtld-elf/ ${_t}
472 >        cd ${.CURDIR}/usr.bin/ldd; PROG=ldd32 ${LIB32WMAKE} \
473 >            DIRPRFX=usr.bin/ldd ${_t}
474   .endfor
475  
476   distribute32 install32:
# Line 463 | Line 480 | distribute32 install32:
480          mkdir -p ${DESTDIR}/usr/lib32                   # XXX add to mtree
481   .endif
482          cd ${.CURDIR}/lib; ${LIB32IMAKE} ${.TARGET:S/32$//}
483 + .if ${MK_CDDL} != "no"
484 +        cd ${.CURDIR}/cddl/lib; ${LIB32IMAKE} ${.TARGET:S/32$//}
485 + .endif
486          cd ${.CURDIR}/gnu/lib; ${LIB32IMAKE} ${.TARGET:S/32$//}
487   .if ${MK_CRYPT} != "no"
488          cd ${.CURDIR}/secure/lib; ${LIB32IMAKE} ${.TARGET:S/32$//}
489   .endif
490 <        cd ${.CURDIR}/libexec/rtld-elf; PROG=ld-elf32.so.1 ${LIB32IMAKE} ${.TARGET:S/32$//}
490 > .if ${MK_KERBEROS} != "no"
491 >        cd ${.CURDIR}/kerberos5/lib; ${LIB32IMAKE} ${.TARGET:S/32$//}
492   .endif
493 +        cd ${.CURDIR}/libexec/rtld-elf; \
494 +            PROG=ld-elf32.so.1 ${LIB32IMAKE} ${.TARGET:S/32$//}
495 +        cd ${.CURDIR}/usr.bin/ldd; PROG=ldd32 ${LIB32IMAKE} ${.TARGET:S/32$//}
496 + .endif
497  
473
498   WMAKE_TGTS=
499   .if !defined(SUBDIR_OVERRIDE)
500   WMAKE_TGTS+=    _worldtmp _legacy _bootstrap-tools
# Line 509 | Line 533 | buildenvvars:
533  
534   buildenv:
535          @echo Entering world for ${TARGET_ARCH}:${TARGET}
536 <        @cd ${.CURDIR} && env ${WMAKEENV} sh || true
536 >        @cd ${.CURDIR} && env ${WMAKEENV} ${BUILDENV_SHELL} || true
537  
538   TOOLCHAIN_TGTS= ${WMAKE_TGTS:N_depend:Neverything:Nbuild32}
539   toolchain: ${TOOLCHAIN_TGTS}
# Line 565 | Line 589 | installcheck_UGID:
589   .endfor
590  
591   #
592 + # Required install tools to be saved in a scratch dir for safety.
593 + #
594 + .if ${MK_INFO} != "no"
595 + _install-info=  install-info
596 + .endif
597 + .if ${MK_ZONEINFO} != "no"
598 + _zoneinfo=      zic tzsetup
599 + .endif
600 +
601 + ITOOLS= [ awk cap_mkdb cat chflags chmod chown \
602 +        date echo egrep find grep ${_install-info} \
603 +        ln lockf make mkdir mtree mv pwd_mkdb rm sed sh sysctl \
604 +        test true uname wc ${_zoneinfo}
605 +
606 + #
607   # distributeworld
608   #
609   # Distributes everything compiled by a `buildworld'.
# Line 573 | Line 612 | installcheck_UGID:
612   #
613   # Installs everything compiled by a 'buildworld'.
614   #
615 +
616 + # Non-base distributions produced by the base system
617 + EXTRA_DISTRIBUTIONS=    doc games
618 + .if defined(LIB32TMP) && ${MK_LIB32} != "no"
619 + EXTRA_DISTRIBUTIONS+=   lib32
620 + .endif
621 +
622   distributeworld installworld: installcheck
623          mkdir -p ${INSTALLTMP}
624 <        for prog in [ awk cap_mkdb cat chflags chmod chown \
625 <            date echo egrep find grep install-info \
626 <            ln lockf make mkdir mtree mv pwd_mkdb rm sed sh sysctl \
627 <            test true uname wc zic; do \
628 <                cp `which $$prog` ${INSTALLTMP}; \
629 <        done
630 <        ${_+_}cd ${.CURDIR}; ${IMAKE} re${.TARGET:S/world$//}
631 <        rm -rf ${INSTALLTMP}
624 >        progs=$$(for prog in ${ITOOLS}; do \
625 >                if progpath=`which $$prog`; then \
626 >                        echo $$progpath; \
627 >                else \
628 >                        echo "Required tool $$prog not found in PATH." >&2; \
629 >                        exit 1; \
630 >                fi; \
631 >            done); \
632 >        libs=$$(ldd -f "%o %p\n" -f "%o %p\n" $$progs 2>/dev/null | sort -u | \
633 >            while read line; do \
634 >                set -- $$line; \
635 >                if [ "$$2 $$3" != "not found" ]; then \
636 >                        echo $$2; \
637 >                else \
638 >                        echo "Required library $$1 not found." >&2; \
639 >                        exit 1; \
640 >                fi; \
641 >            done); \
642 >        cp $$libs $$progs ${INSTALLTMP}
643 >        cp -R $${PATH_LOCALE:-"/usr/share/locale"} ${INSTALLTMP}/locale
644 > .if make(distributeworld)
645 > .for dist in ${EXTRA_DISTRIBUTIONS}
646 >        -mkdir ${DESTDIR}/${DISTDIR}/${dist}
647 >        mtree -deU -f ${.CURDIR}/etc/mtree/BSD.root.dist \
648 >            -p ${DESTDIR}/${DISTDIR}/${dist} >/dev/null
649 >        mtree -deU -f ${.CURDIR}/etc/mtree/BSD.usr.dist \
650 >            -p ${DESTDIR}/${DISTDIR}/${dist}/usr >/dev/null
651 >        mtree -deU -f ${.CURDIR}/etc/mtree/BSD.include.dist \
652 >            -p ${DESTDIR}/${DISTDIR}/${dist}/usr/include >/dev/null
653 > .endfor
654 >        -mkdir ${DESTDIR}/${DISTDIR}/base
655 >        ${_+_}cd ${.CURDIR}; ${IMAKE} distrib-dirs \
656 >            DESTDIR=${DESTDIR}/${DISTDIR}/base
657 > .endif
658 >        ${_+_}cd ${.CURDIR}; ${IMAKE} re${.TARGET:S/world$//}; \
659 >            ${IMAKEENV} rm -rf ${INSTALLTMP}
660 > .if make(distributeworld)
661 > .for dist in ${EXTRA_DISTRIBUTIONS}
662 >        find ${DESTDIR}/${DISTDIR}/${dist} -empty -delete
663 > .endfor
664 > .endif
665  
666 + packageworld:
667 + .for dist in base ${EXTRA_DISTRIBUTIONS}
668 +        ${_+_}cd ${DESTDIR}/${DISTDIR}/${dist}; \
669 +            tar cvJf ${DESTDIR}/${DISTDIR}/${dist}.txz .
670 + .endfor
671 +
672   #
673   # reinstall
674   #
# Line 610 | Line 695 | redistribute:
695          @echo ">>> Distributing everything"
696          @echo "--------------------------------------------------------------"
697          ${_+_}cd ${.CURDIR}; ${MAKE} -f Makefile.inc1 distribute
698 < .if ${TARGET_ARCH} == "amd64" && ${MK_LIB32} != "no"
699 <        ${_+_}cd ${.CURDIR}; ${MAKE} -f Makefile.inc1 distribute32 DISTRIBUTION=lib32
698 > .if defined(LIB32TMP) && ${MK_LIB32} != "no"
699 >        ${_+_}cd ${.CURDIR}; ${MAKE} -f Makefile.inc1 distribute32 \
700 >            DISTRIBUTION=lib32
701   .endif
702  
703   distrib-dirs distribution:
# Line 631 | Line 717 | distrib-dirs distribution:
717   # be set to cross-build, we have to make sure TARGET is set
718   # properly.
719  
720 + .if defined(KERNFAST)
721 + NO_KERNELCLEAN= t
722 + NO_KERNELCONFIG=        t
723 + NO_KERNELDEPEND=        t
724 + NO_KERNELOBJ=           t
725 + # Shortcut for KERNCONF=Blah -DKERNFAST is now KERNFAST=Blah
726 + .if !defined(KERNCONF) && ${KERNFAST} != "1"
727 + KERNCONF=${KERNFAST}
728 + .endif
729 + .endif
730   .if !defined(KERNCONF) && defined(KERNEL)
731   KERNCONF=       ${KERNEL}
732   KERNWARN=
# Line 695 | Line 791 | buildkernel:
791          @echo "--------------------------------------------------------------"
792          cd ${KRNLOBJDIR}/${_kernel}; ${KMAKE} ${CLEANDIR}
793   .endif
794 + .if !defined(NO_KERNELOBJ)
795          @echo
796          @echo "--------------------------------------------------------------"
797          @echo ">>> stage 2.2: rebuilding the object tree"
798          @echo "--------------------------------------------------------------"
799          cd ${KRNLOBJDIR}/${_kernel}; ${KMAKE} obj
800 + .endif
801          @echo
802          @echo "--------------------------------------------------------------"
803          @echo ">>> stage 2.3: build tools"
804          @echo "--------------------------------------------------------------"
805          cd ${KRNLOBJDIR}/${_kernel}; \
806 +            PATH=${BPATH}:${PATH} \
807              MAKESRCPATH=${KERNSRCDIR}/dev/aic7xxx/aicasm \
808 <            ${MAKE} -DNO_CPU_CFLAGS -f ${KERNSRCDIR}/dev/aic7xxx/aicasm/Makefile
808 >            ${MAKE} SSP_CFLAGS= -DNO_CPU_CFLAGS -DNO_CTF \
809 >            -f ${KERNSRCDIR}/dev/aic7xxx/aicasm/Makefile
810   # XXX - Gratuitously builds aicasm in the ``makeoptions NO_MODULES'' case.
811   .if !defined(MODULES_WITH_WORLD) && !defined(NO_MODULES) && exists(${KERNSRCDIR}/modules)
812   .for target in obj depend all
813          cd ${KERNSRCDIR}/modules/aic7xxx/aicasm; \
814 +            PATH=${BPATH}:${PATH} \
815              MAKEOBJDIRPREFIX=${KRNLOBJDIR}/${_kernel}/modules \
816 <            ${MAKE} -DNO_CPU_CFLAGS ${target}
816 >            ${MAKE} SSP_CFLAGS= -DNO_CPU_CFLAGS -DNO_CTF ${target}
817   .endfor
818   .endif
819   .if !defined(NO_KERNELDEPEND)
# Line 744 | Line 845 | reinstallkernel reinstallkernel.debug: installcheck
845          false
846   .endif
847          @echo "--------------------------------------------------------------"
848 <        @echo ">>> Installing kernel"
848 >        @echo ">>> Installing kernel ${INSTALLKERNEL}"
849          @echo "--------------------------------------------------------------"
850          cd ${KRNLOBJDIR}/${INSTALLKERNEL}; \
851              ${CROSSENV} PATH=${TMPPATH} \
852              ${MAKE} KERNEL=${INSTKERNNAME} ${.TARGET:S/kernel//}
853  
854 + distributekernel distributekernel.debug:
855 + .if empty(INSTALLKERNEL)
856 +        @echo "ERROR: No kernel \"${KERNCONF}\" to install."; \
857 +        false
858 + .endif
859 +        cd ${KRNLOBJDIR}/${INSTALLKERNEL}; \
860 +            ${CROSSENV} PATH=${TMPPATH} ${MAKE} KERNEL=${INSTKERNNAME} \
861 +            DESTDIR=${DESTDIR}/${DISTDIR}/kernel \
862 +            ${.TARGET:S/distributekernel/install/}
863 +
864 + packagekernel:
865 +        ${_+_}cd ${DESTDIR}/${DISTDIR}/kernel; \
866 +            tar cvJf ${DESTDIR}/${DISTDIR}/kernel.txz .
867 +
868   #
869   # doxygen
870   #
# Line 811 | Line 926 | update:
926   # legacy: Build compatibility shims for the next three targets
927   #
928   legacy:
814 .if ${BOOTSTRAPPING} < 503000
815        @echo "ERROR: Source upgrades from versions prior to 5.3 not supported."; \
816        false
817 .endif
929   .for _tool in tools/build
930          ${_+_}@${ECHODIR} "===> ${_tool} (obj,includes,depend,all,install)"; \
931              cd ${.CURDIR}/${_tool}; \
# Line 841 | Line 952 | _groff=                gnu/usr.bin/groff/tmac
952   .endif
953   .endif
954  
844 .if ${BOOTSTRAPPING} < 600029
845 _texinfo=       gnu/usr.bin/texinfo
846 .endif
847
848 .if ${BOOTSTRAPPING} < 600015
849 _cap_mkdb=      usr.bin/cap_mkdb
850 .endif
851
852 .if ${BOOTSTRAPPING} < 600018
853 _colldef=       usr.bin/colldef
854 .endif
855
856 .if ${BOOTSTRAPPING} < 600017
857 _gencat=        usr.bin/gencat
858 .endif
859
860 .if ${BOOTSTRAPPING} < 600016
861 _mklocale=      usr.bin/mklocale
862 .endif
863
955   .if ${BOOTSTRAPPING} < 700018
956   _gensnmptree=   usr.sbin/bsnmpd/gensnmptree
957   .endif
# Line 870 | Line 961 | _gensnmptree=  usr.sbin/bsnmpd/gensnmptree
961   _crunchgen=     usr.sbin/crunch/crunchgen
962   .endif
963  
873 .if ${BOOTSTRAPPING} < 600020
874 _pwd_mkdb=      usr.sbin/pwd_mkdb
875 .endif
876
964   bootstrap-tools:
965   .for _tool in \
966      ${_strfile} \
967      ${_gperf} \
968      ${_groff} \
882    ${_texinfo} \
883    ${_cap_mkdb} \
884    ${_colldef} \
885    ${_gencat} \
969      usr.bin/lorder \
970      usr.bin/makewhatis \
888    ${_mklocale} \
971      usr.bin/rpcgen \
972      usr.bin/xinstall \
973      ${_gensnmptree} \
974      usr.sbin/config \
975 <    ${_crunchgen} \
894 <    ${_pwd_mkdb}
975 >    ${_crunchgen}
976          ${_+_}@${ECHODIR} "===> ${_tool} (obj,depend,all,install)"; \
977                  cd ${.CURDIR}/${_tool}; \
978                  ${MAKE} DIRPRFX=${_tool}/ obj; \
# Line 924 | Line 1005 | build-tools:
1005      bin/csh \
1006      bin/sh \
1007      ${_rescue} \
1008 +    ${LOCAL_TOOL_DIRS} \
1009      lib/ncurses/ncurses \
1010      lib/ncurses/ncursesw \
1011      ${_share} \
# Line 1001 | Line 1083 | libraries:
1083   #
1084   # static libgcc.a prerequisite for shared libc
1085   #
1086 < _prereq_libs= gnu/lib/libgcc
1086 > _prereq_libs= gnu/lib/libssp/libssp_nonshared gnu/lib/libgcc
1087  
1088   # These dependencies are not automatically generated:
1089   #
# Line 1021 | Line 1103 | gnu/lib/libgcc__L: lib/libc__L
1103  
1104   _prebuild_libs= ${_kerberos5_lib_libasn1} ${_kerberos5_lib_libkrb5} \
1105                  ${_kerberos5_lib_libroken} \
1106 <                lib/libbz2 lib/libcom_err lib/libcrypt lib/libexpat \
1106 >                lib/libbz2 lib/libcom_err lib/libcrypt \
1107 >                lib/libexpat \
1108                  ${_lib_libgssapi} ${_lib_libipx} \
1109                  lib/libkiconv lib/libkvm lib/libmd \
1110                  lib/ncurses/ncurses lib/ncurses/ncursesw \
# Line 1029 | Line 1112 | _prebuild_libs=        ${_kerberos5_lib_libasn1} ${_kerberos5
1112                  lib/libradius lib/libsbuf lib/libtacplus lib/libutil \
1113                  ${_lib_libypclnt} lib/libz lib/msun \
1114                  ${_secure_lib_libcrypto} ${_secure_lib_libssh} \
1115 <                ${_secure_lib_libssl}
1115 >                ${_secure_lib_libssl} lib/libsqlite3 lib/liblzma \
1116 >                lib/libarchive lib/libfetch lib/libmagic
1117  
1118   .if ${MK_LIBTHR} != "no" && ${MK_LIBKSE} != "no"
1119   _default_thread_lib=    lib/${DEFAULT_THREAD_LIB}
# Line 1039 | Line 1123 | _default_thread_lib=   lib/libthr
1123   _default_thread_lib=    lib/libkse
1124   .endif
1125  
1126 < _generic_libs=  ${_cddl_lib} gnu/lib ${_kerberos5_lib} lib ${_secure_lib} usr.bin/lex/lib
1126 > _generic_libs=  ${_apache_lib} ${_cddl_lib} gnu/lib ${_kerberos5_lib} lib ${_secure_lib} usr.bin/lex/lib
1127  
1128   lib/libopie__L lib/libtacplus__L: lib/libmd__L
1129  
1130 + .if ${MK_APACHE} != "no"
1131 + _apache_lib= apache/lib
1132 + .endif
1133 +
1134   .if ${MK_CDDL} != "no"
1135   _cddl_lib= cddl/lib
1136   .endif
# Line 1170 | Line 1258 | delete-old-files:
1258          @echo ">>> Removing old files (only deletes safe to delete libs)"
1259   # Ask for every old file if the user really wants to remove it.
1260   # It's annoying, but better safe than sorry.
1261 <        @for file in ${OLD_FILES}; do \
1261 > # NB: We cannot pass the list of OLD_FILES as a parameter because the
1262 > # argument list will get too long. Using .for/.endfor make "loops" will make
1263 > # the Makefile parser segfault.
1264 >        @exec 3<&0; \
1265 >        ${MAKE} -f ${.CURDIR}/Makefile.inc1 ${.MAKEFLAGS} ${.TARGET} \
1266 >            -V OLD_FILES -V "OLD_FILES:Musr/share/*.gz:R" | xargs -n1 | \
1267 >        while read file; do \
1268                  if [ -f "${DESTDIR}/$${file}" -o -L "${DESTDIR}/$${file}" ]; then \
1269                          chflags noschg "${DESTDIR}/$${file}" 2>/dev/null || true; \
1270 <                        rm ${RM_I} "${DESTDIR}/$${file}"; \
1270 >                        rm ${RM_I} "${DESTDIR}/$${file}" <&3; \
1271                  fi; \
1272          done
1273   # Remove catpages without corresponding manpages.
1274 <        @3<&0; \
1274 >        @exec 3<&0; \
1275          find ${DESTDIR}/usr/share/man/cat* ! -type d | \
1276          sed -ep -e's:${DESTDIR}/usr/share/man/cat:${DESTDIR}/usr/share/man/man:' | \
1277          while read catpage; do \
1278                  read manpage; \
1279                  if [ ! -e "$${manpage}" ]; then \
1280 <                        rm ${RM_I} $${catpage} <&3 ; \
1280 >                        rm ${RM_I} $${catpage} <&3; \
1281                  fi; \
1282          done
1283          @echo ">>> Old files removed"
1284  
1285   check-old-files:
1286          @echo ">>> Checking for old files"
1287 <        @for file in ${OLD_FILES}; do \
1287 >        @${MAKE} -f ${.CURDIR}/Makefile.inc1 ${.MAKEFLAGS} ${.TARGET} \
1288 >            -V OLD_FILES -V "OLD_FILES:Musr/share/*.gz:R" | xargs -n1 | \
1289 >        while read file; do \
1290                  if [ -f "${DESTDIR}/$${file}" -o -L "${DESTDIR}/$${file}" ]; then \
1291                          echo "${DESTDIR}/$${file}"; \
1292                  fi; \
# Line 1201 | Line 1297 | check-old-files:
1297          while read catpage; do \
1298                  read manpage; \
1299                  if [ ! -e "$${manpage}" ]; then \
1300 <                        echo $${catpage} ; \
1300 >                        echo $${catpage}; \
1301                  fi; \
1302          done
1303  
1304   delete-old-libs:
1305          @echo ">>> Removing old libraries"
1306          @echo "${OLD_LIBS_MESSAGE}" | fmt
1307 <        @for file in ${OLD_LIBS}; do \
1307 >        @exec 3<&0; \
1308 >        ${MAKE} -f ${.CURDIR}/Makefile.inc1 ${.MAKEFLAGS} ${.TARGET} \
1309 >            -V OLD_LIBS | xargs -n1 | \
1310 >        while read file; do \
1311                  if [ -f "${DESTDIR}/$${file}" -o -L "${DESTDIR}/$${file}" ]; then \
1312                          chflags noschg "${DESTDIR}/$${file}" 2>/dev/null || true; \
1313 <                        rm ${RM_I} "${DESTDIR}/$${file}"; \
1313 >                        rm ${RM_I} "${DESTDIR}/$${file}" <&3; \
1314                  fi; \
1315          done
1316          @echo ">>> Old libraries removed"
1317  
1318   check-old-libs:
1319          @echo ">>> Checking for old libraries"
1320 <        @for file in ${OLD_LIBS}; do \
1320 >        @${MAKE} -f ${.CURDIR}/Makefile.inc1 ${.MAKEFLAGS} ${.TARGET} \
1321 >            -V OLD_LIBS | xargs -n1 | \
1322 >        while read file; do \
1323                  if [ -f "${DESTDIR}/$${file}" -o -L "${DESTDIR}/$${file}" ]; then \
1324                          echo "${DESTDIR}/$${file}"; \
1325                  fi; \
# Line 1226 | Line 1327 | check-old-libs:
1327  
1328   delete-old-dirs:
1329          @echo ">>> Removing old directories"
1330 <        @for dir in ${OLD_DIRS}; do \
1330 >        @${MAKE} -f ${.CURDIR}/Makefile.inc1 ${.MAKEFLAGS} ${.TARGET} \
1331 >            -V OLD_DIRS | xargs -n1 | \
1332 >        while read dir; do \
1333                  if [ -d "${DESTDIR}/$${dir}" ]; then \
1334                          rmdir -v "${DESTDIR}/$${dir}" || true; \
1335                  elif [ -L "${DESTDIR}/$${dir}" ]; then \
# Line 1237 | Line 1340 | delete-old-dirs:
1340  
1341   check-old-dirs:
1342          @echo ">>> Checking for old directories"
1343 <        @for dir in ${OLD_DIRS}; do \
1343 >        @${MAKE} -f ${.CURDIR}/Makefile.inc1 ${.MAKEFLAGS} ${.TARGET} \
1344 >            -V OLD_DIRS | xargs -n1 | \
1345 >        while read dir; do \
1346                  if [ -d "${DESTDIR}/$${dir}" ]; then \
1347                          echo "${DESTDIR}/$${dir}"; \
1348                  elif [ -L "${DESTDIR}/$${dir}" ]; then \

Comparing trunk/Makefile.inc1 (property cvs2svn:cvs-rev):
Revision 1926 by laffer1, Tue Oct 7 01:56:49 2008 UTC vs.
Revision 4653 by laffer1, Sun Feb 19 22:59:20 2012 UTC

# Line 1 | Line 1
1 < 1.12
1 > 1.36

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines