You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

427 lines
11 KiB

dnl Process this file with autoconf to produce a configure script.
AC_INIT(src/js/js.h)
# **WARNING**WARNING**WARNING**WARNING**WARNING**WARNING**
#
# When you make a new release, there are TWO places where you
# have to change the version number:
# 1) Right below this comment.
# 2) In 'ul.h' where PLIB_VERSION is created.
#
# **WARNING**WARNING**WARNING**WARNING**WARNING**WARNING**
AM_INIT_AUTOMAKE(plib, 1.8.5)
# This AC_PREFIX_DEFAULT will place the library files
# into /usr/lib - but will put the include files into
# /usr/include - when /usr/include/plib would be less
# polluting to the filename space.
#
# There is probably a better way to do this.
AC_PREFIX_DEFAULT(/usr)
if echo $includedir | egrep "plib$" > /dev/null; then
echo "includedir is" $includedir "libdir is" $libdir
else
includedir="${includedir}/plib"
echo "includedir changed to" $includedir "libdir is" $libdir
fi
dnl Checks for programs.
AC_PROG_CC
AC_PROG_CPP
AC_PROG_CXX
AC_PROG_CXXCPP
AC_PROG_INSTALL
AC_PROG_RANLIB
dnl Command line arguments
dnl Don't use AC_HELP_STRING here as old versions of autoconf do not
dnl understand it.
AC_ARG_WITH(GL,
[ --with-GL=DIR set the prefix directory where GL resides],
GL_PREFIX=$withval, GL_PREFIX=auto)
AC_ARG_ENABLE(fnt,
[ --enable-fnt build FNT library (OpenGL needed) default: yes],,
enable_fnt=yes)
AC_ARG_ENABLE(js,
[ --enable-js build JS library default: yes],,
enable_js=yes)
AC_ARG_ENABLE(pw,
[ --enable-pw build PW library default: yes],,
enable_pw=yes)
AC_ARG_ENABLE(net,
[ --enable-net build NET library default: yes],,
enable_net=yes)
AC_ARG_ENABLE(pui,
[ --enable-pui build PUI library (OpenGL needed) default: yes],,
enable_pui=yes)
AC_ARG_ENABLE(sg,
[ --enable-sg build SG library default: yes],,
enable_sg=yes)
AC_ARG_ENABLE(psl,
[ --enable-psl build PSL library default: yes],,
enable_psl=yes)
AC_ARG_ENABLE(sl,
[ --enable-sl build SL library default: yes],,
enable_sl=yes)
AC_ARG_ENABLE(ssg,
[ --enable-ssg build SSG library (OpenGL needed) default: yes],,
enable_ssg=yes)
AC_ARG_ENABLE(puaux,
[ --enable-puaux build puAux library (OpenGL needed) default: yes],,
enable_puaux=yes)
AC_ARG_ENABLE(ssgaux,
[ --enable-ssgaux build ssgAux library (OpenGL needed) default: yes],,
enable_ssgaux=yes)
AC_ARG_ENABLE(ul,
[ --enable-ul build UTIL library default: yes],,
enable_ul=yes)
dnl Dependancy checking
if test "x$enable_fnt" = "xyes"; then
need_opengl=yes
if test "x$enable_sg" = "xno"; then
AC_MSG_WARN([cannot build FNT library without SG library enabled])
dependancy_problem=yes
fi
if test "x$enable_ul" = "xno"; then
AC_MSG_WARN([cannot build FNT library without UL library enabled])
dependancy_problem=yes
fi
fi
if test "x$enable_pw" = "xyes"; then
if test "x$enable_ul" = "xno"; then
AC_MSG_WARN([cannot build PW library without UL library enabled])
dependancy_problem=yes
fi
fi
if test "x$enable_js" = "xyes"; then
if test "x$enable_ul" = "xno"; then
AC_MSG_WARN([cannot build JS library without UL library enabled])
dependancy_problem=yes
fi
fi
if test "x$enable_net" = "xyes"; then
if test "x$enable_ul" = "xno"; then
AC_MSG_WARN([cannot build NET library without UL library enabled])
dependancy_problem=yes
fi
fi
if test "x$enable_pui" = "xyes"; then
need_opengl=yes
if test "x$enable_fnt" = "xno"; then
AC_MSG_WARN([cannot build PUI library without FNT library enabled])
dependancy_problem=yes
fi
if test "x$enable_sg" = "xno"; then
AC_MSG_WARN([cannot build PUI library without SG library enabled])
dependancy_problem=yes
fi
if test "x$enable_ul" = "xno"; then
AC_MSG_WARN([cannot build PUI library without UL library enabled])
dependancy_problem=yes
fi
fi
if test "x$enable_sg" = "xyes"; then
if test "x$enable_ul" = "xno"; then
AC_MSG_WARN([cannot build SG library without UL library enabled])
dependancy_problem=yes
fi
fi
if test "x$enable_psl" = "xyes"; then
if test "x$enable_ul" = "xno"; then
AC_MSG_WARN([cannot build PSL library without UL library enabled])
dependancy_problem=yes
fi
fi
if test "x$enable_sl" = "xyes"; then
if test "x$enable_ul" = "xno"; then
AC_MSG_WARN([cannot build SL library without UL library enabled])
dependancy_problem=yes
fi
fi
if test "x$enable_ssg" = "xyes"; then
need_opengl=yes
if test "x$enable_sg" = "xno"; then
AC_MSG_WARN([cannot build SSG library without SG library enabled])
dependancy_problem=yes
fi
if test "x$enable_ul" = "xno"; then
AC_MSG_WARN([cannot build SSG library without UL library enabled])
dependancy_problem=yes
fi
fi
if test "x$enable_puaux" = "xyes"; then
need_opengl=yes
if test "x$enable_pui" = "xno"; then
AC_MSG_WARN([cannot build puAux library without PUI library enabled])
dependancy_problem=yes
fi
if test "x$enable_sg" = "xno"; then
AC_MSG_WARN([cannot build puAux library without SG library enabled])
dependancy_problem=yes
fi
if test "x$enable_ul" = "xno"; then
AC_MSG_WARN([cannot build puAux library without UL library enabled])
dependancy_problem=yes
fi
fi
if test "x$enable_ssgaux" = "xyes"; then
need_opengl=yes
if test "x$enable_ssg" = "xno"; then
AC_MSG_WARN([cannot build ssgAux library without SSG library enabled])
dependancy_problem=yes
fi
if test "x$enable_sg" = "xno"; then
AC_MSG_WARN([cannot build ssgAux library without SG library enabled])
dependancy_problem=yes
fi
if test "x$enable_ul" = "xno"; then
AC_MSG_WARN([cannot build ssgAux library without UL library enabled])
dependancy_problem=yes
fi
fi
if test "x$dependancy_problem" = "xyes"; then
AC_MSG_ERROR([dependancy problems detected])
fi
AM_CONDITIONAL(BUILD_FNT, test "x$enable_fnt" = "xyes")
AM_CONDITIONAL(BUILD_JS, test "x$enable_js" = "xyes")
AM_CONDITIONAL(BUILD_PW, test "x$enable_pw" = "xyes")
AM_CONDITIONAL(BUILD_NET, test "x$enable_net" = "xyes")
AM_CONDITIONAL(BUILD_PUI, test "x$enable_pui" = "xyes")
AM_CONDITIONAL(BUILD_PUAUX, test "x$enable_puaux" = "xyes")
AM_CONDITIONAL(BUILD_SG, test "x$enable_sg" = "xyes")
AM_CONDITIONAL(BUILD_PSL, test "x$enable_psl" = "xyes")
AM_CONDITIONAL(BUILD_SL, test "x$enable_sl" = "xyes")
AM_CONDITIONAL(BUILD_SSG, test "x$enable_ssg" = "xyes")
AM_CONDITIONAL(BUILD_SSGAUX, test "x$enable_ssgaux" = "xyes")
AM_CONDITIONAL(BUILD_UL, test "x$enable_ul" = "xyes")
if test "x$need_opengl" = "xyes" && test "x$GL_PREFIX" != "xauto"; then
LDFLAGS="$LDFLAGS -L$GL_PREFIX/lib"
CPPFLAGS="$CPPFLAGS -I$GL_PREFIX/include"
fi
dnl Checks for library functions.
dnl check for OpenGL related libraries
AC_CANONICAL_HOST
case "${host}" in
*-*-cygwin* | *-*-mingw32*)
dnl CygWin under Windoze.
dnl Multimedia library
LIBS="$LIBS -lwinmm"
if test "x$need_opengl" = "xyes"; then
dnl OpenGL libraries
LIBS="$LIBS -lopengl32"
fi
;;
*-apple-darwin*)
dnl Mac OS X
if test "x$need_opengl" = "xyes"; then
dnl OpenGL libraries
LIBS="$LIBS -framework OpenGL"
fi
dnl Sound libraries
LIBS="$LIBS -framework Carbon"
;;
*)
if test "x$need_opengl" = "xyes"; then
dnl Check for X11
AC_PATH_XTRA
LDFLAGS="$LDFLAGS $X_LIBS"
LIBS="$LIBS $X_PRE_LIBS $X_LIBS $X_EXTRA_LIBS -lm"
dnl =========================================================
dnl if test "x$x_includes" != "x"; then
dnl CPPFLAGS="$CPPFLAGS -I$x_includes"
dnl fi
dnl =========================================================
dnl Reasonable stuff non-windoze variants ... :-)
AC_CHECK_LIB(pthread, pthread_create)
AC_CHECK_LIB(GL, glNewList)
if test "x$ac_cv_lib_GL_glNewList" = "xno" ; then
dnl if no GL, check for MesaGL
AC_CHECK_LIB(MesaGL, glNewList,,
AC_MSG_ERROR([could not find working GL library]))
fi
fi
AC_CHECK_LIB(dl, dlclose)
dnl Check SGI audio library
AC_CHECK_LIB(audio, ALopenport)
;;
esac
dnl Checks for header files.
AC_HEADER_STDC
AC_CHECK_HEADER(windows.h, AC_DEFINE(WIN32))
if test "x$need_opengl" = "xyes"; then
dnl Check for OpenGl header files
case "${host}" in
*-*-cygwin* | *-*-mingw32*)
dnl CygWin under Windoze.
AC_CHECK_HEADER(GL/gl.h,,
AC_MSG_ERROR([OpenGL header file not found]))
;;
*-apple-darwin*)
dnl Mac OS X
AC_CHECK_HEADER(OpenGL/gl.h,,
AC_MSG_ERROR([OpenGL header file not found]))
;;
*)
AC_CHECK_HEADER(GL/gl.h,,
AC_MSG_ERROR([OpenGL header file not found]))
;;
esac
fi
dnl Warning flags
WFLAG="-Wall"
case "$host" in
mips-sgi-irix*)
if test "x$CXX" = "xCC"; then
WFLAG="-fullwarn";
fi
;;
*)
if test "x$CXX" = "xicpc" || test "x$CXX" = "xicc"; then
WFLAG="-w1"
fi
if test "x$GCC" != xyes; then
# if the compiler is not GCC we reset WFLAG to null for safety
WFLAG=""
fi
;;
esac
CFLAGS="$CFLAGS $WFLAG"
CXXFLAGS="$CXXFLAGS $WFLAG"
dnl FreeBSD requires the -pthread switch to enable pthreads. Look for this
dnl weirdness.
save_CXXFLAGS="$CXXFLAGS"
save_CFLAGS="$CFLAGS"
save_LIBS=$LIBS
CXXFLAGS="-pthread $CXXFLAGS"
CFLAGS="-pthread $CFLAGS"
AC_CHECK_LIB(c_r, pthread_exit)
if test "x$ac_cv_lib_c_r_pthread_exit" != "xyes"; then
CFLAGS=$save_CFLAGS
CXXFLAGS=$save_CXXFLAGS
fi
LIBS=$save_LIBS
dnl Checks for typedefs, structures, and compiler characteristics.
dnl check for socklen_t (in Unix98)
AC_MSG_CHECKING(for socklen_t)
AC_TRY_COMPILE([
#include <sys/types.h>
#include <sys/socket.h>
socklen_t apa;
],[],[
AC_MSG_RESULT(yes)],[
AC_TRY_COMPILE([
#include <sys/types.h>
#include <sys/socket.h>
int accept (int, struct sockaddr *, size_t *);
],[],[
AC_MSG_RESULT(size_t)
AC_DEFINE(socklen_t,size_t)], [
AC_MSG_RESULT(int)
AC_DEFINE(socklen_t,int)])])
AC_OUTPUT( \
Makefile \
src/Makefile \
src/js/Makefile \
src/util/Makefile \
src/sg/Makefile \
src/sl/Makefile \
src/psl/Makefile \
src/ssg/Makefile \
src/ssgAux/Makefile \
src/fnt/Makefile \
src/pui/Makefile \
src/puAux/Makefile \
src/pw/Makefile \
src/net/Makefile )
AC_MSG_RESULT(
[PLIB configuration information:
Building FNT library: $enable_fnt
Building JS library: $enable_js
Building NET library: $enable_net
Building PUI library: $enable_pui
Building puAux library: $enable_puaux
Building SG library: $enable_sg
Building PSL library: $enable_psl
Building SL library: $enable_sl
Building SSG library: $enable_ssg
Building ssgAux library: $enable_ssgaux
Building PW library: $enable_pw
Building UTIL library: $enable_ul
])