Index: configure.ac ================================================================== --- configure.ac +++ configure.ac @@ -125,10 +125,36 @@ AC_MSG_RESULT(yes) ], [ AC_MSG_RESULT(no) OBJCFLAGS="$old_OBJCFLAGS" ]) + +AC_CHECK_TOOL(AR, ar) +AC_PROG_RANLIB +AC_ARG_ENABLE(shared, + AS_HELP_STRING([--disable-shared], [do not build shared library])) +AS_IF([test x"$enable_shared" != x"no"], [ + BUILDSYS_SHARED_LIB + AC_SUBST(OBJFW_SHARED_LIB, "${LIB_PREFIX}objfw${LIB_SUFFIX}") + AC_SUBST(EXCEPTIONS_LIB_A, "exceptions.lib.a") + AC_SUBST(EXCEPTIONS_EXCEPTIONS_LIB_A, "exceptions/exceptions.lib.a") +]) +AC_ARG_ENABLE(static, AS_HELP_STRING([--enable-static], [build static library])) +AS_IF([test x"$enable_static" = x"yes" -o x"$enable_shared" = x"no"], [ + AC_SUBST(OBJFW_STATIC_LIB, "libobjfw.a") + AC_SUBST(EXCEPTIONS_A, "exceptions.a") + AC_SUBST(EXCEPTIONS_EXCEPTIONS_A, "exceptions/exceptions.a") +]) + +AC_DEFINE_UNQUOTED(PLUGIN_SUFFIX, "$PLUGIN_SUFFIX", [Suffix for plugins]) +AS_IF([test x"$PLUGIN_SUFFIX" != x""], [ + AC_SUBST(OFPLUGIN_M, "OFPlugin.m") + AC_SUBST(OFPLUGINTESTS_M, "OFPluginTests.m") + AC_SUBST(TESTPLUGIN, "plugin") + AC_DEFINE(OF_PLUGINS, 1, [Whether we have plugin support]) + AC_SUBST(OFPLUGINS_DEF, "-DOF_PLUGINS") +]) objc_runtime="ObjFW runtime" AC_CHECK_HEADER(objc/objc.h) AC_MSG_CHECKING(which Objective C runtime to use) AS_IF([test x"$ac_cv_header_objc_objc_h" = x"yes"], [ @@ -150,10 +176,21 @@ "ObjFW runtime") AC_DEFINE(OF_OBJFW_RUNTIME, 1, [Whether we use the ObjFW runtime]) AC_SUBST(GNU_RUNTIME, "-fgnu-runtime") OBJCFLAGS="$OBJCFLAGS -fgnu-runtime" + + AC_SUBST(RUNTIME, "runtime") + if test x"$enable_shared" != x"no"; then + AC_SUBST(RUNTIME_LIB_A, "runtime.lib.a") + AC_SUBST(RUNTIME_RUNTIME_LIB_A, "runtime/runtime.lib.a") + fi + if test x"$enable_static" = x"yes" \ + -o x"$enable_shared" = x"no"; then + AC_SUBST(RUNTIME_A, "runtime.a") + AC_SUBST(RUNTIME_RUNTIME_A, "runtime/runtime.a") + fi ;; "Apple runtime") AC_DEFINE(OF_APPLE_RUNTIME, 1, [Whether we use the Apple ObjC runtime]) @@ -174,40 +211,10 @@ AC_CHECK_FUNC(objc_enumerationMutation, [ AC_DEFINE(HAVE_OBJC_ENUMERATIONMUTATION, 1, [Whether we have objc_enumerationMutation]) ]) -AC_CHECK_TOOL(AR, ar) -AC_PROG_RANLIB -AC_ARG_ENABLE(shared, - AS_HELP_STRING([--disable-shared], [do not build shared library])) -AS_IF([test x"$enable_shared" != x"no"], [ - BUILDSYS_SHARED_LIB - AC_SUBST(OBJFW_SHARED_LIB, "${LIB_PREFIX}objfw${LIB_SUFFIX}") - AC_SUBST(EXCEPTIONS_LIB_A, "exceptions.lib.a") - AC_SUBST(EXCEPTIONS_EXCEPTIONS_LIB_A, "exceptions/exceptions.lib.a") - AC_SUBST(RUNTIME_LIB_A, "runtime.lib.a") - AC_SUBST(RUNTIME_RUNTIME_LIB_A, "runtime/runtime.lib.a") -]) -AC_ARG_ENABLE(static, AS_HELP_STRING([--enable-static], [build static library])) -AS_IF([test x"$enable_static" = x"yes" -o x"$enable_shared" = x"no"], [ - AC_SUBST(OBJFW_STATIC_LIB, "libobjfw.a") - AC_SUBST(EXCEPTIONS_A, "exceptions.a") - AC_SUBST(EXCEPTIONS_EXCEPTIONS_A, "exceptions/exceptions.a") - AC_SUBST(RUNTIME_A, "runtime.a") - AC_SUBST(RUNTIME_RUNTIME_A, "runtime/runtime.a.") -]) - -AC_DEFINE_UNQUOTED(PLUGIN_SUFFIX, "$PLUGIN_SUFFIX", [Suffix for plugins]) -AS_IF([test x"$PLUGIN_SUFFIX" != x""], [ - AC_SUBST(OFPLUGIN_M, "OFPlugin.m") - AC_SUBST(OFPLUGINTESTS_M, "OFPluginTests.m") - AC_SUBST(TESTPLUGIN, "plugin") - AC_DEFINE(OF_PLUGINS, 1, [Whether we have plugin support]) - AC_SUBST(OFPLUGINS_DEF, "-DOF_PLUGINS") -]) - case "$host_os" in darwin*) AC_SUBST(REEXPORT_LIBOBJC, ["-Wl,-reexport-lobjc"]) AC_SUBST(LDFLAGS_REEXPORT, ["-Wl,-reexport-lobjfw"]) AC_SUBST(MACH_ALIAS_LIST, Index: extra.mk.in ================================================================== --- extra.mk.in +++ extra.mk.in @@ -24,13 +24,14 @@ OFSTREAMOBSERVER_SELECT_M = @OFSTREAMOBSERVER_SELECT_M@ OFTHREAD_M = @OFTHREAD_M@ OFTHREADTESTS_M = @OFTHREADTESTS_M@ PROPERTIESTESTS_M = @PROPERTIESTESTS_M@ REEXPORT_LIBOBJC = @REEXPORT_LIBOBJC@ +RUNTIME = @RUNTIME@ RUNTIME_A = @RUNTIME_A@ RUNTIME_RUNTIME_A = @RUNTIME_RUNTIME_A@ RUNTIME_RUNTIME_LIB_A = @RUNTIME_RUNTIME_LIB_A@ RUNTIME_LIB_A = @RUNTIME_LIB_A@ TESTPLUGIN = @TESTPLUGIN@ TESTS = @TESTS@ TEST_LAUNCHER = @TEST_LAUNCHER@ THREADING_H = @THREADING_H@ Index: src/Makefile ================================================================== --- src/Makefile +++ src/Makefile @@ -1,8 +1,8 @@ include ../extra.mk -SUBDIRS = exceptions runtime +SUBDIRS = exceptions ${RUNTIME} SHARED_LIB = ${OBJFW_SHARED_LIB} STATIC_LIB = ${OBJFW_STATIC_LIB} LIB_MAJOR = ${OBJFW_LIB_MAJOR} LIB_MINOR = ${OBJFW_LIB_MINOR}