67 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			67 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| : README.build -- notes on the build process
 | |
| 
 | |
| The "Makefile" in this directory uses BSD make(1) syntax.  If you are
 | |
| trying to build this library on a platform that does not have a
 | |
| pre-built BSD compatible make(1), then you could try porting NetBSD's
 | |
| make(1).  NetBSD's make(1) is available at:
 | |
| 
 | |
|     http://www.crufty.net/help/sjg/bmake.html
 | |
| 
 | |
| 
 | |
| : Supporting cross builds
 | |
| 
 | |
| In the general case, libelf may be built for a target operating system
 | |
| and machine architecture that is different from the host operating
 | |
| system and machine architecture that the compilation is happening on.
 | |
| For example, compilation could be running on a Linux/i386 host, with
 | |
| target binaries being created for a NetBSD/sparc64 system.
 | |
| 
 | |
| To support cross building:
 | |
| - The top-level "Makefile" pulls in the appropriate make rules for the
 | |
|   target system.
 | |
| 
 | |
|   Inside of makefiles, we determine the target OS by looking at the
 | |
|   contents of the ${unix} make variable.  The top-level makefile then
 | |
|   includes any target specific makefiles if they exist.
 | |
| 
 | |
| - Operating systems differ in the names and locations of the headers
 | |
|   where their ELF types are defined.  They also differ in the set of
 | |
|   ELF types supported.
 | |
| 
 | |
|   Instead of relying on the host operating system to provide ELF related
 | |
|   types and symbols, we define these in header <common/elfdefinitions.h>.
 | |
| 
 | |
| - The file "_libelf_config.h" defines the 'native' architecture, byte order
 | |
|   and word size for libelf.
 | |
| 
 | |
| : OS Specific Configuration :
 | |
| 
 | |
| :: Debian ::
 | |
| 
 | |
| The following packages are needed for the build:
 | |
| - `build-essential'
 | |
| - `m4'
 | |
| - `freebsd-buildutils' or `freebsd5-buildutils'
 | |
| 
 | |
| You would need to use `freebsd-make' instead of GNU make to build
 | |
| the tools.  You would also need to place /usr/lib/freebsd in the
 | |
| shell's `PATH', preferably at the beginning.
 | |
| 
 | |
| :: FreeBSD ::
 | |
| 
 | |
| libelf should build out of the box on FreeBSD versions later than 6.0.
 | |
| 
 | |
| :: NetBSD ::
 | |
| 
 | |
| libelf should build out of the box on NetBSD versions later than 4.0.
 | |
| 
 | |
| :: Ubuntu ::
 | |
| 
 | |
| See the section on 'Debian' above.
 | |
| 
 | |
| 
 | |
| : Porting resources on the 'net
 | |
| 
 | |
| The 'predef' project [http://predef.sourceforge.net/] has a
 | |
| comprehensive list of CPP macros predefined by various OSes.
 | 
