to test, checkout the source (let's assume /scratch/src/busybox), then mkdir /tmp/bb ; cd /tmp/bb make top_srcdir=/scratch/src/busybox O="$(pwd)" -f /scratch/src/busybox/Makefile allyesconfig check - default to O=$(pwd) if no O was specified. Now you can just specify the top_srcdir (without O=/somewhere) to create the obj-tree in pwd. - make "make configtarget buildtarget" work. Previously this didn't work due to how HAVE_DOT_CONFIG was evaluated. Two separate steps were needed before, e.g. make config ; make busybox. - remove some unneeded variables from Rules.mak (BB_SRC_DIR from Mr. ldoolitt@recycle.lbl) which suggest that the stuff fixed above didn't work before. - move selinux libraries to where they belong (from Makefile to Rules.mak) - update the docs to mention svn instead of cvs and provide an example for building out-of-tree in INSTALL.
		
			
				
	
	
		
			51 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			51 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| Building:
 | |
| =========
 | |
| 
 | |
| You will usually build in the source-tree.
 | |
| 
 | |
| Alternatively you can build out-of-tree to have the object files separated
 | |
| from the source. This allows for building several different configurations
 | |
| from the same set of sources.
 | |
| 
 | |
| A) Building in the source-tree:
 | |
| -------------------------------
 | |
| 
 | |
| 1) Run 'make config' or 'make menuconfig' and select the
 | |
|    functionality that you wish to enable.
 | |
| 
 | |
| 2) Run 'make'
 | |
| 
 | |
| 3) Run 'make install' or 'make PREFIX=/target install' to
 | |
|     install busybox and all the needed links.  Some people
 | |
|     will prefer to install using hardlinks and will instead
 | |
|     want to run 'make install-hardlinks'....
 | |
| 
 | |
| B) Building out-of-tree:
 | |
| ------------------------
 | |
| 
 | |
| 1) make the directory to hold the object files and chdir to it:
 | |
|    'mkdir /tmp/bb ; cd /tmp/bb'
 | |
|    Then prepare the config giving the full path to the source in top_srcdir:
 | |
|    make top_srcdir=/path/busybox -f /path/busybox/Makefile O=/tmp/b allyesconfig
 | |
|  
 | |
|    Note that O=$(pwd) is the default if no O= was specified.
 | |
| 
 | |
|    You now have a buildable tree in $O and can run 'make' without the need
 | |
|    to specify any paths.
 | |
| 
 | |
|    Proceed with step #A2 above.
 | |
| 
 | |
| 
 | |
| Installation:
 | |
| =============
 | |
| 
 | |
| After the build is complete, a busybox.links file is generated.  This is
 | |
| used by 'make install' to create symlinks to the BusyBox binary for all
 | |
| compiled in functions.  By default, 'make install' will place the symlink
 | |
| forest into `pwd`/_install unless you have defined the PREFIX environment
 | |
| variable (i.e., 'make PREFIX=/tmp/foo install')
 | |
| 
 | |
| If you wish to install hard links, rather than symlinks, you can use
 | |
| 'make PREFIX=/tmp/foo install-hardlinks' instead.
 | |
| 
 |