alliance/alliance/share/etc/configure.in

407 lines
10 KiB
Plaintext

# ,,,
# (o o)
####=====oOO--(_)--OOO=========================================####
#
# Alliance CAD system configure.in
# (C) 1997 Czo -- <Olivier.Sirol@lip6.fr>
# $Id: configure.in,v 1.4 1999/09/09 15:42:00 czo Exp $
#
AC_REVISION($Revision: 1.4 $)dnl
AC_INIT(configure.in)
AC_PREFIX_DEFAULT(/usr/local/alliance)
# Helps this script to run in bad configured env...
#PATH=$PATH:/bin:/usr/bin:/usr/local/bin:/labo/TeX/teTeX/bin:/labo/X11R6/bin:/labo/X11r5/bin:/labo/bin:/labo/gnu/bin:/sbin:/user/local/bin:/usr/X11/bin:/usr/X11R6/bin:/usr/andrew/bin:/usr/bin/X11:/usr/bin/games:/usr/bin:/usr/ccs/bin:/usr/dt/bin:/usr/etc:/usr/games:/usr/lib/teTeX/bin:/usr/local/bin:/usr/local/games:/usr/openwin/bin:/usr/sbin:/usr/ucb/bin:/usr/ucb:/usr/xpg4/bin
#LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib:/usr/local/lib:/labo/gnu/lib:/labo/X11R6/lib:/usr/lib/X11:/labo/X11r5/lib:/usr/X11R6.3/lib
# Which platform for Alliance CAD
AC_MSG_CHECKING(for platform)
# WARNING : if changing this remember to do it on the 3 config files :
# configure.in alc_env.sh.in and alc_env.csh.in
MACHINE=Unknown
case `uname` in
Linux*) case `uname -r` in
1.*) MACHINE=Linux_aout ;;
2.0*) MACHINE=Linux_elf ;;
*) MACHINE=Linux ;;
esac ;;
SunOS*) case `uname -r` in
5*) MACHINE=Solaris ;;
*) MACHINE=SunOS ;;
esac ;;
FreeBSD*) MACHINE=FreeBSD ;;
NetBSD*) MACHINE=NetBSD ;;
HP-UX*) MACHINE=HPUX ;;
OSF1*) MACHINE=OSF ;;
CYGWIN*) MACHINE=CYGWIN ;;
*) MACHINE=Unknown ;;
esac
export MACHINE
# echo $MACHINE
AC_MSG_RESULT(Configuring Alliance VLSI CAD System on platform : $MACHINE)
AC_SUBST(MACHINE)
AC_PROG_MAKE_SET
if test "$program_suffix" = NONE ; then
if test "$MACHINE" = CYGWIN ; then
PROGRAM_SUFFIX=".exe"
else
PROGRAM_SUFFIX=""
fi
else
PROGRAM_SUFFIX="$program_suffix"
fi
AC_SUBST(PROGRAM_SUFFIX)
################################################################## Binaries
AC_CHECKING(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Binaries)
# AC_CANONICAL_SYSTEM
# Set default value for CC and CFLAGS
if test -z "$CFLAGS" ; then
CFLAGS="-O"
fi
AC_PROG_CC
AC_PATH_PROG(FULL_CC, $CC)
AC_SUBST(FULL_CC)
AC_PROG_CPP
if test "$GCC" = yes ; then
CFLAGS="-O4 -Wall"
fi
# Set default value for MAKE
AC_PATH_PROG(GMAKE, gmake)
AC_PATH_PROG(MAKE, make)
if test -n "$GMAKE" ; then
MAKE=$GMAKE
fi
ARFLAGS=
AC_SUBST(MAKEFLAGS)
# Looking for particular programs
# Lex & Yacc
# Do not use AC_PROG_YACC because our yacc grammar
# is not compatible with bison...
# AC_PATH_PROG(YACC, yacc)
AC_PROG_YACC
AC_PROG_LEX
AC_DECL_YYTEXT
YACCFLAGS=`echo $YACC | awk '{for (i=2 ; i<=NF ; i++) printf("%s ", $i);printf ("\n"); }'`
AC_SUBST(YACCFLAGS)
LEXFLAGS=`echo $LEX | awk '{for (i=2 ; i<=NF ; i++) printf("%s ", $i);printf ("\n"); }'`
AC_SUBST(LEXFLAGS)
AC_PATH_PROG(FULL_LEX, `echo $LEX | awk '{print $1}'`)
AC_SUBST(FULL_LEX)
AC_PATH_PROG(FULL_YACC, `echo $YACC | awk '{print $1}'`)
AC_SUBST(FULL_YACC)
# gcc-cpp has the wonderful -MM option to produce nicer dependencies
test "$GCC" = yes && CPP_MM=M; AC_SUBST(CPP_MM)
AC_PROG_LN_S
# Looking for ordinary programs
AC_PATH_PROG(AR, ar)
ARFLAGS=rv
AC_SUBST(ARFLAGS)
AC_PATH_PROG(AUTOCONF, autoconf)
AC_PATH_PROG(AUTOHEADER, autoheader)
AC_PATH_PROG(AUTOMAKE, automake)
AC_PATH_PROG(GAWK, gawk)
AC_PATH_PROG(AWK, awk)
if test -n "$GAWK" ; then
AWK=$GAWK
fi
AC_PATH_PROG(CHMOD, chmod)
AC_PATH_PROG(CP, cp)
AC_PATH_PROG(CAT, cat)
AC_PATH_PROG(CSH, csh)
AC_PATH_PROG(CUT, cut)
AC_PATH_PROG(ECHO, echo)
AC_PATH_PROG(FALSE, false)
AC_PATH_PROG(FIND, find)
AC_PATH_PROG(GREP, grep)
AC_PATH_PROG(HOSTNAME, hostname)
AC_PATH_PROG(LD, ld)
AC_PATH_PROG(LNDIR, lndir)
AC_PATH_PROG(LS, ls)
AC_PATH_PROG(MKDIR, mkdir)
AC_PATH_PROG(MV, mv)
AC_PATH_PROG(PERL, perl)
AC_PATH_PROG(RANLIB, ranlib)
AC_PATH_PROG(RM, rm)
AC_PATH_PROG(SED, sed)
AC_PATH_PROG(SH, sh)
if test "$SH" != sh ; then
SHELL=$SH
else
SHELL=/bin/sh
fi
AC_SUBST(SHELL)
AC_PATH_PROG(STRIP, strip)
AC_PATH_PROG(TEST, test)
AC_PATH_PROG(TOUCH, touch)
AC_PATH_PROG(TR, tr)
AC_PATH_PROG(TRUE, true)
AC_PATH_PROG(WC, wc)
# Check that all the utilities are present
# All but makeinfo, automake, autoconf, autoheader, zsh
if $TEST -z "$AR" \
-o -z "$AWK" \
-o -z "$CAT" \
-o -z "$CHMOD" \
-o -z "$CP" \
-o -z "$CUT" \
-o -z "$ECHO" \
-o -z "$FALSE" \
-o -z "$FIND" \
-o -z "$GREP" \
-o -z "$HOSTNAME" \
-o -z "$LD" \
-o -z "$LS" \
-o -z "$MKDIR" \
-o -z "$MV" \
-o -z "$PERL" \
-o -z "$RM" \
-o -z "$SED" \
-o -z "$STRIP" \
-o -z "$TEST" \
-o -z "$TOUCH" \
-o -z "$TR" \
-o -z "$TRUE" \
-o -z "$WC"
then
AC_MSG_WARN([please install the above utilities that are not present])
fi
################################################################## Libraries...
AC_CHECKING(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Headers and Libraries...)
# Check that Xpm is installed
# ($TRUE is used to avoid inclusion of -lXpm in LIBS)
#AC_CHECK_LIB(Xpm, XpmReadFileToImage, $TRUE,
# AC_MSG_ERROR([please install Xpm]))
# Check that xforms is installed
#AC_CHECK_LIB(xforms, fl_init_font, $TRUE,
# AC_MSG_ERROR([please install xforms]))
AC_PATH_XTRA
#dnl Check for Motif include files location.
#dnl The LAST one found is used, this makes the highest version to be used,
#dnl e.g. when Motif1.2 and Motif2.0 are both present.
SKIP_MOTIF=
if test -z "$SKIP_MOTIF"; then
gui_includes="`echo $x_includes|sed 's%/[^/][^/]*$%%'` /local/Motif*/include /local/include/Motif* /usr/local/Motif*/include /usr/local/include/Motif* /usr/include/Motif* /usr/Motif*/include /usr/local/include /usr/local/X11*/include /usr/include /usr/X11*/include /usr/include/X11* /usr/dt/include $MOTIFHOME/include $GUI_INC_LOC"
AC_MSG_CHECKING(for location of Motif GUI includes)
GUI_INC_LOC=
for try in $gui_includes; do
if test -f "$try/Xm/Xm.h"; then
GUI_INC_LOC=$try
fi
done
if test -n "$GUI_INC_LOC"; then
AC_MSG_RESULT($GUI_INC_LOC)
test "$GUI_INC_LOC" = /usr/include && GUI_INC_LOC=.
else
AC_MSG_RESULT(<not found>)
SKIP_MOTIF=YES
fi
fi
#dnl Check for Motif library files location.
#dnl The LAST one found is used, this makes the highest version to be used,
#dnl e.g. when Motif1.2 and Motif2.0 are both present.
if test -z "$SKIP_MOTIF"; then
gui_libs="`echo $x_libraries|sed 's%/[^/][^/]*$%%'` `echo "$GUI_INC_LOC" | sed 's/include/lib/'` /local/Motif*/lib /local/lib/Motif* /usr/local/Motif*/lib /usr/local/lib/Motif* /usr/Motif*/lib /usr/lib/Motif* /usr/local/lib /usr/local/X11*/lib /usr/lib /usr/X11*/lib /usr/lib/X11* /usr/dt/lib $MOTIFHOME/lib $GUI_LIB_LOC"
AC_MSG_CHECKING(for location of Motif GUI libs)
GUI_LIB_LOC=
for try in $gui_libs; do
if test -f "$try/libXm.a" -o -f "$try/libXm.so" -o -f "$try/libXm.sl"; then
GUI_LIB_LOC=$try
if test "`(uname) 2>/dev/null`" = SunOS &&
uname -r | grep '^5' >/dev/null; then
GUI_LIB_LOC="$GUI_LIB_LOC -R $try"
fi
fi
done
if test -n "$GUI_LIB_LOC"; then
AC_MSG_RESULT($GUI_LIB_LOC)
else
AC_MSG_RESULT(<not found>)
SKIP_MOTIF=YES
fi
fi
AC_SUBST(GUI_INC_LOC)
AC_SUBST(GUI_LIB_LOC)
# Check if the motif lib needs libXintl to link ok
OLD_LIBS=$LIBS
OLD_CFLAGS=$CFLAGS
LIBS="$LIBS -L$GUI_LIB_LOC -lXm $X_LIBS $X_EXTRA_LIBS $X_PRE_LIBS -lXt -lX11"
CFLAGS="$CFLAGS $X_CFLAGS -I$GUI_INC_LOC"
AC_MSG_CHECKING(if motif requires lXintl)
AC_TRY_LINK([# include <Xm/Xm.h>
# include <Xm/FileSB.h>
# include <Xm/MessageB.h>
# include <Xm/SelectioB.h>
# include <Xm/SeparatoG.h>],
[ XtAppContext app;
Widget toplevel;
XmString xm_string;
Arg args[1];
toplevel = XtVaAppInitialize(&app, "Demos", NULL, 0, NULL, NULL, NULL, NULL);
xm_string = XmStringCreateSimple("Vive Alliance");
XtSetArg(args[0], XmNmessageString, xm_string);
XmStringFree(xm_string);
XtAppMainLoop( app );],
AC_MSG_RESULT(no OK),
AC_MSG_RESULT(yes Xintl needed); X_PRE_LIBS="$X_PRE_LIBS -lXintl")
LIBS=$OLD_LIBS
CFLAGS=$OLD_CFLAGS
# Check where usefull GNU libs are installed (readline)
#AC_CHECK_LIB(readline, main, $TRUE,
#AC_MSG_WARN(Cannot find readline library), -ltermcap )
# Check for readline include
SKIP_GNU=
if test -z "$SKIP_GNU"; then
gnu_includes="`echo $LD_LIBRARY_PATH | sed 's/:/ /g' | sed 's/lib/include/g'` /usr/local/include /usr/include $GNUHOME/include $GNU_INC_LOC"
AC_MSG_CHECKING(for location of GNU includes)
GNU_INC_LOC=
# echo $gnu_includes
for try in $gnu_includes; do
if test -f "$try/readline/readline.h"; then
GNU_INC_LOC=$try
fi
done
if test -n "$GNU_INC_LOC"; then
AC_MSG_RESULT($GNU_INC_LOC)
test "$GNU_INC_LOC" = /usr/include && GNU_INC_LOC=.
else
AC_MSG_RESULT(not found.)
SKIP_GNU=YES
fi
fi
# Check for readline library
if test -z "$SKIP_GNU"; then
gnu_libs="`echo $LD_LIBRARY_PATH | sed 's/:/ /g'` `echo "$GNU_INC_LOC" | sed 's/include/lib/'` /usr/local/lib /usr/lib $GNUHOME/lib $GNU_LIB_LOC"
AC_MSG_CHECKING(for location of GNU libs)
GNU_LIB_LOC=
# echo $gnu_libs
for try in $gnu_libs; do
if test -f "$try/libreadline.a" ; then
GNU_LIB_LOC=$try
fi
done
if test -n "$GNU_LIB_LOC"; then
AC_MSG_RESULT($GNU_LIB_LOC)
else
AC_MSG_RESULT(not found. Please install readline and add lib to your LD_LIBRARY_PATH )
SKIP_GNU=YES
fi
fi
AC_SUBST(GNU_INC_LOC)
AC_SUBST(GNU_LIB_LOC)
################################################################### Headers...
AC_STDC_HEADERS
#AC_CHECK_SIZEOF(int)
#AC_CHECK_SIZEOF(void *)
#AC_MSG_RESULT([kernel name : "$KERNEL_FILE"])
################################################################### Alliance TOP
AC_MSG_CHECKING(where the Alliance package was installed)
TOP=`pwd | sed 's,share/etc$,archi,'`
export TOP
AC_SUBST(TOP)
DATE=`date`
AC_SUBST(DATE)
HOST=`uname -a`
AC_SUBST(HOST)
# create output files
AC_OUTPUT(alliance_os.mk alc_env.sh alc_env.csh)
mv alliance_os.mk $MACHINE.mk
# remove config cache
rm -f config.cache
#cat config.status | grep '^s%' | sed -e 's/^s%@//' -e 's/@%/ /' -e 's/%g$//' | sort | gawk '{printf("%-30s",$1) ; for (i=2 ; i<=NF ; i++) printf("%s ", $i); printf ("\n");}'
cat << EOF
Done...
Alliance is installed on $TOP/$MACHINE
OS definitions are in $MACHINE.mk
You'll need to 'source alc_env.csh'
or '. alc_env.sh' whether you use csh or sh"
EOF
# end of configure