amd64: small changes w.r.t. stack alignment.
[libfirm] / configure.ac
index 175c2de..1918f66 100644 (file)
@@ -7,32 +7,63 @@ dnl CVS-ID:      $Id$
 dnl Copyright:   (c) 2002-2007 University of Karlsruhe
 dnl Licence:     This file protected by GPL -  GNU GENERAL PUBLIC LICENSE.
 dnl
-AC_PREREQ([2.54])
+AC_PREREQ([2.60])
 AC_REVISION([$Id$])
+
+dnl Firm Versions
+dnl * Increment major/minor/micro version as you see fit. These 3 numbers
+dnl   are intended for humans and are independent from the libtool versions
 m4_define([firm_major_version], [1])
-m4_define([firm_minor_version], [12])
-m4_define([firm_micro_version], [1])
+m4_define([firm_minor_version], [19])
+m4_define([firm_micro_version], [0])
 m4_define([firm_version],
           [firm_major_version.firm_minor_version.firm_micro_version])
+
+dnl Libtool versions
+dnl
+dnl * If any code has changed at all (i.e. bugfixes) increment revision
+dnl * If any interface has been added, removed or changed increment
+dnl   current, set revision to 0
+dnl * If any interface has been added increment age
+dnl * If any interfaces have been remove set age to 0
+dnl * use lt_release if substantial things have been changed. The release can be
+dnl   thought of as part of the library name. So changing the release creates
+dnl   a new library.
+m4_define([lt_current],  [1])
+m4_define([lt_revision], [0])
+m4_define([lt_age],      [0])
+dnl we use firm major version as release
+m4_define([lt_release],  [firm_major_version])
+
 AC_INIT([libfirm], [firm_version], [firm@ipd.info.uni-karlsruhe.de])
 AC_CONFIG_SRCDIR([ir/common/firm.c])
 AM_INIT_AUTOMAKE([foreign dist-bzip2 1.9])
 
-# see libtool manual on what version numbers mean!
-LT_VERSION=0:0:0
-AC_SUBST([LT_VERSION])
-
 AC_DEFINE([libfirm_VERSION_MAJOR], [firm_major_version], [Firms major version number])
 AC_DEFINE([libfirm_VERSION_MINOR], [firm_minor_version], [Firms minor version number])
 AC_DEFINE([libfirm_VERSION_MICRO], [firm_micro_version], [Firms micro version number])
 
+LT_VERSION="lt_current:lt_revision:lt_age"
+AC_SUBST([LT_VERSION])
+LT_RELEASE="lt_release"
+AC_SUBST([LT_RELEASE])
+
+dnl enable libtool
+LT_INIT([win32-dll])
+AC_SUBST([LIBTOOL_DEPS])
+
 dnl generate the config header file
 AC_CONFIG_HEADER([config.h])
 
 dnl keep track of the environment set by the user
-libfirm_conf_env="${CC+CC='$CC'} ${CFLAGS+CFLAGS='$CFLAGS'} ${CPP+CPP='$CPP'} ${CPPFLAGS+CPPFLAGS='$CPPFLAGS'} ${LDFLAGS+LDFLAGS='$LDFLAGS'} ${LIBS+LIBS='$LIBS'}"
+libfirm_conf_env="${CC+CC='$CC'} ${CFLAGS+CFLAGS='$CFLAGS'} ${CPP+CPP='$CPP'} ${CPPFLAGS+CPPFLAGS='$CPPFLAGS'} ${LDFLAGS+LDFLAGS='$LDFLAGS'} ${LIBS+LIBS='$LIBS -lm'}"
 AC_SUBST(libfirm_conf_env)
 
+dnl enable visibility hidden
+CFLAGS="-fvisibility=hidden"
+AC_DEFINE([FIRM_BUILD], [], [Defined when firm library is built])
+AC_DEFINE([FIRM_DLL], [], [Define when a dynamically loadable shared library is built])
+
 dnl Package options
 dnl ===============
 
@@ -50,10 +81,8 @@ AC_ARG_ENABLE([debug],
 [AS_HELP_STRING([--disable-debug], [disable verifiers and additional debugging routines])],
 [enable_debug_libfirm="$enableval"], [enable_debug_libfirm="yes"])
 if test "$enable_debug_libfirm" = yes; then
-       FIRMCONFIG_DEBUG_libfirm="#define DEBUG_libfirm"
+       AC_DEFINE([DEBUG_libfirm], [], [define to enable debug mode and checks])
 fi
-AC_SUBST([FIRMCONFIG_DEBUG_libfirm])
-AC_SUBST([enable_debug_libfirm])
 
 AC_ARG_ENABLE([assert],
 [AS_HELP_STRING([--disable-assert], [disable assertions])],
@@ -63,18 +92,6 @@ if test "$enable_assert" = no; then
 fi
 AC_SUBST([enable_assert])
 
-dnl disable inlining
-dnl ----------------
-AC_ARG_ENABLE([inlining],
-[AS_HELP_STRING([--disable-inlining], [disable inline C-extension])],
-[enable_inlining="$enableval"], [enable_inlining="yes"])
-
-if test "$enable_inlining" = yes; then
-  FIRMCONFIG_USE_INLINING="#define USE_INLINING"
-fi
-AC_SUBST([FIRMCONFIG_USE_INLINING])
-AC_SUBST([enable_inlining])
-
 dnl set profiling
 dnl -------------
 AC_ARG_ENABLE([profile],
@@ -83,29 +100,6 @@ AC_ARG_ENABLE([profile],
 
 AC_SUBST([enable_profile_libfirm])
 
-dnl set heap analyses support
-dnl -------------------------
-AC_ARG_ENABLE([heapanalysis],
-[AS_HELP_STRING([--enable-heapanalysis], [Compile with heap analysis.])],
-[enable_heapanalysis=$enableval], [enable_heapanalysis="no"])
-
-if test "$enable_heapanalysis" = "yes"; then
-       FIRMCONFIG_DO_HEAPANALYSIS="#define DO_HEAPANALYSIS"
-fi
-AC_SUBST([FIRMCONFIG_DO_HEAPANALYSIS])
-AC_SUBST([enable_heapanalysis])
-
-dnl enable Firm hooks
-dnl -------------
-AC_ARG_ENABLE([hooks],
-[AS_HELP_STRING([--disable-hooks], [disable Firm hooks])],
-[enable_hooks="$enableval"], [enable_hooks="yes"])
-
-if test "$enable_hooks" = yes; then
-       FIRMCONFIG_FIRM_ENABLE_HOOKS="#define FIRM_ENABLE_HOOKS"
-fi
-AC_SUBST([FIRMCONFIG_FIRM_ENABLE_HOOKS])
-
 dnl enable Firm statistics
 dnl -------------
 AC_ARG_ENABLE([statistics],
@@ -126,33 +120,8 @@ AC_ARG_ENABLE([ilp],
 
 if test "$enable_ilp" = yes; then
   FIRMCONFIG_WITH_ILP="#define FIRMCONFIG_WITH_ILP"
+  AC_DEFINE([WITH_ILP], [], [enable to build code using ilp solvers])
 fi
-AC_SUBST([FIRMCONFIG_WITH_ILP])
-AC_SUBST(enable_ilp)
-
-dnl enable JVM calling from Firm
-dnl --------------------------------
-AC_ARG_ENABLE([jvm],
-[AS_HELP_STRING([--enable-jvm], [enable to call the jvm])],
-[enable_jvm="$enableval"], [enable_jvm="no"])
-
-if test "$enable_jvm" = yes; then
-  FIRMCONFIG_WITH_JVM="#define FIRMCONFIG_WITH_JVM"
-fi
-AC_SUBST([FIRMCONFIG_WITH_JVM])
-AC_SUBST(enable_jvm)
-
-dnl enable wchar_t support for identifiers
-dnl --------------------------------
-AC_ARG_ENABLE([wchar_support],
-[AS_HELP_STRING([--enable-wchar-support], [enable wchar_t support for identifiers (needed for java)])],
-[enable_wchar_support="$enableval"], [enable_wchar_support="no"])
-
-if test "$enable_wchar_support" = yes; then
-  FIRMCONFIG_FIRM_ENABLE_WCHAR="#define FIRM_ENABLE_WCHAR"
-fi
-AC_SUBST([FIRMCONFIG_FIRM_ENABLE_WCHAR])
-AC_SUBST([enable_wchar_support])
 
 dnl disable backend
 dnl ---------------
@@ -168,7 +137,6 @@ dnl ====================
 dnl check for a C compiler
 dnl ----------------------
 AC_PROG_CC
-AC_PROG_LIBTOOL
 
 AC_PATH_PROGS(PERL, perl perl5)
 
@@ -181,6 +149,7 @@ dnl ========================
 
 AC_HEADER_STDC
 AC_CHECK_HEADERS([math.h], , AC_MSG_ERROR("math header file not found"))
+AC_CHECK_HEADERS([alloca.h])
 
 dnl Checks for libraries.
 dnl =====================
@@ -202,17 +171,7 @@ AC_C_LONG_DOUBLE
 dnl Checks for library functions.
 dnl =============================
 
-dnl check for strerror
-
-AC_CHECK_FUNC(strerror,,
-  AC_MSG_ERROR("need strerror function")
-)
-
-dnl we use the gnu extension obstack_printf
-AC_DEFINE([_GNU_SOURCE], [], [we use gnu extensions])
-AC_CHECK_FUNC(strerror,,
-  AC_MSG_ERROR("need obstack_printf function")
-)
+AC_FUNC_STRTOLD
 
 dnl Error messaging
 dnl ===============
@@ -220,16 +179,18 @@ dnl ===============
 
 dnl Output results
 AC_CONFIG_FILES([
-       firm_config.h
        Makefile
        ir/Makefile
        include/libfirm/Makefile
        libfirm.pc
 ])
 
+#always do inlining
+AC_DEFINE([INLINE], [inline], [define inline to compiler inline keyword])
+
 BACKENDS=""
-if test "$enable_backend" == yes; then
-       BACKENDS="arm ia32 mips ppc32"
+if test "$enable_backend" = yes; then
+       BACKENDS="arm ia32 mips sparc amd64"
 fi
 AC_SUBST([BACKENDS])
 
@@ -242,9 +203,6 @@ echo "     backends              $BACKENDS"
 echo "     profiling             $enable_profile_libfirm"
 echo "     debug/verifiers       $enable_debug_libfirm"
 echo "     assertions            $enable_assert"
-echo "     hooks                 $enable_hooks"
 echo "     statistics            $enable_statistics"
 echo "     ilp                   $enable_ilp"
-echo "     jvm                   $enable_jvm"
-echo "     wide char support     $enable_wchar_support"
 echo ""