# generated automatically by aclocal 1.7.2 -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002 # Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. dnl --------------------------------------------------------------------------- dnl Support macros for makefiles generated by BAKEFILE. dnl --------------------------------------------------------------------------- dnl Lots of compiler & linker detection code contained here was taken from dnl wxWindows configure.in script (see http://www.wxwindows.org) dnl --------------------------------------------------------------------------- dnl AC_BAKEFILE_GNUMAKE dnl dnl Detects GNU make dnl --------------------------------------------------------------------------- AC_DEFUN(AC_BAKEFILE_GNUMAKE, [ dnl does make support "-include" (only GNU make does AFAIK)? AC_CACHE_CHECK([if make is GNU make], wx_cv_prog_makeisgnu, [ if ( ${SHELL-sh} -c "${MAKE-make} --version" 2> /dev/null | egrep -s GNU > /dev/null); then bakefile_cv_prog_makeisgnu="yes" else bakefile_cv_prog_makeisgnu="no" fi ]) if test "x$bakefile_cv_prog_makeisgnu" = "xyes"; then IF_GNU_MAKE="" else IF_GNU_MAKE="#" fi AC_SUBST(IF_GNU_MAKE) ]) dnl --------------------------------------------------------------------------- dnl AC_BAKEFILE_PLATFORM dnl dnl Detects platform and sets PLATFORM_XXX variables accordingly dnl --------------------------------------------------------------------------- AC_DEFUN(AC_BAKEFILE_PLATFORM, [ PLATFORM_UNIX=0 PLATFORM_WIN32=0 PLATFORM_MSDOS=0 PLATFORM_MAC=0 PLATFORM_MACOSX=0 case "${host}" in *-*-cygwin* | *-*-mingw32* ) PLATFORM_WIN32=1 ;; *-pc-msdosdjgpp | *-pc-os2_emx | *-pc-os2-emx ) PLATFORM_MSDOS=1 ;; powerpc-*-darwin* ) PLATFORM_MAC=1 PLATFORM_MACOSX=1 ;; * ) PLATFORM_UNIX=1 ;; esac AC_SUBST(PLATFORM_UNIX) AC_SUBST(PLATFORM_WIN32) AC_SUBST(PLATFORM_MSDOS) AC_SUBST(PLATFORM_MAC) AC_SUBST(PLATFORM_MACOSX) ]) dnl --------------------------------------------------------------------------- dnl AC_BAKEFILE_SUFFIXES dnl dnl Detects shared various suffixes for shared libraries, libraries, programs, dnl plugins etc. dnl --------------------------------------------------------------------------- AC_DEFUN(AC_BAKEFILE_SUFFIXES, [ SO_SUFFIX="so" EXEEXT="" DLLPREFIX=lib case "${host}" in *-hp-hpux* ) SO_SUFFIX="sl" ;; *-*-aix* ) dnl quoting from dnl http://www-1.ibm.com/servers/esdd/articles/gnu.html: dnl Both archive libraries and shared libraries on AIX have an dnl .a extension. This will explain why you can't link with an dnl .so and why it works with the name changed to .a. SO_SUFFIX="a" ;; *-*-cygwin* | *-*-mingw32* ) SO_SUFFIX="dll" EXEEXT=".exe" DLLPREFIX="" ;; *-pc-msdosdjgpp | *-pc-os2_emx | *-pc-os2-emx ) EXEEXT=".exe" DLLPREFIX="" ;; powerpc-*-darwin* ) SO_SUFFIX="dylib" ;; esac AC_SUBST(SO_SUFFIX) AC_SUBST(EXEEXT) AC_SUBST(DLLPREFIX) ]) dnl --------------------------------------------------------------------------- dnl AC_BAKEFILE_SHARED_LD dnl dnl Detects command for making shared libraries, substitutes SHARED_LD_CC dnl and SHARED_LD_CXX. dnl --------------------------------------------------------------------------- AC_DEFUN(AC_BAKEFILE_SHARED_LD, [ dnl Defaults for GCC and ELF .so shared libs: SHARED_LD_CC="\$(CC) -shared -o" SHARED_LD_CXX="\$(CXX) -shared -o" dnl the extra compiler flags needed for compilation of shared library if test "x$GCC" = "xyes"; then dnl the switch for gcc is the same under all platforms PIC_FLAG="-fPIC" fi case "${host}" in *-hp-hpux* ) dnl default settings are good for gcc but not for the native HP-UX if test "x$GCC" = "xyes"; then dnl -o flag must be after PIC flag SHARED_LD_CC="${CC} -shared ${PIC_FLAG} -o" SHARED_LD_CXX="${CXX} -shared ${PIC_FLAG} -o" else dnl no idea why it wants it, but it does LDFLAGS="$LDFLAGS -L/usr/lib" SHARED_LD_CC="${CC} -b -o" SHARED_LD_CXX="${CXX} -b -o" PIC_FLAG="+Z" fi ;; *-*-linux* ) if test "x$GCC" != "xyes"; then AC_CACHE_CHECK([for Intel compiler], bakefile_cv_prog_icc, [ AC_TRY_COMPILE([], [ #ifndef __INTEL_COMPILER #error Not icc #endif ], bakefile_cv_prog_icc=yes, bakefile_cv_prog_icc=no ) ]) if test "$bakefile_cv_prog_icc" = "yes"; then PIC_FLAG="-KPIC" fi fi ;; *-*-solaris2* ) if test "x$GCC" != xyes ; then SHARED_LD_CC="${CC} -G -o" SHARED_LD_CXX="${CXX} -G -o" PIC_FLAG="-KPIC" fi ;; *-*-darwin* ) dnl For Unix to MacOS X porting instructions, see: dnl http://fink.sourceforge.net/doc/porting/porting.html CFLAGS="$CFLAGS -fno-common" CXXFLAGS="$CXXFLAGS -fno-common" dnl Most apps benefit from being fully binded (its faster and static dnl variables initialized at startup work). dnl This can be done either with the exe linker flag -Wl,-bind_at_load dnl or with a double stage link in order to create a single module dnl "-init _wxWindowsDylibInit" not useful with lazy linking solved cat <shared-ld-sh #!/bin/sh #----------------------------------------------------------------------------- #-- Name: distrib/mac/shared-ld-sh #-- Purpose: Link a mach-o dynamic shared library for Darwin / Mac OS X #-- Author: Gilles Depeyrot #-- Copyright: (c) 2002 Gilles Depeyrot #-- Licence: any use permitted #----------------------------------------------------------------------------- verbose=0 args="" objects="" while test \${#} -gt 0; do case \${1} in -v) verbose=1 ;; -o|-compatibility_version|-current_version|-framework|-undefined|-install_name) # collect these options and values args="\${args} \${1} \${2}" shift ;; -l*|-L*|-flat_namespace) # collect these options args="\${args} \${1}" ;; -dynamiclib) # skip these options ;; -*) echo "shared-ld: unhandled option '\${1}'" exit 1 ;; *.o | *.a) # collect object files objects="\${objects} \${1}" ;; *) echo "shared-ld: unhandled argument '\${1}'" exit 1 ;; esac shift done # # Link one module containing all the others # if test \${verbose} = 1; then echo "c++ -r -keep_private_externs -nostdlib \${objects} -o master.\$\$.o" fi c++ -r -keep_private_externs -nostdlib \${objects} -o master.\$\$.o status=\$? if test \${status} != 0; then exit \${status} fi # # Link the shared library from the single module created # if test \${verbose} = 1; then echo "cc -dynamiclib master.\$\$.o \${args}" fi c++ -dynamiclib master.\$\$.o \${args} status=\$? if test \${status} != 0; then exit \${status} fi # # Remove intermediate module # rm -f master.\$\$.o exit 0 EOF chmod +x shared-ld-sh SHARED_LD_CC="`pwd`/shared-ld-sh -undefined suppress -flat_namespace -o" SHARED_LD_CXX="$SHARED_LD_CC" PIC_FLAG="-dynamic -fPIC" dnl FIXME - what about C libs? Gilles says to use c++ because it doesn't dnl matter for C projects and matters for C++ ones dnl FIXME - newer devel tools have linker flag to do this, the script dnl is not necessary - detect! ;; *-*-aix* ) dnl default settings are ok for gcc if test "x$GCC" != "xyes"; then dnl the abs path below used to be hardcoded here so I guess it must dnl be some sort of standard location under AIX? AC_CHECK_PROG(AIX_CXX_LD, makeC++SharedLib, makeC++SharedLib, /usr/lpp/xlC/bin/makeC++SharedLib) dnl FIXME - what about makeCSharedLib? SHARED_LD_CC="$AIX_CC_LD -p 0 -o" SHARED_LD_CXX="$AIX_CXX_LD -p 0 -o" fi ;; *-*-beos* ) dnl can't use gcc under BeOS for shared library creation because it dnl complains about missing 'main' SHARED_LD_CC="${LD} -shared -o" SHARED_LD_CXX="${LD} -shared -o" ;; *-*-irix* ) dnl default settings are ok for gcc if test "x$GCC" != "xyes"; then PIC_FLAG="-KPIC" fi ;; *-*-cygwin* | *-*-mingw32* ) PIC_FLAG="" ;; *-*-freebsd* | *-*-openbsd* | *-*-netbsd* | \ *-*-sunos4* | \ *-*-osf* | \ *-*-dgux5* | \ *-*-sysv5* ) dnl defaults are ok ;; *) AC_MSG_ERROR(unknown system type $host.) esac AC_SUBST(SHARED_LD_CC) AC_SUBST(SHARED_LD_CXX) AC_SUBST(PIC_FLAG) ]) dnl --------------------------------------------------------------------------- dnl AC_BAKEFILE_SHARED_VERSIONS dnl dnl Detects linker options for attaching versions (sonames) to shared libs. dnl --------------------------------------------------------------------------- AC_DEFUN(AC_BAKEFILE_SHARED_VERSIONS, [ USE_SOVERSION=0 USE_SOVERLINUX=0 USE_SOVERSOLARIS=0 USE_SOSYMLINKS=0 USE_MACVERSION=0 SONAME_FLAG= case "${host}" in *-*-linux* ) SONAME_FLAG="-Wl,-soname," USE_SOVERSION=1 USE_SOVERLINUX=1 USE_SOSYMLINKS=1 ;; *-*-solaris2* ) SONAME_FLAG="-h " USE_SOVERSION=1 USE_SOVERSOLARIS=1 USE_SOSYMLINKS=1 ;; *-*-darwin* ) USE_MACVERSION=1 USE_SOVERSION=1 USE_SOSYMLINKS=1 ;; esac AC_SUBST(USE_SOVERSION) AC_SUBST(USE_SOVERLINUX) AC_SUBST(USE_SOVERSOLARIS) AC_SUBST(USE_MACVERSION) AC_SUBST(USE_SOSYMLINKS) AC_SUBST(SONAME_FLAG) ]) dnl --------------------------------------------------------------------------- dnl AC_BAKEFILE_DEPS dnl dnl Detects available C/C++ dependency tracking options dnl --------------------------------------------------------------------------- AC_DEFUN(AC_BAKEFILE_DEPS, [ DEPS_TYPE=no if test "x$GCC" = "xyes"; then DEPS_TYPE=gcc fi AC_SUBST(DEPS_TYPE) ]) dnl --------------------------------------------------------------------------- dnl AC_BAKEFILE_CHECK_BASIC_STUFF dnl dnl Checks for presence of basic programs, such as C and C++ compiler, "ranlib" dnl or "install" dnl --------------------------------------------------------------------------- AC_DEFUN(AC_BAKEFILE_CHECK_BASIC_STUFF, [ AC_PROG_RANLIB AC_PROG_INSTALL AC_PROG_LN_S AC_PROG_MAKE_SET AC_SUBST(MAKE_SET) if test "$build" != "$host" ; then AR=$host_alias-ar STRIP=$host_alias-strip else AC_CHECK_PROG(AR, ar, ar, ar) AC_CHECK_PROG(STRIP, strip, strip, true) fi case ${host} in *-hp-hpux* ) INSTALL_DIR="mkdir" ;; *) INSTALL_DIR="$INSTALL -d" ;; esac AC_SUBST(INSTALL_DIR) ]) dnl --------------------------------------------------------------------------- dnl AC_BAKEFILE_RES_COMPILERS dnl dnl Checks for presence of resource compilers for win32 or mac dnl --------------------------------------------------------------------------- AC_DEFUN(AC_BAKEFILE_RES_COMPILERS, [ RESCOMP= SETFILE= case ${host} in *-*-cygwin* | *-*-mingw32* ) dnl Check for win32 resources compiler: if test "$build" != "$host" ; then RESCOMP=$host_alias-windres else AC_CHECK_PROG(RESCOMP, windres, windres, windres) fi ;; *-*-darwin* ) AC_CHECK_PROG(RESCOMP, Rez, Rez, /Developer/Tools/Rez) AC_CHECK_PROG(SETFILE, SetFile, SetFile, /Developer/Tools/SetFile) ;; esac AC_SUBST(RESCOMP) AC_SUBST(SETFILE) ]) dnl --------------------------------------------------------------------------- dnl AC_BAKEFILE dnl dnl To be used in configure.in of any project using Bakefile-generated mks dnl --------------------------------------------------------------------------- AC_DEFUN(AC_BAKEFILE, [ if test "x$BAKEFILE_CHECK_BASICS" != "xno"; then AC_BAKEFILE_CHECK_BASIC_STUFF fi AC_BAKEFILE_GNUMAKE AC_BAKEFILE_PLATFORM AC_BAKEFILE_SUFFIXES AC_BAKEFILE_SHARED_LD AC_BAKEFILE_SHARED_VERSIONS AC_BAKEFILE_DEPS AC_BAKEFILE_RES_COMPILERS builtin(include, autoconf_inc.m4) ])