X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/c2218763d5cbad4134d14991364d2434375964d3..72d87edb689f47907aac46033b89ad5fbb66a42e:/aclocal.m4 diff --git a/aclocal.m4 b/aclocal.m4 index b47758ffbb..b5fa4ebb7d 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -18,6 +18,7 @@ dnl Vadim Zeitlin and Ron Lee dnl dnl This script is under the wxWindows licence. dnl +dnl Version: $Id$ dnl --------------------------------------------------------------------------- dnl =========================================================================== @@ -607,6 +608,27 @@ if test "$ac_cv_cxx_const_cast" = yes; then fi ]) +dnl http://www.gnu.org/software/ac-archive/htmldoc/ac_cxx_reinterpret_cast.html +AC_DEFUN([AC_CXX_REINTERPRET_CAST], +[AC_CACHE_CHECK(whether the compiler supports reinterpret_cast<>, +ac_cv_cxx_reinterpret_cast, +[AC_LANG_SAVE + AC_LANG_CPLUSPLUS + AC_TRY_COMPILE([#include +class Base { public : Base () {} virtual void f () = 0;}; +class Derived : public Base { public : Derived () {} virtual void f () {} }; +class Unrelated { public : Unrelated () {} }; +int g (Unrelated&) { return 0; }],[ +Derived d;Base& b=d;Unrelated& e=reinterpret_cast(b);return g(e);], + ac_cv_cxx_reinterpret_cast=yes, ac_cv_cxx_reinterpret_cast=no) + AC_LANG_RESTORE +]) +if test "$ac_cv_cxx_reinterpret_cast" = yes; then + AC_DEFINE(HAVE_REINTERPRET_CAST,, + [define if the compiler supports reinterpret_cast<>]) +fi +]) + dnl and http://www.gnu.org/software/ac-archive/htmldoc/ac_cxx_static_cast.html AC_DEFUN([AC_CXX_STATIC_CAST], [AC_CACHE_CHECK(whether the compiler supports static_cast<>, @@ -1252,6 +1274,7 @@ int main(int argc, char *argv[]) rm -f conf.sdltest ]) + dnl --------------------------------------------------------------------------- dnl Support macros for makefiles generated by BAKEFILE. dnl --------------------------------------------------------------------------- @@ -1259,7 +1282,37 @@ dnl --------------------------------------------------------------------------- dnl Lots of compiler & linker detection code contained here was taken from dnl wxWindows configure.in script (see http://www.wxwindows.org) +dnl Based on autoconf _AC_LANG_COMPILER_GNU +AC_DEFUN([_AC_BAKEFILE_LANG_COMPILER_MWERKS], +[AC_CACHE_CHECK([whether we are using the Metrowerks _AC_LANG compiler], + [bakefile_cv_[]_AC_LANG_ABBREV[]_compiler_mwerks], + [AC_TRY_COMPILE([],[#ifndef __MWERKS__ + choke me +#endif +], + [bakefile_compiler_mwerks=yes], + [bakefile_compiler_mwerks=no]) + bakefile_cv_[]_AC_LANG_ABBREV[]_compiler_mwerks=$bakefile_compiler_mwerks + ]) +]) + +dnl Loosely based on autoconf AC_PROG_CC +dnl TODO: Maybe this should wrap the call to AC_PROG_CC and be used instead. +AC_DEFUN([AC_BAKEFILE_PROG_MWCC], +[AC_LANG_PUSH(C) +_AC_BAKEFILE_LANG_COMPILER_MWERKS +MWCC=`test $bakefile_compiler_mwerks = yes && echo yes` +AC_LANG_POP(C) +]) +dnl Loosely based on autoconf AC_PROG_CXX +dnl TODO: Maybe this should wrap the call to AC_PROG_CXX and be used instead. +AC_DEFUN([AC_BAKEFILE_PROG_MWCXX], +[AC_LANG_PUSH(C++) +_AC_BAKEFILE_LANG_COMPILER_MWERKS +MWCXX=`test $bakefile_compiler_mwerks = yes && echo yes` +AC_LANG_POP(C++) +]) dnl --------------------------------------------------------------------------- dnl AC_BAKEFILE_GNUMAKE @@ -1267,7 +1320,7 @@ dnl dnl Detects GNU make dnl --------------------------------------------------------------------------- -AC_DEFUN(AC_BAKEFILE_GNUMAKE, +AC_DEFUN([AC_BAKEFILE_GNUMAKE], [ dnl does make support "-include" (only GNU make does AFAIK)? AC_CACHE_CHECK([if make is GNU make], bakefile_cv_prog_makeisgnu, @@ -1294,14 +1347,16 @@ dnl dnl Detects platform and sets PLATFORM_XXX variables accordingly dnl --------------------------------------------------------------------------- -AC_DEFUN(AC_BAKEFILE_PLATFORM, +AC_DEFUN([AC_BAKEFILE_PLATFORM], [ PLATFORM_UNIX=0 PLATFORM_WIN32=0 PLATFORM_MSDOS=0 PLATFORM_MAC=0 + PLATFORM_MACOS=0 PLATFORM_MACOSX=0 PLATFORM_OS2=0 + PLATFORM_BEOS=0 if test "x$BAKEFILE_FORCE_PLATFORM" = "x"; then case "${BAKEFILE_HOST}" in @@ -1317,6 +1372,13 @@ AC_DEFUN(AC_BAKEFILE_PLATFORM, powerpc-*-darwin* ) PLATFORM_MAC=1 PLATFORM_MACOSX=1 + ;; + *-*-beos* ) + PLATFORM_BEOS=1 + ;; + powerpc-apple-macos* ) + PLATFORM_MAC=1 + PLATFORM_MACOS=1 ;; * ) PLATFORM_UNIX=1 @@ -1340,6 +1402,9 @@ AC_DEFUN(AC_BAKEFILE_PLATFORM, unix ) PLATFORM_UNIX=1 ;; + beos ) + PLATFORM_BEOS=1 + ;; * ) AC_MSG_ERROR([Unknown platform: $BAKEFILE_FORCE_PLATFORM]) ;; @@ -1350,8 +1415,10 @@ AC_DEFUN(AC_BAKEFILE_PLATFORM, AC_SUBST(PLATFORM_WIN32) AC_SUBST(PLATFORM_MSDOS) AC_SUBST(PLATFORM_MAC) + AC_SUBST(PLATFORM_MACOS) AC_SUBST(PLATFORM_MACOSX) AC_SUBST(PLATFORM_OS2) + AC_SUBST(PLATFORM_BEOS) ]) @@ -1361,9 +1428,10 @@ dnl dnl Sets misc platform-specific settings dnl --------------------------------------------------------------------------- -AC_DEFUN(AC_BAKEFILE_PLATFORM_SPECIFICS, +AC_DEFUN([AC_BAKEFILE_PLATFORM_SPECIFICS], [ - AC_ARG_ENABLE([omf], [ --enable-omf use OMF object format (OS/2)], + AC_ARG_ENABLE([omf], AS_HELP_STRING([--enable-omf], + [use OMF object format (OS/2)]), [bk_os2_use_omf="$enableval"]) case "${BAKEFILE_HOST}" in @@ -1386,6 +1454,10 @@ AC_DEFUN(AC_BAKEFILE_PLATFORM_SPECIFICS, OS2_LIBEXT="a" fi ;; + + i*86-*-beos* ) + LDFLAGS="-L/boot/develop/lib/x86 $LDFLAGS" + ;; esac ]) @@ -1396,7 +1468,7 @@ dnl Detects shared various suffixes for shared libraries, libraries, programs, dnl plugins etc. dnl --------------------------------------------------------------------------- -AC_DEFUN(AC_BAKEFILE_SUFFIXES, +AC_DEFUN([AC_BAKEFILE_SUFFIXES], [ SO_SUFFIX="so" SO_SUFFIX_MODULE="so" @@ -1469,26 +1541,23 @@ dnl Detects command for making shared libraries, substitutes SHARED_LD_CC dnl and SHARED_LD_CXX. dnl --------------------------------------------------------------------------- -AC_DEFUN(AC_BAKEFILE_SHARED_LD, +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 + PIC_FLAG="" if test "x$GCC" = "xyes"; then dnl the switch for gcc is the same under all platforms PIC_FLAG="-fPIC" fi + + dnl Defaults for GCC and ELF .so shared libs: + SHARED_LD_CC="\$(CC) -shared ${PIC_FLAG} -o" + SHARED_LD_CXX="\$(CXX) -shared ${PIC_FLAG} -o" case "${BAKEFILE_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 + if test "x$GCC" != "xyes"; then dnl no idea why it wants it, but it does LDFLAGS="$LDFLAGS -L/usr/lib" @@ -1588,8 +1657,8 @@ AC_DEFUN(AC_BAKEFILE_SHARED_LD, *-*-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" + SHARED_LD_CC="${LD} -nostart -o" + SHARED_LD_CXX="${LD} -nostart -o" ;; *-*-irix* ) @@ -1601,16 +1670,19 @@ AC_DEFUN(AC_BAKEFILE_SHARED_LD, *-*-cygwin* | *-*-mingw32* ) PIC_FLAG="" + SHARED_LD_CC="\$(CC) -shared -o" + SHARED_LD_CXX="\$(CXX) -shared -o" ;; *-pc-os2_emx | *-pc-os2-emx ) - SHARED_LD_CC="`pwd`/dllar.sh -o" - SHARED_LD_CXX="`pwd`/dllar.sh -o" + SHARED_LD_CC="`pwd`/dllar.sh -libf INITINSTANCE -libf TERMINSTANCE -o" + SHARED_LD_CXX="`pwd`/dllar.sh -libf INITINSTANCE -libf TERMINSTANCE -o" PIC_FLAG="" AC_BAKEFILE_CREATE_FILE_DLLAR_SH chmod +x dllar.sh ;; + powerpc-apple-macos* | \ *-*-freebsd* | *-*-openbsd* | *-*-netbsd* | \ *-*-sunos4* | \ *-*-osf* | \ @@ -1623,6 +1695,10 @@ AC_DEFUN(AC_BAKEFILE_SHARED_LD, AC_MSG_ERROR(unknown system type $BAKEFILE_HOST.) esac + if test "x$PIC_FLAG" != "x" ; then + PIC_FLAG="$PIC_FLAG -DPIC" + fi + if test "x$SHARED_LD_MODULE_CC" = "x" ; then SHARED_LD_MODULE_CC="$SHARED_LD_CC" fi @@ -1644,7 +1720,7 @@ dnl dnl Detects linker options for attaching versions (sonames) to shared libs. dnl --------------------------------------------------------------------------- -AC_DEFUN(AC_BAKEFILE_SHARED_VERSIONS, +AC_DEFUN([AC_BAKEFILE_SHARED_VERSIONS], [ USE_SOVERSION=0 USE_SOVERLINUX=0 @@ -1654,7 +1730,7 @@ AC_DEFUN(AC_BAKEFILE_SHARED_VERSIONS, SONAME_FLAG= case "${BAKEFILE_HOST}" in - *-*-linux* ) + *-*-linux* | *-*-freebsd* ) SONAME_FLAG="-Wl,-soname," USE_SOVERSION=1 USE_SOVERLINUX=1 @@ -1690,7 +1766,7 @@ dnl dnl Detects available C/C++ dependency tracking options dnl --------------------------------------------------------------------------- -AC_DEFUN(AC_BAKEFILE_DEPS, +AC_DEFUN([AC_BAKEFILE_DEPS], [ AC_MSG_CHECKING([for dependency tracking method]) DEPS_TRACKING=0 @@ -1709,6 +1785,11 @@ AC_DEFUN(AC_BAKEFILE_DEPS, ;; esac AC_MSG_RESULT([gcc]) + elif test "x$MWCC" = "xyes"; then + DEPSMODE=mwcc + DEPS_TRACKING=1 + DEPSFLAG_MWCC="-MM" + AC_MSG_RESULT([mwcc]) else AC_MSG_RESULT([none]) fi @@ -1728,7 +1809,7 @@ 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_DEFUN([AC_BAKEFILE_CHECK_BASIC_STUFF], [ AC_PROG_RANLIB AC_PROG_INSTALL @@ -1743,7 +1824,9 @@ AC_DEFUN(AC_BAKEFILE_CHECK_BASIC_STUFF, case ${BAKEFILE_HOST} in *-hp-hpux* ) - INSTALL_DIR="mkdir" + dnl HP-UX install doesn't handle the "-d" switch so don't + dnl use it there + INSTALL_DIR="mkdir -p" ;; *) INSTALL_DIR="$INSTALL -d" ;; @@ -1765,7 +1848,7 @@ dnl dnl Checks for presence of resource compilers for win32 or mac dnl --------------------------------------------------------------------------- -AC_DEFUN(AC_BAKEFILE_RES_COMPILERS, +AC_DEFUN([AC_BAKEFILE_RES_COMPILERS], [ RESCOMP= SETFILE= @@ -1780,7 +1863,7 @@ AC_DEFUN(AC_BAKEFILE_RES_COMPILERS, fi ;; - *-*-darwin* ) + *-*-darwin* | powerpc-apple-macos* ) AC_CHECK_PROG(RESCOMP, Rez, Rez, /Developer/Tools/Rez) AC_CHECK_PROG(SETFILE, SetFile, SetFile, /Developer/Tools/SetFile) ;; @@ -1796,11 +1879,12 @@ dnl dnl Check for precompiled headers support (GCC >= 3.4) dnl --------------------------------------------------------------------------- -AC_DEFUN(AC_BAKEFILE_PRECOMP_HEADERS, +AC_DEFUN([AC_BAKEFILE_PRECOMP_HEADERS], [ AC_ARG_ENABLE([precomp-headers], - [ --disable-precomp-headers don't use precompiled headers even if compiler can], + AS_HELP_STRING([--disable-precomp-headers], + [don't use precompiled headers even if compiler can]), [bk_use_pch="$enableval"]) GCC_PCH=0 @@ -1825,58 +1909,13 @@ AC_DEFUN(AC_BAKEFILE_PRECOMP_HEADERS, ], [ AC_MSG_RESULT([yes]) - dnl FIXME - this is temporary, till .gch dependencies - dnl are fixed in generated Makefiles - CPPFLAGS="-fpch-deps $CPPFLAGS" GCC_PCH=1 ], [ AC_MSG_RESULT([no]) ]) if test $GCC_PCH = 1 ; then - cat <bk-make-pch -#!/bin/sh - -# This script is part of Bakefile (http://bakefile.sourceforge.net) autoconf -# script. It is used to generated precompiled headers. -# -# Permission is given to use this file in any way. - -outfile="\${1}" -header="\${2}" -shift -shift - -compiler= -headerfile= -while test \${#} -gt 0; do - case "\${1}" in - -I* ) - incdir=\`echo \${1} | sed -e 's/-I\(.*\)/\1/g'\` - if test "x\${headerfile}" = "x" -a -f "\${incdir}/\${header}" ; then - headerfile="\${incdir}/\${header}" - fi - ;; - esac - compiler="\${compiler} \${1}" - shift -done - -if test "x\${headerfile}" = "x" ; then - echo "error: can't find header \${header} in include paths" >2 -else - if test -f \${outfile} ; then - rm -f \${outfile} - else - mkdir -p \`dirname \${outfile}\` - fi - depsfile=".deps/\`basename \${outfile}\`.d" - mkdir -p .deps - # can do this because gcc is >= 3.4: - \${compiler} -o \${outfile} -MMD -MF "\${depsfile}" "\${headerfile}" - exit \${?} -fi -EOF + AC_BAKEFILE_CREATE_FILE_BK_MAKE_PCH chmod +x bk-make-pch fi fi @@ -1888,7 +1927,7 @@ EOF dnl --------------------------------------------------------------------------- -dnl AC_BAKEFILE +dnl AC_BAKEFILE([autoconf_inc.m4 inclusion]) dnl dnl To be used in configure.in of any project using Bakefile-generated mks dnl @@ -1898,10 +1937,20 @@ dnl to perform check for basic tools like ranlib dnl BAKEFILE_HOST set this to override host detection, defaults dnl to ${host} dnl BAKEFILE_FORCE_PLATFORM set to override platform detection +dnl +dnl Example usage: +dnl +dnl AC_BAKEFILE([FOO(autoconf_inc.m4)]) +dnl +dnl (replace FOO with m4_include above, aclocal would die otherwise) +dnl (yes, it's ugly, but thanks to a bug in aclocal, it's the only thing +dnl we can do...) dnl --------------------------------------------------------------------------- -AC_DEFUN(AC_BAKEFILE, +AC_DEFUN([AC_BAKEFILE], [ + AC_PREREQ(2.58) + if test "x$BAKEFILE_HOST" = "x"; then BAKEFILE_HOST="${host}" fi @@ -1918,7 +1967,14 @@ AC_DEFUN(AC_BAKEFILE, AC_BAKEFILE_DEPS AC_BAKEFILE_RES_COMPILERS - builtin(include, autoconf_inc.m4) + BAKEFILE_BAKEFILE_M4_VERSION="0.1.6" + + dnl includes autoconf_inc.m4: + $1 + + if test "$BAKEFILE_BAKEFILE_M4_VERSION" != "$BAKEFILE_AUTOCONF_INC_M4_VERSION" ; then + AC_MSG_ERROR([Versions of Bakefile used to generate makefiles ($BAKEFILE_AUTOCONF_INC_M4_VERSION) and configure ($BAKEFILE_BAKEFILE_M4_VERSION) do not match.]) + fi ]) @@ -1926,9 +1982,11 @@ dnl --------------------------------------------------------------------------- dnl Embedded copies of helper scripts follow: dnl --------------------------------------------------------------------------- -AC_DEFUN(AC_BAKEFILE_CREATE_FILE_DLLAR_SH, +AC_DEFUN([AC_BAKEFILE_CREATE_FILE_DLLAR_SH], [ dnl ===================== dllar.sh begins here ===================== +dnl (Created by merge-scripts.py from dllar.sh +dnl file do not edit here!) D='$' cat <dllar.sh #!/bin/sh @@ -1991,7 +2049,7 @@ flag_USE_LXLITE=1; basnam(){ case ${D}# in 1) - echo ${D}1 | sed 's/.*\///' | sed 's/.*\\//' + echo ${D}1 | sed 's/.*\\///' | sed 's/.*\\\\//' ;; 2) echo ${D}1 | sed 's/'${D}2'${D}//' @@ -2018,18 +2076,19 @@ CleanUp() { # Kill result in case of failure as there is just to many stupid make/nmake # things out there which doesn't do this. - if [ ${D}# -eq 0 ]; then + if @<:@ ${D}# -eq 0 @:>@; then rm -f ${D}arcFile ${D}arcFile2 ${D}defFile ${D}dllFile fi } # Print usage and exit script with rc=1. PrintHelp() { - echo 'Usage: dllar [-o[utput] output_file] [-i[mport] importlib_name]' - echo ' [-d[escription] "dll descrption"] [-cc "CC"] [-f[lags] "CFLAGS"]' - echo ' [-ord[inals]] -ex[clude] "symbol(s)"' - echo ' [-libf[lags] "{INIT|TERM}{GLOBAL|INSTANCE}"] [-nocrt[dll]] [-nolxl[ite]]' - echo ' [*.o] [*.a]' + echo 'Usage: dllar.sh @<:@-o@<:@utput@:>@ output_file@:>@ @<:@-i@<:@mport@:>@ importlib_name@:>@' + echo ' @<:@-name-mangler-script script.sh@:>@' + echo ' @<:@-d@<:@escription@:>@ "dll descrption"@:>@ @<:@-cc "CC"@:>@ @<:@-f@<:@lags@:>@ "CFLAGS"@:>@' + echo ' @<:@-ord@<:@inals@:>@@:>@ -ex@<:@clude@:>@ "symbol(s)"' + echo ' @<:@-libf@<:@lags@:>@ "{INIT|TERM}{GLOBAL|INSTANCE}"@:>@ @<:@-nocrt@<:@dll@:>@@:>@ @<:@-nolxl@<:@ite@:>@@:>@' + echo ' @<:@*.o@:>@ @<:@*.a@:>@' echo '*> "output_file" should have no extension.' echo ' If it has the .o, .a or .dll extension, it is automatically removed.' echo ' The import library name is derived from this and is set to "name".a,' @@ -2039,19 +2098,26 @@ PrintHelp() { echo ' This name is used as the import library name and may be longer and' echo ' more descriptive than the DLL name which has to follow the old ' echo ' 8.3 convention of FAT.' + echo '*> "script.sh may be given to override the output_file name by a' + echo ' different name. It is mainly useful if the regular make process' + echo ' of some package does not take into account OS/2 restriction of' + echo ' DLL name lengths. It takes the importlib name as input and is' + echo ' supposed to procude a shorter name as output. The script should' + echo ' expect to get importlib_name without extension and should produce' + echo ' a (max.) 8 letter name without extension.' echo '*> "cc" is used to use another GCC executable. (default: gcc.exe)' echo '*> "flags" should be any set of valid GCC flags. (default: -s -Zcrtdll)' echo ' These flags will be put at the start of GCC command line.' - echo '*> -ord[inals] tells dllar to export entries by ordinals. Be careful.' - echo '*> -ex[clude] defines symbols which will not be exported. You can define' + echo '*> -ord@<:@inals@:>@ tells dllar to export entries by ordinals. Be careful.' + echo '*> -ex@<:@clude@:>@ defines symbols which will not be exported. You can define' echo ' multiple symbols, for example -ex "myfunc yourfunc _GLOBAL*".' echo ' If the last character of a symbol is "*", all symbols beginning' echo ' with the prefix before "*" will be exclude, (see _GLOBAL* above).' - echo '*> -libf[lags] can be used to add INITGLOBAL/INITINSTANCE and/or' + echo '*> -libf@<:@lags@:>@ can be used to add INITGLOBAL/INITINSTANCE and/or' echo ' TERMGLOBAL/TERMINSTANCE flags to the dynamically-linked library.' - echo '*> -nocrt[dll] switch will disable linking the library against emx''s' + echo '*> -nocrt@<:@dll@:>@ switch will disable linking the library against emx''s' echo ' C runtime DLLs.' - echo '*> -nolxl[ite] switch will disable running lxlite on the resulting DLL.' + echo '*> -nolxl@<:@ite@:>@ switch will disable running lxlite on the resulting DLL.' echo '*> All other switches (for example -L./ or -lmylib) will be passed' echo ' unchanged to GCC at the end of command line.' echo '*> If you create a DLL from a library and you do not specify -o,' @@ -2075,7 +2141,7 @@ doCommand() { eval ${D}* rcCmd=${D}? - if [ ${D}rcCmd -ne 0 ]; then + if @<:@ ${D}rcCmd -ne 0 @:>@; then echo "command failed, exit code="${D}rcCmd CleanUp exit ${D}rcCmd @@ -2088,6 +2154,7 @@ cmdLine=${D}* outFile="" outimpFile="" inputFiles="" +renameScript="" description="" CC=gcc.exe CFLAGS="-s -Zcrtdll" @@ -2106,7 +2173,8 @@ case ${D}curDirS in esac # Parse commandline libsToLink=0 -while [ ${D}1 ]; do +omfLinking=0 +while @<:@ ${D}1 @:>@; do case ${D}1 in -ord*) EXPORT_BY_ORDINALS=1; @@ -2119,6 +2187,10 @@ while [ ${D}1 ]; do shift outimpFile=${D}1 ;; + -name-mangler-script) + shift + renameScript=${D}1 + ;; -d*) shift description=${D}1 @@ -2153,23 +2225,34 @@ while [ ${D}1 ]; do -L* | -l*) libsToLink=1 ;; + -Zomf) + omfLinking=1 + ;; *) ;; esac EXTRA_CFLAGS=${D}{EXTRA_CFLAGS}" "${D}1 ;; + *.dll) + EXTRA_CFLAGS="${D}{EXTRA_CFLAGS} \`basnam ${D}1 .dll\`" + if @<:@ ${D}omfLinking -eq 1 @:>@; then + EXTRA_CFLAGS="${D}{EXTRA_CFLAGS}.lib" + else + EXTRA_CFLAGS="${D}{EXTRA_CFLAGS}.a" + fi + ;; *) found=0; - if [ ${D}libsToLink -ne 0 ]; then + if @<:@ ${D}libsToLink -ne 0 @:>@; then EXTRA_CFLAGS=${D}{EXTRA_CFLAGS}" "${D}1 else for file in ${D}1 ; do - if [ -f ${D}file ]; then + if @<:@ -f ${D}file @:>@; then inputFiles="${D}{inputFiles} ${D}file" found=1 fi done - if [ ${D}found -eq 0 ]; then + if @<:@ ${D}found -eq 0 @:>@; then echo "ERROR: No file(s) found: "${D}1 exit 8 fi @@ -2180,7 +2263,7 @@ while [ ${D}1 ]; do done # iterate cmdline words # -if [ -z "${D}inputFiles" ]; then +if @<:@ -z "${D}inputFiles" @:>@; then echo "dllar: no input files" PrintHelp fi @@ -2205,7 +2288,7 @@ for file in ${D}inputFiles ; do esac dirname=\`basnam ${D}file ${D}suffix\`"_%" mkdir ${D}dirname - if [ ${D}? -ne 0 ]; then + if @<:@ ${D}? -ne 0 @:>@; then echo "Failed to create subdirectory ./${D}dirname" CleanUp exit 8; @@ -2216,16 +2299,16 @@ for file in ${D}inputFiles ; do cd ${D}curDir found=0; for subfile in ${D}dirname/*.o* ; do - if [ -f ${D}subfile ]; then + if @<:@ -f ${D}subfile @:>@; then found=1 - if [ -s ${D}subfile ]; then + if @<:@ -s ${D}subfile @:>@; then # FIXME: This should be: is file size > 32 byte, _not_ > 0! newInputFiles="${D}newInputFiles ${D}subfile" fi fi done - if [ ${D}found -eq 0 ]; then - echo "WARNING: there are no files in archive \'${D}file\'" + if @<:@ ${D}found -eq 0 @:>@; then + echo "WARNING: there are no files in archive \\'${D}file\\'" fi ;; *) @@ -2237,7 +2320,7 @@ inputFiles="${D}newInputFiles" # Output filename(s). do_backup=0; -if [ -z ${D}outFile ]; then +if @<:@ -z ${D}outFile @:>@; then do_backup=1; set outFile ${D}inputFiles; outFile=${D}2 fi @@ -2282,21 +2365,25 @@ case ${D}outimpFile in *) ;; esac -if [ -z ${D}outimpFile ]; then +if @<:@ -z ${D}outimpFile @:>@; then outimpFile=${D}outFile fi defFile="${D}{outFile}.def" arcFile="${D}{outimpFile}.a" arcFile2="${D}{outimpFile}.lib" -dllFile="${D}outFile" -# Add suffix to dllFile later, first we need a version to use as -# name in .def file. -if [ ${D}do_backup -ne 0 ] ; then - if [ -f ${D}arcFile ] ; then +#create ${D}dllFile as something matching 8.3 restrictions, +if @<:@ -z ${D}renameScript @:>@ ; then + dllFile="${D}outFile" +else + dllFile=\`${D}renameScript ${D}outimpFile\` +fi + +if @<:@ ${D}do_backup -ne 0 @:>@ ; then + if @<:@ -f ${D}arcFile @:>@ ; then doCommand "mv ${D}arcFile ${D}{outFile}_s.a" fi - if [ -f ${D}arcFile2 ] ; then + if @<:@ -f ${D}arcFile2 @:>@ ; then doCommand "mv ${D}arcFile2 ${D}{outFile}_s.lib" fi fi @@ -2317,9 +2404,9 @@ done # Create the def file. rm -f ${D}defFile echo "LIBRARY \`basnam ${D}dllFile\` ${D}library_flags" >> ${D}defFile -dllFile="${D}dllFile.dll" -if [ -n ${D}description ]; then - echo "DESCRIPTION \"${D}{description}\"" >> ${D}defFile +dllFile="${D}{dllFile}.dll" +if @<:@ ! -z ${D}description @:>@; then + echo "DESCRIPTION \\"${D}{description}\\"" >> ${D}defFile fi echo "EXPORTS" >> ${D}defFile @@ -2333,12 +2420,12 @@ for word in ${D}exclude_symbols; do done -if [ ${D}EXPORT_BY_ORDINALS -ne 0 ]; then - sed "=" < ${D}tmpdefFile | \ +if @<:@ ${D}EXPORT_BY_ORDINALS -ne 0 @:>@; then + sed "=" < ${D}tmpdefFile | \\ sed ' N : loop - s/^\([0-9]\+\)\([^;]*\)\(;.*\)\?/\2 @\1 NONAME/ + s/^\\(@<:@0-9@:>@\\+\\)\\(@<:@^;@:>@*\\)\\(;.*\\)\\?/\\2 @\\1 NONAME/ t loop ' > ${D}{tmpdefFile}% grep -v "^ *${D}" < ${D}{tmpdefFile}% > ${D}tmpdefFile @@ -2363,9 +2450,9 @@ doCommand "${D}CC ${D}CFLAGS -Zdll -o ${D}dllFile ${D}defFile ${D}gccCmdl ${D}EX touch "${D}{outFile}.dll" doCommand "emximp -o ${D}arcFile ${D}defFile" -if [ ${D}flag_USE_LXLITE -ne 0 ]; then +if @<:@ ${D}flag_USE_LXLITE -ne 0 @:>@; then add_flags=""; - if [ ${D}EXPORT_BY_ORDINALS -ne 0 ]; then + if @<:@ ${D}EXPORT_BY_ORDINALS -ne 0 @:>@; then add_flags="-ynd" fi doCommand "lxlite -cs -t: -mrn -mln ${D}add_flags ${D}dllFile" @@ -2379,9 +2466,11 @@ EOF dnl ===================== dllar.sh ends here ===================== ]) -AC_DEFUN(AC_BAKEFILE_CREATE_FILE_BK_DEPS, +AC_DEFUN([AC_BAKEFILE_CREATE_FILE_BK_DEPS], [ dnl ===================== bk-deps begins here ===================== +dnl (Created by merge-scripts.py from bk-deps +dnl file do not edit here!) D='$' cat <bk-deps #!/bin/sh @@ -2394,6 +2483,7 @@ cat <bk-deps DEPSMODE=${DEPSMODE} DEPSDIR=.deps DEPSFLAG_GCC="${DEPSFLAG_GCC}" +DEPSFLAG_MWCC="${DEPSFLAG_MWCC}" mkdir -p ${D}DEPSDIR @@ -2418,19 +2508,44 @@ if test ${D}DEPSMODE = gcc ; then esac shift done - depfile=\`basename ${D}srcfile | sed -e 's/\..*${D}/.d/g'\` - depobjname=\`echo ${D}depfile |sed -e 's/\.d/.o/g'\` + depfile=\`basename ${D}srcfile | sed -e 's/\\..*${D}/.d/g'\` + depobjname=\`echo ${D}depfile |sed -e 's/\\.d/.o/g'\` if test -f ${D}depfile ; then sed -e "s,${D}depobjname:,${D}objfile:,g" ${D}depfile >${D}{DEPSDIR}/${D}{objfile}.d rm -f ${D}depfile else - depfile=\`basename ${D}objfile | sed -e 's/\..*${D}/.d/g'\` + depfile=\`basename ${D}objfile | sed -e 's/\\..*${D}/.d/g'\` if test -f ${D}depfile ; then sed -e "/^${D}objfile/!s,${D}depobjname:,${D}objfile:,g" ${D}depfile >${D}{DEPSDIR}/${D}{objfile}.d rm -f ${D}depfile fi fi exit 0 +elif test ${D}DEPSMODE = mwcc ; then + ${D}* + status=${D}? + if test ${D}{status} != 0 ; then + exit ${D}{status} + fi + # Run mwcc again with -MM and redirect into the dep file we want + # NOTE: We can't use shift here because we need ${D}* to be valid + prevarg= + for arg in ${D}* ; do + if test "${D}prevarg" = "-o"; then + objfile=${D}arg + else + case "${D}arg" in + -* ) + ;; + * ) + srcfile=${D}arg + ;; + esac + fi + prevarg="${D}arg" + done + ${D}* ${D}DEPSFLAG_MWCC >${D}{DEPSDIR}/${D}{objfile}.d + exit 0 else ${D}* exit ${D}? @@ -2439,9 +2554,11 @@ EOF dnl ===================== bk-deps ends here ===================== ]) -AC_DEFUN(AC_BAKEFILE_CREATE_FILE_SHARED_LD_SH, +AC_DEFUN([AC_BAKEFILE_CREATE_FILE_SHARED_LD_SH], [ dnl ===================== shared-ld-sh begins here ===================== +dnl (Created by merge-scripts.py from shared-ld-sh +dnl file do not edit here!) D='$' cat <shared-ld-sh #!/bin/sh @@ -2533,8 +2650,59 @@ EOF dnl ===================== shared-ld-sh ends here ===================== ]) +AC_DEFUN([AC_BAKEFILE_CREATE_FILE_BK_MAKE_PCH], +[ +dnl ===================== bk-make-pch begins here ===================== +dnl (Created by merge-scripts.py from bk-make-pch +dnl file do not edit here!) +D='$' +cat <bk-make-pch +#!/bin/sh + +# This script is part of Bakefile (http://bakefile.sourceforge.net) autoconf +# script. It is used to generated precompiled headers. +# +# Permission is given to use this file in any way. + +outfile="${D}{1}" +header="${D}{2}" +shift +shift + +compiler= +headerfile= +while test ${D}{#} -gt 0; do + case "${D}{1}" in + -I* ) + incdir=\`echo ${D}{1} | sed -e 's/-I\\(.*\\)/\\1/g'\` + if test "x${D}{headerfile}" = "x" -a -f "${D}{incdir}/${D}{header}" ; then + headerfile="${D}{incdir}/${D}{header}" + fi + ;; + esac + compiler="${D}{compiler} ${D}{1}" + shift +done + +if test "x${D}{headerfile}" = "x" ; then + echo "error: can't find header ${D}{header} in include paths" >2 +else + if test -f ${D}{outfile} ; then + rm -f ${D}{outfile} + else + mkdir -p \`dirname ${D}{outfile}\` + fi + depsfile=".deps/\`echo ${D}{outfile} | tr '/.' '__'\`.d" + mkdir -p .deps + # can do this because gcc is >= 3.4: + ${D}{compiler} -o ${D}{outfile} -MMD -MF "${D}{depsfile}" "${D}{headerfile}" + exit ${D}{?} +fi +EOF +dnl ===================== bk-make-pch ends here ===================== +]) dnl -dnl AM_PATH_CPPUNIT([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]]) +dnl AM_PATH_CPPUNIT(MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]) dnl AC_DEFUN(AM_PATH_CPPUNIT, [ @@ -2564,7 +2732,6 @@ AC_ARG_WITH(cppunit-exec-prefix,[ --with-cppunit-exec-prefix=PFX Exec prefix w no_cppunit="" if test "$CPPUNIT_CONFIG" = "no" ; then no_cppunit=yes - AC_MSG_RESULT(no) else CPPUNIT_CFLAGS=`$CPPUNIT_CONFIG --cflags` CPPUNIT_LIBS=`$CPPUNIT_CONFIG --libs`