Annotation of kernel/conf/Makefile, revision 1.1.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.