@@ -30,21 +30,20 @@ AS_IF([test x"$OBJCFLAGS" != x""], [ OBJCFLAGS="$OBJCFLAGS -noixemul" ], [ OBJCFLAGS="-O0 -g -noixemul" ]) + OBJFW_OBJCFLAGS="$OBJFW_OBJCFLAGS -noixemul" LDFLAGS="$LDFLAGS -noixemul" enable_shared="no" enable_threads="no" enable_sockets="no" enable_files="yes" # Required for reading ENV: supports_amiga_lib="yes" ac_cv_snprintf_useful_ret="yes" - AC_SUBST(NOIXEMUL, -noixemul) - AS_IF([test x"$enable_amiga_lib" != x"no"], [ AC_SUBST(SFDC_TARGET, m68k-amigaos) dnl For 68000, GCC emits calls to helper functions that dnl do not work properly in a library. AC_SUBST(AMIGA_LIB_CFLAGS, "-mcpu=68020 -fbaserel") @@ -61,16 +60,15 @@ AS_IF([test x"$OBJCFLAGS" != x""], [ OBJCFLAGS="$OBJCFLAGS -noixemul" ], [ OBJCFLAGS="-O2 -g -noixemul" ]) + OBJFW_OBJCFLAGS="$OBJFW_OBJCFLAGS -noixemul" LDFLAGS="$LDFLAGS -noixemul" enable_files="yes" # Required for reading ENV: supports_amiga_lib="yes" - AC_SUBST(NOIXEMUL, -noixemul) - AS_IF([test x"$enable_amiga_lib" != x"no"], [ AC_SUBST(SFDC_TARGET, ppc-morphos) tmp="-mresident32 -fno-builtin" AC_SUBST(AMIGA_LIB_CFLAGS, $tmp) tmp="-mresident32 -nostartfiles -nodefaultlibs" @@ -102,10 +100,11 @@ AS_IF([test x"$OBJCFLAGS" != x""], [ OBJCFLAGS="$OBJCFLAGS -G0" ], [ OBJCFLAGS="-O2 -G0" ]) + OBJFW_OBJCFLAGS="$OBJFW_OBJCFLAGS -G0" CPPFLAGS="$CPPFLAGS -I$DEVKITPSP/psp/sdk/include" LDFLAGS="$LDFLAGS -G0" LIBS="$LIBS -L$DEVKITPSP/psp/sdk/lib -lpspdebug -lpspdisplay" LIBS="$LIBS -lpspge -lpspctrl -lpspsdk -lc -lpspnet" LIBS="$LIBS -lpspnet_inet -lpspnet_apctl -lpspnet_resolver" @@ -133,21 +132,22 @@ AS_IF([test x"$with_wii" = x"yes"], [ AS_IF([test x"$DEVKITPRO" = x""], [ AC_MSG_ERROR([DEVKITPRO is not set! Please set DEVKITPRO.]) ]) - OBJCFLAGS="$OBJCFLAGS -mrvl -mcpu=750 -meabi -mhard-float" + flags="-mrvl -mcpu=750 -meabi -mhard-float" + OBJCFLAGS="$OBJCFLAGS $flags" + OBJFW_OBJCFLAGS="$OBJFW_OBJCFLAGS $flags" CPPFLAGS="$CPPFLAGS -DGEKKO -I$DEVKITPRO/libogc/include" LDFLAGS="$LDFLAGS -mrvl -mcpu=750 -meabi -mhard-float" LIBS="$LIBS -L$DEVKITPRO/libogc/lib/wii -lfat -logc" TESTS_LIBS="$TESTS_LIBS -lwiiuse -lbte" enable_shared="no" enable_threads="no" # TODO AC_DEFINE(OF_WII, 1, [Whether we are compiling for Wii]) - AC_SUBST(DEFINES, "-DGEKKO") - AC_SUBST(INCLUDES, '-I$DEVKITPRO/libogc/include') + OBJFW_CPPFLAGS="$OBJFW_CPPFLAGS -DGEKKO -I\$DEVKITPRO/libogc/include" AC_SUBST(MAP_LDFLAGS, ['-Wl,-Map,$@.map']) ]) AC_ARG_WITH(nds, AS_HELP_STRING([--with-nds], [build for Nintendo DS])) @@ -154,12 +154,13 @@ AS_IF([test x"$with_nds" = x"yes"], [ AS_IF([test x"$DEVKITPRO" = x""], [ AC_MSG_ERROR([DEVKITPRO is not set! Please set DEVKITPRO.]) ]) - OBJCFLAGS="$OBJCFLAGS -march=armv5te -mtune=arm946e-s" - OBJCFLAGS="$OBJCFLAGS -mthumb -mthumb-interwork" + flags="-march=armv5te -mtune=arm946e-s -mthumb -mthumb-interwork" + OBJCFLAGS="$OBJCFLAGS $flags" + OBJFW_OBJCFLAGS="$OBJFW_OBJCFLAGS $flags" CPPFLAGS="$CPPFLAGS -DARM9 -I$DEVKITPRO/libnds/include" ASFLAGS="$ASFLAGS -march=armv5te" LDFLAGS="$LDFLAGS -specs=ds_arm9.specs" LIBS="$LIBS -L$DEVKITPRO/libnds/lib -lfilesystem -lfat -lnds9" enable_shared="no" @@ -166,12 +167,11 @@ enable_threads="no" # TODO enable_sockets="no" # TODO check_pedantic="no" AC_DEFINE(OF_NINTENDO_DS, 1, [Whether we are compiling for Nintendo DS]) - AC_SUBST(DEFINES, "-DARM9") - AC_SUBST(INCLUDES, '-I$DEVKITPRO/libnds/include') + OBJFW_CPPFLAGS="$OBJFW_CPPFLAGS -DARM9 -I\$DEVKITPRO/libnds/include" AC_SUBST(MAP_LDFLAGS, ['-Wl,-Map,$@.map']) ]) AC_ARG_WITH(3ds, AS_HELP_STRING([--with-3ds], [build for Nintendo 3DS])) @@ -178,12 +178,14 @@ AS_IF([test x"$with_3ds" = x"yes"], [ AS_IF([test x"$DEVKITPRO" = x""], [ AC_MSG_ERROR([DEVKITPRO is not set! Please set DEVKITPRO.]) ]) - OBJCFLAGS="$OBJCFLAGS -march=armv6k -mtune=mpcore -mfloat-abi=hard" - OBJCFLAGS="$OBJCFLAGS -mtp=soft -mword-relocations" + flags="-march=armv6k -mtune=mpcore -mfloat-abi=hard -mtp=soft" + flags="$flags -mword-relocations" + OBJCFLAGS="$OBJCFLAGS $flags" + OBJFW_OBJCFLAGS="$OBJFW_OBJCFLAGS $flags" CPPFLAGS="$CPPFLAGS -DARM11 -I$DEVKITPRO/libctru/include" ASFLAGS="$ASFLAGS -march=armv6k" LDFLAGS="$LDFLAGS -specs=3dsx.specs -march=armv6k -mtune=mpcore" LDFLAGS="$LDFLAGS -mfloat-abi=hard -mtp=soft -mword-relocations" LIBS="$LIBS -L$DEVKITPRO/libctru/lib -lctru" @@ -191,19 +193,20 @@ enable_threads="no" # TODO check_pedantic="no" AC_DEFINE(OF_NINTENDO_3DS, 1, [Whether we are compiling for Nintendo 3DS]) - AC_SUBST(DEFINES, "-DARM11") - AC_SUBST(INCLUDES, '-I$DEVKITPRO/libctru/include') + OBJFW_CPPFLAGS="$OBJFW_CPPFLAGS -DARM11 -I\$DEVKITPRO/libctru/include" AC_SUBST(MAP_LDFLAGS, ['-Wl,-Map,$@.map']) ]) CPP="$OBJCPP" CPPFLAGS="$CPPFLAGS $OBJCPPFLAGS -DOF_COMPILING_OBJFW" -OBJCFLAGS="$OBJCFLAGS -Wall -fexceptions -fobjc-exceptions -funwind-tables" -OBJCFLAGS="$OBJCFLAGS -fconstant-string-class=OFConstantString" +flags="-fexceptions -fobjc-exceptions -funwind-tables" +flags="$flags -fconstant-string-class=OFConstantString" +OBJCFLAGS="$OBJCFLAGS -Wall $flags" +OBJFW_OBJCFLAGS="$OBJFW_OBJCFLAGS $flags" dnl amiga-gcc requires -fexceptions in LDFLAGS in order to link in the glue code dnl for registering the frames. LDFLAGS="$LDFLAGS -fexceptions" case "$OBJC" in @@ -213,23 +216,25 @@ dnl as, however, Clang's integrated assembler doesn't dnl accept everything used in ObjFW's assembly files. dnl Therefore, use the integrated assembler for ObjC dnl files, but not for assembly files. mips*-*-*) - OBJCFLAGS="$OBJCFLAGS -integrated-as" - AC_SUBST(INTEGRATED_AS, "-integrated-as") + flag="-integrated-as" + OBJCFLAGS="$OBJCFLAGS $flag" + OBJFW_OBJCFLAGS="$OBJFW_OBJCFLAGS $flag" ;; dnl Clang's assembler on Windows is not complete yet dnl and cannot compile all .S files. *-*-mingw*) ASFLAGS="$ASFLAGS -no-integrated-as" ;; dnl Clang generates assembly output on SPARC64 that dnl OpenBSD's assembler does not accept. sparc64-*-*openbsd*) - OBJCFLAGS="$OBJCFLAGS -integrated-as" - AC_SUBST(INTEGRATED_AS, "-integrated-as") + flag="-integrated-as" + OBJCFLAGS="$OBJCFLAGS $flag" + OBJFW_OBJCFLAGS="$OBJFW_OBJCFLAGS $flag" ;; esac ;; esac @@ -245,12 +250,13 @@ ]) AX_CHECK_COMPILER_FLAGS(-pipe, [OBJCFLAGS="$OBJCFLAGS -pipe"]) AX_CHECK_COMPILER_FLAGS(-fno-common, [OBJCFLAGS="$OBJCFLAGS -fno-common"]) AX_CHECK_COMPILER_FLAGS(-Xclang -fno-constant-cfstrings, [ - OBJCFLAGS="$OBJCFLAGS -Xclang -fno-constant-cfstrings" - AC_SUBST(NO_CONST_CFSTRINGS, "-Xclang -fno-constant-cfstrings") + flag="-Xclang -fno-constant-cfstrings" + OBJCFLAGS="$OBJCFLAGS $flag" + OBJFW_OBJCFLAGS="$OBJFW_OBJCFLAGS $flag" ]) AX_CHECK_COMPILER_FLAGS([-Wsign-compare -Werror], [OBJCFLAGS="$OBJCFLAGS -Wsign-compare"]) AS_IF([test x"$with_nds" != x"yes"], [ AX_CHECK_COMPILER_FLAGS([-Wshadow -Werror], @@ -455,21 +461,22 @@ { } ], [ [Test test]; ], [ - RUNTIME_FLAGS="-Xclang -fobjc-runtime=objfw" + flag="-Xclang -fobjc-runtime=objfw" + OBJFW_OBJCFLAGS="$OBJFW_OBJCFLAGS $flag" AC_MSG_RESULT(yes) ], [ - RUNTIME_FLAGS="-fgnu-runtime" - OBJCFLAGS="$old_OBJCFLAGS -fgnu-runtime" + flag="-fgnu-runtime" + OBJCFLAGS="$old_OBJCFLAGS $flag" + OBJFW_OBJCFLAGS="$OBJFW_OBJCFLAGS $flag" AC_MSG_RESULT(no) old_compiler="yes" ]) AC_SUBST(RUNTIME, "runtime") - AC_SUBST(RUNTIME_FLAGS) AS_IF([test x"$enable_shared" != x"no"], [ AC_SUBST(OBJFW_RT_SHARED_LIB, "${LIB_PREFIX}objfw_rt${LIB_SUFFIX}") ]) @@ -1495,11 +1502,11 @@ OBJCFLAGS="$OBJCFLAGS -Xclang -fblocks" AC_TRY_COMPILE([], [ int (^foo)(int bar); foo = ^ (int bar) { return 0; } ], [ - AC_SUBST(BLOCKS_FLAGS, "-Xclang -fblocks") + OBJFW_OBJCFLAGS="$OBJFW_OBJCFLAGS -Xclang -fblocks" AC_SUBST(OFBLOCKTESTS_M, "OFBlockTests.m") AC_MSG_RESULT(yes) ], [ AC_MSG_RESULT(no) OBJCFLAGS="$old_OBJCFLAGS" @@ -1788,11 +1795,13 @@ dnl We use the ObjC compiler as our assembler AC_SUBST(AS, $OBJC) AC_SUBST(ASFLAGS) AC_SUBST(AS_DEPENDS, '${OBJC_DEPENDS}') -AC_SUBST(TESTS_OBJCFLAGS) +AC_SUBST(OBJFW_CPPFLAGS) +AC_SUBST(OBJFW_OBJCFLAGS) + AC_SUBST(TESTS_LIBS) AC_CONFIG_FILES([ buildsys.mk extra.mk