1# $NetBSD: configure.ac,v 1.43 2020/04/18 19:27:49 jhigh Exp $
2#
3# Process this file with autoconf to produce a configure script.
4
5AC_INIT([netpgp],[20140220],[Alistair Crooks <agc@netbsd.org> c0596823])
6AC_PREREQ(2.69)
7AC_REVISION([$Revision: 1.43 $])
8
9AS_SHELL_SANITIZE
10
11AC_CONFIG_SRCDIR([src/netpgp/netpgp.c])
12AC_CONFIG_AUX_DIR([buildaux])
13AC_CONFIG_HEADER([src/lib/config.h])
14
15AM_INIT_AUTOMAKE([-Wall -Werror foreign])
16AM_MAINTAINER_MODE
17
18AC_CANONICAL_HOST
19CANONICAL_HOST=$host
20AC_SUBST([CANONICAL_HOST])
21
22# Checks for programs.
23#
24AC_PROG_MAKE_SET
25AC_PROG_AWK
26AC_PROG_CC
27AC_PROG_INSTALL
28AC_PROG_LIBTOOL
29AC_PROG_LN_S
30
31dnl based on AC_PROG_RANLIB from autoconf
32m4_ifndef([AC_PROG_AR],[dnl
33AN_MAKEVAR([AR], [AC_PROG_AR])
34AN_PROGRAM([ar], [AC_PROG_AR])
35AC_DEFUN([AC_PROG_AR],
36[AC_CHECK_TOOL(AR, ar, :)])
37])
38
39AC_PROG_AR
40
41# Compiler characteristics
42#
43AC_MSG_CHECKING([if using gcc])
44AS_IF([test "$GCC" = "yes"],
45      [WARNCFLAGS="-Werror -Wall -Wpointer-arith"
46       AC_MSG_RESULT([yes; adding to CFLAGS: "$WARNCFLAGS"])],
47      [WARNCFLAGS=""
48       AC_MSG_RESULT([no])])
49AC_SUBST([WARNCFLAGS])
50
51# try to see if we need to link with -ldl
52AC_SEARCH_LIBS(dlopen, dl)
53
54# Checks for header files.
55#
56AC_HEADER_STDC
57AC_CHECK_HEADERS([CommonCrypto/CommonDigest.h])
58AC_CHECK_HEADERS([dmalloc.h direct.h errno.h fcntl.h \
59                 inttypes.h limits.h malloc.h zlib.h])
60AC_CHECK_HEADERS([openssl/aes.h openssl/bn.h openssl/camellia.h openssl/cast.h \
61		  openssl/des.h openssl/dsa.h openssl/err.h openssl/idea.h \
62		  openssl/md5.h openssl/rand.h openssl/rsa.h openssl/sha.h \
63		  openssl/err.h openssl/sha.h openssl/blowfish.h])
64AC_CHECK_HEADERS([sys/cdefs.h sys/file.h sys/mman.h sys/param.h \
65                  sys/resource.h sys/uio.h])
66
67AC_CHECK_HEADERS([bzlib.h],
68                 [],
69                 [AC_MSG_FAILURE([missing <bzlib.h>; is bzip2 installed?])])
70
71# Checks for typedefs, structures, and compiler characteristics.
72#
73AC_TYPE_LONG_LONG_INT
74AC_TYPE_SIZE_T
75AC_TYPE_UINT16_T
76AC_TYPE_UINT32_T
77AC_TYPE_UINT64_T
78AC_TYPE_UINT8_T
79
80# check for openssl
81m4_include([ax_check_openssl.m4])
82
83AX_CHECK_OPENSSL([LIBS="$LIBS $OPENSSL_LIBS" INCLUDES="$INCLUDES $OPENSSL_INCLUDES"],
84	[AC_MSG_ERROR([Missing OpenSSL])])
85
86AC_CHECK_TYPES([SHA256_CTX],
87               [],
88               [AC_MSG_FAILURE([missing SHA256_CTX; is openssl 0.9.8 or newer installed?])],
89              [[
90#if defined(HAVE_SYS_TYPES_H)
91#include <sys/types.h>
92#endif
93#if defined(HAVE_OPENSSL_SHA_H)
94#include <openssl/sha.h>
95#endif
96#if defined(HAVE_COMMONCRYPTO_COMMONDIGEST_H)
97#define COMMON_DIGEST_FOR_OPENSSL 1
98#include <CommonCrypto/CommonDigest.h>
99#endif
100]])
101
102# Checks for library functions.
103#
104AC_SEARCH_LIBS([gzopen], [z])
105AC_SEARCH_LIBS([BZ2_bzDecompress], [bz2])
106AC_SEARCH_LIBS([RSA_public_encrypt], [crypto])
107
108# Initialize the testsuite
109#
110AC_CONFIG_TESTDIR([tests])
111AM_MISSING_PROG([AUTOM4TE], [autom4te])
112
113# Generate the Makefiles
114#
115AC_CONFIG_FILES([
116        Makefile
117        include/Makefile
118        src/Makefile
119        src/libmj/Makefile
120        src/lib/Makefile
121        src/netpgp/Makefile
122        src/netpgpkeys/Makefile
123        tests/Makefile
124        tests/atlocal
125])
126AC_OUTPUT
127
128# Display feature results
129#
130AC_MSG_NOTICE([ === Configuration results ===])
131AC_MSG_NOTICE([Version:             $PACKAGE_VERSION])
132AC_MSG_NOTICE([C compiler:          $CC])
133AC_MSG_NOTICE([Warning CFLAGS:      $WARNCFLAGS])
134AC_MSG_NOTICE([=============================])
135