]> git.saurik.com Git - apple/xnu.git/blobdiff - README
xnu-3247.1.106.tar.gz
[apple/xnu.git] / README
diff --git a/README b/README
index 0ac97d20279ddbce99e6a3c2b7098839f5f46b2f..1294b6726f2fb316d8d94feb175bc84677d4ad3e 100644 (file)
--- a/README
+++ b/README
@@ -86,22 +86,22 @@ A. How to build XNU:
   produce different results. Each build alias supports the standard
   "clean", "install", "installsrc", "installhdrs" targets, but
   conditionalize their behavior on the RC_ProjectName make variable
   produce different results. Each build alias supports the standard
   "clean", "install", "installsrc", "installhdrs" targets, but
   conditionalize their behavior on the RC_ProjectName make variable
-  which is passed as the -project argument to ~rc/bin/buildit, which
+  which is passed as the -buildAlias argument to ~rc/bin/buildit, which
   can be one of:
 
   can be one of:
 
-  -project xnu          # the default, builds /mach_kernel, kernel-space
-                        # headers, user-space headers, man pages,
-                        # symbol-set kexts
+  -buildAlias xnu            # the default, builds /mach_kernel, kernel-space
+                             # headers, user-space headers, man pages,
+                             # symbol-set kexts
 
 
-  -project xnu_debug    # a DEBUG kernel in /AppleInternal with dSYM
+  -buildAlias xnu_debug      # a DEBUG kernel in /AppleInternal with dSYM
 
 
-  -project libkxld      # user-space version of kernel linker
+  -buildAlias libkxld        # user-space version of kernel linker
 
 
-  -project libkmod     # static library automatically linked into kexts
+  -buildAlias libkmod        # static library automatically linked into kexts
 
 
-  -project Libsyscall   # automatically generate BSD syscall stubs
+  -buildAlias Libsyscall     # automatically generate BSD syscall stubs
 
 
-  -project xnu_quick_test # install xnu unit tests
+  -buildAlias xnu_quick_test # install xnu unit tests
 
 
 
 
 
 
@@ -118,28 +118,40 @@ A. How to build XNU:
 
     $ make cscope      # this will build cscope database
 
 
     $ make cscope      # this will build cscope database
 
-8) Other makefile options
+8) Reindenting files
+
+  Source files can be reindented using clang-format setup in .clang-format. XNU follow a variant of WebKit style for source code formatting. Please refer to format styles at http://www.webkit.org/coding/coding-style.html. Further options about style options is available at http://clang.llvm.org/docs/ClangFormatStyleOptions.html
+
+  Note: clang-format binary may not be part of base installation. It can be compiled from llvm clang sources and is reachable in $PATH.
+
+  From the top directory, run:
+
+   $ make reindent      # reindent all source files using clang format.
+
+
+9) Other makefile options
 
    $ make MAKEJOBS=-j8    # this will use 8 processes during the build. The default is 2x the number of active CPUS.
    $ make -j8             # the standard command-line option is also accepted
 
    $ make -w              # trace recursive make invocations. Useful in combination with VERBOSE=YES
 
 
    $ make MAKEJOBS=-j8    # this will use 8 processes during the build. The default is 2x the number of active CPUS.
    $ make -j8             # the standard command-line option is also accepted
 
    $ make -w              # trace recursive make invocations. Useful in combination with VERBOSE=YES
 
-   $ make BUILD_LTO=1    # build with LLVM Link Time Optimization (experimental)
+   $ make BUILD_LTO=0    # build without LLVM Link Time Optimization
 
    $ make REMOTEBUILD=user@remotehost # perform build on remote host
 
 
    $ make REMOTEBUILD=user@remotehost # perform build on remote host
 
+   $ make BUILD_JSON_COMPILATION_DATABASE=1 # Build Clang JSON Compilation Database
+
 =============================================
 B. How to install a new header file from XNU
 
 =============================================
 B. How to install a new header file from XNU
 
-[Note: This does not cover installing header files in IOKit framework]
+[To install IOKit headers, see additional comments in iokit/IOKit/Makefile.]
 
 1) XNU installs header files at the following locations -
        a. $(DSTROOT)/System/Library/Frameworks/Kernel.framework/Headers
        b. $(DSTROOT)/System/Library/Frameworks/Kernel.framework/PrivateHeaders
 
 1) XNU installs header files at the following locations -
        a. $(DSTROOT)/System/Library/Frameworks/Kernel.framework/Headers
        b. $(DSTROOT)/System/Library/Frameworks/Kernel.framework/PrivateHeaders
-       c. $(DSTROOT)/System/Library/Frameworks/System.framework/Headers
+       c. $(DSTROOT)/usr/include/
        d. $(DSTROOT)/System/Library/Frameworks/System.framework/PrivateHeaders
        d. $(DSTROOT)/System/Library/Frameworks/System.framework/PrivateHeaders
-       e. $(DSTROOT)/usr/include/
 
        Kernel.framework is used by kernel extensions.  System.framework 
        and /usr/include are used by user level applications.  The header 
 
        Kernel.framework is used by kernel extensions.  System.framework 
        and /usr/include are used by user level applications.  The header 
@@ -156,9 +168,7 @@ B. How to install a new header file from XNU
    from each file list are -
 
    a. DATAFILES : To make header file available in user level -
    from each file list are -
 
    a. DATAFILES : To make header file available in user level -
-         $(DSTROOT)/System/Library/Frameworks/System.framework/Headers
-         $(DSTROOT)/System/Library/Frameworks/System.framework/PrivateHeaders
-         $(DSTROOT)/usr/include/
+         $(DSTROOT)/usr/include
 
    b. PRIVATE_DATAFILES : To make header file available to Apple internal in 
       user level -
 
    b. PRIVATE_DATAFILES : To make header file available to Apple internal in 
       user level -
@@ -179,20 +189,19 @@ B. How to install a new header file from XNU
    by adding the appropriate file lists.  The default install lists, its 
    member file lists and their default location are described below - 
 
    by adding the appropriate file lists.  The default install lists, its 
    member file lists and their default location are described below - 
 
-   a. INSTALL_MI_LIST : Installs header file to location that is available to 
+   a. INSTALL_MI_LIST : Installs header file to a location that is available to
       everyone in user level. 
       Locations -
       everyone in user level. 
       Locations -
-         $(DSTROOT)/System/Library/Frameworks/System.framework/Headers
-         $(DSTROOT)/usr/include/
+         $(DSTROOT)/usr/include
       Definition -
          INSTALL_MI_LIST = ${DATAFILES}
 
       Definition -
          INSTALL_MI_LIST = ${DATAFILES}
 
-   b. INSTALL_MI_LCL_LIST : Installs header file to location that is available
+   b. INSTALL_MI_LCL_LIST : Installs header file to location that is available
       for Apple internal in user level.
       Locations -
          $(DSTROOT)/System/Library/Frameworks/System.framework/PrivateHeaders
       Definition -
       for Apple internal in user level.
       Locations -
          $(DSTROOT)/System/Library/Frameworks/System.framework/PrivateHeaders
       Definition -
-         INSTALL_MI_LCL_LIST = ${DATAFILES} ${PRIVATE_DATAFILES}
+         INSTALL_MI_LCL_LIST = ${PRIVATE_DATAFILES}
 
    c. INSTALL_KF_MI_LIST : Installs header file to location that is available
       to everyone for kernel extensions.
 
    c. INSTALL_KF_MI_LIST : Installs header file to location that is available
       to everyone for kernel extensions.