#!/bin/sh #*=====================================================================*/ #* serrano/prgm/project/skribe/etc/bigloo/configure */ #* ------------------------------------------------------------- */ #* Author : Manuel Serrano */ #* Creation : Tue Jan 25 16:05:10 1994 */ #* Last change : Tue Aug 24 10:31:53 2004 (serrano) */ #* Copyright : 1994-2004 Manuel Serrano, see LICENSE file */ #* ------------------------------------------------------------- */ #* The skribe configuration file */ #*=====================================================================*/ # the name of the current bigloo compiler bigloo=bigloo target=c # bigloo compilation flags bcommonflags="-no-hello -fno-reflection" blinkflags="-no-hello -ld-relative -O3" boptflags="$bcommonflags -O3" bsafeflags="$bcommonflags -g" bflags="$boptflags" bheapflags="-unsafe -q -mkaddheap -mkaddlib" bcflags="-copt \"$""(CPICFLAGS)\"" bjvmflags="-jvm -jvm-purify -saw -jvm-env SKRIBEPATH" prcs=/usr/bin/prcs # the afile, jfile and btags binaries afile=afile jfile= btags=btags bdepend=bdepend # C compilation (left blank for automatic configuration (from Bigloo setup)) cc= cflags= ldopt= # path (left blank for automatic configuration (from Bigloo setup)) bgllibdir= bglbindir= bgllddir= bgldocdir= skribebindir= skribelibdir= skribefildir= skribeskrdir= skribeextdir= skribedocdir= skribemandir= # mask of Skribe intalled files smask=755 #*---------------------------------------------------------------------*/ #* !!! DON'T EDIT AFTER THIS COMMENT !!! */ #*---------------------------------------------------------------------*/ if [ "x$DISTRIBDIR" = "x" ]; then distribdir=$HOME/prgm/distrib else distribdir=$DISTRIBDIR fi if [ "x$SKRIBERELEASE" = "x" ]; then echo "*** ERROR:configure:release. Aborting" echo "Variable \"SKRIBERELEASE\" is unset." exit 1; else release=$SKRIBERELEASE fi if [ "x$SKRIBEBETARELEASE" = "x" ]; then if [ -f $prcs ]; then beta=`$prcs info skribe 2>&1 /dev/null | tail --lines=1 | awk '{ print $2 }' | sed 's/[0-9]*[.][0-9]*[a-z]*/&-beta/'` elif [ -f /usr/local/bin/prcs ]; then beta=`/usr/local/bin/prcs info skribe 2>&1 /dev/null | tail --lines=1 | awk '{ print $2 }' | sed 's/[0-9]*[.][0-9]*[a-z]*/&-beta/'` else beta=no fi else beta=$SKRIBEBETARELEASE fi if [ "x$SKRIBEURL" = "x" ]; then skribeurl="http://www.inria.fr/mimosa/fp/Skribe" else skribeurl=$SKRIBEURL fi requiredbigloo=2.6c action=all makefile_config=Makefile.skb skribe_config=../../src/common/configure.scm summary=yes http="www-sop.inria.fr/mimosa/fp" autoconfdir=`dirname $0 2> /dev/null`/autoconf bootconfig=false; if [ $? != "0" ]; then autoconfdir="autoconf" fi # Argument parsing while : ; do case $1 in "") break;; -c) target=c;; -j|--jvm) target=jvm;; -|--dotnet) target=dotnet;; --skribe_config=*) action="skribe_config"; skribe_config="`echo $1 | sed 's/^[-a-z_.]*=//'`";; --makefile.skb=*) action="makefile.skb"; makefile_config="`echo $1 | sed 's/^[-Da-z.]*=//'`";; --bglbindir=*) bglbindir="`echo $1 | sed 's/^[-a-z]*=//'`";; --bgllibdir=*) bgllibdir="`echo $1 | sed 's/^[-a-z]*=//'`";; --bgllddir=*) bgllddir="`echo $1 | sed 's/^[-a-z]*=//'`";; --bgldocdir=*) bgldocdir="`echo $1 | sed 's/^[-a-z]*=//'`";; --bindir=*) skribebindir="`echo $1 | sed 's/^[-a-z]*=//'`";; --libdir=*) skribelibdir="`echo $1 | sed 's/^[-a-z]*=//'`";; --fildir=*) skribefildir="`echo $1 | sed 's/^[-a-z]*=//'`";; --skrdir=*) skribeskrdir="`echo $1 | sed 's/^[-a-z]*=//'`";; --extdir=*) skribeextdir="`echo $1 | sed 's/^[-a-z]*=//'`";; --docdir=*) skribedocdir="`echo $1 | sed 's/^[-a-z]*=//'`";; --mandir=*) skribemandir="`echo $1 | sed 's/^[-a-z]*=//'`";; --bigloo=*) bigloo="`echo $1 | sed 's/^[-a-z]*=//'`";; --afile=*) afile="`echo $1 | sed 's/^[-a-z]*=//'`";; --jfile=*) jfile="`echo $1 | sed 's/^[-a-z]*=//'`";; --btags=*) btags="`echo $1 | sed 's/^[-a-z]*=//'`";; --mask=*) smask="`echo $1 | sed 's/^[-a-z]*=//'`";; --cc=*) cc="`echo $1 | sed 's/^[-a-z]*=//'`";; --cflags=*) cflags="`echo $1 | sed 's/^[-a-z]*=//'`";; --ldopt=*) ldopt="`echo $1 | sed 's/^[-a-z]*=//'`";; --backends=*) backends="`echo $1 | sed 's/^[-a-z]*=//'`";; --no-summary) summary=no;; --debug) bflags="-g -cg $bsafeflags";; --debug2) bflags="-g2 -cg $bsafeflags";; --debug3) bflags="-g3 -cg $bsafeflags";; --optimize) bflags=$boptflags;; --bjvmflags=*) bjvmflags="`echo $1 | sed 's/^[-a-z]*=//'`";; --bcflags=*) bcflags="`echo $1 | sed 's/^[-a-z]*=//'`";; --prefix=*) prefix="`echo $1 | sed 's/^[^=]*=//'`"; skribebindir=$prefix/bin; skribeskrdir=$prefix/share/skribe/$release/skr; skribeextdir=$prefix/share/skribe/extensions; skribelibdir=$prefix/lib skribefildir=$skribelibdir/skribe/$release; skribemandir=$prefix/man/man1; skribedocdir=$prefix/doc/skribe-$release;; --bootconfig) bootconfig=true;; -*) echo "*** Configure error, unknown option $1" >&2; echo >&2; echo "Usage: configure --with-bigloo [options]" >&2; echo " -c.................... uses the Bigloo C back-end" >&2; echo " -j|--jvm.............. uses the Bigloo JVM back-end" >&2; echo " -d|--dotnet........... uses the Bigloo .NET back-end" >&2; echo " --skribe_config=file.. sets the name of the skribe-config file" >&2; echo " --makefile.skb=file... sets the name of the Makefile.skb file" >&2; echo " --prefix=dir.......... prefix to Skribe install" >&2; echo " --bindir=file......... alternative Skribe bin directory" >&2; echo " --libdir=file......... alternative Skribe lib directory" >&2; echo " --fildir=file......... alternative Skribe file directory" >&2; echo " --skrdir=file......... Skribe skr directory" >&2; echo " --bglbindir=file...... Bigloo bin directory" >&2; echo " --bgllibdir=file...... Bigloo lib directory" >&2; echo " --bglfildir=file...... Bigloo file directory" >&2; echo " --bgldocdir=file...... Bigloo doc directory" >&2; echo " --docdir=file......... Documentation directory" >&2; echo " --mandir=file......... Manual pages directory" >&2; echo " --bigloo=comp......... The Bigloo compiler" >&2; echo " --afile=afile......... The Bigloo afile tool" >&2; echo " --jfile=jfile......... The Bigloo jfile tool" >&2; echo " --btags=btags......... The Bigloo btags tool" >&2; echo " --cc=comp............. The C compiler (for C back-end)" >&2; echo " --cflags=args......... The C compilation options" >&2; echo " --ldopt=args.......... The C link options" >&2; echo " --smask=mask.......... The installation mask" >&2; echo " --no-summary.......... Private option" >&2; echo " --debug............... Enables Bigloo debug mode" >&2; echo " --optimize............ Enables Bigloo optimization mode (default)" >&2; echo " --bootconfig.......... Private option" >&2; exit -1; esac shift done #*---------------------------------------------------------------------*/ #* First check if bigloo exists and if it is recent enough */ #*---------------------------------------------------------------------*/ if [ ! -f $bigloo ]; then which $bigloo > /dev/null 2> /dev/null if [ "$?" != "0" ]; then echo "*** ERROR:configure:bigloo. Aborting" echo "Can't find bigloo." exit 1; fi fi installedbigloo=`$autoconfdir/bversion --bigloo=$bigloo --version=$requiredbigloo` if [ $? != "0" ]; then echo "*** ERROR:configure:bigloo. Aborting" echo "Your version ($installedbigloo) of Bigloo is too old." echo "Release $requiredbigloo or more recent is required." echo "Bigloo may be downloaded from $http" exit 1; fi #*---------------------------------------------------------------------*/ #* The binary directory */ #*---------------------------------------------------------------------*/ if [ "$bglbindir " = " " ]; then if [ "$bigloo " = " " ]; then bgl=`which bigloo`; else bgl=`which $bigloo`; fi bglbindir=`dirname $bgl` fi if [ "$skribebindir " = " " ]; then skribebindir=$prefix/bin; fi #*---------------------------------------------------------------------*/ #* The Bigloo library directory */ #*---------------------------------------------------------------------*/ if [ "$bgllibdir " = " " ]; then bgllibdir=`$autoconfdir/blibdir --bigloo="$bigloo"` fi if [ "$bglfildir " = " " ]; then bglfildir=`$autoconfdir/bfildir --bigloo="$bigloo"` fi #*---------------------------------------------------------------------*/ #* We check the installed Bigloo Makefile.config file */ #*---------------------------------------------------------------------*/ if [ ! -f $bglfildir/Makefile.config ]; then echo "*** ERROR:configure:Can't find Makefile.config file" echo "Should be $bglfildir/Makefile.config." exit 1; fi #*---------------------------------------------------------------------*/ #* jfile */ #*---------------------------------------------------------------------*/ if [ "$jfile " = " " ]; then if [ ! -f $bigloo ]; then which jfile > /dev/null 2> /dev/null if [ "$?" != "0" ]; then jfile=true; else jfile=jfile; fi fi fi #*---------------------------------------------------------------------*/ #* We are now able to set the correct value for cc since we know */ #* what Bigloo is. */ #*---------------------------------------------------------------------*/ if [ "$cc " = " " ]; then cc=`$bigloo -eval '(begin (print *cc*) (exit 0))'` fi if [ "$cflags " = " " ]; then cflags=`grep '^CFLAGS=' $bglfildir/Makefile.config | sed 's/^[A-Z]*=//'` fi ldflags=`grep '^EXTRALIBS=' $bglfildir/Makefile.config | sed 's/^[A-Z]*=//'` cpicflags=`grep '^CPICFLAGS=' $bglfildir/Makefile.config | sed 's/^[A-Z]*=//'` #*---------------------------------------------------------------------*/ #* Completing dirs */ #*---------------------------------------------------------------------*/ if [ "$skribelibdir " = " " ]; then skribelibdir=$prefix/lib; fi if [ "$skribefildir " = " " ]; then skribefildir=$skribelibdir/skribe/$release; fi if [ "$skribeskrdir " = " " ]; then skribeskrdir=$prefix/share/skribe/$release/skr; fi if [ "$skribeextdir " = " " ]; then skribeextdir=$prefix/share/skribe/extensions; fi if [ "$bgldocdir " = " " ]; then bgldocdir=`grep '^DOCDIR=' $bglfildir/Makefile.config | sed 's/^[A-Z]*=//' | sed 's/[$][(][^)]*[)]//'` fi if [ "$skribedocdir " = " " ]; then skribedocdir=`dirname $bgldocdir`/skribe-$release fi if [ "$skribemandir " = " " ]; then skribemandir=`grep '^MANDIR=' $bglfildir/Makefile.config | sed 's/^[A-Z]*=//'` fi if [ "$skribeemacsdir " = " " ]; then skribeemacsdir=`grep '^EMACSDIR=' $bglfildir/Makefile.config | sed 's/^[A-Z]*=//'` fi #*---------------------------------------------------------------------*/ #* emacs/skribe.el */ #*---------------------------------------------------------------------*/ cat ../../emacs/skribe.el \ | sed "s|@SKRIBE_EMACSDIR@|$skribeemacsdir|" \ | sed "s|@SKRIBE_HOSTSCHEMEDOCDIR@|$bgldocdir|" \ > ../../emacs/skribe.el.aux \ && mv ../../emacs/skribe.el.aux ../../emacs/skribe.el #*---------------------------------------------------------------------*/ #* etc/skribe-config */ #*---------------------------------------------------------------------*/ cat ../skribe-config \ | sed "s|@SKRIBE_EMACS_DIR@|$skribeemacsdir|" \ > ../skribe-config.aux \ && mv ../skribe-config.aux ../skribe-config #*---------------------------------------------------------------------*/ #* makefile.skb */ #* ------------------------------------------------------------- */ #* This part of the configure script produces the file */ #* makefile.skb. This file contains machine dependant */ #* informations and location where Bigloo is to be installed. */ #*---------------------------------------------------------------------*/ if [ $action = "all" -o $action = "makefile.skb" ]; then # We create an unexisting temporary file name name=foo while( test -f "$name.c" -o -f "$name.o" ); do name="$name"x; done # We check the C compiler cat > $name.c </dev/null 2>&1 then true else echo "***ERROR:configure:$cc:Can't compile c file -- $cc $cflags -c $name.c"; /bin/rm -f $name.c $name.o $name.a; exit 1 fi /bin/rm -f $name.c $name.o $name.a; # We first cleanup the general Makefile config rm -f ../Makefile.config 2> /dev/null echo "## Skribe ($release) configure" > ../Makefile.config echo "## Don't edit, file generated by etc/bigloo/configure" >> ../Makefile.config echo "SKRIBERELEASE=$release" >> ../Makefile.config echo "SKRIBEBETARELEASE=$beta" >> ../Makefile.config echo >> ../Makefile.config echo "SYSTEM=bigloo" >> ../Makefile.config case $target in jvm) echo 'SKRIBE=java -classpath $(BINDIR)/skribe.zip:$(ZIPDIR)/bigloo_s.zip:$(LIBDIR)/bigloo_s.zip bigloo.skribe.main' >> ../Makefile.config; echo 'SKRIBEINFO=java -classpath $(BINDIR)/skribeinfo.zip:$(ZIPDIR)/bigloo_s.zip:$(LIBDIR)/bigloo_s.zip bigloo.skribe.skribeinfo.main' >> ../Makefile.config; echo 'SKRIBEBIBTEX=java -classpath $(BINDIR)/skribebibtex.zip:$(ZIPDIR)/bigloo_s.zip:$(LIBDIR)/bigloo_s.zip bigloo.skribe.skribebibtex.main' >> ../Makefile.config;; *) echo 'SKRIBE=$'"(BINDIR)/skribe.bigloo" >> ../Makefile.config; echo 'SKRIBEINFO=$'"(BINDIR)/skribeinfo.bigloo" >> ../Makefile.config; echo 'SKRIBEBIBTEX=$'"(BINDIR)/skribebibtex.bigloo" >> ../Makefile.config;; esac # We first cleanup the file rm -f $makefile_config 2> /dev/null touch $makefile_config echo "## Skribe ($release) configure" >> $makefile_config echo "## Don't edit, file generated by etc/bigloo/configure" >> $makefile_config echo >> $makefile_config # The Bigloo target (c, jvm, dotnet) echo "TARGET=$target" >> $makefile_config echo >> $makefile_config # The boot directories echo "SKRIBEDIR=`pwd`/../.." >> $makefile_config echo 'SKRIBEBINDIR=$'"(SKRIBEDIR)/bin" >> $makefile_config; echo 'SKRIBELIBDIR=$'"(SKRIBEDIR)/lib" >> $makefile_config; echo 'SKRIBEFILDIR=$'"(SKRIBEDIR)/lib" >> $makefile_config; echo >> $makefile_config # The distribution directory echo "DISTRIBDIR=$distribdir" >> $makefile_config echo >> $makefile_config # The installation directories echo "INSTALL_BINDIR=$skribebindir" >> $makefile_config echo "INSTALL_LIBDIR=$skribelibdir" >> $makefile_config echo "INSTALL_FILDIR=$skribefildir" >> $makefile_config echo "INSTALL_SKRDIR=$skribeskrdir" >> $makefile_config echo "INSTALL_EXTDIR=$skribeextdir" >> $makefile_config if [ ! "$skribedocdir " = " " ]; then echo "INSTALL_DOCDIR=$skribedocdir" >> $makefile_config; fi if [ ! "$skribemandir " = " " ]; then echo "INSTALL_MANDIR=$skribemandir" >> $makefile_config; fi echo "INSTALL_HOSTHTTP=$skribehttphost" >> $makefile_config echo "INSTALL_MASK=$smask" >> $makefile_config echo >> $makefile_config # The bigloo configuration cat $bglfildir/Makefile.config >> $makefile_config echo >> $makefile_config # The bigloo compiler echo "BIGLOO=$bigloo" >> $makefile_config echo "BIGLOO_FILDIR=$bglfildir" >> $makefile_config echo "BIGLOO_LIBDIR=$bgllibdir" >> $makefile_config echo >> $makefile_config # The bigloo compiler options echo "BLINKFLAGS=$blinkflags -ldopt '$ldopt'" >> $makefile_config echo "BSAFEFLAGS=$bsafeflags" >> $makefile_config echo "BHEAPFLAGS=$bheapflags" >> $makefile_config echo "BCOMMONFLAGS=$bflags" >> $makefile_config echo "BCFLAGS=$bcflags" >> $makefile_config echo "BJVMFLAGS=$bjvmflags" >> $makefile_config echo >> $makefile_config # Bigloo bde echo "AFILE=$afile" >> $makefile_config echo "JFILE=$jfile" >> $makefile_config echo "BTAGS=$btags" >> $makefile_config echo "BDEPEND=$bdepend" >> $makefile_config echo "SKRIBEINDENT=bpp" >> $makefile_config echo >> $makefile_config # Misc echo "RM=/bin/rm" >> $makefile_config echo >> $makefile_config fi #*---------------------------------------------------------------------*/ #* Ok, we are done now */ #*---------------------------------------------------------------------*/ if [ "$summary" = "yes" ]; then echo echo echo "** Configuration summary **" echo echo "Release number:" echo " Skribe release number................. $release" echo " Skribe beta number.................... $beta" echo " Minimum Bigloo version required....... $requiredbigloo" echo " Installed Bigloo version.............. $installedbigloo" echo echo "Compilers:" echo " Bigloo................................ $bigloo" echo " Bigloo link flags..................... $blinkflags" echo " Bigloo compilation flags.............. $bflags" echo " Bigloo heap flags..................... $bheapflags" echo " afile................................. $afile" echo " jfile................................. $jfile" echo " btags................................. $btags" echo " cc.................................... $cc" echo " cc compilation flags.................. $cflags" echo " link options.......................... $ldopt" echo echo "Path:" echo " Binary directory...................... $skribebindir" echo " Skr directory......................... $skribeskrdir" echo " Extensions directory.................. $skribeextdir" echo " File directory........................ $skribefildir" echo " Library directory..................... $skribelibdir" echo " Documentation directory............... $skribedocdir" echo " Man pages directory................... $skribemandir" echo " Home page............................. $skribeurl" echo echo "Misc configuration:" echo " mask for installed files.............. $smask" echo echo "Emacs:" echo " Emacs Lisp files directory............ $skribeemacsdir" echo fi