AC_INIT(Source/NSArray.m) # configure.in for GNU Objective-C library # Process this file with autoconf to produce a configure script. # # Copyright (C) 1993,1994, 1995, 1996, 1997 Free Software Foundation, Inc. # # Written by: Andrew Kachites McCallum # Dept. of Computer Science, U. of Rochester, Rochester, NY 14627 # # This file is part of the GNU Objective-C library. # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Library General Public # License as published by the Free Software Foundation; either # version 2 of the License, or (at your option) any later version. # # This library is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Library General Public License for more details. # # You should have received a copy of the GNU Library General Public # License along with this library; if not, write to the Free # Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111 USA #-------------------------------------------------------------------- # Use a .h file with #define's, instead of -D command-line switches #-------------------------------------------------------------------- AC_CONFIG_HEADER(Headers/gnustep/base/config.h) #-------------------------------------------------------------------- # Determine the host, build, and target systems #-------------------------------------------------------------------- AC_CANONICAL_SYSTEM #-------------------------------------------------------------------- # Find the compiler #-------------------------------------------------------------------- AC_PROG_CC AC_PROG_CPP AC_PATH_PROG(WHOAMI, whoami, echo, $PATH:/usr/ucb) #-------------------------------------------------------------------- # -pipe option for compiler #-------------------------------------------------------------------- PIPE='-pipe' AC_SUBST(PIPE) #-------------------------------------------------------------------- # Find out if we\'re using NeXT\'s compiler. # if yes: # add -cpp-traditional to CPP # if no: # include implementations of List, HashTable etc. #-------------------------------------------------------------------- AC_MSG_CHECKING(whether we are using NeXT's compiler) AC_TRY_CPP([#include "$srcdir/config/config.nextcc.h"], NeXTCC=0, NeXTCC=1) # Was using this too: -o `basename $CC` = "gcc" -o `basename $CC` = "xgcc" if test $NeXTCC = 0; then AC_MSG_RESULT(no) #---------------------------------------------------------------- # Find out if nested functions work on this machine #---------------------------------------------------------------- AC_MSG_CHECKING(whether nested functions work) AC_TRY_RUN([#include "$srcdir/config/config.nested.c"], gcc_nested=1, gcc_nested=0, gcc_nested=1) if test $gcc_nested = 0; then AC_MSG_RESULT(no) echo echo "The GCC 'nested functions' feature does not seem to be working on" echo "this machine. " echo "Read the bug-report instructions in the GCC texinfo manual" echo "and submit a bug report." echo "I'm not even sure gstep-base uses nested functions anymore" echo "but if it does, gstep-base will not compile. Try it" echo "The program this configure script used to test nested functions" echo "can be found in the file 'config/config.nested.c' in this" echo "distribution. Under sparc-sun-sunos4.1.3 with gcc-2.6.1 the" echo "file compiles, runs and returns exit status 0." else AC_MSG_RESULT(yes) fi #---------------------------------------------------------------- # Find out if we're on a NEXTSTEP machine #---------------------------------------------------------------- AC_MSG_CHECKING(whether we are running under NEXTSTEP) AC_TRY_CPP([#if defined(NeXT) #error #endif], NeXTSTEP=0, NeXTSTEP=1) if test $NeXTSTEP = 0; then AC_MSG_RESULT(no) OBJS_INSTALL='$(GNU_OBJS) $(NEXTSTEP_OBJS) $(GNUSTEP_OBJS)' HEADERS_INSTALL='$(GNU_HEADERS) $(NEXTSTEP_HEADERS) $(GNUSTEP_HEADERS)' NEXT_INCLUDES='$(GNU_NEXT_INCLUDES)' NeXT_runtime=0 NeXT_cc=0 else AC_MSG_RESULT(yes) #---------------------------------------------------------------- # Find out if we are using NeXT or GNU runtime #---------------------------------------------------------------- saved_ac_ext=$ac_ext ac_ext=m AC_MSG_CHECKING(whether we are using GNU Objective C runtime) AC_TRY_LINK([#include "$srcdir/config/config.nextrt.m"], ;, NeXT_runtime=1, NeXT_runtime=0) ac_ext=$saved_ac_ext if test $NeXT_runtime = 1; then AC_MSG_RESULT(no: NeXT runtime) echo "Sorry GNUstep does not yet work with the NeXT runtime." echo "Type \"setenv CC gcc -fgnu-runtime\", and run ./configure again." echo "If you are interested in having GNUstep work with the NeXT" echo "runtime, contact Andrew McCallum ." AC_MSG_ERROR(Unsupported Objective C runtime.) # Not reached, for now... LIBOBJC='' CC="$CC -fnext-runtime" # Make sure that we get NeXTs objc/*.h files NEXT_INCLUDES='$(NEXT_NEXT_INCLUDES)' OBJS_INSTALL='$(GNU_OBJS)' HEADERS_INSTALL='$(GNU_HEADERS)' NeXT_cc=0 else AC_MSG_RESULT(yes) LIBOBJC='-lobjc' CC="$CC -fgnu-runtime" # Get objc/List.h, etc. files from this library. NEXT_INCLUDES='$(GNU_NEXT_INCLUDES)' OBJS_INSTALL='$(GNU_OBJS) $(NEXTSTEP_OBJS) $(GNUSTEP_OBJS)' HEADERS_INSTALL='$(GNU_HEADERS) $(NEXTSTEP_HEADERS) $(GNUSTEP_HEADERS)' NeXT_cc=0 fi fi else AC_MSG_RESULT(yes) AC_MSG_ERROR(Sorry, $(LIBRARY_NAME) does not currently work with NeXT's cc; use gcc) #---------------------------------------------------------------- # Find out if we have NEXTSTEP 3.2 or lower #---------------------------------------------------------------- AC_CHECKING(NEXTSTEP version) AC_TRY_CPP([#if NX_CURRENT_COMPILER_RELEASE < 320 #error #endif], NeXT32plus=1, NeXT32plus=0) if test $NeXT32plus = 0; then echo "aborting" echo echo "It looks like your compiler is NEXTSTEP 3.2 or earlier." echo "$(LIBRARY_NAME) makes extensive use of nested functions. In 3.2," echo "NeXT's cc did not support nested functions. To compile $(LIBRARY_NAME)" echo "you can either (1) use gcc instead of NeXT's cc (no loss, since" echo "gcc can compile AppKit programs without problems), or (2) upgrade" echo "to the later release of NEXTSTEP when it is available." exit fi OBJS_INSTALL='$(GNU_OBJS)' HEADERS_INSTALL='$(GNU_HEADERS)' LIBOBJC='' NeXT_runtime=1 NeXT_cc=1 # NeXT default cpp doesn't accept nested functions CC='cc -traditional-cpp' fi AC_SUBST(OBJS_INSTALL) AC_SUBST(HEADERS_INSTALL) AC_DEFINE_UNQUOTED(NeXT_runtime, $NeXT_runtime) AC_DEFINE_UNQUOTED(NeXT_cc, $NeXT_cc) AC_SUBST(NEXT_INCLUDES) #-------------------------------------------------------------------- # Check for alternate Objective-C libraries #-------------------------------------------------------------------- if test x$GNUSTEP_SYSTEM_ROOT != "x"; then gnustep_obj_dir=${target_cpu}/${target_os}/${ac_cv_library_combo} # May have a private version of libobj installed here if test -f $GNUSTEP_SYSTEM_ROOT/Headers/objc/objc.h; then CPPFLAGS="$CPPFLAGS -I$GNUSTEP_SYSTEM_ROOT/Headers" LDFLAGS="$LDFLAGS -L$GNUSTEP_SYSTEM_ROOT/Libraries/$gnustep_obj_dir" echo "Using Objective-C library from $GNUSTEP_SYSTEM_ROOT, if available" fi fi #-------------------------------------------------------------------- # Check if Objective-C is installed #-------------------------------------------------------------------- AC_MSG_CHECKING(for alternate objc library) AC_CACHE_VAL(gs_cv_objc_libdir, [dnl gs_cv_objc_libdir=NONE if test -f $GNUSTEP_SYSTEM_ROOT/Headers/objc/objc.h; then clean_target_os=`$GNUSTEP_SYSTEM_ROOT/Makefiles/clean_os.sh $target_os` clean_target_cpu=`$GNUSTEP_SYSTEM_ROOT/Makefiles/clean_cpu.sh $target_cpu` obj_dir=$clean_target_cpu/$clean_target_os/$ac_cv_library_combo if test -f $GNUSTEP_SYSTEM_ROOT/Libraries/$obj_dir/libobjc.a; then gs_cv_objc_libdir=$GNUSTEP_SYSTEM_ROOT/Libraries/$obj_dir else gs_cv_objc_libdir=NONE fi fi ]) AC_MSG_RESULT($gs_cv_objc_libdir) if test "$gs_cv_objc_libdir" != "NONE"; then CPPFLAGS="$CPPFLAGS -I$GNUSTEP_SYSTEM_ROOT/Headers/" LDFLAGS="$LDFLAGS -L$gs_cv_objc_libdir" fi AC_CHECK_HEADERS(objc/objc.h) if test $ac_cv_header_objc_objc_h = no; then echo "Could not find Objective-C headers" echo "Check to make sure you have a full installation of the GCC" echo "compiler that includes the Objective-C headers and libraries" AC_MSG_ERROR(Could not find Objective-C headers) fi #-------------------------------------------------------------------- # Check if libobjc was compiled with thread support. #-------------------------------------------------------------------- AC_MSG_CHECKING(whether objc has thread support) saved_LIBS="$LIBS" extra_LIBS="" case "${target_os}" in solaris*) extra_LIBS="-lposix4" ;; esac objc_thread_lib="" if test $host_os = linux-gnu; then LIBS="-lobjc -lpthread" AC_TRY_RUN([#include "config/config_thread.m"], objc_threaded="-lpthread", objc_threaded="", objc_threaded="-lpthread") if test x"$objc_threaded" = x""; then LIBS="-lobjc -lpcthread" AC_TRY_RUN([#include "config/config_thread.m"], objc_threaded="-lpcthread", objc_threaded="", objc_threaded="-lpcthread") fi elif test "`echo $host_os|sed 's/[[0-9]].*//'|sed s/elf//`" = freebsd; then LIBS="-pthread -lobjc" AC_TRY_RUN([#include "config/config_thread.m"], objc_threaded="-pthread", objc_threaded="", objc_threaded="-pthread") if test x"$objc_threaded" = x""; then LIBS="-lpthread -lobjc" AC_TRY_RUN([#include "config/config_thread.m"], objc_threaded="-lpthread", objc_threaded="", objc_threaded="-lpthread") fi if test x"$objc_threaded" = x""; then LIBS="-lobjc -lpcthread" AC_TRY_RUN([#include "config/config_thread.m"], objc_threaded="-lpcthread", objc_threaded="", objc_threaded="-lpcthread") fi else LIBS="-lobjc $LIBS $extra_LIBS" AC_TRY_RUN([#include "config/config_thread.m"], objc_threaded="-lthread", objc_threaded="", objc_threaded="-lthread") fi LIBS="$saved_LIBS" if test x"$objc_threaded" = x""; then AC_MSG_RESULT(no) else AC_MSG_RESULT(yes) fi ac_cv_objc_threaded=$objc_threaded AC_SUBST(objc_threaded) AC_SUBST(ac_cv_objc_threaded) #-------------------------------------------------------------------- # Byte order information needed for foundation headers. #-------------------------------------------------------------------- AC_C_BIGENDIAN if test $ac_cv_c_bigendian = yes; then GS_WORDS_BIGENDIAN=1 else GS_WORDS_BIGENDIAN=0 fi AC_SUBST(GS_WORDS_BIGENDIAN) #-------------------------------------------------------------------- # Type size information needed for foundation headers. #-------------------------------------------------------------------- AC_CHECK_SIZEOF(void*) GS_SINT8="signed char" GS_UINT8="unsigned char" AC_SUBST(GS_SINT8) AC_SUBST(GS_UINT8) AC_CHECK_SIZEOF(short) AC_SUBST(ac_cv_sizeof_short) AC_CHECK_SIZEOF(int) AC_SUBST(ac_cv_sizeof_int) AC_CHECK_SIZEOF(long) AC_SUBST(ac_cv_sizeof_long) AC_CHECK_SIZEOF(long long) AC_SUBST(ac_cv_sizeof_long_long) AC_CHECK_SIZEOF(float) AC_SUBST(ac_cv_sizeof_float) AC_CHECK_SIZEOF(double) AC_SUBST(ac_cv_sizeof_double) if test $ac_cv_sizeof_voidp = $ac_cv_sizeof_int; then GS_ADDR="unsigned int" else if test $ac_cv_sizeof_voidp = $ac_cv_sizeof_long; then GS_ADDR="unsigned long" else if test $ac_cv_sizeof_voidp = $ac_cv_sizeof_long_long; then GS_ADDR="unsigned long long" else echo "Unable to find integer of same size as void* - abort configuration" exit fi fi fi AC_SUBST(GS_ADDR) if test $ac_cv_sizeof_short = 2; then GS_SINT16="signed short" GS_UINT16="unsigned short" else if test $ac_cv_sizeof_int = 2; then GS_SINT16="signed int" GS_UINT16="unsigned int" else echo "Unable to determine type for 16-bit integer - abort configuration" exit fi fi AC_SUBST(GS_SINT16) AC_SUBST(GS_UINT16) if test $ac_cv_sizeof_int = 4; then GS_SINT32="signed int" GS_UINT32="unsigned int" else if test $ac_cv_sizeof_long = 4; then GS_SINT32="signed long" GS_UINT32="unsigned long" else if test $ac_cv_sizeof_short = 4; then GS_SINT32="signed short" GS_UINT32="unsigned short" else echo "Unable to determine type for 32-bit integer - abort configuration" exit fi fi fi AC_SUBST(GS_SINT32) AC_SUBST(GS_UINT32) GS_HAVE_I64=1 if test $ac_cv_sizeof_int = 8; then GS_SINT64="signed int" GS_UINT64="unsigned int" else if test $ac_cv_sizeof_long = 8; then GS_SINT64="signed long" GS_UINT64="unsigned long" else if test $ac_cv_sizeof_long_long = 8; then GS_SINT64="signed long long" GS_UINT64="unsigned long long" else # 64-bit ints not supported - but we need a dummy type for byte-swapping # of 64-bit values arriving from another system. GS_SINT64="struct { gsu8 a[8]; }" GS_SINT64="struct { gsu8 a[9]; }" GS_HAVE_I64=0 fi fi fi AC_SUBST(GS_SINT64) AC_SUBST(GS_UINT64) AC_SUBST(GS_HAVE_I64) GS_HAVE_I128=1 if test $ac_cv_sizeof_long = 16; then GS_SINT128="signed long" GS_UINT128="unsigned long" else if test $ac_cv_sizeof_long_long = 16; then GS_SINT128="signed long long" GS_UINT128="unsigned long long" else # 128-bit ints not supported - but we need a dummy type for byte-swapping # of 128-bit values arriving from another system. GS_SINT128="struct { gsu8 a[16]; }" GS_UINT128="struct { gsu8 a[16]; }" GS_HAVE_I128=0 fi fi AC_SUBST(GS_SINT128) AC_SUBST(GS_UINT128) AC_SUBST(GS_HAVE_I128) if test $ac_cv_sizeof_float = 4; then GS_FLT32="float" else echo "Unable to determine type for 32-bit float - abort configuration" exit fi AC_SUBST(GS_FLT32) if test $ac_cv_sizeof_double = 8; then GS_FLT64="double" else echo "Unable to determine type for 64-bit float - abort configuration" exit fi AC_SUBST(GS_FLT64) #-------------------------------------------------------------------- # Type-size information for encoding into archives using NSArchiver etc. #-------------------------------------------------------------------- if test $ac_cv_sizeof_short = 2; then _GSC_S_SHT=_GSC_I16 else _GSC_S_SHT=_GSC_I32 fi AC_SUBST(_GSC_S_SHT) if test $ac_cv_sizeof_int = 2; then _GSC_S_INT=_GSC_I16 else if test $ac_cv_sizeof_int = 4; then _GSC_S_INT=_GSC_I32 else if test $ac_cv_sizeof_int = 8; then _GSC_S_INT=_GSC_I64 else if test $ac_cv_sizeof_int = 16; then _GSC_S_INT=_GSC_I128 fi fi fi fi AC_SUBST(_GSC_S_INT) if test $ac_cv_sizeof_long = 4; then _GSC_S_LNG=_GSC_I32 else if test $ac_cv_sizeof_long = 8; then _GSC_S_LNG=_GSC_I64 else if test $ac_cv_sizeof_long = 16; then _GSC_S_LNG=_GSC_I128 fi fi fi AC_SUBST(_GSC_S_LNG) if test $ac_cv_sizeof_long_long = 4; then _GSC_S_LNG_LNG=_GSC_I32 else if test $ac_cv_sizeof_long_long = 8; then _GSC_S_LNG_LNG=_GSC_I64 else if test $ac_cv_sizeof_long_long = 16; then _GSC_S_LNG_LNG=_GSC_I128 fi fi fi AC_SUBST(_GSC_S_LNG_LNG) #-------------------------------------------------------------------- # Setup dynamic linking #-------------------------------------------------------------------- OBJC_SYS_DYNAMIC_LINKER() #--------------------------------------------------------------------- # Guess if we are using a compiler which has the (GNU extension) +load # method which is executed before main. # Defines HAVE_LOAD_METHOD if +load methods are called before main. # Needed by NSProcessInfo.m #-------------------------------------------------------------------- saved_LIBS="$LIBS" saved_CPPFLAGS="$CPPFLAGS" LIBS="$LIBS -lobjc" CPPFLAGS="$CPPFLAGS -x objective-c" if test x"$ac_cv_objc_threaded" != x""; then LIBS="$LIBS $ac_cv_objc_threaded" fi LIBS="$LIBS $extra_LIBS" AC_MSG_CHECKING(if +load method is executed before main) AC_CACHE_VAL(objc_load_method_worked, AC_TRY_RUN([#include "$srcdir/config/config.loadtest.m"], objc_load_method_worked=yes, objc_load_method_worked=no, objc_load_method_worked=no) ) if test $objc_load_method_worked = yes; then AC_DEFINE(HAVE_LOAD_METHOD) AC_MSG_RESULT(yes) else AC_MSG_RESULT(no) fi CPPFLAGS="$saved_CPPFLAGS" # Don't revert LIBS, need it for the next test #-------------------------------------------------------------------- # This function needed by NSLock.m for conditioned wait # get_uninstalled_dtable used by behavior.m and objc-load.m #-------------------------------------------------------------------- AC_CHECK_FUNCS(objc_condition_timedwait) AC_EGREP_HEADER(objc_get_uninstalled_dtable, objc/objc-api.h, AC_DEFINE(HAVE_OBJC_GET_UNINSTALLED_DTABLE),) LIBS="$saved_LIBS" #-------------------------------------------------------------------- # Generic settings needed by NSZone.m #-------------------------------------------------------------------- AC_TYPE_SIZE_T AC_C_INLINE #-------------------------------------------------------------------- # Following header checks needed for bzero in Storage.m and other places #-------------------------------------------------------------------- AC_HEADER_STDC AC_CHECK_HEADERS(string.h memory.h) #-------------------------------------------------------------------- # Following header check needed BinaryCStream.h #-------------------------------------------------------------------- AC_CHECK_HEADERS(values.h) #-------------------------------------------------------------------- # Header files and functions for files and filesystems #-------------------------------------------------------------------- AC_CHECK_HEADERS(sys/stat.h sys/vfs.h sys/statfs.h sys/statvfs.h pwd.h grp.h) AC_CHECK_HEADERS(sys/mount.h sys/types.h) AC_CHECK_FUNCS(statvfs) #-------------------------------------------------------------------- # These two headers (functions) needed by Time.m #-------------------------------------------------------------------- dnl AC_REPLACE_FUNCS(getrusage gettimeofday) AC_CHECK_HEADERS(sys/time.h sys/rusage.h ucbinclude/sys/resource.h) #-------------------------------------------------------------------- # These headers/functions needed by TcpPort.m #-------------------------------------------------------------------- AC_CHECK_HEADERS(sys/socket.h netinet/in.h) dnl AC_REPLACE_FUNCS(recvfrom) #-------------------------------------------------------------------- # These headers/functions needed by NSLog.m #-------------------------------------------------------------------- AC_CHECK_HEADERS(syslog.h) AC_CHECK_FUNCS(syslog) #-------------------------------------------------------------------- # This function needed by StdioStream.m #-------------------------------------------------------------------- AC_CHECK_FUNCS(vsprintf vasprintf) if test $ac_cv_func_vsprintf = yes ; then AC_TRY_RUN([#include "$srcdir/config/config.vsprintf.c"], VSPRINTF_RETURNS_LENGTH=1, VSPRINTF_RETURNS_LENGTH=0, VSPRINTF_RETURNS_LENGTH=1) AC_DEFINE_UNQUOTED(VSPRINTF_RETURNS_LENGTH, $VSPRINTF_RETURNS_LENGTH) fi if test $ac_cv_func_vasprintf = yes ; then AC_TRY_RUN([#include "$srcdir/config/config.vasprintf.c"], VASPRINTF_RETURNS_LENGTH=1, VASPRINTF_RETURNS_LENGTH=0, VASPRINTF_RETURNS_LENGTH=1) AC_DEFINE_UNQUOTED(VASPRINTF_RETURNS_LENGTH, $VASPRINTF_RETURNS_LENGTH) fi #-------------------------------------------------------------------- # This function needed by NSFileManager.m #-------------------------------------------------------------------- AC_CHECK_FUNCS(getcwd) AC_HEADER_DIRENT #-------------------------------------------------------------------- # This function needed by gdomap.c #-------------------------------------------------------------------- AC_CHECK_HEADERS(getopt.h) #-------------------------------------------------------------------- # This function needed by NSPage.m #-------------------------------------------------------------------- AC_CHECK_FUNCS(valloc) #-------------------------------------------------------------------- # This function needed by Time.m #-------------------------------------------------------------------- AC_CHECK_FUNCS(times) #-------------------------------------------------------------------- # These functions needed by NSData.m #-------------------------------------------------------------------- AC_CHECK_FUNCS(mkstemp) AC_CHECK_FUNCS(shmctl) AC_CHECK_FUNCS(mmap) AC_CHECK_FUNCS(mkstemp) #-------------------------------------------------------------------- # This function needed by UnixFileHandle.m #-------------------------------------------------------------------- AC_CHECK_FUNCS(inet_aton) #-------------------------------------------------------------------- # These functions needed by NSTask.m #-------------------------------------------------------------------- AC_CHECK_FUNCS(killpg setpgrp setpgid) AC_FUNC_SETPGRP #-------------------------------------------------------------------- # This function needed by NSThread.m #-------------------------------------------------------------------- AC_CHECK_FUNCS(usleep) #-------------------------------------------------------------------- # This function needed by NSDebug.m and NSProcessInfo.m #-------------------------------------------------------------------- AC_CHECK_FUNCS(strerror) #-------------------------------------------------------------------- # This function needed by NSString for handling of %@ printf directive. #-------------------------------------------------------------------- AC_CHECK_FUNC(register_printf_function, register_printf=1, register_printf=0) if test $register_printf = 1; then AC_TRY_RUN([#include "$srcdir/config/config.printf.c"], working_register_printf=1, working_register_printf=0, working_register_printf=1) if test $working_register_printf = 1; then AC_DEFINE(HAVE_REGISTER_PRINTF_FUNCTION) fi fi #-------------------------------------------------------------------- # This function needed by NSString. #-------------------------------------------------------------------- AC_CHECK_FUNCS(realpath) #-------------------------------------------------------------------- # Check if the C Library defines extern char *program_invocation_name # Used in critical cases by NSProcessInfo.m #-------------------------------------------------------------------- AC_MSG_CHECKING(program_invocation_name in C Library) AC_CACHE_VAL(program_invocation_name_worked, [AC_TRY_RUN([ #include int main (int argc, char *argv[]) { extern char *program_invocation_name; return (strcmp (program_invocation_name, argv[0])); } ], program_invocation_name_worked=yes, program_invocation_name_worked=no, program_invocation_name_worked=no)]) if test $program_invocation_name_worked = yes; then AC_DEFINE(HAVE_PROGRAM_INVOCATION_NAME) AC_MSG_RESULT(yes) else AC_MSG_RESULT(no) fi #-------------------------------------------------------------------- # Defines HAVE_PROC_FS if the kernel supports the /proc filesystem. # Needed by NSProcessInfo.m #-------------------------------------------------------------------- AC_MSG_CHECKING(kernel support for /proc filesystem) if (grep proc /etc/fstab >/dev/null 2>/dev/null); then sys_proc_fs=yes; AC_DEFINE(HAVE_PROC_FS) AC_MSG_RESULT(yes) # Solaris has proc, but for some reason the dir is not readable #elif (grep proc /etc/vfstab >/dev/null 2>/dev/null); then # sys_proc_fs=yes; # AC_DEFINE(HAVE_PROC_FS) # AC_MSG_RESULT(yes) else sys_proc_fs=no; AC_MSG_RESULT(no) fi # Linux (and others?) /proc contains a symlink to the executable # file from which the process loaded its code. This can be used # by NSBundle.m to locate the main bundle. sys_proc_fs_exe=no; if test $sys_proc_fs = yes; then AC_MSG_CHECKING(link to executable in /proc) if test -L /proc/self/exe; then sys_proc_fs_exe=yes; AC_MSG_RESULT(yes) else AC_MSG_RESULT(no) fi fi #-------------------------------------------------------------------- # Check if short and int values need to be word aligned #-------------------------------------------------------------------- AC_MSG_CHECKING(short/int needs to be word aligned) AC_TRY_RUN([#include "$srcdir/config/config.align.c"], NEED_WORD_ALIGNMENT=0, NEED_WORD_ALIGNMENT=1, NEED_WORD_ALIGNMENT=1) AC_DEFINE_UNQUOTED(NEED_WORD_ALIGNMENT, $NEED_WORD_ALIGNMENT) if test $NEED_WORD_ALIGNMENT = 1; then AC_MSG_RESULT(yes) else AC_MSG_RESULT(no) fi #-------------------------------------------------------------------- # Include redefinition of main () only if needed. # On some systems - force redefinition to be used as the /proc stuff # doesn't work. Allow NSProcessInfo initialization method also. #-------------------------------------------------------------------- AC_MSG_CHECKING("use of pass-through arguments") AC_ARG_ENABLE(pass-arguments, [ --enable-pass-arguments User main calls NSProcessInfo initialization],, enable_pass_arguments=no) case "$target_os" in cygnus*) enable_pass_arguments=yes;; esac if test "$enable_pass_arguments" = "yes"; then GS_PASS_ARGUMENTS=1 else GS_PASS_ARGUMENTS=0 fi AC_SUBST(GS_PASS_ARGUMENTS) AC_MSG_RESULT($enable_pass_arguments) AC_MSG_CHECKING("use of fake-main definition") AC_ARG_ENABLE(fake-main, [ --enable-fake-main Force use of redefine of the main function],, enable_fake_main=no) if test "$enable_pass_arguments" = "no"; then case "$target_os" in freebsd*) enable_fake_main=yes;; netbsd*) enable_fake_main=yes;; openbsd*) enable_fake_main=yes;; *sysv*) enable_fake_main=yes;; esac fi GS_FAKE_MAIN=0 if test "$enable_fake_main" = "yes"; then GS_FAKE_MAIN=1 elif test "$enable_pass_arguments" = "no"; then if test $objc_load_method_worked = yes -a $sys_proc_fs = yes; then GS_FAKE_MAIN=0 else GS_FAKE_MAIN=1 enable_fake_main=yes fi if test $sys_proc_fs_exe = yes; then AC_DEFINE(HAVE_PROC_FS_EXE_LINK) fi fi AC_SUBST(GS_FAKE_MAIN) AC_MSG_RESULT($enable_fake_main) #-------------------------------------------------------------------- # Check recent libxlm for GSDoc etc. #-------------------------------------------------------------------- echo "Checking for libxml" AC_CHECK_HEADERS(libxml/xmlversion.h) if test $ac_cv_header_libxml_xmlversion_h = no; then echo "Could not find libxml headers" echo "Check to make sure you have libxml version 2 or later installed" AC_MSG_WARN(Could not find libxml headers) HAVE_LIBXML=0 else AC_TRY_CPP([#include "libxml/xmlversion.h" #if LIBXML_VERSION < 20000 #error #endif], libxml2plus=1, libxml2plus=0) if test $libxml2plus = 0; then echo "libxml version older than 2.0.0" AC_MSG_WARN(libxml version older than 2.0.0) HAVE_LIBXML=0 else HAVE_LIBXML=1 fi fi AC_SUBST(HAVE_LIBXML) AC_SUBST(whole_archive) AC_SUBST(no_whole_archive) AC_CONFIG_SUBDIRS(Source/mframe) #-------------------------------------------------------------------- # Write the Makefiles #-------------------------------------------------------------------- AC_OUTPUT(config.mak Headers/gnustep/base/GSConfig.h) dnl Local Variables: dnl comment-start: "dnl " dnl comment-end: "" dnl comment-start-skip: "\\bdnl\\b\\s *" dnl compile-command: "autoconf" dnl End: