configure.ac
author J. Ali Harlow <ali@juiblex.co.uk>
Fri Oct 03 12:26:22 2014 +0100 (2014-10-03)
changeset 452 06885e558546
parent 443 b2d6a8273459
child 455 df914f383f5c
permissions -rw-r--r--
Add RAZOR_HAVE_ATOMIC_ROLLBACK
rhughes@241
     1
dnl Process this file with autoconf to produce a configure script.
rhughes@241
     2
rhughes@241
     3
AC_PREREQ(2.59c)
ali@437
     4
AC_INIT([razor], [0.5.7], [ali@juiblex.co.uk])
ali@380
     5
AM_INIT_AUTOMAKE([])
ali@380
     6
AM_CONFIG_HEADER([config.h])
rhughes@241
     7
AM_MAINTAINER_MODE
rhughes@241
     8
rhughes@241
     9
# libtool versioning - this applies to all libraries in this package
rhughes@241
    10
#
rhughes@241
    11
# See http://sources.redhat.com/autobook/autobook/autobook_91.html#SEC91 for details
rhughes@241
    12
#
ali@443
    13
LT_CURRENT=5
ali@403
    14
LT_REVISION=0
ali@443
    15
LT_AGE=1
rhughes@241
    16
AC_SUBST(LT_CURRENT)
rhughes@241
    17
AC_SUBST(LT_REVISION)
rhughes@241
    18
AC_SUBST(LT_AGE)
rhughes@241
    19
rhughes@241
    20
AC_ISC_POSIX
rhughes@241
    21
AC_PROG_CC
ali@323
    22
gl_EARLY
rhughes@241
    23
AM_PROG_CC_STDC
rhughes@241
    24
AC_HEADER_STDC
ali@330
    25
AC_HEADER_SYS_WAIT
ali@322
    26
AC_CHECK_HEADERS([sys/mman.h])
ali@323
    27
gl_INIT
ali@328
    28
AC_CHECK_FUNCS([symlink chroot])
ali@427
    29
LT_INIT([win32-dll])
ali@427
    30
# Libtool supports a --disable-shared option to tell it to avoid
ali@427
    31
# building shared versions of libraries. In addition to this,we want
ali@427
    32
# to support building static versions of our executables. Libtool
ali@427
    33
# can do this (under the right circumstances) so we overload this
ali@427
    34
# switch for this purpose.
ali@427
    35
#
ali@427
    36
# The libtool option that we use (-static-libtool-libs) means to use
ali@427
    37
# static linking with libraries that supply a .la file and which
ali@427
    38
# include a non-empty value for "old_library". If the library doesn't
ali@427
    39
# include a .la file (they are deleted by some distributions), then
ali@427
    40
# this option will have no effect and likewise if old_library is set
ali@427
    41
# to '' (eg., if the library was build with --disable-static) then
ali@427
    42
# again -static-libtool-libs will have no effect.
ali@427
    43
#
ali@427
    44
# If old_library is set to a non-empty value, then specifying
ali@427
    45
# -static-libtool-libs will cause the link to fail if the old library
ali@427
    46
# cannot be found (libtool will not fallback to a shared library
ali@427
    47
# in these circumstances). This can happen with Fedora, for example,
ali@427
    48
# if a main mingw32 library package is installed but not the
ali@427
    49
# coresponding static sub-package. The solution is to either
ali@427
    50
# install the relevant static sub-packages or don't use --disable-shared.
ali@427
    51
AS_IF([test "$enable_shared" = no],[
ali@427
    52
  LDFLAGS="$LDFLAGS -static-libtool-libs"
ali@427
    53
])
ali@427
    54
LT_OUTPUT
ali@427
    55
ac_compile="./libtool --mode=compile --tag=CC $ac_compile"
ali@427
    56
ac_link="./libtool --mode=link --tag=CC $ac_link"
rhughes@241
    57
AC_PROG_MAKE_SET
rhughes@241
    58
AC_PROG_LN_S
rhughes@241
    59
AC_SYS_LARGEFILE
rhughes@241
    60
AM_PROG_CC_C_O
rhughes@241
    61
ali@416
    62
AC_ARG_ENABLE([atomic],
ali@416
    63
	      [AS_HELP_STRING([--disable-atomic],
ali@416
    64
	      		      [disable atomic transactions])],
ali@416
    65
	      [],
ali@416
    66
	      [enable_atomic=yes])
ali@416
    67
if test "$enable_atomic" = "yes"; then
ali@416
    68
    AC_DEFINE([ENABLE_ATOMIC],[1],[Define if atomic transactions are wanted.])
ali@452
    69
    AC_SUBST([RAZOR_HAVE_ATOMIC_ROLLBACK],
ali@452
    70
      ['#define RAZOR_HAVE_ATOMIC_ROLLBACK 1'])
ali@452
    71
else
ali@452
    72
    AC_SUBST([RAZOR_HAVE_ATOMIC_ROLLBACK],['#undef RAZOR_HAVE_ATOMIC_ROLLBACK'])
ali@416
    73
fi
ali@416
    74
ali@328
    75
AC_MSG_CHECKING([for Microsoft Windows native API])
ali@328
    76
case $host_os in
ali@328
    77
    *mingw*)	AC_DEFINE([MSWIN_API], 1,
ali@328
    78
		  [Define to 1 to use Microsoft Windows native API.])
ali@340
    79
		EXTRA_LIBS='-lshell32 -lws2_32'
ali@328
    80
		mswin_api=yes;;
ali@328
    81
    *)		mswin_api=no;;
ali@328
    82
esac
ali@328
    83
AC_MSG_RESULT([$mswin_api])
ali@328
    84
AM_CONDITIONAL(MSWIN_API, test "$mswin_api" = "yes")
ali@335
    85
AC_SUBST(EXTRA_LIBS)
ali@328
    86
ali@416
    87
if test "$enable_atomic" = "yes" -a "$mswin_api" = "yes"; then
ali@403
    88
    AC_MSG_CHECKING([for Microsoft Windows Kernel Transaction Manager])
ali@403
    89
    save_LIBS="$LIBS"
ali@403
    90
    LIBS="-lktmw32 $LIBS"
ali@403
    91
    AC_LINK_IFELSE([AC_LANG_PROGRAM([dnl
ali@403
    92
#include <windows.h>
ali@403
    93
#include <ktmw32.h>
ali@403
    94
], [(void)CreateTransaction(NULL,0,0,0,0,0,NULL);])],
ali@403
    95
      [have_windows_ktm="yes"; EXTRA_LIBS="-lktmw32 $EXTRA_LIBS"],
ali@403
    96
      [have_windows_ktm="no"])
ali@403
    97
    LIBS="$save_LIBS"
ali@403
    98
    AC_MSG_RESULT([$have_windows_ktm])
ali@403
    99
else
ali@403
   100
    have_windows_ktm="no"
ali@403
   101
fi
ali@403
   102
if test "$have_windows_ktm" = "yes"; then
ali@403
   103
    AC_DEFINE([HAVE_WINDOWS_KTM],[1],[Define if Windows KTM is available.])
ali@403
   104
fi
ali@403
   105
rhughes@241
   106
# Taken from dbus
rhughes@241
   107
AC_ARG_ENABLE(ansi,             [  --enable-ansi           enable -ansi -pedantic gcc flags],enable_ansi=$enableval,enable_ansi=no)
rhughes@241
   108
AC_ARG_ENABLE(verbose-mode,     [  --enable-verbose-mode   support verbose debug mode],enable_verbose_mode=$enableval,enable_verbose_mode=$USE_MAINTAINER_MODE)
rhughes@241
   109
rhughes@241
   110
if test "${enable_verbose_mode}" != no; then
rhughes@241
   111
    # To get -rdynamic you pass -export-dynamic to libtool.
rhughes@241
   112
    AC_DEFINE(BUILT_R_DYNAMIC,1,[whether -export-dynamic was passed to libtool])
rhughes@241
   113
    R_DYNAMIC_LDFLAG=-export-dynamic
rhughes@241
   114
else
rhughes@241
   115
    R_DYNAMIC_LDFLAG=
rhughes@241
   116
fi
rhughes@241
   117
AC_SUBST(R_DYNAMIC_LDFLAG)
rhughes@241
   118
rhughes@241
   119
#### gcc warning flags
rhughes@241
   120
rhughes@241
   121
if test "x$GCC" = "xyes"; then
rhughes@241
   122
  changequote(,)dnl
rhughes@241
   123
  case " $CFLAGS " in
rhughes@241
   124
  *[\ \	]-Wall[\ \	]*) ;;
ali@442
   125
  *) CFLAGS="$CFLAGS -Wall -Wno-parentheses" ;;
rhughes@241
   126
  esac
rhughes@241
   127
rhughes@241
   128
  case " $CFLAGS " in
rhughes@241
   129
  *[\ \	]-Wchar-subscripts[\ \	]*) ;;
rhughes@241
   130
  *) CFLAGS="$CFLAGS -Wchar-subscripts" ;;
rhughes@241
   131
  esac
rhughes@241
   132
rhughes@241
   133
  case " $CFLAGS " in
rhughes@241
   134
  *[\ \	]-Wmissing-declarations[\ \	]*) ;;
rhughes@241
   135
  *) CFLAGS="$CFLAGS -Wmissing-declarations" ;;
rhughes@241
   136
  esac
rhughes@241
   137
rhughes@241
   138
  case " $CFLAGS " in
rhughes@241
   139
  *[\ \	]-Wnested-externs[\ \	]*) ;;
rhughes@241
   140
  *) CFLAGS="$CFLAGS -Wnested-externs" ;;
rhughes@241
   141
  esac
rhughes@241
   142
rhughes@241
   143
  case " $CFLAGS " in
rhughes@241
   144
  *[\ \	]-Wcast-align[\ \	]*) ;;
rhughes@241
   145
  *) CFLAGS="$CFLAGS -Wcast-align" ;;
rhughes@241
   146
  esac
rhughes@241
   147
rhughes@241
   148
  case " $CFLAGS " in
rhughes@241
   149
  *[\ \	]-Wformat[\ \	]*) ;;
rhughes@241
   150
  *) CFLAGS="$CFLAGS -Wformat" ;;
rhughes@241
   151
  esac
rhughes@241
   152
rhughes@241
   153
  case " $CFLAGS " in
rhughes@241
   154
  *[\ \	]-Wformat-security[\ \	]*) ;;
rhughes@241
   155
  *) CFLAGS="$CFLAGS -Wformat-security" ;;
rhughes@241
   156
  esac
rhughes@241
   157
rhughes@241
   158
  if test "x$enable_ansi" = "xyes"; then
rhughes@241
   159
    case " $CFLAGS " in
rhughes@241
   160
    *[\ \	]-ansi[\ \	]*) ;;
rhughes@241
   161
    *) CFLAGS="$CFLAGS -ansi" ;;
rhughes@241
   162
    esac
rhughes@241
   163
rhughes@241
   164
    case " $CFLAGS " in
rhughes@241
   165
    *[\ \	]-D_POSIX_C_SOURCE*) ;;
rhughes@241
   166
    *) CFLAGS="$CFLAGS -D_POSIX_C_SOURCE=199309L" ;;
rhughes@241
   167
    esac
rhughes@241
   168
rhughes@241
   169
    case " $CFLAGS " in
rhughes@241
   170
    *[\ \	]-D_BSD_SOURCE[\ \	]*) ;;
rhughes@241
   171
    *) CFLAGS="$CFLAGS -D_BSD_SOURCE" ;;
rhughes@241
   172
    esac
rhughes@241
   173
rhughes@241
   174
    case " $CFLAGS " in
rhughes@241
   175
    *[\ \	]-pedantic[\ \	]*) ;;
rhughes@241
   176
    *) CFLAGS="$CFLAGS -pedantic" ;;
rhughes@241
   177
    esac
rhughes@241
   178
  fi
rhughes@241
   179
  changequote([,])dnl
rhughes@241
   180
fi
rhughes@241
   181
krh@269
   182
krh@269
   183
# gcc default visibility stuff
krh@269
   184
krh@269
   185
have_gcc4=no
krh@269
   186
AC_MSG_CHECKING(for -fvisibility)
krh@269
   187
AC_COMPILE_IFELSE([
krh@269
   188
#if defined(__GNUC__) && (__GNUC__ >= 4)
krh@269
   189
#else
krh@269
   190
#error Need GCC 4.0 for visibility
krh@269
   191
#endif
krh@269
   192
int main () { return 0; } 
krh@269
   193
], have_gcc4=yes)
krh@269
   194
krh@269
   195
if test "x$have_gcc4" = "xyes"; then
krh@269
   196
   CFLAGS="$CFLAGS -fvisibility=hidden"
krh@269
   197
fi
krh@269
   198
AC_MSG_RESULT($have_gcc4)
krh@269
   199
ali@344
   200
REQUIREMENTS=""
ali@321
   201
AC_ARG_WITH([curl],
ali@321
   202
            [AS_HELP_STRING([--without-curl], [disable support for curl])],
ali@321
   203
            [],
ali@321
   204
            [with_curl=yes])
ali@321
   205
          
ali@321
   206
CURL_CFLAGS=
ali@321
   207
CURL_LIBS=
ali@321
   208
AS_IF([test "x$with_curl" != xno],
ali@321
   209
  [PKG_CHECK_MODULES(CURL, [libcurl])
ali@321
   210
   AC_DEFINE([HAVE_CURL], [1], [Define if you have curl])])
rhughes@241
   211
AC_SUBST(CURL_CFLAGS)
rhughes@241
   212
AC_SUBST(CURL_LIBS)
rhughes@241
   213
rhughes@241
   214
ZLIB_LIBS=""
rhughes@241
   215
AC_ARG_WITH(zlib, [  --with-zlib=<dir>       Use zlib from here],
rhughes@241
   216
                      [
rhughes@241
   217
                      zlib=$withval
rhughes@241
   218
                      CPPFLAGS="$CPPFLAGS -I$withval/include"
rhughes@241
   219
                      ]
rhughes@241
   220
                      )
rhughes@241
   221
AC_CHECK_HEADERS(zlib.h, [AC_DEFINE(HAVE_ZLIB_H)],
rhughes@241
   222
                 [AC_MSG_ERROR([Can't find zlib.h. Please install zlib.])])
ali@344
   223
save_ldflags="$LDFLAGS"
ali@344
   224
LDFLAGS="$LDFLAGS -L$zlib/lib"
ali@344
   225
AC_CHECK_LIB(z, inflate, [ZLIB_LIBS="-L$zlib/lib -lz"],
rhughes@241
   226
	     [AC_MSG_ERROR([Can't find zlib library. Please install zlib.])])
ali@344
   227
LDFLAGS="$save_ldflags"
rhughes@241
   228
AC_SUBST(ZLIB_LIBS)
rhughes@241
   229
rhughes@241
   230
EXPAT_LIB=""
rhughes@241
   231
AC_ARG_WITH(expat, [  --with-expat=<dir>      Use expat from here],
rhughes@241
   232
                      [
rhughes@241
   233
                      expat=$withval
rhughes@241
   234
                      CPPFLAGS="$CPPFLAGS -I$withval/include"
rhughes@241
   235
                      ]
rhughes@241
   236
                      )
rhughes@241
   237
AC_CHECK_HEADERS(expat.h, [AC_DEFINE(HAVE_EXPAT_H)], 
rhughes@241
   238
		 [AC_MSG_ERROR([Can't find expat.h. Please install expat.])])
ali@344
   239
save_ldflags="$LDFLAGS"
ali@344
   240
LDFLAGS="$LDFLAGS -L$expat/lib"
ali@344
   241
AC_CHECK_LIB(expat, XML_ParserCreate, [EXPAT_LIBS="-L$expat/lib -lexpat"],
rhughes@241
   242
	     [AC_MSG_ERROR([Can't find expat library. Please install expat.])])
ali@344
   243
LDFLAGS="$save_ldflags"
rhughes@241
   244
AC_SUBST(EXPAT_LIBS)
rhughes@241
   245
ali@320
   246
RPM_LIBS=""
ali@320
   247
AC_ARG_WITH(rpm, [  --with-rpm=<dir>      Use rpm from here])
ali@320
   248
ali@320
   249
AS_IF([test "$with_rpm" != no],
ali@320
   250
      [if test "$with_rpm" != yes; then
ali@320
   251
	    CPPFLAGS="$CPPFLAGS -I$with_rpm/include"
ali@320
   252
       fi
ali@320
   253
       AC_CHECK_HEADERS(rpm/rpmlib.h, [], 
ali@320
   254
		 [AC_MSG_ERROR([Can't find rpm/rpmlib.h. Please install rpm-devel or use --without-rpm.])])
ali@344
   255
       save_ldflags="$LDFLAGS"
ali@344
   256
       LDFLAGS="$LDFLAGS -L$with_rpm/lib"
ali@344
   257
       AC_CHECK_LIB(rpm,rpmdbOpen,[RPM_LIBS="-L$with_rpm/lib -lrpm"],
ali@320
   258
	     [AC_MSG_ERROR([Can't find rpm library. Please install rpm-devel or use --without-rpm.])])
ali@344
   259
       LDFLAGS="$save_ldflags"
ali@320
   260
       AC_DEFINE([HAVE_RPMLIB], [1], [Define if you have librpm])])
rhughes@241
   261
AC_SUBST(RPM_LIBS)
ali@320
   262
AM_CONDITIONAL([HAVE_RPMLIB], [test -n "$RPM_LIBS"])
ali@352
   263
ali@352
   264
AC_ARG_WITH([lua],
ali@352
   265
            [AS_HELP_STRING([--without-lua], [disable support for lua])],
ali@352
   266
            [],
ali@352
   267
            [with_lua=yes])
ali@428
   268
ali@352
   269
AS_IF([test "x$with_lua" != xno],
ali@352
   270
  [PKG_CHECK_MODULES(LUA, [lua])
ali@352
   271
   REQUIREMENTS="$REQUIREMENTS lua"
ali@352
   272
   AC_DEFINE([HAVE_LUA], [1], [Define if you have lua])
ali@352
   273
   AC_PATH_PROG(LUA, [lua], [no])
ali@352
   274
   AS_IF([test "x$LUA" = xno],
ali@352
   275
     [AC_MSG_ERROR([Can't find lua program. Please install lua-devel or use --without-lua.])])
ali@352
   276
   AC_DEFINE_UNQUOTED([LUA_BINARY], ["$LUA"],
ali@352
   277
     [Define to the location of the lua binary])])
ali@352
   278
AC_SUBST(LUA_CFLAGS)
ali@352
   279
AC_SUBST(LUA_LIBS)
ali@352
   280
AM_CONDITIONAL([HAVE_LUA], [test "x$with_lua" != xno])
ali@352
   281
ali@344
   282
AC_SUBST(REQUIREMENTS)
rhughes@241
   283
rhughes@241
   284
if test "x$GCC" = "xyes"; then
rhughes@241
   285
  LDFLAGS="-Wl,--as-needed $LDFLAGS"
rhughes@241
   286
fi
rhughes@241
   287
rhughes@241
   288
# *****************************
rhughes@241
   289
# Make available to Makefile.am
rhughes@241
   290
# *****************************
rhughes@241
   291
AC_SUBST(SYSCONFDIR, $sysconfdir)
rhughes@241
   292
rhughes@241
   293
# ********************
rhughes@241
   294
# Internationalisation
rhughes@241
   295
# ********************
rhughes@241
   296
ali@319
   297
IT_PROG_INTLTOOL([0.35.0])
rhughes@241
   298
GETTEXT_PACKAGE=razor
rhughes@241
   299
AC_SUBST([GETTEXT_PACKAGE])
rhughes@241
   300
AM_GLIB_GNU_GETTEXT
rhughes@241
   301
AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE],["$GETTEXT_PACKAGE"],[gettext domain])
rhughes@241
   302
krh@262
   303
GTK_DOC_CHECK([1.9])
krh@262
   304
rhughes@241
   305
AC_OUTPUT([
rhughes@241
   306
Makefile
rhughes@241
   307
data/razor.pc
rhughes@241
   308
data/Makefile
rhughes@241
   309
librazor/Makefile
ali@452
   310
librazor/razor.h
ali@364
   311
librazor/types/Makefile
rhughes@241
   312
src/Makefile
rhughes@241
   313
docs/Makefile
krh@262
   314
docs/version.xml
rhughes@241
   315
po/Makefile.in
ali@323
   316
gl/Makefile
ali@351
   317
test/Makefile
rhughes@241
   318
])
rhughes@241
   319
rhughes@241
   320
dnl ==========================================================================
rhughes@241
   321
echo "
rhughes@241
   322
                  razor $VERSION
rhughes@241
   323
                =================
rhughes@241
   324
rhughes@241
   325
        prefix:                     ${prefix}
rhughes@241
   326
        libdir:                     ${libdir}
rhughes@241
   327
        libexecdir:                 ${libexecdir}
rhughes@241
   328
        bindir:                     ${bindir}
rhughes@241
   329
        sbindir:                    ${sbindir}
rhughes@241
   330
        datadir:                    ${datadir}
rhughes@241
   331
        sysconfdir:                 ${sysconfdir}
rhughes@241
   332
        localstatedir:              ${localstatedir}
rhughes@241
   333
        docdir:                     ${docdir}
rhughes@241
   334
rhughes@241
   335
        compiler:                   ${CC}
rhughes@241
   336
        cflags:                     ${CFLAGS}
rhughes@241
   337
        Maintainer mode:            ${USE_MAINTAINER_MODE}
rhughes@241
   338
        Building verbose mode:      ${enable_verbose_mode}
krh@294
   339
        Building gtk-doc:           ${enable_gtk_doc}
rhughes@241
   340
"