On 2014-01-29 05:10 +0000, Pierre Phaneuf wrote: > I've just set up a Makefile.am for a package I'm working on, and it's going > pretty well, but I've hit a snag with cross-compilation... > > This package installs a binary and a resource file. That resource file is > build with a special tool that is build by the Makefile.am. When I > cross-compile, it works well for the main binary (very easy, great job!), > but it builds the tool binary for the --host platform, rather than the > --build, so the resource file cannot be built.
Unfortunately, there is not really an ideal solution to this problem. Here's a few options, each with their own tradeoffs: - You can distribute your build tool(s) in a separate package, and require them to be installed by the user before building your main package. - You can rewrite the tool(s) in a language for which interpreters are available on the build machine (e.g., sh, awk). Then you can easily run them directly on the build machine. - Instead of building the resource file at build time, install its sources and any necessary tools so that it can be generated after installation (e.g., when your program is first run). - You could try something like the AX_CC_FOR_BUILD[1] macro in the autoconf archive to actually find a compiler for the build system. [1] http://git.savannah.gnu.org/cgit/autoconf-archive.git/tree/m4/ax_cc_for_build.m4?id=v2013.11.01 Cheers, -- Nick Bowler, Elliptic Technologies (http://www.elliptictech.com/)