Annotation of kernel/conf/Makefile, revision 1.1

1.1     ! root        1: ##
        !             2: # Copyright (c) 1999 Apple Computer, Inc. All rights reserved.
        !             3: #
        !             4: # @APPLE_LICENSE_HEADER_START@
        !             5: # 
        !             6: # Portions Copyright (c) 1999 Apple Computer, Inc.  All Rights
        !             7: # Reserved.  This file contains Original Code and/or Modifications of
        !             8: # Original Code as defined in and that are subject to the Apple Public
        !             9: # Source License Version 1.1 (the "License").  You may not use this file
        !            10: # except in compliance with the License.  Please obtain a copy of the
        !            11: # License at http://www.apple.com/publicsource and read it before using
        !            12: # this file.
        !            13: # 
        !            14: # The Original Code and all software distributed under the License are
        !            15: # distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
        !            16: # EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
        !            17: # INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
        !            18: # FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT.  Please see the
        !            19: # License for the specific language governing rights and limitations
        !            20: # under the License.
        !            21: # 
        !            22: # @APPLE_LICENSE_HEADER_END@
        !            23: ##
        !            24: 
        !            25: #
        !            26: # Release build parameters
        !            27: #
        !            28: # installhdrs parameters
        !            29: #
        !            30: # Machine-dependent headers to install
        !            31: # (The first of the list is the arch that is used to source the
        !            32: # machine independent headers.)
        !            33: #
        !            34: HEADER_ARCHS = PPC I386
        !            35: 
        !            36: #
        !            37: # install parameters
        !            38: #
        !            39: # Kernel type to install
        !            40: #
        !            41: INSTALL_TYPE = RELEASE
        !            42: 
        !            43: #
        !            44: # Location of tftpboot directory to link kernel to.
        !            45: #
        !            46: TFTPDIR = /private/tftpboot
        !            47: 
        !            48: #
        !            49: # "Post new_vers" parameters
        !            50: #
        !            51: BUILD_ARCHS = PPC I386
        !            52: BUILD_TYPES = RELEASE
        !            53: 
        !            54: # TAG_ARCHS = PPC I386
        !            55: # TAG_TYPE = RELEASE
        !            56: 
        !            57: #
        !            58: # Defaults for build all
        !            59: # Host machine -- Default architecture
        !            60: #
        !            61: DEFAULT_TYPE = RELEASE
        !            62: DEFAULT_ARCH= `arch | awk '/ppc/ { printf("PPC") } /i386/ { printf("I386") }'`
        !            63: 
        !            64: #
        !            65: # Type and architecture for this build -- often overridden from
        !            66: # command line on recursive makes
        !            67: #
        !            68: TYPE = $(DEFAULT_TYPE)
        !            69: ARCH = $(DEFAULT_ARCH)
        !            70: BUILD_DIR= $(TYPE)_$(ARCH)
        !            71: 
        !            72: ifneq "" "$(wildcard /bin/mkdirs)"
        !            73:   MKDIRS = /bin/mkdirs
        !            74: else
        !            75:   MKDIRS = /bin/mkdir -p
        !            76: endif
        !            77: 
        !            78: #
        !            79: # Build all architectures for TYPE
        !            80: #
        !            81: all: tools ALWAYS
        !            82:        @for arch in $(BUILD_ARCHS);                                    \
        !            83:        do                                                              \
        !            84:                echo Making mach_kernel for $(TYPE)_$$arch;             \
        !            85:                ${MAKE} ARCH=$$arch TYPE=$(TYPE) mach_kernel.kernel     \
        !            86:                  OBJROOT=${OBJROOT} SYMROOT=${SYMROOT};                \
        !            87:        done
        !            88: 
        !            89: #
        !            90: # Easy way to build all architectures for a particular type
        !            91: #
        !            92: debug release profile DEBUG RELEASE PROFILE: tools ALWAYS
        !            93:        @for arch in $(BUILD_ARCHS);                                    \
        !            94:        do                                                              \
        !            95:                type=`echo $@ | tr a-z A-Z`;                            \
        !            96:                ${MAKE} ARCH=$$arch TYPE=$$type mach_kernel.kernel      \
        !            97:                  OBJROOT=${OBJROOT} SYMROOT=${SYMROOT};                \
        !            98:        done
        !            99: 
        !           100: #
        !           101: # Easy way to build all types for a particular architecture
        !           102: #
        !           103: ppc PPC i386 I386 : tools ALWAYS
        !           104:        @for type in $(BUILD_TYPES);                                    \
        !           105:        do                                                              \
        !           106:                arch=`echo $@ | tr a-z A-Z`;                            \
        !           107:                ${MAKE} ARCH=$$arch TYPE=$$type mach_kernel.kernel      \
        !           108:                  OBJROOT=${OBJROOT} SYMROOT=${SYMROOT};                \
        !           109:        done
        !           110: 
        !           111: #
        !           112: # Somethings to say after a new_vers (but say it from ..)
        !           113: #
        !           114: kernels: tools ALWAYS
        !           115:        @for type in $(BUILD_TYPES);                                    \
        !           116:        do                                                              \
        !           117:                ${MAKE} -k TYPE=$$type all                              \
        !           118:                  OBJROOT=${OBJROOT} SYMROOT=${SYMROOT};                \
        !           119:        done
        !           120:        $(MAKE) tags OBJROOT=${OBJROOT} SYMROOT=${SYMROOT}
        !           121: 
        !           122: tags: tools ALWAYS
        !           123:        -@for arch in $(TAG_ARCHS);                                     \
        !           124:        do                                                              \
        !           125:                ${MAKE} ARCH=$$arch TYPE=$(TAG_TYPE) tags.kernel        \
        !           126:                  OBJROOT=${OBJROOT} SYMROOT=${SYMROOT};                \
        !           127:        done
        !           128: 
        !           129: 
        !           130: #
        !           131: # Clean the world
        !           132: #
        !           133: clean: ALWAYS
        !           134:        -@for arch in $(BUILD_ARCHS);                                   \
        !           135:        do                                                              \
        !           136:            for type in $(BUILD_TYPES);                                 \
        !           137:            do                                                          \
        !           138:                echo make clean for $${type}_$${arch};                  \
        !           139:                rm -rf $(OBJROOT)/$${type}_$${arch};                    \
        !           140:                rm -rf $(OBJROOT)/config.$${type}_$${arch};             \
        !           141:                rm -rf $(OBJROOT)/config.$${type}_$${arch}.old;         \
        !           142:                rm -f $${type}_$${arch} $${type}_$${arch}.old;          \
        !           143:            done;                                                       \
        !           144:        done
        !           145:        @CWD=`pwd`; \
        !           146:        cd ${OBJROOT}; OBJROOT=`pwd`; cd $$CWD;                         \
        !           147:        cd ${SYMROOT}; SYMROOT=`pwd`; cd $$CWD;                         \
        !           148:        cd ${VERSDIR}; VERSDIR=`pwd`; cd $$CWD;                         \
        !           149:        (                                                               \
        !           150:                cd tools;                                               \
        !           151:                ${MAKE} clean                                           \
        !           152:                  OBJROOT=`relpath -d $$VERSDIR . $$OBJROOT`            \
        !           153:                  SYMROOT=`relpath -d $$VERSDIR . $$SYMROOT`            \
        !           154:        )
        !           155: 
        !           156: #
        !           157: # Clobber the world, rm tag files, too
        !           158: #
        !           159: clobber: clean ALWAYS
        !           160:        -@for arch in $(BUILD_ARCHS);                                   \
        !           161:        do                                                              \
        !           162:                rm -f ../tags.$$arch ../TAGS.$$arch;                    \
        !           163:        done;                                                           \
        !           164:        rm -rf $(OBJROOT)                                               \
        !           165:        rm -f ../tags ../TAGS
        !           166: 
        !           167: #
        !           168: # Install kernel based on RC_ARCHS for all INSTALL_TYPES
        !           169: # Install kernel header files based on RC_ARCHS
        !           170: #
        !           171: install: tools DSTROOT installhdrs mach_kernel
        !           172:        rm -f ${DSTROOT}/mach_kernel
        !           173:        $(MKDIRS) ${DSTROOT}${TFTPDIR}
        !           174:        install -c -m 444 ${SYMROOT}/mach_kernel ${DSTROOT}/mach_kernel
        !           175:        ln -f ${DSTROOT}/mach_kernel ${DSTROOT}${TFTPDIR}/mach_kernel
        !           176:        @for arch in $(RC_ARCHS);                                       \
        !           177:        do                                                              \
        !           178:                ARCH=`echo $$arch | tr a-z A-Z`;                        \
        !           179:                ${MAKE} ARCH=$$ARCH TYPE=$(INSTALL_TYPE)                \
        !           180:                  install_md.kernel                                     \
        !           181:                  OBJROOT=${OBJROOT} SYMROOT=${SYMROOT}                 \
        !           182:                  DSTROOT=${DSTROOT};                                   \
        !           183:        done
        !           184: #
        !           185: # Build FAT kernel based on RC_ARCHS for INSTALL_TYPE
        !           186: #
        !           187: mach_kernel: tools
        !           188:        @lipo_args="";                                                  \
        !           189:        for arch in $(RC_ARCHS);                                        \
        !           190:        do                                                              \
        !           191:                ARCH=`echo $$arch | tr a-z A-Z`;                        \
        !           192:                $(MAKE) ARCH=$$ARCH TYPE=$(INSTALL_TYPE)                \
        !           193:                  mach_kernel.kernel                                    \
        !           194:                  OBJROOT=${OBJROOT} SYMROOT=${SYMROOT}                 \
        !           195:                  DSTROOT=${DSTROOT};                                   \
        !           196:                lipo_args="$$lipo_args ${OBJROOT}/$(INSTALL_TYPE)_$$ARCH/mach_kernel"; \
        !           197:        done;                                                           \
        !           198:        $(MKDIRS) $(SYMROOT);                                           \
        !           199:        echo rm -f $(SYMROOT)/mach_kernel;                              \
        !           200:        rm -f $(SYMROOT)/mach_kernel;                                   \
        !           201:        if [ "`echo $(RC_ARCHS) | wc -w`" -eq 1 ]; then                 \
        !           202:            echo cp ${OBJROOT}/$(INSTALL_TYPE)_$$ARCH/mach_kernel       \
        !           203:                $(SYMROOT)/mach_kernel;                                 \
        !           204:            cp ${OBJROOT}/$(INSTALL_TYPE)_$$ARCH/mach_kernel            \
        !           205:                $(SYMROOT)/mach_kernel;                                 \
        !           206:        else                                                            \
        !           207:            echo lipo -create -o $(SYMROOT)/mach_kernel $$lipo_args;    \
        !           208:            lipo -create -o $(SYMROOT)/mach_kernel $$lipo_args;         \
        !           209:        fi
        !           210: 
        !           211: #
        !           212: # Install kernel header files based on HEADER_ARCHS
        !           213: #
        !           214: installhdrs: pre_install DSTROOT
        !           215:        @set $(HEADER_ARCHS);                                           \
        !           216:        ARCH=`echo $$1 | tr a-z A-Z`;                                   \
        !           217:        ${MAKE} ARCH=$$ARCH TYPE=$(INSTALL_TYPE) DSTROOT=$$DSTROOT      \
        !           218:          install_mi_hdrs.kernel                                        \
        !           219:          OBJROOT=${OBJROOT} SYMROOT=${SYMROOT}                         \
        !           220:          DSTROOT=${DSTROOT}
        !           221:        for arch in $(HEADER_ARCHS);                                    \
        !           222:        do                                                              \
        !           223:                ARCH=`echo $$arch | tr a-z A-Z`;                        \
        !           224:                ${MAKE} ARCH=$$ARCH TYPE=$(INSTALL_TYPE) DSTROOT=$$DSTROOT \
        !           225:                  install_md_hdrs.kernel                                \
        !           226:                  OBJROOT=${OBJROOT} SYMROOT=${SYMROOT}                 \
        !           227:                  DSTROOT=${DSTROOT};                                   \
        !           228:        done
        !           229: 
        !           230: #
        !           231: # Internal rules
        !           232: #
        !           233: VERSDIR=..
        !           234: 
        !           235: OBJROOT=$(VERSDIR)/BUILD
        !           236: SYMROOT=$(VERSDIR)/BUILD
        !           237: 
        !           238: #
        !           239: # Get a usable version of doconf for the installhdrs target.
        !           240: #
        !           241: pre_install:   ALWAYS OBJROOT
        !           242:        @CWD=`pwd`;                                                         \
        !           243:        cd ${OBJROOT}; OBJROOT=`pwd`; cd $$CWD;                             \
        !           244:        cd ${SYMROOT}; SYMROOT=`pwd`; cd $$CWD;                             \
        !           245:        cd ${VERSDIR}; VERSDIR=`pwd`; cd $$CWD;                             \
        !           246:        echo '#################' make $@ for tools '###################';   \
        !           247:        (                                                                   \
        !           248:                cd tools;                                                   \
        !           249:                ${MAKE} pre_install                                         \
        !           250:                  OBJROOT=`relpath -d $$VERSDIR . $$OBJROOT`                \
        !           251:                  SYMROOT=`relpath -d $$VERSDIR . $$SYMROOT`                \
        !           252:                  DSTROOT=`relpath -d $$VERSDIR . $$OBJROOT`                \
        !           253:        )
        !           254: 
        !           255: tools: ALWAYS
        !           256:        @CWD=`pwd`;                                                     \
        !           257:        cd ${OBJROOT}; OBJROOT=`pwd`; cd $$CWD;                         \
        !           258:        cd ${SYMROOT}; SYMROOT=`pwd`; cd $$CWD;                         \
        !           259:        cd ${VERSDIR}; VERSDIR=`pwd`; cd $$CWD;                         \
        !           260:        (                                                               \
        !           261:                cd tools;                                               \
        !           262:                ${MAKE} install                                         \
        !           263:                  OBJROOT=`relpath -d $$VERSDIR . $$OBJROOT`            \
        !           264:                  SYMROOT=`relpath -d $$VERSDIR . $$SYMROOT`            \
        !           265:                  DSTROOT=`relpath -d $$VERSDIR . $$OBJROOT`            \
        !           266:        )
        !           267: 
        !           268: #
        !           269: # Build something in the build directory making sure that the
        !           270: # build directory exists!
        !           271: #
        !           272: install.kernel install_kernel.kernel install_md.kernel \
        !           273: installhdrs.kernel install_mi_hdrs.kernel install_md_hdrs.kernel: ALWAYS
        !           274:        ${MAKE} ARCH=$(ARCH) TYPE=$(TYPE) arch=`echo $(ARCH) | tr A-Z a-z` \
        !           275:          builddir OBJROOT=${OBJROOT} SYMROOT=${SYMROOT}
        !           276:        @CWD=`pwd`;                                                     \
        !           277:        cd ${DSTROOT}; DSTROOT=`pwd`; cd $$CWD;                         \
        !           278:        cd ${OBJROOT}; OBJROOT=`pwd`; cd $$CWD;                         \
        !           279:        cd ${SYMROOT}; SYMROOT=`pwd`; cd $$CWD;                         \
        !           280:        cd ${VERSDIR}; VERSDIR=`pwd`; cd $$CWD;                         \
        !           281:        echo cd $(OBJROOT)/$(BUILD_DIR);                                \
        !           282:        cd $(OBJROOT)/$(BUILD_DIR);                                     \
        !           283:        echo ${MAKE} ${@:.kernel=}                                      \
        !           284:          OBJROOT=`relpath -d $$VERSDIR . $$OBJROOT`                    \
        !           285:          SYMROOT=`relpath -d $$VERSDIR . $$SYMROOT`                    \
        !           286:          DSTROOT=$$DSTROOT;                                            \
        !           287:        ${MAKE} ${@:.kernel=}                                           \
        !           288:          OBJROOT=`relpath -d $$VERSDIR . $$OBJROOT`                    \
        !           289:          SYMROOT=`relpath -d $$VERSDIR . $$SYMROOT`                    \
        !           290:          DSTROOT=$$DSTROOT
        !           291: 
        !           292: tags.kernel: ALWAYS
        !           293:        ${MAKE} ARCH=$(ARCH) TYPE=$(TYPE) arch=`echo $(ARCH) | tr A-Z a-z` \
        !           294:          builddir OBJROOT=${OBJROOT} SYMROOT=${SYMROOT}
        !           295:        @CWD=`pwd`;                                                     \
        !           296:        cd ${OBJROOT}; OBJROOT=`pwd`; cd $$CWD;                         \
        !           297:        cd ${SYMROOT}; SYMROOT=`pwd`; cd $$CWD;                         \
        !           298:        cd ${VERSDIR}; VERSDIR=`pwd`; cd $$CWD;                         \
        !           299:        echo cd $(OBJROOT)/$(BUILD_DIR);                                \
        !           300:        cd $(OBJROOT)/$(BUILD_DIR);                                     \
        !           301:        echo ${MAKE} ${@:.kernel=}                                      \
        !           302:          OBJROOT=`relpath -d $$VERSDIR . $$OBJROOT`                    \
        !           303:          SYMROOT=`relpath -d $$VERSDIR . $$SYMROOT`;                   \
        !           304:        ${MAKE} ${@:.kernel=}                                           \
        !           305:          OBJROOT=`relpath -d $$VERSDIR . $$OBJROOT`                    \
        !           306:          SYMROOT=`relpath -d $$VERSDIR . $$SYMROOT`
        !           307: 
        !           308: mach_kernel.kernel: ALWAYS
        !           309:        ${MAKE} ARCH=$(ARCH) TYPE=$(TYPE) arch=`echo $(ARCH) | tr A-Z a-z` \
        !           310:          builddir OBJROOT=${OBJROOT} SYMROOT=${SYMROOT}
        !           311:        @CWD=`pwd`;                                                     \
        !           312:        cd ${OBJROOT}; OBJROOT=`pwd`; cd $$CWD;                         \
        !           313:        cd ${SYMROOT}; SYMROOT=`pwd`; cd $$CWD;                         \
        !           314:        cd ${VERSDIR}; VERSDIR=`pwd`; cd $$CWD;                         \
        !           315:        echo cd $(OBJROOT)/$(BUILD_DIR);                                \
        !           316:        cd $(OBJROOT)/$(BUILD_DIR);                                     \
        !           317:        echo ${MAKE} ${@:.kernel=}                                      \
        !           318:          OBJROOT=`relpath -d $$VERSDIR . $$OBJROOT`                    \
        !           319:          SYMROOT=`relpath -d $$VERSDIR . $$SYMROOT`;                   \
        !           320:        ${MAKE} ${@:.kernel=}                                           \
        !           321:          OBJROOT=`relpath -d $$VERSDIR . $$OBJROOT`                    \
        !           322:          SYMROOT=`relpath -d $$VERSDIR . $$SYMROOT`;                   \
        !           323:        if [ $(SYMROOT) != $(OBJROOT) ];                                \
        !           324:        then                                                            \
        !           325:                $(MKDIRS) $$SYMROOT;                                    \
        !           326:                echo cp mach_kernel.sys $$SYMROOT/mach_kernel.$(BUILD_DIR); \
        !           327:                cp mach_kernel.sys $$SYMROOT/mach_kernel.$(BUILD_DIR);  \
        !           328:        fi
        !           329: 
        !           330: boot: ALWAYS
        !           331:        ${MAKE} ARCH=$(ARCH) TYPE=$(TYPE) arch=`echo $(ARCH) | tr A-Z a-z` \
        !           332:          builddir OBJROOT=${OBJROOT} SYMROOT=${SYMROOT}
        !           333:        @CWD=`pwd`;                                                     \
        !           334:        cd ${OBJROOT}; OBJROOT=`pwd`; cd $$CWD;                         \
        !           335:        cd ${SYMROOT}; SYMROOT=`pwd`; cd $$CWD;                         \
        !           336:        cd ${VERSDIR}; VERSDIR=`pwd`; cd $$CWD;                         \
        !           337:        echo cd $(OBJROOT)/$(BUILD_DIR);                                \
        !           338:        cd $(OBJROOT)/$(BUILD_DIR);                                     \
        !           339:        echo ${MAKE} $@                                                 \
        !           340:          OBJROOT=`relpath -d $$VERSDIR . $$OBJROOT`                    \
        !           341:          SYMROOT=`relpath -d $$VERSDIR . $$SYMROOT`;                   \
        !           342:        ${MAKE} $@                                                      \
        !           343:          OBJROOT=`relpath -d $$VERSDIR . $$OBJROOT`                    \
        !           344:          SYMROOT=`relpath -d $$VERSDIR . $$SYMROOT`
        !           345: 
        !           346: #
        !           347: # Make sure the "build directory" for TYPE and ARCH exists
        !           348: # and the kernel is configured
        !           349: #
        !           350: builddir: $(OBJROOT)/$(BUILD_DIR)/Makefile
        !           351: 
        !           352: $(OBJROOT)/$(BUILD_DIR)/Makefile: MASTER MASTER.$(arch)                        \
        !           353:                Makefile.template Makefile.$(arch) files.$(arch) files
        !           354:        -rm -f $(OBJROOT)/$(BUILD_DIR) $(OBJROOT)/$(BUILD_DIR).old
        !           355:        -rm -f $(OBJROOT)/$(BUILD_DIR)/Makefile
        !           356:        $(OBJROOT)/doconf -c -cpu $(arch) -d $(OBJROOT) $(TYPE)
        !           357: 
        !           358: DSTROOT OBJROOT:       ALWAYS
        !           359:        @if [ -n "${$@}" ];                                             \
        !           360:        then                                                            \
        !           361:                exit 0;                                                 \
        !           362:        else                                                            \
        !           363:                echo Must define $@;                                    \
        !           364:                exit 1;                                                 \
        !           365:        fi
        !           366: 
        !           367: ALWAYS:
        !           368: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.