view configure.ac @ 378:168667cdaa95

Proper configuration and installation
author Adam Chlipala <adamc@hcoop.net>
date Sun, 19 Oct 2008 12:47:10 -0400
parents
children 2f2d5c8dd320
line wrap: on
line source
# 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