document MAKE_FLAGS and MAKE_VARS
[openwrt/staging/dedeckeh.git] / docs / build.tex
index 0449c08c73d3ab6db38d1d756ad2f99d3716f682..d5e9bb40f2d3b204e29ef1cea7904b2741b7224c 100644 (file)
@@ -96,7 +96,7 @@ kamikaze  packages
 $ ln -s packages/net/nmap kamikaze/package/nmap
 \end{Verbatim}
 
-To include all packages, issue the following command :
+To include all packages, issue the following command:
 
 \begin{Verbatim}
 $ ln -s packages/*/* kamikaze/package/
@@ -143,7 +143,15 @@ Similar to the linux kernel config, almost every option has three choices,
 \end{itemize}
 
 After you've finished with the menu configuration, exit and when prompted, save your
-configuration changes. To begin compiling the firmware, type "\texttt{make}". By default
+configuration changes.
+
+If you want, you can also modify the kernel config for the selected target system.
+simply run "\texttt{make kernel\_menuconfig}" and the build system will unpack the kernel sources
+(if necessary), run menuconfig inside of the kernel tree, and then copy the kernel config
+to \texttt{target/linux/\textit{<platform>}/config} so that it is preserved over
+"\texttt{make clean}" calls.
+
+To begin compiling the firmware, type "\texttt{make}". By default
 OpenWrt will only display a high level overview of the compile process and not each individual
 command.
 
@@ -291,7 +299,7 @@ directly as the Nth argument to \texttt{BuildPackage}.
         \item \texttt{SECTION} \\
             The type of package (currently unused)
         \item \texttt{CATEGORY} \\
-            Which menu it appears in menuconfig : Network, Sound, Utilities, Multimedia ...
+            Which menu it appears in menuconfig: Network, Sound, Utilities, Multimedia ...
         \item \texttt{TITLE} \\
             A short description of the package
         \item \texttt{URL} \\
@@ -299,7 +307,9 @@ directly as the Nth argument to \texttt{BuildPackage}.
         \item \texttt{MAINTAINER} (optional) \\
             Who to contact concerning the package
         \item \texttt{DEPENDS} (optional) \\
-            Which packages must be built/installed before this package. To reference a dependency defined in the same Makefile, use \textit{<dependency name>}. If defined as an external package, use \textit{+<dependency name>}. For a kernel version dependency use: \textit{@LINUX\_2\_<minor version>}
+            Which packages must be built/installed before this package. To reference a dependency defined in the
+                       same Makefile, use \textit{<dependency name>}. If defined as an external package, use 
+                       \textit{+<dependency name>}. For a kernel version dependency use: \textit{@LINUX\_2\_<minor version>}
     \end{itemize}
 
 \textbf{\texttt{Package/\textit{<name>}/conffiles} (optional):} \\
@@ -313,10 +323,29 @@ directly as the Nth argument to \texttt{BuildPackage}.
    You can leave this undefined if the source doesn't use configure or has a
    normal config script, otherwise you can put your own commands here or use
    "\texttt{\$(call Build/Configure/Default,\textit{<first list of arguments, second list>})}" as above to
-   pass in additional arguments for a standard configure script. The first list of arguments will be passed to the configure script like that : $--arg 1$ $--arg 2$. The second list contains arguments that should be defined before running the configure script such as autoconf or compiler specific variables.
+   pass in additional arguments for a standard configure script. The first list of arguments will be passed
+   to the configure script like that: \texttt{--arg 1} \texttt{--arg 2}. The second list contains arguments that should be
+   defined before running the configure script such as autoconf or compiler specific variables.
+   
+   To make it easier to modify the configure command line, you can either extend or completely override the following variables:
+   \begin{itemize}
+     \item \texttt{CONFIGURE\_ARGS} \\
+            Contains all command line arguments (format: \texttt{--arg 1} \texttt{--arg 2})
+     \item \texttt{CONFIGURE\_VARS} \\
+            Contains all environment variables that are passed to ./configure (format: \texttt{NAME="value"})
+   \end{itemize}
 
 \textbf{\texttt{Build/Compile} (optional):} \\
    How to compile the source; in most cases you should leave this undefined.
+   
+   As with \texttt{Build/Configure} there are two variables that allow you to override
+   the make command line environment variables and flags:
+   \begin{itemize}
+     \item \texttt{MAKE\_FLAGS} \\
+          Contains all command line arguments (typically variable overrides like \texttt{NAME="value"}
+        \item \texttt{MAKE\_VARS} \\
+          Contains all environment variables that are passed to the make command
+   \end{itemize}
 
 \textbf{\texttt{Package/\textit{<name>}/install}:} \\
    A set of commands to copy files out of the compiled source and into the ipkg