root/trunk/configure.ac

Revision 176, 6.5 KB (checked in by alonbl, 2 months ago)

mingw32->mingw*

  • Property svn:keywords set to Author Date Id Revision
Line 
1dnl -*- mode: m4; -*-
2
3AC_PREREQ(2.60)
4
5define([PACKAGE_VERSION_MAJOR], [0])
6define([PACKAGE_VERSION_MINOR], [2])
7define([PACKAGE_VERSION_FIX], [4])
8
9AC_INIT([libp11],[PACKAGE_VERSION_MAJOR.PACKAGE_VERSION_MINOR.PACKAGE_VERSION_FIX-svn])
10AC_CONFIG_AUX_DIR([.])
11AC_CONFIG_HEADERS([config.h])
12AC_CONFIG_MACRO_DIR([m4])
13AM_INIT_AUTOMAKE([${PACKAGE_NAME}], [${PACKAGE_VERSION}])
14
15LIBP11_VERSION_MAJOR="PACKAGE_VERSION_MAJOR"
16LIBP11_VERSION_MINOR="PACKAGE_VERSION_MINOR"
17LIBP11_VERSION_FIX="PACKAGE_VERSION_FIX"
18
19# LT Version numbers, remember to change them just *before* a release.
20#   (Code changed:                      REVISION++)
21#   (Oldest interface removed:          OLDEST++)
22#   (Interfaces added:                  CURRENT++, REVISION=0)
23LIBP11_LT_CURRENT="2"
24LIBP11_LT_OLDEST="1"
25LIBP11_LT_REVISION="0"
26LIBP11_LT_AGE="$((${LIBP11_LT_CURRENT}-${LIBP11_LT_OLDEST}))"
27
28AC_CONFIG_SRCDIR([src/libp11.h])
29
30AC_CANONICAL_HOST
31AC_PROG_CC
32PKG_PROG_PKG_CONFIG
33AC_C_BIGENDIAN
34
35AC_MSG_CHECKING([svn checkout])
36if test -e "${srcdir}/packaged"; then
37        svn_checkout="no"
38else
39        svn_checkout="yes"
40fi
41AC_MSG_RESULT([${svn_checkout}])
42
43AC_ARG_WITH(
44        [cygwin-native],
45        [AS_HELP_STRING([--with-cygwin-native],[compile native win32])],
46        ,
47        [with_cygwin_native="no"]
48)
49
50dnl Check for some target-specific stuff
51test -z "${WIN32}" && WIN32="no"
52test -z "${CYGWIN}" && CYGWIN="no"
53case "${host}" in
54        *-mingw*|*-winnt*)
55                WIN32="yes"
56                CPPFLAGS="${CPPFLAGS} -DWIN32_LEAN_AND_MEAN"
57                WIN_LIBPREFIX="lib"
58        ;;
59        *-cygwin*)
60                AC_MSG_CHECKING([cygwin mode to use])
61                CYGWIN="yes"
62                if test "${with_cygwin_native}" = "yes"; then
63                        AC_MSG_RESULT([Using native win32])
64                        CPPFLAGS="${CPPFLAGS} -DWIN32_LEAN_AND_MEAN"
65                        CFLAGS="${CFLAGS} -mno-cygwin"
66                        WIN32="yes"
67                else
68                        AC_MSG_RESULT([Using cygwin])
69                        CPPFLAGS="${CPPFLAGS} -DCRYPTOKI_FORCE_WIN32"
70                        WIN_LIBPREFIX="cyg"
71                        AC_DEFINE([USE_CYGWIN], [1], [Define if you are on Cygwin])
72                fi
73        ;;
74esac
75
76AC_ARG_ENABLE(
77        [strict],
78        [AS_HELP_STRING([--enable-strict],[enable strict compile mode @<:@disabled@:>@])],
79        ,
80        [enable_strict="no"]
81)
82
83AC_ARG_ENABLE(
84        [pedantic],
85        [AS_HELP_STRING([--enable-pedantic],[enable pedantic compile mode @<:@disabled@:>@])],
86        ,
87        [enable_pedantic="no"]
88)
89
90AC_ARG_ENABLE(
91        [doc],
92        [AS_HELP_STRING([--enable-doc],[enable installation of documents @<:@disabled@:>@])],
93        ,
94        [enable_doc="no"]
95)
96
97AC_ARG_ENABLE(
98        [api-doc],
99        [AS_HELP_STRING([--enable-api-doc],[enable generation and installation of api documents @<:@disabled@:>@])],
100        ,
101        [enable_api_doc="no"]
102)
103
104AC_ARG_WITH(
105        [apidocdir],
106        [AS_HELP_STRING([--with-apidocdir],[put API documents at this directory @<:@HTMLDIR/api@:>@])],
107        [apidocdir="${with_apidocdir}"],
108        [apidocdir="\$(htmldir)/api"]
109)
110
111dnl Checks for programs.
112AC_PROG_CPP
113AC_PROG_INSTALL
114AC_PROG_LN_S
115AC_PROG_MKDIR_P
116AC_PROG_SED
117AC_PROG_MAKE_SET
118
119dnl Add libtool support.
120ifdef(
121        [LT_INIT],
122        [
123                LT_INIT([win32-dll])
124                LT_LANG([Windows Resource])
125        ],
126        [
127                AC_LIBTOOL_WIN32_DLL
128                AC_LIBTOOL_RC
129                AC_PROG_LIBTOOL
130        ]
131)
132
133dnl Checks for header files.
134AC_HEADER_STDC
135AC_HEADER_SYS_WAIT
136AC_CHECK_HEADERS([ \
137        errno.h fcntl.h malloc.h stdlib.h \
138        inttypes.h string.h strings.h sys/time.h \
139        unistd.h locale.h getopt.h dlfcn.h utmp.h \
140])
141
142AC_CHECK_PROGS([DOXYGEN],[doxygen])
143test "${enable_api_doc}" = "yes" -a -z "${DOXYGEN}" && AC_MSG_ERROR([doxygen is required for api doc])
144
145dnl These required for svn checkout
146AC_ARG_VAR([XSLTPROC], [xsltproc utility])
147AC_ARG_VAR([SVN], [subversion utility])
148AC_ARG_VAR([WGET], [wget utility])
149AC_ARG_VAR([WGET_OPTS], [wget options])
150AC_ARG_VAR([TR], [tr utility])
151AC_CHECK_PROGS([XSLTPROC],[xsltproc])
152AC_CHECK_PROGS([SVN],[svn])
153AC_CHECK_PROGS([WGET],[wget])
154AC_CHECK_PROGS([TR],[tr])
155test -z "${WGET_OPTS}" && WGET_OPTS="-nv"
156
157dnl svn checkout dependencies
158if test "${svn_checkout}" = "yes"; then
159        AC_MSG_CHECKING([XSLTPROC requirement])
160        if test -n "${XSLTPROC}"; then
161                AC_MSG_RESULT([ok])
162        else
163                if test "${enable_doc}" = "yes"; then
164                        AC_MSG_ERROR([Missing XSLTPROC svn build with doc])
165                else
166                        AC_MSG_WARN(["make dist" will not work])
167                fi
168        fi
169
170        AC_MSG_CHECKING([svn doc build dependencies])
171        if test -n "${SVN}" -a -n "${TR}" -a -n "${WGET}"; then
172                AC_MSG_RESULT([ok])
173        else
174                if test "${enable_doc}" = "yes"; then
175                        AC_MSG_ERROR([Missing SVN, TR or WGET for svn doc build])
176                else
177                        AC_MSG_WARN(["make dist" will not work])
178                fi
179        fi
180fi
181
182AC_ARG_VAR([LTLIB_CFLAGS], [C compiler flags for libltdl])
183AC_ARG_VAR([LTLIB_LIBS], [linker flags for libltdl])
184if test -z "${LTLIB_LIBS}"; then
185        AC_CHECK_LIB(
186                [ltdl],
187                [lt_dlopen],
188                [LTLIB_LIBS="-lltdl"],
189                [AC_MSG_ERROR([ltdl not found, please install libltdl and/or libtool])]
190        )
191
192fi
193saved_CFLAGS="${CFLAGS}"
194CFLAGS="${CFLAGS} ${LTLIB_CFLAGS}"
195AC_CHECK_HEADER(
196        [ltdl.h],
197        ,
198        [AC_MSG_ERROR([ltdl.h not found, please install libltdl and/or libtool])]
199)
200CFLAGS="${saved_CFLAGS}"
201
202PKG_CHECK_MODULES(
203        [OPENSSL],
204        [libcrypto >= 0.9.7],
205        ,
206        [PKG_CHECK_MODULES(
207                [OPENSSL],
208                [openssl >= 0.9.7],
209                ,
210                [AC_CHECK_LIB(
211                        [crypto],
212                        [RSA_version],
213                        [OPENSSL_LIBS="-lcrypto"],
214                        [AC_MSG_ERROR([Cannot find OpenSSL])]
215                )]
216        )]
217)
218
219pkgconfigdir="\$(libdir)/pkgconfig"
220
221AC_SUBST([pkgconfigdir])
222AC_SUBST([apidocdir])
223AC_SUBST([LIBP11_VERSION_MAJOR])
224AC_SUBST([LIBP11_VERSION_MINOR])
225AC_SUBST([LIBP11_VERSION_FIX])
226AC_SUBST([LIBP11_LT_CURRENT])
227AC_SUBST([LIBP11_LT_REVISION])
228AC_SUBST([LIBP11_LT_AGE])
229AC_SUBST([LIBP11_LT_OLDEST])
230AC_SUBST([WIN_LIBPREFIX])
231
232AM_CONDITIONAL([SVN_CHECKOUT], [test "${svn_checkout}" = "yes"])
233AM_CONDITIONAL([WIN32], [test "${WIN32}" = "yes"])
234AM_CONDITIONAL([CYGWIN], [test "${CYGWIN}" = "yes"])
235AM_CONDITIONAL([ENABLE_DOC], [test "${enable_doc}" = "yes"])
236AM_CONDITIONAL([ENABLE_API_DOC], [test "${enable_api_doc}" = "yes"])
237
238if test "${enable_pedantic}" = "yes"; then
239        enable_strict="yes";
240        CFLAGS="${CFLAGS} -pedantic"
241fi
242if test "${enable_strict}" = "yes"; then
243        CFLAGS="${CFLAGS} -Wall -Wextra"
244fi
245
246AC_CONFIG_FILES([
247        Makefile
248        src/Makefile
249        src/libp11.pc
250        src/versioninfo.rc
251        doc/Makefile
252        doc/doxygen.conf
253        doc/nonpersistent/Makefile
254])
255AC_OUTPUT
256
257cat <<EOF
258
259libp11 has been configured with the following options:
260
261
262Version:                 ${PACKAGE_VERSION}
263Libraries:               $(eval eval eval echo "${libdir}")
264
265doc support:             ${enable_doc}
266api doc support:         ${enable_api_doc}
267
268Host:                    ${host}
269Compiler:                ${CC}
270Preprocessor flags:      ${CPPFLAGS}
271Compiler flags:          ${CFLAGS}
272Linker flags:            ${LDFLAGS}
273Libraries:               ${LIBS}
274
275LTLIB_CFLAGS:            ${LTLIB_CFLAGS}
276LTLIB_LIBS:              ${LTLIB_LIBS}
277OPENSSL_CFLAGS:          ${OPENSSL_CFLAGS}
278OPENSSL_LIBS:            ${OPENSSL_LIBS}
279
280EOF
Note: See TracBrowser for help on using the browser.