wxWidgets/samples/aclocal.m4
Václav Slavík fe0895cf82 new build system
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@21334 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-06-23 22:31:50 +00:00

506 lines
13 KiB
Plaintext

# 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 <<EOF >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)
])