diff options
author | Adam Chlipala <adamc@hcoop.net> | 2008-10-19 12:47:10 -0400 |
---|---|---|
committer | Adam Chlipala <adamc@hcoop.net> | 2008-10-19 12:47:10 -0400 |
commit | 54d7cbad02005212c4171b7d652416c75a93aa37 (patch) | |
tree | a51f905aff94143b7019859ff0407d1935e177f9 /configure.ac | |
parent | 8476261d4f4a9a67119abc05cb40907ad979b4de (diff) |
Proper configuration and installation
Diffstat (limited to 'configure.ac')
-rw-r--r-- | configure.ac | 97 |
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 |