configure.ac
author J. Ali Harlow <ali@juiblex.co.uk>
Fri Jul 08 08:33:44 2016 +0100 (2016-07-08)
changeset 60 772ff096a326
parent 58 4b52e95a0104
child 61 31fb35727621
permissions -rw-r--r--
Avoid Microsoft-specific localtime_s
     1 #                                               -*- Autoconf -*-
     2 # Process this file with autoconf to produce a configure script.
     3 
     4 AC_INIT([plover],[0.5.2.52],[ali@juiblex.co.uk])
     5 AC_PREREQ(2.59)
     6 AC_CONFIG_AUX_DIR([config])
     7 AC_CONFIG_SRCDIR([plover/plover.h])
     8 AC_CONFIG_HEADER([config.h])
     9 AC_CONFIG_MACRO_DIR([m4])
    10 AC_CONFIG_FILES([Makefile
    11 plover/Makefile
    12 plover/plover.pc
    13 plover-gtk/Makefile
    14 plover-gtk/plover-gtk.pc
    15 setup/Makefile
    16 setup/resources.rc
    17 update/Makefile
    18 update/update-res.rc
    19 update/updatez-res.rc
    20 pre-inst/Makefile
    21 pre-inst/resources.rc
    22 app-manager/Makefile
    23 app-manager/resources.rc
    24 plover-open/Makefile
    25 plover-open/resources.rc
    26 tests/Makefile
    27 tests/plover/Makefile
    28 tests/plover-gtk/Makefile
    29 ])
    30 PLOVER_MSWIN_MANIFEST([setup/setup.exe.manifest:setup/manifest.xml.in
    31 update/update.exe.manifest:update/update.manifest.in
    32 update/updatez.exe.manifest:update/updatez.manifest.in
    33 pre-inst/pre-inst.exe.manifest:pre-inst/manifest.xml.in
    34 app-manager/app-manager.exe.manifest:app-manager/manifest.xml.in
    35 plover-open/plover-open.exe.manifest:plover-open/manifest.xml.in
    36 ])
    37 AM_INIT_AUTOMAKE(no-define parallel-tests)
    38 m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])])
    39 case $VERSION in
    40   *.*.*)
    41     AC_SUBST(PLOVER_MAJOR_VERSION,[[`echo $VERSION | sed 's/\..*//'`]])
    42     AC_SUBST(PLOVER_MINOR_VERSION,
    43       [[`echo $VERSION | sed 's/[^.]*\.\([^.]*\)\..*/\1/'`]])
    44     AC_SUBST(PLOVER_MICRO_VERSION,[[`echo $VERSION | sed 's/.*\.\([^.]*\)/\1/'`]])      ;;
    45   *.*)
    46     AC_SUBST(PLOVER_MAJOR_VERSION,[[`echo $VERSION | sed 's/\..*//'`]])
    47     AC_SUBST(PLOVER_MINOR_VERSION,
    48       [[`echo $VERSION | sed 's/[^.]*\.\([^.]*\)/\1/'`]])
    49     AC_SUBST(PLOVER_MICRO_VERSION,0)
    50     ;;
    51   *)
    52     AC_SUBST(PLOVER_MAJOR_VERSION,0)
    53     AC_SUBST(PLOVER_MINOR_VERSION,0)
    54     AC_SUBST(PLOVER_MICRO_VERSION,0)
    55     ;;
    56 esac
    57 AC_CANONICAL_HOST
    58 AC_SUBST(HOST_OS,$host_os)
    59 AC_SUBST(HOST_CPU,$host_cpu)
    60 case $host_os in
    61     mingw*)
    62 	host_mingw="yes"
    63 	;;
    64     *)
    65 	host_mingw=""
    66 	;;
    67 esac
    68 AM_CONDITIONAL(PLOVER_MINGW,[test -n "$host_mingw"])
    69 
    70 # libtool versioning for libplover. For a release one of the following
    71 # must apply:
    72 #
    73 # - If interfaces have been changed or added, but binary compatibility has
    74 #   been preserved, increment CURRENT and AGE and set REVISION to 0.
    75 # - If binary compatibility has been broken (eg removed or changed interfaces),
    76 #   increment CURRENT and set AGE and REVISION to 0.
    77 # - If the interface is the same as the previous version, increment REVISION.
    78 #
    79 lt_current=4
    80 lt_revision=1
    81 lt_age=1
    82 LIBPLOVER_LT_VERSION_INFO="$lt_current:$lt_revision:$lt_age"
    83 AC_SUBST(LIBPLOVER_LT_VERSION_INFO)
    84 
    85 # and likewise for plover-gtk.
    86 #
    87 lt_current=1
    88 lt_revision=1
    89 lt_age=0
    90 PLOVER_GTK_LT_VERSION_INFO="$lt_current:$lt_revision:$lt_age"
    91 AC_SUBST(PLOVER_GTK_LT_VERSION_INFO)
    92 
    93 ##################################################
    94 # Checks for programs.
    95 ##################################################
    96 AC_PROG_CC
    97 AC_PROG_CXX
    98 AC_LIBTOOL_WIN32_DLL
    99 AC_PROG_LIBTOOL
   100 PKG_PROG_PKG_CONFIG
   101 AC_CHECK_TOOL([WINDRES],[windres],[no])
   102 AM_CONDITIONAL([HAVE_WINDRES],[test x$WINDRES != xno])
   103 AC_CHECK_PROGS([RSVG],[rsvg rsvg-convert],[no])
   104 if test "$RSVG" = no; then
   105     AC_MSG_ERROR([no rsvg program found to convert SVG files to bitmaps])
   106 fi
   107 AX_VALGRIND_CHECK
   108 AS_IF([test "$enable_valgrind" != "no"],[[
   109     major=`$VALGRIND --version | \
   110       sed -e 's/^valgrind-//' -e 's/^[^.]*$/0/' -e 's/\..*//'`
   111     minor=`$VALGRIND --version | \
   112       sed -e 's/^valgrind-//' -e 's/.*/&.0.0/' -e 's/[^.]*\.\([^.]*\)\..*/\1/'`
   113 ]],[major=0; minor=0])
   114 AM_CONDITIONAL([HAVE_VALGRIND_3_9],[test 0$major -gt 3 -o 0$minor -gt 8])
   115 AX_CODE_COVERAGE
   116 AC_CHECK_TOOL([RAZOR],[razor],[no])
   117 AC_CHECK_TOOL([RPMBUILD],[rpmbuild],[no])
   118 AC_CHECK_TOOL([CREATEREPO],[createrepo],[no])
   119 AC_CHECK_TOOL([COMPILE_RESOURCES],[glib-compile-resources],[no])
   120 AM_CONDITIONAL([HAVE_CHECK_TOOLS],
   121   [test x$RAZOR != xno -a x$RPMBUILD != xno -a x$CREATEREPO != xno -a \
   122    x$COMPILE_RESOURCES != xno])
   123 
   124 ##################################################
   125 # Checks for header files.
   126 ##################################################
   127 AC_HEADER_STDC
   128 AC_CHECK_HEADERS([winhttp.h],[],[],
   129 [#include <windows.h>
   130 ])
   131 
   132 ##################################################
   133 # Checks for typedefs, structures, and compiler characteristics.
   134 ##################################################
   135 
   136 ##################################################
   137 # Checks for libraries.
   138 ##################################################
   139 PKG_CHECK_MODULES(WHELK,[whelk])
   140 PKG_CHECK_MODULES(RAZOR,[razor >= 0.5.4],[:],[RAZOR_LIBS=-lrazor])
   141 PKG_CHECK_MODULES(EXPAT,[expat >= 2.1],[:],
   142   [PKG_CHECK_MODULES(EXPAT,[expat21],[:],[EXPAT_LIBS=-lexpat])])
   143 PKG_CHECK_MODULES(ZLIB,[zlib],[:],[ZLIB_LIBS=-lz])
   144 PKG_CHECK_MODULES(LUA,[lua],[:],[LUA_LIBS=-llua])
   145 PKG_CHECK_MODULES(GIO,[gio-2.0])
   146 PKG_CHECK_MODULES(GTK,[gtk+-2.0])
   147 PKG_CHECK_MODULES(GMODULE_EXPORT,[gmodule-export-2.0])
   148 LIBPLOVER_CFLAGS="$RAZOR_CFLAGS $EXPAT_CFLAGS $ZLIB_CFLAGS $GIO_CFLAGS"
   149 LIBPLOVER_LIBS="$RAZOR_LIBS $EXPAT_LIBS $ZLIB_LIBS $GIO_LIBS"
   150 AC_SUBST(LIBPLOVER_CFLAGS)
   151 AC_SUBST(LIBPLOVER_LIBS)
   152 PLOVER_GTK_CFLAGS="$GTK_CFLAGS $RAZOR_CFLAGS"
   153 PLOVER_GTK_LIBS="$GTK_LIBS $RAZOR_LIBS"
   154 AC_SUBST(PLOVER_GTK_CFLAGS)
   155 AC_SUBST(PLOVER_GTK_LIBS)
   156 save_LIBS="$LIBS"
   157 AC_SEARCH_LIBS([crypt],[crypt])
   158 LUA_POSIX_CFLAGS="$LUA_CFLAGS"
   159 LUA_POSIX_LIBS="-llua-posix $LUA_LIBS $LIBS"
   160 LIBS="$save_LIBS"
   161 AC_SUBST(LUA_POSIX_CFLAGS)
   162 AC_SUBST(LUA_POSIX_LIBS)
   163 GUI_CFLAGS="$GMODULE_EXPORT_CFLAGS $WHELK_CFLAGS $PLOVER_GTK_CFLAGS \
   164   $LIBPLOVER_CFLAGS $LUA_POSIX_CFLAGS"
   165 GUI_LIBS="$GMODULE_EXPORT_LIBS $WHELK_LIBS $PLOVER_GTK_LIBS \
   166   $LIBPLOVER_LIBS $LUA_POSIX_LIBS"
   167 AC_SUBST(GUI_CFLAGS)
   168 AC_SUBST(GUI_LIBS)
   169 save_PKG_CONFIG="$PKG_CONFIG"
   170 PKG_CONFIG="$PKG_CONFIG --static"
   171 PKG_CHECK_MODULES(SETUP,[whelk razor >= 0.5.4 expat >= 2.1 zlib gio-2.0],[:],
   172   [PKG_CHECK_MODULES(SETUP,[whelk razor >= 0.5.4 expat21 zlib gio-2.0])])
   173 if test -n "$host_mingw"; then
   174     # Hacks:
   175     # -liconv is required for mingw. This probably stems from our use of
   176     # libiconv rather than win-iconv that Fedora uses, but should be addressed
   177     # somewhere in the stack below us.
   178     # -ldnsapi is required by gio. This probably represents a gio bug.
   179     SETUP_LIBS="$SETUP_LIBS -liconv -ldnsapi"
   180 fi
   181 PKG_CONFIG="$save_PKG_CONFIG"
   182 SETUP_CFLAGS="$SETUP_CFLAGS $LUA_POSIX_CFLAGS"
   183 SETUP_LIBS="$SETUP_LIBS $LUA_POSIX_LIBS"
   184 AC_SUBST(SETUP_LIBS)
   185 AC_SUBST(SETUP_CFLAGS)
   186 save_LIBS="$LIBS"
   187 LIBS="$LIBS -lcrypt32"
   188 AC_MSG_CHECKING([for library containing CertEnumCertificatesInStore])
   189 AC_LINK_IFELSE([AC_LANG_PROGRAM(
   190   [[#include <windows.h>]],
   191   [return !CertEnumCertificatesInStore((HCERTSTORE)0,NULL);])],
   192   [FETCH_LIBS="-lcrypt32"])
   193 if test -z "$FETCH_LIBS"; then
   194     AC_MSG_RESULT([no])
   195 else
   196     AC_MSG_RESULT([$FETCH_LIBS])
   197 fi
   198 AC_SUBST([FETCH_LIBS])
   199 LIBS="$save_LIBS"
   200 AC_ARG_WITH([breakpad],
   201   [AS_HELP_STRING([--with-breakpad],
   202     [produce minidumps on crash @<:@default=check@:>@])],
   203   [],[with_breakpad=check])
   204 if test "$with_breakpad" != no; then
   205     PKG_CHECK_MODULES([BREAKPAD],[breakpad-client],
   206       [have_breakpad="yes";REQUIREMENTS="$REQUIREMENTS x11"],[have_breakpad="no"])
   207     if test "$have_breakpad" = yes; then
   208 	AC_DEFINE([HAVE_BREAKPAD],[1],[Define if breakpad is available.])
   209     elif test "$with_breakpad" = yes; then
   210 	AC_MSG_ERROR([$BREAKPAD_PKG_ERRORS])
   211     fi
   212 else
   213     have_breakpad="no"
   214 fi
   215 AM_CONDITIONAL([HAVE_BREAKPAD],[test $have_breakpad = yes])
   216 
   217 ##################################################
   218 # Checks for library functions.
   219 ##################################################
   220 AC_CHECK_FUNCS_ONCE([fchdir fpathconf dirfd localtime_r])
   221 
   222 ##################################################
   223 # Checks for processor independent files.
   224 ##################################################
   225 
   226 ##################################################
   227 # Generate the various configured files
   228 ##################################################
   229 AC_OUTPUT