From 5af83c784ab47c787da30ab3127f35ddf4e7631e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?IOhannes=20m=20zm=C3=B6lnig?= Date: Fri, 8 Dec 2006 18:40:36 +0000 Subject: use zexy's build-system, which generates Make.config rather than Makefile directly svn path=/trunk/externals/iem/iemmatrix/; revision=6745 --- src/configure.ac | 188 +++++++++++++++++++++++++++++++++---------------------- 1 file changed, 114 insertions(+), 74 deletions(-) (limited to 'src/configure.ac') diff --git a/src/configure.ac b/src/configure.ac index 03036be..6b6320c 100644 --- a/src/configure.ac +++ b/src/configure.ac @@ -1,6 +1,7 @@ dnl Process this file with autoconf to produce a configure script. AC_INIT(iemmatrix.c) + dnl Checks for programs. AC_PROG_CC @@ -11,15 +12,46 @@ AC_SUBST(EXT) AC_SUBST(LD) AC_SUBST(STRIP) AC_SUBST(STRIPFLAGS) -AC_SUBST(IEMMATRIX_VERSION) +AC_SUBST(LIBRARY_NAME) +AC_SUBST(LIBRARY_VERSION) +AC_SUBST(BUILDLIBRARY) AC_SUBST(REFERENCEPATH) AC_SUBST(PDLIBDIR) AC_SUBST(INCLUDES) +AC_SUBST(CONFIGUREFLAGS) + +LIBRARY_NAME=${ac_unique_file%.*} + +## store the flags passed to us +## is there no way to get the flags without quotes? +#CONFIGUREFLAGS=${ac_configure_args} +## and is this solution portable? time will show.... +CONFIGUREFLAGS=$(echo ${ac_configure_args} | sed "s/'//g") -AC_ARG_WITH(version, [ --with-version= enforce a certain iemmatrix-version (e.g. 0.1)]) AC_ARG_WITH(extension, [ --with-extension= enforce a certain extension for the dynamic library (e.g. dll)]) AC_ARG_WITH(pdpath, [ --with-pd= where to look for pd-headers and and -libs]) + AC_ARG_ENABLE(PIC, [ --disable-PIC disable compilation with PIC-flag]) +if test "x" = "x${enable_PIC}" ; then + enable_PIC="${with_PIC}" +fi + +if test "x$enable_PIC" != "xno"; then + AC_CHECK_CFLAGS([-fPIC]) +fi + + +AC_ARG_ENABLE(library,[ --disable-library split the library into single externals]) +if test "xno" != "x${enable_library}" ; then +dnl LATER: find a more generic way to generate the .._LIBRARY define + BUILDLIBRARY="-DLIBRARY" +fi + + +dnl check for "-mms-bitfields" cflag +dnl it would make things so easy: AC_CHECK_FLAG([-mms-bitfields],,) +AC_CHECK_CFLAGS([-mms-bitfields]) + dnl Checks for libraries. dnl Replace `main' with a function in -lc: @@ -77,25 +109,6 @@ else AC_SUBST(MAKEDEP_FLAGS, "-M") fi -dnl check for "-mms-bitfields" cflag -dnl why is there no generic compiler-check for a given flag ? -dnl it would make things so easy: AC_CHECK_FLAG([-mms-bitfields],,) -AC_MSG_CHECKING("ms-bitfields") -cat > conftest.c << EOF -int main(){ - return 0; -} -EOF -if ${CC} ${INCLUDES} ${DFLAGS} -o conftest.o conftest.c ${CFLAGS} -mms-bitfields > /dev/null 2>&1 -then - echo "yes" - CFLAGS="${CFLAGS} -mms-bitfields" -else - echo "no" -fi - - - dnl isn't there a better way to check for good linker/stripper ? @@ -117,124 +130,151 @@ fi LD=${LD:=$CC} dnl if we don't have $STRIP set, we set it to ${host}-strip or strip -AC_CHECK_TOOL([STRIP], [strip], [true]) -AC_MSG_CHECKING([if strip is GNU strip]) -if $STRIP -V 2>&1 | grep GNU > /dev/null -then - AC_SUBST(STRIPFLAGS, "--strip-unneeded") - AC_MSG_RESULT([yes]) -else - AC_SUBST(STRIPFLAGS,"-x") - AC_MSG_RESULT([no]) -fi - -DFLAGS="" - - -if test "x$enable_PIC" != "xno"; then -AC_MSG_CHECKING("PIC") -cat > conftest.c << EOF -int main(){ - return 0; -} -EOF -if ${CC} ${INCLUDES} ${DFLAGS} -o conftest.o conftest.c ${CFLAGS} -fPIC > /dev/null 2>&1 +if test "x$STRIP" = "x" then - echo "yes" - CFLAGS="${CFLAGS} -fPIC" -else - echo "no" -fi + if test "x$host" != "x" + then + STRIP=${host}-strip + if $(which ${host}-strip > /dev/null) + then + : + else + STRIP="echo fake strip" + fi + else + STRIP=strip + fi fi +dnl STRIP=${STRIP:=strip} dnl -dnl OK, checks for machines are here now +dnl OK, checks which machines are here now +dnl this needs some rethinking when cross-compiling (?) dnl +AC_CHECK_LDFLAGS([-export_dynamic -shared]) + if test `uname -s` = Linux; then - LFLAGS="-export_dynamic -shared" - CFLAGS="$CFLAGS" EXT=pd_linux + STRIPFLAGS="--strip-unneeded" + if test "$enable_icc" = "yes"; then + CC=icc + fi + + if test $CC = "icc" + then + LD=$CC + AC_CHECK_LDFLAGS([-ip -ipo_obj]) + AC_CHECK_CFLAGS([-ip -ipo_obj]) + fi fi dnl This should use '-bundle_loader /path/to/pd/bin/pd' instead of'-undefined suppress' dnl then strip might do something if test `uname -s` = Darwin; then - LD=cc - LFLAGS="-bundle -undefined suppress -flat_namespace" + LD=${CC} EXT=pd_darwin + STRIP="echo faking strip" + STRIPFLAGS= + + if test "$enable_lpt" = "yes"; then + AC_MSG_ERROR("lpt not supported on this platform"); + fi + if test "$enable_lpt" = ""; then + AC_MSG_WARN("lpt not supported on this platform - disabling"); + enable_lpt="no"; + fi fi -if test `uname | sed -e 's/^MINGW.*/NT/'` = NT; +#AC_CHECK_LDFLAGS([-dynamiclib -mmacosx-version-min=10.3 -undefined dynamic_lookup], +# , + AC_CHECK_LDFLAGS([-bundle -undefined suppress -flat_namespace]) +# ) + +if test `uname | sed -e 's/^MINGW.*/NT/'` = NT ; then - LD=gcc - INCLUDES="-I@prefix@/src" - DFLAGS="-D__WIN32__" - LFLAGS="-shared @prefix@/bin/pd.dll" + LD=${CC} +# LDFLAGS="-shared pd.dll" EXT=dll -else - PDLIBDIR="/lib/pd" fi +AC_CHECK_LDFLAGS([-shared pd.dll]) + if test `uname -s` = IRIX64; then - LFLAGS="-n32 -DUNIX -DIRIX -DN32 -woff 1080,1064,1185 \ + LDFLAGS="-n32 -DUNIX -DIRIX -DN32 -woff 1080,1064,1185 \ -OPT:roundoff=3 -OPT:IEEE_arithmetic=3 -OPT:cray_ivdep=true \ -shared -rdata_shared" EXT=pd_irix6 dnl DFLAGS="-DUNIX -DIRIX6" + STRIPFLAGS="--strip-unneeded" + if test "$enable_lpt" = "yes"; then + AC_MSG_ERROR("lpt not supported on this platform"); + fi + if test "$enable_lpt" = ""; then + AC_MSG_WARN("lpt not supported on this platform - disabling"); + enable_lpt="no"; + fi fi if test `uname -s` = IRIX32; then - LFLAGS="-o32 -DUNIX -DIRIX -O2 + LDFLAGS="-o32 -DUNIX -DIRIX -O2 -shared -rdata_shared" EXT=pd_irix5 dnl DFLAGS="-DUNIX -DIRIX5" + STRIPFLAGS="--strip-unneeded" + if test "$enable_lpt" = "yes"; then + AC_MSG_ERROR("lpt not supported on this platform"); + fi + if test "$enable_lpt" = ""; then + AC_MSG_WARN("lpt not supported on this platform - disabling"); + enable_lpt="no"; + fi fi - if test "x$with_extension" != "x" then EXT=$with_extension fi -dnl check for iemmatrix-version (but why...) -AC_MSG_CHECKING("iemmatrix-version") +dnl check for ${LIBRARY_NAME}-version (but why...) +AC_MSG_CHECKING("library version") if test "$with_version" != "" then echo -n "($with_version)... " - IEMMATRIX_VERSION="$with_version" + LIBRARY_VERSION="$with_version" else if test "x$cross_compiling" = "xno" then cat > conftest.c << EOF #include -#include "iemmatrix.h" +#include "${LIBRARY_NAME}.h" int main(){ printf("%s\n", VERSION); return 0; } EOF -if $CC $INCLUDES -o conftest.o conftest.c > /dev/null 2>&1 +if ${CC} ${INCLUDES} -o conftest.o conftest.c > /dev/null 2>&1 then - IEMMATRIX_VERSION=`./conftest.o` - echo "$IEMMATRIX_VERSION" + LIBRARY_VERSION=`./conftest.o` + echo "$LIBRARY_VERSION" else - IEMMATRIX_VERSION="" + LIBRARY_VERSION="" echo "(unknown)" fi else - IEMMATRIX_VERSION="X" + LIBRARY_VERSION="X" echo "(X)" fi fi -AC_OUTPUT(Makefile) +LFLAGS=${LDFLAGS} +AC_OUTPUT(Make.config) -rm -f conftest.* +dnl rm -f conftest.* -- cgit v1.2.1