Cross-Compiling on Unix
The purpose of cross-compiling is to build a Berkeley DB library on one platform that is to be used on a different platform. This section demonstrates how to build a library compatible with the ARM platform from a 32-bit x86 Linux platform. You will need to adjust the build tools and options to match your particular platforms.
Download, install, and test a toolchain that can build the desired target binaries. In this example, we use the
arm-linux-gnueabi-gccpackage.Decide on your configuration options, and set up your environment to use the appropriate compiler and compiler tools. It is often easiest to set this up as a small shell script. For example:
#!/bin/sh -f env \ CC=/usr/bin/arm-linux-gnueabi-gcc \ STRIP=/usr/bin/arm-linux-gnueabi-strip \ ../dist/configure \ --build=i686-pc-linux-gnu \ --host=arm-linux-gnueabi \ --enable-java \ --enable-sql \ --enable-jdbc \ --enable-smallbuild \ --enable-shared \ --enable-stripped_messages \ --prefix=$HOME/ARM-linux/install \ $*The
--buildflag indicates the system on which you are compiling and the--hostflag indicates the target platform. Adjust or omit the--enableand--prefixflag settings as dictated by your own needs.Unpack your Berkeley DB distribution and go to the
build_unixdirectory. Alternatively, you may create a more appropriately-named directory at the same level and build in it. For example,build_arm.In your build directory, configure by executing your script, then
makeandmake install. Review any compiler warnings and fix if necessary, repeating theconfigureandmakesteps until you are satisfied. The resulting libraries and executables can then be transferred to your target system.