configure.in 12.39 KiB
dnl configure.in file for "partiview"
dnl == Process this file with autoconf to produce a configure script ==
dnl ---------------------------------------------------------------------------
AC_MSG_CHECKING([partiview])
AC_INIT
AC_CONFIG_SRCDIR([partibrains.c])
AC_CONFIG_HEADER(config.h)
dnl -- checks for programs
dnl -- checks for libraries
dnl -- checks for header files
dnl -- checks for typedefs
dnl -- checks for structures
dnl -- checks for compiler characteristics
dnl -- checks for library functions
dnl -- checks for system services
AC_HEADER_STDC
AC_CHECK_FUNCS(strchr memcpy snprintf strcasecmp rint sqrtf)
AC_CHECK_HEADERS(malloc.h)
AC_FUNC_ALLOCA
AC_PROG_CC
AC_PROG_CPP
AC_PROG_CC
AC_PROG_CXX
AC_PROG_INSTALL
AC_PROG_MAKE_SET
AC_PROG_RANLIB
AC_ARG_PROGRAM
AC_ARG_ENABLE(debug, [ --enable-debug compile for debugging], ok=$enableval, ok=no)
if test "$ok" = "yes"; then
CFLAGS="${CFLAGS} -g"
LDFLAGS="${LDFLAGS} -g"
# should we define DEBUG too?
fi
dnl pthreads
AC_ARG_ENABLE(threads, [ --enable-threads use threading], ok=$enableval, ok=no)
if test yes = $ok; then
dnl "aclocal" finds acx_pthread.m4 and includes it, so we can use ACX_PTHREAD here.
AC_CHECK_HEADERS(pthread.h)
ACX_PTHREAD([THREADLIBS="$PTHREAD_LIBS"
PTHREAD_CFLAGS="$PTHREAD_CFLAGS"
CC="$PTHREAD_CC"])
if test -z "$THREADLIBS$PTHREAD_CFLAGS"; then
AC_MSG_WARN([couldn't find threads library for --enable-threads])
fi
AC_DEFINE(HAVE_THREADS, 1, [Define if we have a threads library.])
fi
AC_SUBST(THREADLIBS)
AC_SUBST(PTHREAD_CFLAGS)
AC_SUBST(HAVE_THREADS)
AC_ARG_WITH(mesa, [ --with-mesa force the use of Mesa instead of other graphics libs], with_mesa=$withval, with_mesa=maybe)
dnl No, to compile for the CAVE you need a lot more than this can do... -slevy
dnl AC_ARG_WITH(cave, [ --enable-cave compile for CAVE], with_cave=$enableval, with_cave=no)
dnl ---------------------------------------------------------------------
dnl Building on Windows under MINGW32? Used below.
AC_CANONICAL_HOST()
AC_DIAGNOSE([obsolete],[AC_MINGW32 is obsolete: use AC_CANONICAL_HOST and $host_os])
case "$host_os$OSTYPE" in
*mingw32*|*msys* ) MINGW32=yes;;
* ) MINGW32=;;
esac
if test -n "$MINGW32"; then
PV_FLAGS="-D_WIN32"
PORT_OBJS="winjunk.o"
else
# other OS cases later?
PV_FLAGS="-Dunix"
PORT_OBJS=""
fi
AC_SUBST(PORT_OBJS)
dnl ---------------------------------------------------------------------
dnl Check for basic X windows stuff
AC_PATH_X
AC_PATH_XTRA
CFLAGS="$CFLAGS $X_CFLAGS"
if test -z "$X_LIBS" && test "yes" = "$MINGW32"; then
# Stuff MinGW system libs into XLIBS
XLIBS="-lgdi32 -lkernel32 -lwsock32 -luser32 -lole32 -luuid -lcomctl32"
else
XLIBS="$X_LIBS $X_PRE_LIBS -lXext -lX11 $X_EXTRA_LIBS"
fi
AC_SUBST(XLIBS)
dnl ---------------------------------------------------------------------
dnl Check for FLTK
AC_ARG_WITH(fltk, [ --with-fltk=<d> find FLTK in -I<d>/include/FL -L<d>/lib ], with_fltk=$withval, with_fltk=/usr/local)
if test -n "$with_fltk" && test -d "$with_fltk"; then
# maybe should test both $with_fltk and the include directory therein??
if test -f "$with_fltk/include/FL/Fl.H"; then
FLTK_INC=-I$with_fltk/include
elif test -f "$with_fltk/FL/Fl.H"; then
FLTK_INC=-I$with_fltk
else
AC_MSG_ERROR("Could not find FL/Fl.H for the fltk library")
fi
FLTK_LIB="-L$with_fltk/lib -lfltk"
if test -f "$with_fltk/lib/libfltk_gl.a" || \
test -f "$with_fltk/lib/libfltk_gl.so"; then
FLTK_LIB="-L$with_fltk/lib -lfltk_gl -lfltk"
fi
else
# assume the compile does -L/usr/local/lib (they don't do all....)
FLTK_INC=-I/usr/local/include
FLTK_LIB=-lfltk
AC_CHECK_LIB(fltk, fl_display,
:, AC_MSG_ERROR([couldn't find fltk library]))
fi
#----------- as of partiview 0.7.04 - marx: ------------------------------------
#we no longer support old file chooser so we deleted support for it from this file
#in any event you should be on fltk release 1.1.x (not 2.x).
# the library fltk_images did not exist prior to 1.1.x used to determine relase == 1.1.x
if test -f "$with_fltk/lib/libfltk_images.a" || \
test -f "$with_fltk/lib/libfltk_images.so"; then
:
else
AC_MSG_ERROR("we do not support fltk on releases earlier than 1.1.x. you must be on fltk release 1.1.x")
fi
#----------end as of partiview 0.7.04 - marx: -----------------------------------
AC_SUBST(FLTK_INC)
AC_SUBST(FLTK_LIB)
dnl ---------------------------------------------------------------------
dnl 3D Graphics Libraries (see also vis5d's configure.in)
GLLIBS=""
# First, look for OpenGL or Mesa:
if test "$with_mesa" != "yes"; then
AC_CHECK_LIB(GL, glBegin,
AC_CHECK_LIB(GLU, gluProject, GLLIBS="-lGLU -lGL",
:, -lGL $XLIBS -lm), :, $XLIBS -lm)
fi
if test -z "$GLLIBS" && test "no" != "$with_mesa"; then
AC_CHECK_LIB(MesaGL, glBegin,
AC_CHECK_LIB(MesaGLU, gluProject, GLLIBS=[-lMesaGLU -lMesaGL],
:, -lMesaGL $XLIBS -lm), :, $XLIBS -lm)
fi
if test -z "$GLLIBS" && test -n "$MINGW32"; then
dnl Test for both -lglu32 and -lopengl32 together.
dnl Doesn't seem to work to use AC_CHECK_LIB(lib, func) here
dnl on Windows, so we use AC_CHECK_LIB([],[main],[],[],[])ac_cv_lib_=ac_cv_lib__main even though it's obsolete.
dnl Feh.
AC_CHECK_LIB([opengl32],[main],[GLLIBS="-lopengl32 -lglu32"],[],[-lglu32 $XLIBS -lm])ac_cv_lib_opengl32=ac_cv_lib_opengl32_main
fi
if test "$with_mesa" = "yes"; then
AC_CHECK_LIB(GL, glBegin,
AC_CHECK_LIB(GLU, gluProject, GLLIBS="-lGLU -lGL",
:, -lGL $XLIBS -lm), :, $XLIBS -lm)
fi
MAKEGUI=true
if test -d "/System/Library"; then
# Maybe MacOS X
XLIBS=""
AC_SEARCH_LIBS(sqrtf, [mx], [AC_DEFINE(HAVE_SQRTF) XLIBS="-lmx"])
GLLIBS="-framework AGL -framework OpenGL -framework Carbon -framework ApplicationServices"
PV_FLAGS="-Dunix -DHAVE_BUILTIN_ALLOCA"
if test -f "$with_fltk/FL/mac.r"; then
MAKEGUI="/Developer/Tools/Rez -t APPL -o \$(TARGET) $with_fltk/FL/mac.r"
else
AC_MSG_ERROR([Couldn't find {fltkdir}/FL/mac.r -- can't make MacOS partiview a normal GUI app])
fi
fi
AC_SUBST(MAKEGUI)
if test -n "$GLLIBS"; then
AC_DEFINE(HAVE_OPENGL)
else
AC_MSG_ERROR([couldn't find OpenGL libraries!])
if test "$with_mesa" = "yes"; then
AC_MSG_ERROR([couldn't find Mesa library])
fi
fi
if test -z "$GLLIBS"; then
echo "****************************************************"
echo "You need to install a 3D graphics library, preferably"
echo "the free OpenGL replacement, Mesa. You can download"
echo "Mesa from the Mesa home page:"
echo " http://www.mesa3d.org/"
echo "and install it by running:"
echo " ./configure && make && su -c 'make install'"
echo "in the Mesa directory."
if test -r /sbin/ldconfig; then
echo "You may also need to run /sbin/ldconfig as root"
echo "to update the system after installing Mesa."
if test -r /etc/ld.so.conf; then
if test -z "`grep /usr/local/lib /etc/ld.so.conf`"; then
echo "(First, add '/usr/local/lib' to /etc/ld.so.conf if"
echo "you installed Mesa under /usr/local, the default.)"
fi
fi
fi
echo "****************************************************"
dnl AC_MSG_ERROR([couldn't find 3D graphics library])
fi
AC_SUBST(GLLIBS)
dnl -- Check for any particular functions in the GL libs:
save_LIBS="$LIBS"
LIBS="$GLLIBS $XLIBS $LIBS"
AC_CHECK_FUNCS(XMesaGetBackBuffer)
LIBS="$save_LIBS"
dnl AC_CHECK_FUNC(vprintf, AC_DEFINE(HAVE_VPRINTF))
dnl if test "$ac_cv_func_vprintf" != yes; then
dnl AC_CHECK_FUNC(_doprnt, AC_DEFINE(HAVE_DOPRNT))
dnl fi
dnl ---------------------------------------------------------------------
dnl Checks for libraries.
dnl Checks for header files.
AC_HEADER_DIRENT
AC_HEADER_STDC
AC_HEADER_SYS_WAIT
AC_CHECK_HEADERS(fcntl.h limits.h malloc.h sgtty.h strings.h sys/file.h sys/ioctl.h sys/time.h unistd.h values.h)
dnl Checks for typedefs, structures, and compiler characteristics.
AC_C_CONST
AC_C_INLINE
AC_TYPE_OFF_T
AC_TYPE_SIZE_T
AC_HEADER_TIME
AC_STRUCT_TM
dnl Checks for library functions.
AC_TYPE_GETGROUPS
AC_PROG_GCC_TRADITIONAL
AC_FUNC_MEMCMP
AC_FUNC_MMAP
AC_TYPE_SIGNAL
AC_FUNC_FORK([])
AC_FUNC_VPRINTF
AC_SEARCH_LIBS(sqrtf, [m], AC_DEFINE(HAVE_SQRTF))
AC_CHECK_FUNCS(strchr memcpy snprintf strcasecmp rint)
AC_CHECK_FUNCS(ftime gethostname gettimeofday getwd mkdir select strdup strtod strtol strtoul)
AC_C_BIGENDIAN
dnl -- starlab stuff
AC_ARG_WITH(kira, [ --with-kira force the use of KIRA], with_kira=$withval, with_kira=maybe)
AC_SUBST(KIRA_INC)
AC_SUBST(KIRA_LIB)
AC_SUBST(PV_FLAGS)
AC_SUBST(CC)
AC_SUBST(CXX)
starlab_path="$with_kira"
if test "$with_kira" = "maybe" || test "$with_kira" = "yes"; then
if test -d "$STARLAB_PATH"; then
starlab_path="$STARLAB_PATH"
else
echo No STARLAB_PATH found, KIRA support not selected
fi
fi
if test -n "$starlab_path" && test -d "$starlab_path"; then
echo "Configuring with starlab=$starlab_path"
KIRA_INC=-I$starlab_path/include
KIRA_LIB="-L$starlab_path/usr/lib/starlab -ltdyn -ldyn -lnode -lsstar -lstd"
PV_FLAGS="$PV_FLAGS -DUSE_KIRA"
# darn, we can't check in non-standard PATH's???? - next line won't work
dnl AC_CHECK_LIB(tdyn, open_parti,:, AC_MSG_ERROR([could not find StarLab's tdyn library]))
else
echo NOTE: No Starlab selected
fi
AC_ARG_WITH(ieeeio, [ --with-ieeeio[=DIR] Use IEEEIO], with_ieeeio=$withval)
AC_ARG_WITH(ieeeio-lib, [ --with-ieeeio-lib=LDOPTS (-LDIR/lib -lieeeio) ],
[IEEEIO_LIB="$withval"; with_ieeeio=yes])
AC_ARG_WITH(ieeeio-inc, [ --with-ieeeio-inc=INCOPTS (-IDIR/include)],
[IEEEIO_INC="$withval"; with_ieeeio=yes])
if test -n "$with_ieeeio" && test "no" != $with_ieeeio; then
if test "yes" = "$with_ieeeio"; then
IEEEIO_LIB=${IEEEIO_LIB:-"-lieeeio"}
else
IEEEIO_INC=${IEEEIO_INC:-"-I$with_ieeeio/include"}
IEEEIO_LIB=${IEEEIO_LIB:-"-L$with_ieeeio/lib -lieeeio"}
fi
PV_FLAGS="$PV_FLAGS -DUSE_IEEEIO"
fi
AC_SUBST(IEEEIO_INC)
AC_SUBST(IEEEIO_LIB)
AC_ARG_WITH(elumens, [ --with-elumens[=DIR] Use Elumens spiclops library], with_elumens=$withval)
AC_ARG_WITH(elumens-lib, [ --with-elumens-lib=LDOPTS (-LDIR/lib -lspiclops)],
[ELUMENS_LIB="$withval"; with_elumens=yes])
AC_ARG_WITH(elumens-inc, [ --with-elumens-inc=INCOPTS (-IDIR/include)],
[ELUMENS_INC="$withval"; with_elumens=yes])
if test -n "$with_elumens" && test "no" != "$with_elumens"; then
if test "yes" = "$with_elumens"; then
ELUMENS_LIB=${ELUMENS_LIB:-"-lspiclops"}
else
ELUMENS_LIB=${ELUMENS_LIB:-"-L$with_elumens/lib -lspiclops"}
ELUMENS_INC=${ELUMENS_INC:-"-I$with_elumens/include"}
fi
PV_FLAGS="$PV_FLAGS -DUSE_ELUMENS"
fi
AC_SUBST(ELUMENS_INC)
AC_SUBST(ELUMENS_LIB)
dnl ---------------------------------------------------------------------
dnl Check for CAVE
AC_ARG_WITH(cave, [ --with-cave=<d> find CAVE in -I<d>/include -L<d>/lib ], with_cave=$withval)
if test -n "$with_cave" && test -d "$with_cave"; then
# maybe should test both $with_cave and the include directory therein??
if test -f "$with_cave/include/cave_ogl.h"; then
CAVE_INC=-I$with_cave/include
elif test -f "$with_cave/cave_ogl.h"; then
CAVE_INC=-I$with_cave
else
AC_MSG_ERROR("Could not find cave_ogl.h for the cave library")
fi
CAVE_LIB="-L$with_cave/lib -lcave"
if test -f "$with_cave/lib/libcave_ogl.a" || \
test -f "$with_cave/lib/libcave_ogl.so"; then
CAVE_LIB="-L$with_cave/lib -lcave_ogl"
fi
PV_FLAGS="$PV_FLAGS -DCAVE"
fi
AC_SUBST(CAVE_INC)
AC_SUBST(CAVE_LIB)
AC_ARG_WITH(nethack, [ --with-nethack Accept toy network control packets],
PV_FLAGS="$PV_FLAGS -DUSE_NETHACK")
PV_FLAGS="$PV_FLAGS -DUSE_WARP -DUSE_CONSTE"
AC_ARG_WITH(model, [ --with-model Accept Maya obj models], with_model=$withval, with_model=yes)
if test -n "$with_model" && test "no" != "$with_model"; then
PV_FLAGS="$PV_FLAGS -DUSE_MODEL"
fi
dnl -- test for NEMO
if test -f "$NEMOBIN/cc"; then
echo "Warning, old \$NEMOBIN/cc present, it may conflict with your install"
fi
AC_CONFIG_FILES([Makefile ../cmed/Makefile])
AC_OUTPUT
dnl ensure that "Makedepend" exists but don't put anything into it
dnl and force user to "make depend" to fill it in, since we're reconfiguring.
rm -f depended Makedepend ../cmed/depended/Makedepend
touch Makedepend ../cmed/Makedepend