--- ChangeLog | 7 + configure | 352 ++++++++++++++++++++++++++++++++++++++++++++++----- configure.ac | 34 ++--- 3 files changed, 341 insertions(+), 52 deletions(-)
diff --git a/ChangeLog b/ChangeLog index ed4f63d2..01eb3de4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2020-01-11 Ladislav Michl <[email protected]> + + * configure: + * configure.ac: + Remove hack to fake OBJCXX checks as autoconf-2.65 (first one + supporting Objective-C++) is over ten years old already. + 2019-10-29 Wolfgang Lux <[email protected]> * GNUmakefile.in: diff --git a/configure b/configure index d7a4bd82..ddce99dc 100755 --- a/configure +++ b/configure @@ -610,7 +610,6 @@ AUTO_DEPENDENCIES USE_OBJC_EXCEPTIONS OBJ_MERGE_CMD_FLAG USE_ARC -OBJCXX ac_cv_objc_threaded objc_threaded CLANG_CC @@ -695,6 +694,9 @@ cc_bundle cc_cppprecomp EGREP GREP +ac_ct_OBJCXX +OBJCXXFLAGS +OBJCXX ac_ct_CXX CXXFLAGS CXX @@ -739,6 +741,7 @@ infodir docdir oldincludedir includedir +runstatedir localstatedir sharedstatedir sysconfdir @@ -795,7 +798,9 @@ CPPFLAGS CPP CXX CXXFLAGS -CCC' +CCC +OBJCXX +OBJCXXFLAGS' # Initialize some variables set by options. @@ -834,6 +839,7 @@ datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' +runstatedir='${localstatedir}/run' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE}' @@ -1086,6 +1092,15 @@ do | -silent | --silent | --silen | --sile | --sil) silent=yes ;; + -runstatedir | --runstatedir | --runstatedi | --runstated \ + | --runstate | --runstat | --runsta | --runst | --runs \ + | --run | --ru | --r) + ac_prev=runstatedir ;; + -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \ + | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \ + | --run=* | --ru=* | --r=*) + runstatedir=$ac_optarg ;; + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ @@ -1223,7 +1238,7 @@ fi for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ - libdir localedir mandir + libdir localedir mandir runstatedir do eval ac_val=\$$ac_var # Remove trailing slashes. @@ -1376,6 +1391,7 @@ Fine tuning of the installation directories: --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] + --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] @@ -1657,6 +1673,8 @@ Some influential environment variables: CPP C preprocessor CXX C++ compiler command CXXFLAGS C++ compiler flags + OBJCXX Objective C++ compiler command + OBJCXXFLAGS Objective C++ compiler flags Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. @@ -1851,6 +1869,44 @@ fi } # ac_fn_cxx_try_compile +# ac_fn_objcxx_try_compile LINENO +# ------------------------------- +# Try to compile conftest.$ac_ext, and return whether this succeeded. +ac_fn_objcxx_try_compile () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + rm -f conftest.$ac_objext + if { { ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compile") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_objcxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_objcxx_try_compile + # ac_fn_c_try_run LINENO # ---------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. Assumes @@ -3692,10 +3748,258 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $ ac_compiler_gnu=$ac_cv_c_compiler_gnu -# Similarly for the ObjC++ compiler ... but only new versions of autoconf -# support it, so we pretend by using the C++ compiler -#AC_PROG_OBJCXX -OBJCXX="${CXX}" +# Similarly for the ObjC++ compiler... +ac_ext=mm +ac_cpp='$OBJCXXCPP $CPPFLAGS' +ac_compile='$OBJCXX -c $OBJCXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$OBJCXX -o conftest$ac_exeext $OBJCXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_objcxx_compiler_gnu +if test -n "$ac_tool_prefix"; then + for ac_prog in g++ objc++ objcxx c++ CXX + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_OBJCXX+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$OBJCXX"; then + ac_cv_prog_OBJCXX="$OBJCXX" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_OBJCXX="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +OBJCXX=$ac_cv_prog_OBJCXX +if test -n "$OBJCXX"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJCXX" >&5 +$as_echo "$OBJCXX" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$OBJCXX" && break + done +fi +if test -z "$OBJCXX"; then + ac_ct_OBJCXX=$OBJCXX + for ac_prog in g++ objc++ objcxx c++ CXX +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_OBJCXX+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_OBJCXX"; then + ac_cv_prog_ac_ct_OBJCXX="$ac_ct_OBJCXX" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_OBJCXX="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_OBJCXX=$ac_cv_prog_ac_ct_OBJCXX +if test -n "$ac_ct_OBJCXX"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJCXX" >&5 +$as_echo "$ac_ct_OBJCXX" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$ac_ct_OBJCXX" && break +done + + if test "x$ac_ct_OBJCXX" = x; then + OBJCXX="g++" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + OBJCXX=$ac_ct_OBJCXX + fi +fi + +# Provide some information about the compiler. +$as_echo "$as_me:${as_lineno-$LINENO}: checking for Objective C++ compiler version" >&5 +set X $ac_compile +ac_compiler=$2 +for ac_option in --version -v -V -qversion; do + { { ac_try="$ac_compiler $ac_option >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compiler $ac_option >&5") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + sed '10a\ +... rest of stderr output deleted ... + 10q' conftest.err >conftest.er1 + cat conftest.er1 >&5 + fi + rm -f conftest.er1 conftest.err + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } +done + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU Objective C++ compiler" >&5 +$as_echo_n "checking whether we are using the GNU Objective C++ compiler... " >&6; } +if ${ac_cv_objcxx_compiler_gnu+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ +#ifndef __GNUC__ + choke me +#endif + + ; + return 0; +} +_ACEOF +if ac_fn_objcxx_try_compile "$LINENO"; then : + ac_compiler_gnu=yes +else + ac_compiler_gnu=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +ac_cv_objcxx_compiler_gnu=$ac_compiler_gnu + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objcxx_compiler_gnu" >&5 +$as_echo "$ac_cv_objcxx_compiler_gnu" >&6; } +if test $ac_compiler_gnu = yes; then + GOBJCXX=yes +else + GOBJCXX= +fi +ac_test_OBJCXXFLAGS=${OBJCXXFLAGS+set} +ac_save_OBJCXXFLAGS=$OBJCXXFLAGS +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $OBJCXX accepts -g" >&5 +$as_echo_n "checking whether $OBJCXX accepts -g... " >&6; } +if ${ac_cv_prog_objcxx_g+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_save_objcxx_werror_flag=$ac_objcxx_werror_flag + ac_objcxx_werror_flag=yes + ac_cv_prog_objcxx_g=no + OBJCXXFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_objcxx_try_compile "$LINENO"; then : + ac_cv_prog_objcxx_g=yes +else + OBJCXXFLAGS="" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_objcxx_try_compile "$LINENO"; then : + +else + ac_objcxx_werror_flag=$ac_save_objcxx_werror_flag + OBJCXXFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_objcxx_try_compile "$LINENO"; then : + ac_cv_prog_objcxx_g=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_objcxx_werror_flag=$ac_save_objcx_werror_flag +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_objcxx_g" >&5 +$as_echo "$ac_cv_prog_objcxx_g" >&6; } +if test "$ac_test_OBJCXXFLAGS" = set; then + OBJCXXFLAGS=$ac_save_OBJCXXFLAGS +elif test $ac_cv_prog_objcxx_g = yes; then + if test "$GOBJCXX" = yes; then + OBJCXXFLAGS="-g -O2" + else + OBJCXXFLAGS="-g" + fi +else + if test "$GOBJCXX" = yes; then + OBJCXXFLAGS="-O2" + else + OBJCXXFLAGS= + fi +fi +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + # We may use egrep for some tests further down below { $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 @@ -5960,22 +6264,16 @@ ac_cv_objc_threaded="$objc_threaded" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether Objective-C++ is supported" >&5 $as_echo_n "checking whether Objective-C++ is supported... " >&6; } -# Only new autoconf supports ObjC++ so we use C++ instead for now -#AC_LANG_PUSH(Objective C++) -#OBJCXXFLAGS_saved="$OBJCXXFLAGS" -#OBJCXXFLAGS="$OBJCXXFLAGS -x objective-c++" -#OBJCXXPPFLAGS_saved="$OBJCXXPPFLAGS" -#OBJCXXPPFLAGS="$OBJCXXPPFLAGS -x objective-c++" -ac_ext=cpp -ac_cpp='$CXXCPP $CPPFLAGS' -ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_cxx_compiler_gnu +ac_ext=mm +ac_cpp='$OBJCXXCPP $CPPFLAGS' +ac_compile='$OBJCXX -c $OBJCXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$OBJCXX -o conftest$ac_exeext $OBJCXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_objcxx_compiler_gnu -CXXFLAGS_saved="$CXXFLAGS" -CXXFLAGS="$CXXFLAGS -x objective-c++" -CXXPPFLAGS_saved="$CXXPPFLAGS" -CXXPPFLAGS="$CXXPPFLAGS -x objective-c++" +OBJCXXFLAGS_saved="$OBJCXXFLAGS" +OBJCXXFLAGS="$OBJCXXFLAGS -x objective-c++" +OBJCXXPPFLAGS_saved="$OBJCXXPPFLAGS" +OBJCXXPPFLAGS="$OBJCXXPPFLAGS -x objective-c++" cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -6000,7 +6298,7 @@ main() } _ACEOF -if ac_fn_cxx_try_compile "$LINENO"; then : +if ac_fn_objcxx_try_compile "$LINENO"; then : objcc=yes else objcc=no @@ -6012,12 +6310,8 @@ if test x"$objcc" = x"no"; then OBJCXX= fi -# Only new autoconf supports ObjC++ so we use C++ instead for now -#OBJCXXFLAGS="$OBJCXXFLAGS_saved" -#OBJCXXPPFLAGS="$OBJCXXPPFLAGS_saved" -#AC_LANG_POP(Objective C++) -CXXFLAGS="$CXXFLAGS_saved" -CXXPPFLAGS="$CXXPPFLAGS_saved" +OBJCXXFLAGS="$OBJCXXFLAGS_saved" +OBJCXXPPFLAGS="$OBJCXXPPFLAGS_saved" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' diff --git a/configure.ac b/configure.ac index 773bf313..ad4b581c 100644 --- a/configure.ac +++ b/configure.ac @@ -21,7 +21,7 @@ # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. AC_INIT -AC_PREREQ(2.57) +AC_PREREQ(2.65) AC_CONFIG_SRCDIR([application.make]) # @@ -125,10 +125,8 @@ AC_PROG_CPP # compile/link C++ code. :-) AC_PROG_CXX -# Similarly for the ObjC++ compiler ... but only new versions of autoconf -# support it, so we pretend by using the C++ compiler -#AC_PROG_OBJCXX -OBJCXX="${CXX}" +# Similarly for the ObjC++ compiler... +AC_PROG_OBJCXX # We may use egrep for some tests further down below AC_PROG_EGREP @@ -1385,17 +1383,11 @@ AC_SUBST(ac_cv_objc_threaded) AC_MSG_CHECKING(whether Objective-C++ is supported) -# Only new autoconf supports ObjC++ so we use C++ instead for now -#AC_LANG_PUSH(Objective C++) -#OBJCXXFLAGS_saved="$OBJCXXFLAGS" -#OBJCXXFLAGS="$OBJCXXFLAGS -x objective-c++" -#OBJCXXPPFLAGS_saved="$OBJCXXPPFLAGS" -#OBJCXXPPFLAGS="$OBJCXXPPFLAGS -x objective-c++" -AC_LANG_PUSH(C++) -CXXFLAGS_saved="$CXXFLAGS" -CXXFLAGS="$CXXFLAGS -x objective-c++" -CXXPPFLAGS_saved="$CXXPPFLAGS" -CXXPPFLAGS="$CXXPPFLAGS -x objective-c++" +AC_LANG_PUSH(Objective C++) +OBJCXXFLAGS_saved="$OBJCXXFLAGS" +OBJCXXFLAGS="$OBJCXXFLAGS -x objective-c++" +OBJCXXPPFLAGS_saved="$OBJCXXPPFLAGS" +OBJCXXPPFLAGS="$OBJCXXPPFLAGS -x objective-c++" AC_COMPILE_IFELSE([AC_LANG_SOURCE([[ @@ -1421,13 +1413,9 @@ if test x"$objcc" = x"no"; then OBJCXX= fi AC_SUBST(OBJCXX) -# Only new autoconf supports ObjC++ so we use C++ instead for now -#OBJCXXFLAGS="$OBJCXXFLAGS_saved" -#OBJCXXPPFLAGS="$OBJCXXPPFLAGS_saved" -#AC_LANG_POP(Objective C++) -CXXFLAGS="$CXXFLAGS_saved" -CXXPPFLAGS="$CXXPPFLAGS_saved" -AC_LANG_POP(C++) +OBJCXXFLAGS="$OBJCXXFLAGS_saved" +OBJCXXPPFLAGS="$OBJCXXPPFLAGS_saved" +AC_LANG_POP(Objective C++) #-------------------------------------------------------------------- # Check if compiler supports -fobjc-arc, and if so, turn it on! -- 2.25.0.rc2
