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