diff --git a/README b/README index 31e249e..3b08c84 100644 --- a/README +++ b/README @@ -20,7 +20,7 @@ make it so Syn68k builds on a few more platforms than it did. There's still a lot of cruft that can be removed and still a bunch of gotchas that require special command line arguments to the configuration utility, but at least there are enough variants that can be built to -show that both big-endian (e.g., PPC) and little-endian (e.g. i386, x86_64), +show that both big-endian (e.g., PowerPC) and little-endian (e.g. i386, x86_64), 32-bit and 64-bit, native (i386-only) and non-native versions work. On i386 Fedora systems (tested on 9 and 11), this version of Syn68k @@ -51,9 +51,10 @@ currently have to override the cleanup script, since the stock script make make install -To compile syn68k on PPC Mac OS X (tested under 10.5.7), you must explicitly -request the non-native port (the default is to try to build the native -backend even on architectures where it's not supported--bad default!) +To compile syn68k on PowerPC Mac OS X (tested under 10.5.7), you must +explicitly request the non-native port (the default is to try to build +the native backend even on architectures where it's not supported--bad +default!) ./autogen.sh ./configure --disable-native diff --git a/TODO b/TODO index ac17fda..fde95e0 100644 --- a/TODO +++ b/TODO @@ -1,12 +1,15 @@ - --enable-native should only be present where it's available - and perhaps should default to whatever is fastest (e.g., I - believe it's faster to run native in 32-bit mode on an x86_64 - than it is to run non-native in 64-bit mode on an x86_64, although - I haven't yet timed them) + cleanup and optimize shouldn't be done via environment variables; + they should be done with AC_ARG_ENABLE and default to be turned on + on the architectures where they work (and should be made to work on + the architectures they support) only invoke the x86 cleanup & optimize when compiling for an x86 architecture + can probably write cleanup scripts for other architectures, + don't think it's worth doing optimize though (which may no + longer be a good idea w/ newer compilers) + Fix i486-cleanup.pl and i486-optimize.pl for all x86 targets (including Mac OS X) @@ -19,6 +22,9 @@ figure out *exactly* which options should be available via configure + Not sure what we should do with x86_64 machines; need to know more + about what the popular distributions do + Figure out exactly which variables Makefile.common.in sets, then get rid of Makefile.common.in diff --git a/configure.ac b/configure.ac index 59c3098..c328188 100644 --- a/configure.ac +++ b/configure.ac @@ -64,15 +64,26 @@ AC_SUBST(host_cpu_class) AC_ARG_ENABLE([native], AC_HELP_STRING([--enable-native], - [native or nonnative (default is native)]), - [var_native=$enable_native], [var_native=yes] ) -if test "$var_native" = "yes"; then + [recompile into x86 code (default enabled for x86)]), + [], [if test x$host_cpu_class = xi386; then + enable_native=yes + else + enable_native=no + fi]) + +AC_MSG_CHECKING([native support]) +if test x$enable_native = xyes; then + if test x$host_cpu_class != xi386; then + AC_MSG_ERROR([Can't build native on non-x86]) + fi HOST_NATIVE="native/i386" NONNATIVE="" else HOST_NATIVE="native/null" NONNATIVE="#define NONNATIVE" fi +AC_MSG_RESULT([$enable_native]) + AC_SUBST(NONNATIVE) AC_SUBST(HOST_NATIVE)