mirror of
https://github.com/gnustep/tools-make.git
synced 2025-04-23 22:33:28 +00:00
Simplify an reorganise GC changes
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/tools/make/trunk@27574 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
2cb8c7c2ea
commit
1d2ac39fe3
6 changed files with 82 additions and 166 deletions
|
@ -1,3 +1,12 @@
|
|||
2009-01-11 Richard Frith-Macdonald <rfm@gnu.org>
|
||||
|
||||
* configure.ac:
|
||||
* configure:
|
||||
* library-combo.make:
|
||||
* config.make.in:
|
||||
* common.make:
|
||||
Simplify GC changes.
|
||||
|
||||
2009-01-10 Richard Frith-Macdonald <rfm@gnu.org>
|
||||
|
||||
* configure.ac: Check for objc garbage collection.
|
||||
|
|
|
@ -582,6 +582,11 @@ ifeq ($(USE_OBJC_EXCEPTIONS), yes)
|
|||
INTERNAL_LDFLAGS += -shared-libgcc -fexceptions
|
||||
endif
|
||||
|
||||
# If we are using garbage collection we set a define to say so.
|
||||
ifeq ($(OBJC_WITH_GC), yes)
|
||||
OBJCFLAGS += -DGS_WITH_GC=1
|
||||
endif
|
||||
|
||||
#
|
||||
# Now decide whether to build shared objects or not. Nothing depending
|
||||
# on the value of the shared variable is allowed before this point!
|
||||
|
|
|
@ -170,7 +170,7 @@ USE_OBJC_EXCEPTIONS = @USE_OBJC_EXCEPTIONS@
|
|||
#
|
||||
# Whether we are using the ObjC garbage cllection library.
|
||||
#
|
||||
USE_OBJC_GC = @USE_OBJC_GC@
|
||||
OBJC_WITH_GC = @OBJC_WITH_GC@
|
||||
|
||||
#
|
||||
# Whether the compiler is GCC with precompiled header support
|
||||
|
|
172
configure
vendored
172
configure
vendored
|
@ -273,7 +273,7 @@ PACKAGE_BUGREPORT=
|
|||
|
||||
ac_unique_file="application.make"
|
||||
ac_default_prefix=NONE
|
||||
ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CPP CXX CXXFLAGS ac_ct_CXX build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os ac_cv_library_combo cc_cppprecomp cc_bundle CYGWIN RANLIB AR DLLTOOL ac_ct_RANLIB INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA LN_S TAR CHOWN GNUSTEP_MAKE_STRICT_V2_MODE GNUSTEP_ABSOLUTE_INSTALL_PATHS GNUSTEP_CONFIG_FILE GNUSTEP_USER_CONFIG_FILE GNUSTEP_USER_DEFAULTS_DIR GNUSTEP_MAKEFILES HOST_INSTALL GNUSTEP_FLATTENED GNUSTEP_IS_FLATTENED GNUSTEP_SYSTEM_APPS GNUSTEP_SYSTEM_ADMIN_APPS GNUSTEP_SYSTEM_WEB_APPS GNUSTEP_SYSTEM_TOOLS GNUSTEP_SYSTEM_ADMIN_TOOLS GNUSTEP_SYSTEM_LIBRARY GNUSTEP_SYSTEM_HEADERS GNUSTEP_SYSTEM_LIBRARIES GNUSTEP_SYSTEM_DOC GNUSTEP_SYSTEM_DOC_INFO GNUSTEP_SYSTEM_DOC_MAN GNUSTEP_NETWORK_APPS GNUSTEP_NETWORK_ADMIN_APPS GNUSTEP_NETWORK_WEB_APPS GNUSTEP_NETWORK_TOOLS GNUSTEP_NETWORK_ADMIN_TOOLS GNUSTEP_NETWORK_LIBRARY GNUSTEP_NETWORK_HEADERS GNUSTEP_NETWORK_LIBRARIES GNUSTEP_NETWORK_DOC GNUSTEP_NETWORK_DOC_INFO GNUSTEP_NETWORK_DOC_MAN GNUSTEP_LOCAL_APPS GNUSTEP_LOCAL_ADMIN_APPS GNUSTEP_LOCAL_WEB_APPS GNUSTEP_LOCAL_TOOLS GNUSTEP_LOCAL_ADMIN_TOOLS GNUSTEP_LOCAL_LIBRARY GNUSTEP_LOCAL_HEADERS GNUSTEP_LOCAL_LIBRARIES GNUSTEP_LOCAL_DOC GNUSTEP_LOCAL_DOC_INFO GNUSTEP_LOCAL_DOC_MAN GNUSTEP_USER_DIR_APPS GNUSTEP_USER_DIR_ADMIN_APPS GNUSTEP_USER_DIR_WEB_APPS GNUSTEP_USER_DIR_TOOLS GNUSTEP_USER_DIR_ADMIN_TOOLS GNUSTEP_USER_DIR_LIBRARY GNUSTEP_USER_DIR_HEADERS GNUSTEP_USER_DIR_LIBRARIES GNUSTEP_USER_DIR_DOC GNUSTEP_USER_DIR_DOC_INFO GNUSTEP_USER_DIR_DOC_MAN GNUSTEP_SYSTEM_USERS_DIR GNUSTEP_NETWORK_USERS_DIR GNUSTEP_LOCAL_USERS_DIR GNUSTEP_SYSTEM_ROOT GNUSTEP_NETWORK_ROOT GNUSTEP_LOCAL_ROOT GNUSTEP_USER_DIR GNUSTEP_MULTI_PLATFORM BACKEND_BUNDLE USE_OBJC_GC objc_threaded ac_cv_objc_threaded USE_OBJC_EXCEPTIONS AUTO_DEPENDENCIES GCC_WITH_PRECOMPILED_HEADERS SOLARIS_SHARED INCLUDES LIB_DIR OBJCFLAGS GNUMAKE MAKE_WITH_INFO_FUNCTION GNUSTEP_STRIP_MAKEFILES GNUSTEP_MAKE_VERSION GNUSTEP_MAKE_MAJOR_VERSION GNUSTEP_MAKE_MINOR_VERSION GNUSTEP_MAKE_SUBMINOR_VERSION clean_target_os clean_target_cpu clean_target_vendor LATEX2HTML LIBOBJS LTLIBOBJS'
|
||||
ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CPP CXX CXXFLAGS ac_ct_CXX build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os OBJC_WITH_GC ac_cv_library_combo cc_cppprecomp cc_bundle CYGWIN RANLIB AR DLLTOOL ac_ct_RANLIB INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA LN_S TAR CHOWN GNUSTEP_MAKE_STRICT_V2_MODE GNUSTEP_ABSOLUTE_INSTALL_PATHS GNUSTEP_CONFIG_FILE GNUSTEP_USER_CONFIG_FILE GNUSTEP_USER_DEFAULTS_DIR GNUSTEP_MAKEFILES HOST_INSTALL GNUSTEP_FLATTENED GNUSTEP_IS_FLATTENED GNUSTEP_SYSTEM_APPS GNUSTEP_SYSTEM_ADMIN_APPS GNUSTEP_SYSTEM_WEB_APPS GNUSTEP_SYSTEM_TOOLS GNUSTEP_SYSTEM_ADMIN_TOOLS GNUSTEP_SYSTEM_LIBRARY GNUSTEP_SYSTEM_HEADERS GNUSTEP_SYSTEM_LIBRARIES GNUSTEP_SYSTEM_DOC GNUSTEP_SYSTEM_DOC_INFO GNUSTEP_SYSTEM_DOC_MAN GNUSTEP_NETWORK_APPS GNUSTEP_NETWORK_ADMIN_APPS GNUSTEP_NETWORK_WEB_APPS GNUSTEP_NETWORK_TOOLS GNUSTEP_NETWORK_ADMIN_TOOLS GNUSTEP_NETWORK_LIBRARY GNUSTEP_NETWORK_HEADERS GNUSTEP_NETWORK_LIBRARIES GNUSTEP_NETWORK_DOC GNUSTEP_NETWORK_DOC_INFO GNUSTEP_NETWORK_DOC_MAN GNUSTEP_LOCAL_APPS GNUSTEP_LOCAL_ADMIN_APPS GNUSTEP_LOCAL_WEB_APPS GNUSTEP_LOCAL_TOOLS GNUSTEP_LOCAL_ADMIN_TOOLS GNUSTEP_LOCAL_LIBRARY GNUSTEP_LOCAL_HEADERS GNUSTEP_LOCAL_LIBRARIES GNUSTEP_LOCAL_DOC GNUSTEP_LOCAL_DOC_INFO GNUSTEP_LOCAL_DOC_MAN GNUSTEP_USER_DIR_APPS GNUSTEP_USER_DIR_ADMIN_APPS GNUSTEP_USER_DIR_WEB_APPS GNUSTEP_USER_DIR_TOOLS GNUSTEP_USER_DIR_ADMIN_TOOLS GNUSTEP_USER_DIR_LIBRARY GNUSTEP_USER_DIR_HEADERS GNUSTEP_USER_DIR_LIBRARIES GNUSTEP_USER_DIR_DOC GNUSTEP_USER_DIR_DOC_INFO GNUSTEP_USER_DIR_DOC_MAN GNUSTEP_SYSTEM_USERS_DIR GNUSTEP_NETWORK_USERS_DIR GNUSTEP_LOCAL_USERS_DIR GNUSTEP_SYSTEM_ROOT GNUSTEP_NETWORK_ROOT GNUSTEP_LOCAL_ROOT GNUSTEP_USER_DIR GNUSTEP_MULTI_PLATFORM BACKEND_BUNDLE objc_threaded ac_cv_objc_threaded USE_OBJC_EXCEPTIONS AUTO_DEPENDENCIES GCC_WITH_PRECOMPILED_HEADERS SOLARIS_SHARED INCLUDES LIB_DIR OBJCFLAGS GNUMAKE MAKE_WITH_INFO_FUNCTION GNUSTEP_STRIP_MAKEFILES GNUSTEP_MAKE_VERSION GNUSTEP_MAKE_MAJOR_VERSION GNUSTEP_MAKE_MINOR_VERSION GNUSTEP_MAKE_SUBMINOR_VERSION clean_target_os clean_target_cpu clean_target_vendor LATEX2HTML LIBOBJS LTLIBOBJS'
|
||||
ac_subst_files=''
|
||||
|
||||
# Initialize some variables set by options.
|
||||
|
@ -818,6 +818,11 @@ Optional Features:
|
|||
--disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
|
||||
--enable-FEATURE[=ARG] include FEATURE [ARG=yes]
|
||||
|
||||
--enable-objc-garbage-collection
|
||||
Use objc garbage collection. Use this option if you want
|
||||
to use garbage collection for objective-c software.
|
||||
|
||||
|
||||
--enable-strict-v2-mode
|
||||
Enable strict gnustep-make version 2 mode by default. Use this
|
||||
option to have gnustep-make be aggressively backwards-incompatible
|
||||
|
@ -892,11 +897,6 @@ Optional Features:
|
|||
not supported / does not work on your machine.
|
||||
|
||||
|
||||
--enable-objc-garbage-collection
|
||||
Use objc garbage collection. Use this option if you want
|
||||
to use garbage collection for objective-c software.
|
||||
|
||||
|
||||
--enable-native-objc-exceptions
|
||||
Use native Objective-C exceptions. Use this option if you want
|
||||
to use the native Objective-C exception support (@try/@catch/@finally)
|
||||
|
@ -3121,6 +3121,27 @@ else
|
|||
|
||||
fi;
|
||||
|
||||
#--------------------------------------------------------------------
|
||||
# Check if objc should use garbage collection.
|
||||
#--------------------------------------------------------------------
|
||||
if test "gnugc"=`echo $ac_cv_library_combo|tr '-' ' '|awk '{print $1}'`; then
|
||||
gc=yes
|
||||
else
|
||||
gc=no
|
||||
fi
|
||||
# Check whether --enable-objc-garbage-collection or --disable-objc-garbage-collection was given.
|
||||
if test "${enable_objc_garbage_collection+set}" = set; then
|
||||
enableval="$enable_objc_garbage_collection"
|
||||
OBJC_WITH_GC=$enableval
|
||||
else
|
||||
OBJC_WITH_GC=$gc
|
||||
fi;
|
||||
|
||||
|
||||
if test "$OBJC_WITH_GC" = "yes"; then
|
||||
ac_cv_library_combo="gnugc-gnu-gnu"
|
||||
fi
|
||||
|
||||
if test "$ac_cv_library_combo" = "" -o "$ac_cv_library_combo" = "no"; then
|
||||
case "$host_os" in
|
||||
darwin*) ac_cv_library_combo=apple-apple-apple ;;
|
||||
|
@ -4644,144 +4665,24 @@ if test "$gs_cv_objc_libdir" != "NONE"; then
|
|||
export LD_LIBRARY_PATH
|
||||
fi
|
||||
|
||||
#--------------------------------------------------------------------
|
||||
# Check if libobjc has garbage collection.
|
||||
#--------------------------------------------------------------------
|
||||
|
||||
# Check whether --enable-objc-garbage-collection or --disable-objc-garbage-collection was given.
|
||||
if test "${enable_objc_garbage_collection+set}" = set; then
|
||||
enableval="$enable_objc_garbage_collection"
|
||||
USE_OBJC_GC=$enableval
|
||||
else
|
||||
USE_OBJC_GC=no
|
||||
fi;
|
||||
|
||||
OBJCRT=-lobjc
|
||||
|
||||
saved_CFLAGS="$CFLAGS"
|
||||
saved_LIBS="$LIBS"
|
||||
CFLAGS="$CFLAGS -x objective-c -I$srcdir $OBJC_CPPFLAGS $OBJC_LDFLAGS"
|
||||
if test "$OBJC_RUNTIME_LIB" = "gnu"; then
|
||||
CFLAGS="$CFLAGS -fgnu-runtime -DGNU_RUNTIME"
|
||||
OBJCRT="-lobjc"
|
||||
fi
|
||||
if test "$OBJC_RUNTIME_LIB" = "gnugc"; then
|
||||
CFLAGS="$CFLAGS -fgnu-runtime -DGNU_RUNTIME"
|
||||
OBJCRT="-lobjc -ldl -lgc"
|
||||
fi
|
||||
if test "$OBJC_RUNTIME_LIB" = "nx"; then
|
||||
CFLAGS="$CFLAGS -DNeXT_RUNTIME"
|
||||
OBJCRT="-lobjc"
|
||||
fi
|
||||
if test "$OBJC_RUNTIME_LIB" = "apple"; then
|
||||
CFLAGS="$CFLAGS -DAPPLE_RUNTIME"
|
||||
fi
|
||||
|
||||
|
||||
if test "$USE_OBJC_GC" = "yes"; then
|
||||
echo "$as_me:$LINENO: checking whether we should use ObjC garbage collection" >&5
|
||||
echo $ECHO_N "checking whether we should use ObjC garbage collection... $ECHO_C" >&6
|
||||
LIBS="-lobjc_gc -ldl"
|
||||
|
||||
echo "$as_me:$LINENO: checking for class_ivar_set_gcinvisible" >&5
|
||||
echo $ECHO_N "checking for class_ivar_set_gcinvisible... $ECHO_C" >&6
|
||||
if test "${ac_cv_func_class_ivar_set_gcinvisible+set}" = set; then
|
||||
echo $ECHO_N "(cached) $ECHO_C" >&6
|
||||
else
|
||||
cat >conftest.$ac_ext <<_ACEOF
|
||||
/* confdefs.h. */
|
||||
_ACEOF
|
||||
cat confdefs.h >>conftest.$ac_ext
|
||||
cat >>conftest.$ac_ext <<_ACEOF
|
||||
/* end confdefs.h. */
|
||||
/* Define class_ivar_set_gcinvisible to an innocuous variant, in case <limits.h> declares class_ivar_set_gcinvisible.
|
||||
For example, HP-UX 11i <limits.h> declares gettimeofday. */
|
||||
#define class_ivar_set_gcinvisible innocuous_class_ivar_set_gcinvisible
|
||||
|
||||
/* System header to define __stub macros and hopefully few prototypes,
|
||||
which can conflict with char class_ivar_set_gcinvisible (); below.
|
||||
Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
|
||||
<limits.h> exists even on freestanding compilers. */
|
||||
|
||||
#ifdef __STDC__
|
||||
# include <limits.h>
|
||||
#else
|
||||
# include <assert.h>
|
||||
#endif
|
||||
|
||||
#undef class_ivar_set_gcinvisible
|
||||
|
||||
/* Override any gcc2 internal prototype to avoid an error. */
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
{
|
||||
#endif
|
||||
/* We use char because int might match the return type of a gcc2
|
||||
builtin and then its argument prototype would still apply. */
|
||||
char class_ivar_set_gcinvisible ();
|
||||
/* The GNU C library defines this for functions which it implements
|
||||
to always fail with ENOSYS. Some functions are actually named
|
||||
something starting with __ and the normal name is an alias. */
|
||||
#if defined (__stub_class_ivar_set_gcinvisible) || defined (__stub___class_ivar_set_gcinvisible)
|
||||
choke me
|
||||
#else
|
||||
char (*f) () = class_ivar_set_gcinvisible;
|
||||
#endif
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
int
|
||||
main ()
|
||||
{
|
||||
return f != class_ivar_set_gcinvisible;
|
||||
;
|
||||
return 0;
|
||||
}
|
||||
_ACEOF
|
||||
rm -f conftest.$ac_objext conftest$ac_exeext
|
||||
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
|
||||
(eval $ac_link) 2>conftest.er1
|
||||
ac_status=$?
|
||||
grep -v '^ *+' conftest.er1 >conftest.err
|
||||
rm -f conftest.er1
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(exit $ac_status); } &&
|
||||
{ ac_try='test -z "$ac_c_werror_flag"
|
||||
|| test ! -s conftest.err'
|
||||
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
|
||||
(eval $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(exit $ac_status); }; } &&
|
||||
{ ac_try='test -s conftest$ac_exeext'
|
||||
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
|
||||
(eval $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(exit $ac_status); }; }; then
|
||||
ac_cv_func_class_ivar_set_gcinvisible=yes
|
||||
else
|
||||
echo "$as_me: failed program was:" >&5
|
||||
sed 's/^/| /' conftest.$ac_ext >&5
|
||||
|
||||
ac_cv_func_class_ivar_set_gcinvisible=no
|
||||
fi
|
||||
rm -f conftest.err conftest.$ac_objext \
|
||||
conftest$ac_exeext conftest.$ac_ext
|
||||
fi
|
||||
echo "$as_me:$LINENO: result: $ac_cv_func_class_ivar_set_gcinvisible" >&5
|
||||
echo "${ECHO_T}$ac_cv_func_class_ivar_set_gcinvisible" >&6
|
||||
if test $ac_cv_func_class_ivar_set_gcinvisible = yes; then
|
||||
gc_ok=yes
|
||||
else
|
||||
gc_ok=no
|
||||
fi
|
||||
|
||||
if test "$gc_ok" = yes; then
|
||||
OBJCRT="$LIBS"
|
||||
else
|
||||
{ echo "$as_me:$LINENO: Garbage collection was requested, but the library couldn't" >&5
|
||||
echo "$as_me: Garbage collection was requested, but the library couldn't" >&6;}
|
||||
{ echo "$as_me:$LINENO: be found." >&5
|
||||
echo "$as_me: be found." >&6;}
|
||||
USE_OBJC_GC=no
|
||||
fi
|
||||
OBJCRT="-lobjc"
|
||||
fi
|
||||
|
||||
|
||||
|
@ -4807,7 +4708,8 @@ echo "$as_me:$LINENO: checking whether objc has thread support" >&5
|
|||
echo $ECHO_N "checking whether objc has thread support... $ECHO_C" >&6
|
||||
if test "$OBJC_THREAD" != ""; then
|
||||
LIBS="$OBJCRT $LIBS $OBJC_THREAD"
|
||||
if test "$cross_compiling" = yes; then
|
||||
|
||||
if test "$cross_compiling" = yes; then
|
||||
objc_threaded=""
|
||||
else
|
||||
cat >conftest.$ac_ext <<_ACEOF
|
||||
|
@ -6359,6 +6261,7 @@ s,@target@,$target,;t t
|
|||
s,@target_cpu@,$target_cpu,;t t
|
||||
s,@target_vendor@,$target_vendor,;t t
|
||||
s,@target_os@,$target_os,;t t
|
||||
s,@OBJC_WITH_GC@,$OBJC_WITH_GC,;t t
|
||||
s,@ac_cv_library_combo@,$ac_cv_library_combo,;t t
|
||||
s,@cc_cppprecomp@,$cc_cppprecomp,;t t
|
||||
s,@cc_bundle@,$cc_bundle,;t t
|
||||
|
@ -6435,7 +6338,6 @@ s,@GNUSTEP_LOCAL_ROOT@,$GNUSTEP_LOCAL_ROOT,;t t
|
|||
s,@GNUSTEP_USER_DIR@,$GNUSTEP_USER_DIR,;t t
|
||||
s,@GNUSTEP_MULTI_PLATFORM@,$GNUSTEP_MULTI_PLATFORM,;t t
|
||||
s,@BACKEND_BUNDLE@,$BACKEND_BUNDLE,;t t
|
||||
s,@USE_OBJC_GC@,$USE_OBJC_GC,;t t
|
||||
s,@objc_threaded@,$objc_threaded,;t t
|
||||
s,@ac_cv_objc_threaded@,$ac_cv_objc_threaded,;t t
|
||||
s,@USE_OBJC_EXCEPTIONS@,$USE_OBJC_EXCEPTIONS,;t t
|
||||
|
|
56
configure.ac
56
configure.ac
|
@ -64,6 +64,27 @@ ac_cv_library_combo=$withval,
|
|||
ac_cv_library_combo=$ac_cv_library_combo
|
||||
)
|
||||
|
||||
#--------------------------------------------------------------------
|
||||
# Check if objc should use garbage collection.
|
||||
#--------------------------------------------------------------------
|
||||
if test "gnugc"=`echo $ac_cv_library_combo|tr '-' ' '|awk '{print $1}'`; then
|
||||
gc=yes
|
||||
else
|
||||
gc=no
|
||||
fi
|
||||
AC_ARG_ENABLE(objc-garbage-collection, [
|
||||
--enable-objc-garbage-collection
|
||||
Use objc garbage collection. Use this option if you want
|
||||
to use garbage collection for objective-c software.
|
||||
],
|
||||
OBJC_WITH_GC=$enableval,
|
||||
OBJC_WITH_GC=$gc)
|
||||
AC_SUBST(OBJC_WITH_GC)
|
||||
|
||||
if test "$OBJC_WITH_GC" = "yes"; then
|
||||
ac_cv_library_combo="gnugc-gnu-gnu"
|
||||
fi
|
||||
|
||||
if test "$ac_cv_library_combo" = "" -o "$ac_cv_library_combo" = "no"; then
|
||||
case "$host_os" in
|
||||
darwin*) ac_cv_library_combo=apple-apple-apple ;;
|
||||
|
@ -1063,48 +1084,27 @@ if test "$gs_cv_objc_libdir" != "NONE"; then
|
|||
export LD_LIBRARY_PATH
|
||||
fi
|
||||
|
||||
#--------------------------------------------------------------------
|
||||
# Check if libobjc has garbage collection.
|
||||
#--------------------------------------------------------------------
|
||||
|
||||
AC_ARG_ENABLE(objc-garbage-collection, [
|
||||
--enable-objc-garbage-collection
|
||||
Use objc garbage collection. Use this option if you want
|
||||
to use garbage collection for objective-c software.
|
||||
],
|
||||
USE_OBJC_GC=$enableval,
|
||||
USE_OBJC_GC=no)
|
||||
|
||||
OBJCRT=-lobjc
|
||||
|
||||
saved_CFLAGS="$CFLAGS"
|
||||
saved_LIBS="$LIBS"
|
||||
CFLAGS="$CFLAGS -x objective-c -I$srcdir $OBJC_CPPFLAGS $OBJC_LDFLAGS"
|
||||
if test "$OBJC_RUNTIME_LIB" = "gnu"; then
|
||||
CFLAGS="$CFLAGS -fgnu-runtime -DGNU_RUNTIME"
|
||||
OBJCRT="-lobjc"
|
||||
fi
|
||||
if test "$OBJC_RUNTIME_LIB" = "gnugc"; then
|
||||
CFLAGS="$CFLAGS -fgnu-runtime -DGNU_RUNTIME"
|
||||
OBJCRT="-lobjc -ldl -lgc"
|
||||
fi
|
||||
if test "$OBJC_RUNTIME_LIB" = "nx"; then
|
||||
CFLAGS="$CFLAGS -DNeXT_RUNTIME"
|
||||
OBJCRT="-lobjc"
|
||||
fi
|
||||
if test "$OBJC_RUNTIME_LIB" = "apple"; then
|
||||
CFLAGS="$CFLAGS -DAPPLE_RUNTIME"
|
||||
OBJCRT="-lobjc"
|
||||
fi
|
||||
|
||||
|
||||
if test "$USE_OBJC_GC" = "yes"; then
|
||||
AC_MSG_CHECKING(whether we should use ObjC garbage collection)
|
||||
LIBS="-lobjc_gc -ldl"
|
||||
AC_CHECK_FUNC(class_ivar_set_gcinvisible, gc_ok=yes, gc_ok=no)
|
||||
if test "$gc_ok" = yes; then
|
||||
OBJCRT="$LIBS"
|
||||
else
|
||||
AC_MSG_NOTICE([Garbage collection was requested, but the library couldn't])
|
||||
AC_MSG_NOTICE([be found.])
|
||||
USE_OBJC_GC=no
|
||||
fi
|
||||
fi
|
||||
AC_SUBST(USE_OBJC_GC)
|
||||
|
||||
#--------------------------------------------------------------------
|
||||
# Check if libobjc was compiled with thread support.
|
||||
#--------------------------------------------------------------------
|
||||
|
|
|
@ -101,9 +101,9 @@ endif
|
|||
ifeq ($(OBJC_RUNTIME_LIB), gnugc)
|
||||
OBJC_LDFLAGS =
|
||||
OBJC_LIB_DIR =
|
||||
OBJC_LIBS = -lobjc_gc -lgc
|
||||
OBJC_LIBS = -lobjc_gc -ldl -lgc
|
||||
RUNTIME_FLAG = -fgnu-runtime
|
||||
RUNTIME_DEFINE = -DGNU_RUNTIME=1 -DOBJC_WITH_GC=1
|
||||
RUNTIME_DEFINE = -DGNU_RUNTIME=1 -DGS_WITH_GC=1
|
||||
ifeq ($(debug),yes)
|
||||
RUNTIME_DEFINE += -DGC_DEBUG
|
||||
endif
|
||||
|
|
Loading…
Reference in a new issue