Hi, On 2008-08-17, we discussed what to write in INSTALL about the creation of multi-arch binaries on MacOS X. In [1] Peter O'Gorman wrote:
> For automake using projects --disable-dependency-tracking is also > necessary. I didn't want to believe it, because I could not reproduce any problem with texinfo-4.12. But now I reproduce the problem with a libunistring snapshot: $ ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" CPP="gcc -E" CXXCPP="g++ -E" $ make $ make check ... unictype/.deps/test-pr_bidi_common_separator.Po:30: *** missing separator. Stop. make: *** [check-recursive] Error 1 That .Po file contains Makefile dependencies with invalid syntax: unictype/test-pr_bidi_common_separator.o : \ \ unictype/test-pr_bidi_common_separator.c unictype/test-predicate-part1.h \ ../config.h ../lib/unictype.h ../lib/unitypes.h \ ../lib/unistring-stdint.h ../lib/stdint.h \ /usr/lib/gcc/powerpc-apple-darwin9/4.0.1/include/stdint.h \ /usr/include/sys/types.h /usr/include/sys/appleapiopts.h \ /usr/include/sys/cdefs.h /usr/include/machine/types.h \ /usr/include/ppc/types.h /usr/include/ppc/_types.h \ /usr/include/sys/_types.h /usr/include/machine/_types.h \ /usr/include/machine/endian.h /usr/include/ppc/endian.h \ /usr/include/sys/_endian.h /usr/include/sys/_structs.h \ /usr/lib/gcc/powerpc-apple-darwin9/4.0.1/include/limits.h \ /usr/lib/gcc/powerpc-apple-darwin9/4.0.1/include/syslimits.h \ /usr/include/limits.h /usr/include/machine/limits.h \ /usr/include/ppc/limits.h /usr/include/ppc/_limits.h \ /usr/include/sys/syslimits.h /usr/include/inttypes.h \ /usr/include/_types.h \ /usr/lib/gcc/powerpc-apple-darwin9/4.0.1/include/syslimits.h \ ../lib/unistring-stdbool.h \ /usr/lib/gcc/powerpc-apple-darwin9/4.0.1/include/stdbool.h \ /usr/lib/gcc/powerpc-apple-darwin9/4.0.1/include/stddef.h \ /usr/include/stdio.h ../lib/stdlib.h /usr/include/stdlib.h \ /usr/include/available.h /usr/include/sys/wait.h \ /usr/include/sys/signal.h /usr/include/machine/signal.h \ /usr/include/ppc/signal.h /usr/include/ppc/_structs.h \ /usr/include/machine/_structs.h /usr/include/mach/ppc/_structs.h \ /usr/include/sys/resource.h ../lib/alloca.h ../lib/string.h \ /usr/include/string.h unictype/test-predicate-part2.h lib/string.h \ /usr/include/string.h unictype/test-predicate-part2.h unictype/test-pr_bidi_common_separator.c : Maybe the problem occurs only with large packages that use libtool. In any case, the problem goes away by specifying --disable-dependency-tracking. I propose to enhance the recommendation: 2009-04-10 Bruno Haible <[email protected]> * doc/install.texi (Multiple Architectures): Recommend to use --disable-dependency-tracking. Suggested by Peter O'Gorman <[email protected]>. --- doc/install.texi.bak 2009-04-10 00:43:23.000000000 +0200 +++ doc/install.texi 2009-04-10 22:09:07.000000000 +0200 @@ -125,12 +125,14 @@ executables that work on multiple system types---known as @dfn{fat} or @dfn{universal} binaries---by specifying multiple @option{-arch} options to the compiler but only a single @option{-arch} option to the -preprocessor. Like this: +preprocessor. Also, automatic dependency tracking needs to be disabled +in this case. Like this: @example ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ - CPP="gcc -E" CXXCPP="g++ -E" + CPP="gcc -E" CXXCPP="g++ -E" \ + --disable-dependency-tracking @end example This is not guaranteed to produce working output in all cases, you may [1] http://lists.gnu.org/archive/html/autoconf/2008-08/msg00045.html
