288 lines
9.1 KiB
Plaintext
288 lines
9.1 KiB
Plaintext
dnl
|
|
dnl Celestia autoconf file
|
|
dnl Process this file with autoconf to make a configure script
|
|
dnl
|
|
|
|
AC_INIT(configure.in)
|
|
AM_INIT_AUTOMAKE(celestia, 1.2.1)
|
|
AM_CONFIG_HEADER(config.h)
|
|
|
|
AM_ACLOCAL_INCLUDE(macros)
|
|
|
|
dnl Check system type
|
|
AC_CANONICAL_HOST
|
|
|
|
dnl Check for compilers. Set CFLAGS and CXXFLAGS to null if unset, so
|
|
dnl that these macros won't set the to default values that we don't want.
|
|
if test "x${CFLAGS-notset}" = "xnotset" ; then
|
|
export CFLAGS
|
|
CFLAGS=""
|
|
fi
|
|
AC_PROG_CC
|
|
|
|
if test "x${CXXFLAGS-notset}" = "xnotset" ; then
|
|
export CXXFLAGS
|
|
CXXFLAGS=""
|
|
fi
|
|
AC_PROG_CXX
|
|
|
|
|
|
dnl Checks for programs.
|
|
AC_PROG_CPP
|
|
AC_PROG_CXXCPP
|
|
AC_PROG_INSTALL
|
|
AC_PROG_RANLIB
|
|
|
|
dnl
|
|
dnl Compilation options
|
|
dnl
|
|
|
|
CELESTIA_CPPFLAGS=""
|
|
CELESTIA_CFLAGS="-O2 -Wall -ffast-math -fexpensive-optimizations"
|
|
CELESTIA_CXXFLAGS="-O2 -Wall -ffast-math -fexpensive-optimizations"
|
|
dnl CELESTIA_CFLAGS="-O2 -g -Wall"
|
|
dnl CELESTIA_CXXFLAGS="-O2 -g -Wall"
|
|
|
|
dnl case "$host" in
|
|
dnl i*86-*-*) CELESTIA_CFLAGS="$CELESTIA_CFLAGS -malign-loops=2 -malign-jumps=2 -malign-functions=2";
|
|
dnl CELESTIA_CXXFLAGS="$CELESTIA_CXXFLAGS -malign-loops=2 -malign-jumps=2 -malign-functions=2";;
|
|
dnl alpha*-*-linux-*) CELESTIA_CFLAGS="$CELESTIA_CFLAGS -mieee";;
|
|
dnl esac
|
|
|
|
AC_MSG_CHECKING([whether to include debugging code])
|
|
AC_ARG_ENABLE(debug, [ --enable-debug Produce an executable with debugging symbols], , enable_debug="no")
|
|
if test "$enable_debug" == "yes" ; then
|
|
CELESTIA_CFLAGS="-g -Wall"; CELESTIA_CXXFLAGS="-g -Wall"
|
|
AC_DEFINE(DEBUG)
|
|
fi
|
|
AC_MSG_RESULT($enable_debug)
|
|
|
|
AC_MSG_CHECKING([whether to be pedantic])
|
|
AC_ARG_ENABLE(pedantic, [ --enable-pedantic Enable -pedantic (and -ansi for C) when compiling], , enable_pedantic="no")
|
|
if test "$enable_pedantic" == "yes" ; then
|
|
CELESTIA_CFLAGS="$CELESTIA_CFLAGS -ansi -pedantic"; CELESTIA_CXXFLAGS="$CELESTIA_CXXFLAGS -pedantic"
|
|
fi
|
|
AC_MSG_RESULT($enable_pedantic)
|
|
|
|
AC_MSG_CHECKING([whether to do profiling])
|
|
AC_ARG_ENABLE(profile,[ --enable-profile Produce a profiled executable[default=no]], , enable_profile="no")
|
|
if test "$enable_profile" == "yes" ; then
|
|
CELESTIA_CFLAGS="$CELESTIA_CFLAGS -pg"; CELESTIA_CXXFLAGS="$CELESTIA_CXXFLAGS -pg"
|
|
else
|
|
if test "$enable_debug" != "yes" ; then
|
|
dnl must be set here instead of above because -pg and
|
|
dnl -fomit-frame-pointer are incompatible
|
|
CELESTIA_CFLAGS="$CELESTIA_CFLAGS -fomit-frame-pointer"; CELESTIA_CXXFLAGS="$CELESTIA_CXXFLAGS -fomit-frame-pointer"
|
|
fi
|
|
fi
|
|
AC_MSG_RESULT($enable_profile)
|
|
|
|
|
|
dnl
|
|
dnl GL and GLUT libs
|
|
dnl
|
|
|
|
AC_ARG_WITH(
|
|
gl-libs,
|
|
[ --with-gl-libs=DIR Specify OpenGL library location],
|
|
CELESTIALIBS="$CELESTIALIBS -L$withval")
|
|
|
|
AC_ARG_WITH(
|
|
gl-inc,
|
|
[ --with-gl-inc=DIR Specify OpenGL header file location],
|
|
CELESTIAFLAGS="$CELESTIAFLAGS -I$withval")
|
|
|
|
AC_ARG_WITH(
|
|
glut-libs,
|
|
[ --with-glut-libs=DIR Specify GLUT library location],
|
|
CELESTIALIBS="$CELESTIALIBS -L$withval")
|
|
|
|
AC_ARG_WITH(
|
|
glut-inc,
|
|
[ --with-glut-inc=DIR Specify GLUT header file location],
|
|
CELESTIAFLAGS="$CELESTIAFLAGS -I$withval")
|
|
|
|
|
|
LIBS="$LIBS -lm"
|
|
|
|
dnl Use Gtk if requested
|
|
GTK_LIBS=""
|
|
GTKGL_LIBS=""
|
|
GTK_CFLAGS=""
|
|
|
|
AC_MSG_CHECKING([whether to disable GTK.])
|
|
AC_ARG_WITH(gtk, [ --with-gtk Use Gtk for an enhanced GUI],
|
|
enable_gtk="$withval";enable_by_default="no", enable_gtk="yes";enable_by_default="yes")
|
|
|
|
if test "$enable_gtk" == "yes" ; then
|
|
AC_MSG_RESULT(no, so try to find GTK)
|
|
AM_PATH_GTK(1.2.0,enable_gtk="yes",enable_gtk="no")
|
|
|
|
dnl Complain only if the user insisted we do GTK
|
|
if test "$enable_by_default" == "no" -a "$enable_gtk" == "no"; then
|
|
AC_MSG_ERROR(Unable to find GTK)
|
|
fi
|
|
else
|
|
AC_MSG_RESULT(yes)
|
|
fi
|
|
|
|
if test "$enable_gtk" == "yes" ; then
|
|
OLD_LIBS="$LIBS"
|
|
LIBS="$LIBS $GTK_LIBS -lGL"
|
|
AC_CHECK_LIB(gtkgl,gdk_gl_query,,enable_gtk="no")
|
|
|
|
dnl Complain only if the user insisted we do GTK
|
|
if test "$enable_by_default" == "no" -a "$enable_gtk" == "no"; then
|
|
AC_MSG_ERROR(Unable to find gtkglarea)
|
|
fi
|
|
fi
|
|
|
|
if test "$enable_gtk" == "yes" ; then
|
|
LIBS="$OLD_LIBS"
|
|
GNOME_INIT
|
|
GNOME_COMPILE_WARNINGS
|
|
GNOME_X_CHECKS
|
|
GTKGL_LIBS=-lgtkgl
|
|
else
|
|
if test "$enable_by_default" == "yes" ; then
|
|
AC_MSG_WARN(Disabled GTK GUI because of missing necessary packages)
|
|
fi
|
|
|
|
dnl Check for X11.
|
|
AC_PATH_XTRA
|
|
|
|
LIBS="$X_PRE_LIBS $LIBS $X_LIBS -lXmu -lXi -lXext -lX11 -lm $X_EXTRA_LIBS"
|
|
CFLAGS="$CFLAGS $X_CFLAGS"
|
|
fi
|
|
AM_CONDITIONAL(ENABLE_GTK, test "$enable_gtk" == "yes")
|
|
|
|
|
|
CFLAGS="$CFLAGS $CELESTIAFLAGS $CELESTIA_CFLAGS $GTK_CFLAGS $GNOME_CFLAGS"
|
|
CXXFLAGS="$CXXFLAGS $CELESTIAFLAGS $CELESTIA_CXXFLAGS $GTK_CFLAGS $GNOME_CFLAGS $GNOME_INCLUDEDIR"
|
|
LIBS="$LIBS $CELESTIALIBS $GTK_LIBS $GNOME_LIBS $GNOMEUI_LIBS $GTKGL_LIBS"
|
|
LDFLAGS="$LDFLAGS $GNOME_LIBDIR"
|
|
|
|
dnl Check for OpenGL headers first.
|
|
AC_CHECK_HEADERS(GL/gl.h,,AC_MSG_ERROR([[No gl.h found.\
|
|
Usually, this means that you either have no OpenGL library on your system,\
|
|
or if you are using a package based distribution, that you have failed to\
|
|
install the corresponding development package for your library. If for\
|
|
instance you have Mesa installed, you will also have to install the\
|
|
mesa-devel package (or something named similarly). Also, if in fact it *WAS*\
|
|
the devel package missing, make sure you have the devel packages for GLU and\
|
|
GLUT installed as they will also be needed.]]))
|
|
|
|
dnl Check for OpenGL. Taken partly from the plib sources.
|
|
AC_CHECK_LIB(GL,glNewList)
|
|
|
|
if test "x$ac_cv_lib_GL_glNewList" = "xno" ; then
|
|
dnl Check for MesaGL.
|
|
AC_CHECK_LIB(MesaGL, glNewList,,
|
|
AC_MSG_ERROR(GL library was not found))
|
|
fi
|
|
|
|
dnl Check for GLU headers.
|
|
AC_CHECK_HEADERS(GL/glu.h,,AC_MSG_ERROR([[No glu.h found.\
|
|
Usually, this means that you either have no GLU library on your system,\
|
|
or if you are using a package based distribution, that you have failed to\
|
|
install the corresponding development package for your library. If for\
|
|
instance you have MesaGLU installed, you will also have to install the\
|
|
mesaglu-devel package (or something named similarly). It is also possible\
|
|
that you have the xf86glu package installed, in which case you'll need the\
|
|
xf86glu-devel package or similar.]]))
|
|
|
|
AC_CHECK_LIB(GLU,gluLookAt)
|
|
|
|
if test "x$ac_cv_lib_GLU_gluLookAt" = "xno"; then
|
|
dnl Check for MesaGLU.
|
|
AC_CHECK_LIB(MesaGLU, gluLookAt,,
|
|
AC_MSG_ERROR(GLU library was not found))
|
|
fi
|
|
|
|
|
|
dnl Check for GLUT headers first.
|
|
AC_CHECK_HEADERS(GL/glut.h,,AC_MSG_ERROR([[No glut.h found.\
|
|
Usually, this means that you either have no GLUT library on your system,\
|
|
or if you are using a package based distribution, that you have failed to\
|
|
install the corresponding development package for your library. If for\
|
|
instance you have Mesa installed, you will also have to install the\
|
|
mesaglut-devel package (or something named similarly).]]))
|
|
|
|
dnl Check for GLUT.
|
|
AC_CHECK_LIB(glut, glutKeyboardUpFunc,,
|
|
AC_MSG_ERROR(GLUT library version >= 3.7 not found))
|
|
|
|
dnl Check for JPEG library.
|
|
AC_CHECK_LIB(jpeg, jpeg_start_decompress,,
|
|
AC_MSG_ERROR(jpeg library not found))
|
|
|
|
dnl Check for PNG library.
|
|
AC_CHECK_LIB(png, png_create_info_struct,,
|
|
AC_MSG_ERROR(png library not found))
|
|
|
|
|
|
dnl Checks for header files.
|
|
|
|
AC_HEADER_STDC
|
|
|
|
#AC_CHECK_HEADERS(GL/gl.h GL/glut.h)
|
|
|
|
# AC_DEFINE(TEXTURE_DIR,"textures")
|
|
# AC_DEFINE(FONT_DIR,"fonts")
|
|
# AC_DEFINE(MODEL_DIR,"models")
|
|
# AC_DEFINE(DATA_DIR,"data")
|
|
AC_CHECK_HEADERS(byteswap.h)
|
|
AC_C_BIGENDIAN
|
|
|
|
if test "$prefix" = "NONE" ; then
|
|
prefix=$ac_default_prefix
|
|
fi
|
|
PKGDATADIR=`eval echo "${datadir}/$PACKAGE"`
|
|
AC_DEFINE_UNQUOTED(CONFIG_DATA_DIR, "$PKGDATADIR")
|
|
AC_DEFINE_UNQUOTED(G_LOG_DOMAIN,"Celestia")
|
|
AC_DEFINE_UNQUOTED(GNOMELOCALEDIR,"$PKGDATADIR/locale")
|
|
|
|
enable_hipparcos="no"
|
|
AC_ARG_ENABLE(hipparcos-dir,
|
|
[ --enable-hipparcos-dir=DIR Specify location of HIPPARCOS/TYCHO stardata],
|
|
HIPDIR="$enableval",HIPDIR="$PKGDATADIR")
|
|
AC_DEFINE_UNQUOTED(HIP_DATA_DIR, "$HIPDIR")
|
|
AC_SUBST(HIPDIR)
|
|
AC_MSG_CHECKING([whether we can create a new star database])
|
|
if test -f "$HIPDIR/hip_main.dat" ; then
|
|
enable_hipparcos="yes"
|
|
fi
|
|
AC_MSG_RESULT($enable_hipparcos)
|
|
AM_CONDITIONAL(ENABLE_HIPPARCOS, test "x$enable_hipparcos" = "xyes")
|
|
|
|
AC_OUTPUT( Makefile \
|
|
src/Makefile \
|
|
src/celutil/Makefile \
|
|
src/celmath/Makefile \
|
|
src/cel3ds/Makefile \
|
|
src/celtxf/Makefile \
|
|
src/celengine/Makefile \
|
|
src/celestia/Makefile \
|
|
data/Makefile \
|
|
extras/Makefile \
|
|
textures/Makefile \
|
|
textures/lores/Makefile \
|
|
textures/medres/Makefile \
|
|
textures/hires/Makefile \
|
|
models/Makefile \
|
|
shaders/Makefile \
|
|
fonts/Makefile \
|
|
src/celestia/res/Makefile \
|
|
macros/Makefile \
|
|
manual/Makefile \
|
|
)
|
|
|
|
AC_MSG_RESULT()
|
|
AC_MSG_RESULT()
|
|
AC_MSG_RESULT(********************************************************************)
|
|
AC_MSG_RESULT(*** Celestia configuration complete. Now do a 'make' followed ***)
|
|
AC_MSG_RESULT(*** by 'make install' ***)
|
|
AC_MSG_RESULT(********************************************************************)
|
|
AC_MSG_RESULT()
|
|
AC_MSG_RESULT()
|