: 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 . - 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.