1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
|
AC_INIT([urweb], [20120512])
WORKING_VERSION=1
AC_USE_SYSTEM_EXTENSIONS
# automake 1.12 requires this, but automake 1.11 doesn't recognize it
m4_ifdef([AM_PROG_AR], [AM_PROG_AR])
AM_INIT_AUTOMAKE([-Wall -Werror foreign no-define])
AC_PROG_CC()
AC_PROG_LIBTOOL()
AC_CONFIG_MACRO_DIR([m4])
AC_CONFIG_HEADERS([include/urweb/config.h])
AX_PTHREAD([echo >/dev/null], [echo "Your C compiler does not support POSIX threads."; exit 1])
AX_CHECK_OPENSSL([echo >/dev/null], [echo "You must install OpenSSL development files."; exit 1])
AC_CHECK_PROG(MLTON, mlton, yes, [])
if test [-z $MLTON]; then
echo "You must install MLton."
exit 1
fi
AC_CHECK_PROG(MLLEX, mllex, yes, [])
if test [-z $MLLEX]; then
echo "You must install MLton (to get mllex)."
exit 1
fi
AC_CHECK_PROG(MLYACC, mlyacc, yes, [])
if test [-z $MLYACC]; then
echo "You must install MLton (to get mlyacc)."
exit 1
fi
if test [$prefix = "NONE"]; then
prefix=/usr/local
fi
if test [-z $BIN]; then
BIN=$prefix/bin
fi
if test [-z $LIB]; then
LIB=$prefix/lib
fi
if test [-z $SRCLIB]; then
SRCLIB=$prefix/lib/urweb
fi
if test [-z $INCLUDE]; then
INCLUDE=$prefix/include/urweb
fi
if test [-z $SITELISP]; then
SITELISP=$prefix/share/emacs/site-lisp/urweb-mode
fi
AC_ARG_WITH([emacs],
[AS_HELP_STRING([--without-emacs],
[disable installation of Emacs mode])],
[],
[with_emacs=yes])
AM_CONDITIONAL(USE_EMACS, test "x$with_emacs" = xyes)
if test [-z $PGHEADER]; then
AC_CHECK_HEADERS([postgresql/libpq-fe.h],
[PGHEADER=postgresql/libpq-fe.h])
fi
if test [-z $PGHEADER]; then
PGHEADER=libpq-fe.h
fi
if test [-z $MSHEADER]; then
AC_CHECK_HEADERS([mysql/mysql.h],
[MSHEADER=mysql/mysql.h])
fi
if test [-z $MSHEADER]; then
MSHEADER=mysql.h
fi
if test [-z $SQHEADER]; then
SQHEADER=sqlite3.h
fi
if test [$WORKING_VERSION = "1"]; then
VERSION="$VERSION + `hg identify || (cat .hg_archival.txt | grep 'node\:') || echo ?`"
fi
AC_SUBST(CC)
AC_SUBST(BIN)
AC_SUBST(LIB)
AC_SUBST(SRCLIB)
AC_SUBST(INCLUDE)
AC_SUBST(SITELISP)
AC_SUBST(CCARGS)
AC_SUBST(PGHEADER)
AC_SUBST(MSHEADER)
AC_SUBST(SQHEADER)
AC_SUBST(VERSION)
AC_SUBST(PTHREAD_CFLAGS)
AC_SUBST(PTHREAD_LIBS)
AC_CONFIG_FILES([
Makefile
src/c/Makefile
src/config.sml
])
AC_OUTPUT()
cat <<EOF
Ur/Web configuration:
bin directory: BIN $BIN
lib directory: LIB $LIB
src lib directory: SRCLIB $SRCLIB
include directory: INCLUDE $INCLUDE
site-lisp directory: SITELISP $SITELISP
C compiler: CC $CC
Extra CC args: CCARGS $CCARGS
Postgres C header: PGHEADER $PGHEADER
MySQL C header: MSHEADER $MSHEADER
SQLite C header: SQHEADER $SQHEADER
OpenSSL: OPENSSL_LIBS $OPENSSL_LIBS
Version: $VERSION
EOF
|