aboutsummaryrefslogtreecommitdiffhomepage
path: root/configure.ac
diff options
context:
space:
mode:
authorGravatar Adam Chlipala <adamc@hcoop.net>2008-10-19 12:47:10 -0400
committerGravatar Adam Chlipala <adamc@hcoop.net>2008-10-19 12:47:10 -0400
commit54d7cbad02005212c4171b7d652416c75a93aa37 (patch)
treea51f905aff94143b7019859ff0407d1935e177f9 /configure.ac
parent8476261d4f4a9a67119abc05cb40907ad979b4de (diff)
Proper configuration and installation
Diffstat (limited to 'configure.ac')
-rw-r--r--configure.ac97
1 files changed, 97 insertions, 0 deletions
diff --git a/configure.ac b/configure.ac
new file mode 100644
index 00000000..a0455358
--- /dev/null
+++ b/configure.ac
@@ -0,0 +1,97 @@
+# configure.in for Ur/Web -*- sh -*-
+# Process this file with autoconf to produce a configure script.
+
+# -------------- usual initial stuff -------------
+# this simply names a file somewhere in the source tree to verify
+# we're in the right directory
+AC_INIT(THIS_IS_URWEB)
+
+
+# sm: require a late-enough autoconf; this is the version number
+# that's on manju, so I assume it's ok
+AC_PREREQ(2.50)
+
+AC_MSG_NOTICE(Configuring Ur/Web)
+
+# make sure I haven't forgotten to run autoconf
+if test configure -ot configure.ac; then
+ AC_MSG_ERROR(configure is older than configure.in; you forgot to run autoconf)
+fi
+
+# ---------------- generic functions -----------------
+# debugging diagnostic; set to 'echo' to debug or 'true' for production
+diagnostic() {
+ #echo "$@"
+ true "$@"
+}
+
+if test [-z $BIN]; then
+ BIN=/usr/local/bin
+fi
+
+if test [-z $LIB]; then
+ LIB=/usr/local/lib/urweb
+fi
+
+if test [-z $INCLUDE]; then
+ INCLUDE=/usr/local/include/urweb
+fi
+
+if test [-z $SITELISP]; then
+ SITELISP=/usr/local/share/emacs/site-lisp/urweb-mode
+fi
+
+
+do_not_edit="Do not edit this file. It was generated automatically from"
+
+
+# ----------------- finish up -------------------
+# names of the variables that get substituted in files; for example,
+# write @ARCHOS@ somewhere in a written file to get it substituted
+AC_SUBST(BIN)
+AC_SUBST(LIB)
+AC_SUBST(INCLUDE)
+AC_SUBST(SITELISP)
+AC_SUBST(do_not_edit)
+
+# finish the configure script and generate various files; ./configure
+# will apply variable substitutions to <filename>.in to generate <filename>;
+# I find it useful to mark generated files as read-only so I don't
+# accidentally edit them (and then lose my changes when ./configure
+# runs again); I had originally done the chmod after AC_OUTPUT, but
+# the problem is then the chmod doesn't run inside ./config.status
+
+# MY_AC_CONFIG_FILES(filename)
+# do AC_CONFIG_FILES(filename, chmod a-w filename)
+define([MY_AC_CONFIG_FILES],
+[{
+ if test -f [$1].in; then
+ AC_CONFIG_FILES([$1], chmod a-w [$1])
+ else
+ true
+ #echo "skipping [$1] because it's not in this distribution"
+ fi
+}])
+define([MY_AC_CONFIG_EXE_FILES],
+[{
+ if test -f [$1].in; then
+ AC_CONFIG_FILES([$1], [chmod a-w,a+x $1])
+ else
+ true
+ #echo "skipping [$1] because it's not in this distribution"
+ fi
+}])
+MY_AC_CONFIG_FILES(Makefile)
+MY_AC_CONFIG_FILES(src/config.sml)
+
+AC_OUTPUT()
+
+# show the user what the variables have been set to
+cat <<EOF
+
+Ur/Web configuration:
+ bin directory: BIN $BIN
+ lib directory: LIB $LIB
+ include directory: INCLUDE $INCLUDE
+ site-lisp directory: SITELISP $SITELISP
+EOF