source: trunk/configure.ac @ 202

Revision 202, 6.1 KB checked in by alonbl, 5 months ago (diff)

Remove ltdl usage

Use native POSIX/Windows

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