summaryrefslogtreecommitdiffstats
path: root/kBuild/doc/QuickReference-kBuild.txt
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--kBuild/doc/QuickReference-kBuild.txt276
1 files changed, 276 insertions, 0 deletions
diff --git a/kBuild/doc/QuickReference-kBuild.txt b/kBuild/doc/QuickReference-kBuild.txt
new file mode 100644
index 0000000..70079c1
--- /dev/null
+++ b/kBuild/doc/QuickReference-kBuild.txt
@@ -0,0 +1,276 @@
+
+kBuild Quick Reference
+======================
+
+This is an attempt at summarizing the magic of kBuild makefiles.
+
+
+The anatomy of a kBuild Makefile
+--------------------------------
+
+A typical makefile::
+
+ # $Id: QuickReference-kBuild.txt 2345 2009-04-19 23:47:42Z bird $
+ ## @file
+ # Makefile description.
+ #
+
+ #
+ # Copyright (c) year name
+ # License, disclaimer and other legal text.
+ #
+
+ SUB_DEPTH = ../..
+ include $(KBUILD_PATH)/subheader.kmk
+
+ #
+ # Include sub-makefiles.
+ #
+ include $(PATH_CURRENT)/subdir1/Makefile.kmk
+ include $(PATH_CURRENT)/subdir2/Makefile.kmk
+
+ #
+ # Global variables.
+ #
+ MYPREFIX_SOMETHING = or another
+
+ #
+ # Target lists.
+ #
+ DLLS += mydll
+ PROGRAMS += myprogs
+
+ #
+ # mydll - description.
+ #
+ mydll_TEMPLATE = MYDLL
+ mydll_SOURCES = mydll.c
+ mydll_SOURCES.win = $(mydll_0_OUTDIR)/mydll.def
+
+ #
+ # myprog - description.
+ #
+ myprog_TEMPLATE = MYPROG
+ myprog_SOURCES = myprog.c
+
+ #
+ # Custom rules (optional of course).
+ #
+ $$(mydll_0_OUTDIR)/mydll.def:
+ $(APPEND) -t $@ LIBRARY mydll.dll
+ $(APPEND) $@ EXPORTS
+ $(APPEND) $@ ' myfunction'
+
+ include $(FILE_KBUILD_SUB_FOOTER)
+
+
+Target lists
+------------
+
++-+-------------------+-------------------------------------------------------+
+|#| Name | Description |
++=+===================+=======================================================+
+|1| ``BLDPROGS`` | Build programs, targets the host platform. |
++-+-------------------+-------------------------------------------------------+
+|2| ``LIBRARIES`` | Libraries (not shared). |
++-+-------------------+-------------------------------------------------------+
+|3| ``IMPORT_LIBS`` | Import libraries or stub shared libraries. |
++-+-------------------+-------------------------------------------------------+
+|4| ``DLLS`` | DLLs, Shared Libraries, DYLIBs, etc. |
++-+-------------------+-------------------------------------------------------+
+|5| ``PROGRAMS`` | Executable programs. |
++-+-------------------+-------------------------------------------------------+
+|6| ``SYSMODS`` | System modules (kexts, kernel modules, drivers, etc). |
++-+-------------------+-------------------------------------------------------+
+|7| ``MISCBINS`` | Miscellanceous binaries like BIOS images and such. |
++-+-------------------+-------------------------------------------------------+
+|8| ``INSTALLS`` | Things to install. [1]_ |
++-+-------------------+-------------------------------------------------------+
+|9| ``FETCHES`` | Things to fetch. [1]_ |
++-+-------------------+-------------------------------------------------------+
+|a| ``OTHERS`` | List of targets made during the others pass. |
++-+-------------------+-------------------------------------------------------+
+
+
+Target properties
+-----------------
+
+The first column indicates the kind of property, S=Single, D=Deferred,
+Ar=Accumlate-Right and Al=Accumulate-Left.
+
+The third column should be cross referenced with the first column in the
+target list table above.
+
++--+-------------------+-------+----------------------------------------------+
+|K | Name | Which | Description |
++==+===================+=======+==============================================+
+|S | ``ARLIBSUFF`` | 2 | |
++--+-------------------+-------+----------------------------------------------+
+|S | ``ARTOOL`` | 2 | |
++--+-------------------+-------+----------------------------------------------+
+|S | ``ASOBJSUFF`` | 1-7 | |
++--+-------------------+-------+----------------------------------------------+
+|S | ``ASTOOL`` | 1-7 | |
++--+-------------------+-------+----------------------------------------------+
+|S | ``BINSUFF`` | 7 | |
++--+-------------------+-------+----------------------------------------------+
+|S | ``BLD_TRG`` | 1-7 | |
++--+-------------------+-------+----------------------------------------------+
+|S | ``BLD_TRG_ARCH`` | 1-7 | |
++--+-------------------+-------+----------------------------------------------+
+|S | ``BLD_TRG_CPU`` | 1-7 | |
++--+-------------------+-------+----------------------------------------------+
+|S | ``BLD_TYPE`` | 1-7 | |
++--+-------------------+-------+----------------------------------------------+
+|S | ``COBJSUFF`` | 1-7 | |
++--+-------------------+-------+----------------------------------------------+
+|S | ``CTOOL`` | 1-7 | |
++--+-------------------+-------+----------------------------------------------+
+|S | ``CXXOBJSUFF`` | 1-7 | |
++--+-------------------+-------+----------------------------------------------+
+|S | ``CXXTOOL`` | 1-7 | |
++--+-------------------+-------+----------------------------------------------+
+|S | ``DLLSUFF`` | 34 | |
++--+-------------------+-------+----------------------------------------------+
+|S | ``EXESUFF`` | 15 | |
++--+-------------------+-------+----------------------------------------------+
+|S | ``FETCHDIR`` | 9 | |
++--+-------------------+-------+----------------------------------------------+
+|S | ``FETCHTOOL`` | 9 | |
++--+-------------------+-------+----------------------------------------------+
+|S | ``GID`` | 1-7 | |
++--+-------------------+-------+----------------------------------------------+
+|S | ``INST`` | 1-9 | |
++--+-------------------+-------+----------------------------------------------+
+|S | ``LDTOOL`` | 13-7 | |
++--+-------------------+-------+----------------------------------------------+
+|S | ``LIBSUFF`` | 234 | |
++--+-------------------+-------+----------------------------------------------+
+|S | ``MODE`` | 1-7 | |
++--+-------------------+-------+----------------------------------------------+
+|S | ``NOINST`` | 1-8 | |
++--+-------------------+-------+----------------------------------------------+
+|S | ``OBJCOBJSUFF`` | 1-7 | |
++--+-------------------+-------+----------------------------------------------+
+|S | ``OBJCTOOL`` | 1-7 | |
++--+-------------------+-------+----------------------------------------------+
+|S | ``OBJSUFF`` | 1-7 | |
++--+-------------------+-------+----------------------------------------------+
+|S | ``PATCHTOOL`` | 9 | |
++--+-------------------+-------+----------------------------------------------+
+|S | ``RCOBJSUFF`` | 1-7 | |
++--+-------------------+-------+----------------------------------------------+
+|S | ``RCTOOL`` | 1-7 | |
++--+-------------------+-------+----------------------------------------------+
+|S | ``SYSSUFF`` | 6 | |
++--+-------------------+-------+----------------------------------------------+
+|S | ``TEMPLATE`` | 1-9 | |
++--+-------------------+-------+----------------------------------------------+
+|S | ``TOOL`` | 1-9 | |
++--+-------------------+-------+----------------------------------------------+
+|S | ``UID`` | 1-7 | |
++--+-------------------+-------+----------------------------------------------+
+|S | ``UNPACKTOOL`` | 9 | |
++--+-------------------+-------+----------------------------------------------+
+|D | ``INSTALLER`` | 1-8 | |
++--+-------------------+-------+----------------------------------------------+
+|D | ``INSTFUN`` | 1-8 | |
++--+-------------------+-------+----------------------------------------------+
+|D | ``NAME`` | 1-7 | |
++--+-------------------+-------+----------------------------------------------+
+|D | ``POST_CMDS`` | 1-7 | |
++--+-------------------+-------+----------------------------------------------+
+|D | ``PRE_CMDS`` | 1-7 | |
++--+-------------------+-------+----------------------------------------------+
+|D | ``SONAME`` | 13-7 | |
++--+-------------------+-------+----------------------------------------------+
+|Ar| ``ARFLAGS`` | 2 | |
++--+-------------------+-------+----------------------------------------------+
+|Ar| ``ASDEFS`` | 1-7 | |
++--+-------------------+-------+----------------------------------------------+
+|Ar| ``ASFLAGS`` | 1-7 | |
++--+-------------------+-------+----------------------------------------------+
+|Ar| ``CDEFS`` | 1-7 | |
++--+-------------------+-------+----------------------------------------------+
+|Ar| ``CFLAGS`` | 1-7 | |
++--+-------------------+-------+----------------------------------------------+
+|Ar| ``CXXDEFS`` | 1-7 | |
++--+-------------------+-------+----------------------------------------------+
+|Ar| ``CXXFLAGS`` | 1-7 | |
++--+-------------------+-------+----------------------------------------------+
+|Ar| ``DEFS`` | 1-7 | |
++--+-------------------+-------+----------------------------------------------+
+|Ar| ``DEPS`` | 1-8 | |
++--+-------------------+-------+----------------------------------------------+
+|Ar| ``FETCHFLAGS`` | 9 | |
++--+-------------------+-------+----------------------------------------------+
+|Ar| ``IDFLAGS`` | 1-7 | |
++--+-------------------+-------+----------------------------------------------+
+|Ar| ``IFDLAGS`` | 1-7 | |
++--+-------------------+-------+----------------------------------------------+
+|Ar| ``ISFLAGS`` | 1-7 | |
++--+-------------------+-------+----------------------------------------------+
+|Ar| ``LDFLAGS`` | 13-7 | |
++--+-------------------+-------+----------------------------------------------+
+|Ar| ``LNK_DEPS`` | 1-7 | |
++--+-------------------+-------+----------------------------------------------+
+|Ar| ``LNK_ORDERDEPS`` | 1-7 | |
++--+-------------------+-------+----------------------------------------------+
+|Ar| ``OBJCDEFS`` | 1-7 | |
++--+-------------------+-------+----------------------------------------------+
+|Ar| ``OBJCFLAGS`` | 1-7 | |
++--+-------------------+-------+----------------------------------------------+
+|Ar| ``ORDERDEPS`` | 1-8 | |
++--+-------------------+-------+----------------------------------------------+
+|Ar| ``PATCHFLAGS`` | 9 | |
++--+-------------------+-------+----------------------------------------------+
+|Ar| ``RCDEFS`` | 1-7 | |
++--+-------------------+-------+----------------------------------------------+
+|Ar| ``RCFLAGS`` | 1-7 | |
++--+-------------------+-------+----------------------------------------------+
+|Ar| ``UNPACKFLAGS`` | 9 | |
++--+-------------------+-------+----------------------------------------------+
+|Al| ``ASINCS`` | 1-7 | |
++--+-------------------+-------+----------------------------------------------+
+|Al| ``BLDDIRS`` | 1-7 | |
++--+-------------------+-------+----------------------------------------------+
+|Al| ``CINCS`` | 1-7 | |
++--+-------------------+-------+----------------------------------------------+
+|Al| ``CLEAN`` | 1-9 | |
++--+-------------------+-------+----------------------------------------------+
+|Al| ``CXXINCS`` | 1-7 | |
++--+-------------------+-------+----------------------------------------------+
+|Al| ``DIRS`` | 8 | |
++--+-------------------+-------+----------------------------------------------+
+|Al| ``INCS`` | 1-7 | |
++--+-------------------+-------+----------------------------------------------+
+|Al| ``INTERMEDIATES`` | 1-7 | |
++--+-------------------+-------+----------------------------------------------+
+|Al| ``LIBPATH`` | 13-7 | |
++--+-------------------+-------+----------------------------------------------+
+|Al| ``LIBS`` | 13-7 | |
++--+-------------------+-------+----------------------------------------------+
+|Al| ``OBJCINCS`` | 1-7 | |
++--+-------------------+-------+----------------------------------------------+
+|Al| ``RCINCS`` | 1-7 | |
++--+-------------------+-------+----------------------------------------------+
+|Al| ``SDKS`` | 1-7 | |
++--+-------------------+-------+----------------------------------------------+
+|Al| ``SOURCES`` | 1-9 | |
++--+-------------------+-------+----------------------------------------------+
+|Al| ``SRC_HANDLERS`` | 1-7 | |
++--+-------------------+-------+----------------------------------------------+
+|Al| ``USES`` | 1-7 | |
++--+-------------------+-------+----------------------------------------------+
+
+
+-----
+
+.. [1] Normally not one of the default passes.
+
+-----
+
+:Status: $Id: QuickReference-kBuild.txt 2345 2009-04-19 23:47:42Z bird $
+:Copyright: Copyright (c) 2009 knut st. osmundsen
+
+