Annotation of XNU/readme, revision 1.1

1.1     ! root        1: How to build XNU:
        !             2: 
        !             3: 1. Install Beaker build environment:
        !             4: 
        !             5:  Install the DeveloperLibs, DeveloperTools, Local, and LocalLibs 
        !             6:  packages onto a Hera system from:
        !             7: 
        !             8:   /Net/osbuild/release/<latest Beaker>/System/Installation/Packages
        !             9: 
        !            10: IMPORTANT!!!!
        !            11: 
        !            12:        CHANGE THE DEFAULT INSTALL DIRECTORY TO /Local/Public/MacOSX
        !            13: 
        !            14: IF YOU DON'T DO THIS, YOU WILL NEED TO REINSTALL YOUR HERA SYSTEM!
        !            15: 
        !            16: When installing directly on Beaker, you do not need to do this.
        !            17: 
        !            18: 2. Build Setup:
        !            19: 
        !            20: 2.a. Setup your environment:
        !            21: 
        !            22:   Create and go  to your sandbox directory </sandbox/my_xnu>
        !            23: 
        !            24:   $ cd </sandbox/my_xnu>
        !            25: 
        !            26:   Extract the xnu project from cvs:
        !            27: 
        !            28:   $ cvs co -r<xnu-tag> xnu
        !            29: 
        !            30:   where <xnu-tag> must be replaced by the matching xnu tag for
        !            31:   the xnu project level.
        !            32: 
        !            33:   Go to the top directory in your XNU project.
        !            34: 
        !            35:   $ cd </sandbox/my_xnu>/xnu
        !            36: 
        !            37:   If you are running with sh, run the following command:
        !            38:     $ . SETUP/setup.sh
        !            39: 
        !            40:   If you are running with csh, run the following command:
        !            41:     % source SETUP/setup.csh
        !            42: 
        !            43:   This will define  NEXT_ROOT , DSTROOT, OBJROOT, SRCROOT, SYMROOT.
        !            44: 
        !            45: 2.b. Populate OBJROOT (Optional):
        !            46: 
        !            47:   Create a symlink in the root of your development and debug machines as 
        !            48:   follows:
        !            49: 
        !            50:   $ su
        !            51:   # ln -s /Network/Servers/humpty/Prebuilt /Prebuilt
        !            52: 
        !            53:   $ ./SETUP/seed_objroot <xnu-tag> [RELEASE,DEBUG]_[PPC,I366]
        !            54: 
        !            55: or
        !            56: 
        !            57:   $ ./SETUP/seed_objroot <xnu-tag>
        !            58: 
        !            59:   seed_objroot populates the OBJROOT with a prebuilt OBJROOT. The 
        !            60:   second argument specifies the configuration (RELEASE_PPC, DEBUG_PPC, etc).
        !            61:   If no configuration is specified, all the configurations will
        !            62:   be populated.
        !            63: 
        !            64:   You can also use it to duplicate an OBJROOT by setting PREBUILT_OBJROOT 
        !            65:   in your shell environment with your own OBJROOT reference (xnu-tag is
        !            66:   ignored then).
        !            67: 
        !            68: 3. Export the Component Header Files
        !            69: 
        !            70:   From the top directory, run:
        !            71: 
        !            72:   $ make exporthdrs
        !            73: 
        !            74:   This exports the component header files in the $OBJROOT/EXPORT_HDRS 
        !            75:   directory.
        !            76: 
        !            77: 4. Build all the Components
        !            78: 
        !            79:   From the top directory. run:
        !            80: 
        !            81:   $ make all
        !            82: 
        !            83:   This builds all the components for all architectures defined in 
        !            84:   ARCH_CONFIGS and for all kernel configurations defined in KERNEL_CONFIGS.
        !            85:   By default, ARCH_CONFIGS contains one architecture, the build machine 
        !            86:   architecture, and KERNEL_CONFIGS is set to build for RELEASE.
        !            87:   This will also create a bootable image, mach_kernel,  and a kernel binary 
        !            88:   with symbols, mach_kernel.sys.
        !            89: 
        !            90:   Example:
        !            91:     $(OBJROOT)/RELEASE_PPC/osfmk/RELEASE/osfmk.o: pre-linked object for osfmk component
        !            92:     $(OBJROOT)/RELEASE_PPC/mach_kernel: bootable image
        !            93: 
        !            94: 5. Building a Component
        !            95: 
        !            96:   From a component top directory:
        !            97: 
        !            98:     $make all
        !            99: 
        !           100:   This builds a component for all architectures defined in ARCH_CONFIGS 
        !           101:   and for all kernel configurations defined in KERNEL_CONFIGS. 
        !           102:   By default, ARCH_CONFIGS contains one architecture, the build machine 
        !           103:   architecture, and KERNEL_CONFIGS is set to build for RELEASE .
        !           104: 
        !           105:   WARNING: If a component header file has been modified, you will have to do 
        !           106:            the above procedures 3 and 4.
        !           107: 
        !           108:   Example:
        !           109:     $(OBJROOT)/RELEASE_PPC/osfmk/RELEASE/osfmk.o: pre-linked object for osfmk component
        !           110: 
        !           111:   From the component top directory:
        !           112: 
        !           113:     $make mach_kernel
        !           114: 
        !           115:   This includes your component in the bootable image, mach_kernel,  and 
        !           116:   in the kernel binary with symbols, mach_kernel.sys.
        !           117: 
        !           118: 6. Building DEBUG
        !           119: 
        !           120:   Define KERNEL_CONFIGS to DEBUG in your environment or when running a 
        !           121:   make command.  Then, apply procedures 4, 5
        !           122: 
        !           123:   $ make KERNEL_CONFIGS=DEBUG all
        !           124: 
        !           125:   or
        !           126: 
        !           127:   $ export KERNEL_CONFIGS=DEBUG
        !           128:   $ make all
        !           129: 
        !           130:   Example:
        !           131:     $(OBJROOT)/DEBUG_PPC/osfmk/DEBUG/osfmk.o: pre-linked object for osfmk component
        !           132:     $(OBJROOT)/DEBUG_PPC/mach_kernel: bootable image
        !           133: 
        !           134: 6. Building fat
        !           135: 
        !           136:   Define ARCH_CONFIGS in your environment or when running a make command.
        !           137:   Apply procedures 3, 4, 5
        !           138: 
        !           139:   $ make ARCH_CONFIGS="PPC I386" exporthdrs all
        !           140: 
        !           141:   or
        !           142: 
        !           143:   $ export ARCH_CONFIGS="PPC I386"
        !           144:   $ make exporthdrs all
        !           145: 
        !           146:   Optionally you may do the following and your NEXTROOT will be set to
        !           147:     /Local/Public/MacOSX automaticly.
        !           148: 
        !           149:     $ ~rc/bin/buildit . -arch ppc -arch i386 -noinstallsrc -nosum \
        !           150:                        -release Beaker
        !           151: 
        !           152: 7. Build check before integration
        !           153: 
        !           154:   Set NEXT_ROOT to /Local/Public/MacOSX (Default path for Mac OS X SDK)
        !           155: 
        !           156:   From the top directory, run:
        !           157: 
        !           158:     $ ~rc/bin/buildit . -arch ppc -arch i386 -noinstallsrc -nosum
        !           159: 
        !           160: 8. Creating tags and cscope
        !           161: 
        !           162:   Set up your build environment as per instructions in 2.a
        !           163: 
        !           164:   From the top directory, run:
        !           165: 
        !           166:     $ make tags                # this will build ctags and etags
        !           167: 
        !           168:     $ make cscope      # this will build cscope database
        !           169: 

unix.superglobalmegacorp.com

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