From cb2df234aeab0961fd783ba4ed503a67f4c04afe Mon Sep 17 00:00:00 2001 From: curt Date: Tue, 10 Dec 2002 19:12:34 +0000 Subject: [PATCH] - Refactoring configure.ac a bit to use $host (please test on your platform) - Use include GLUT_H instead of refering to the file directly since Mac unfortunately chose to put this in GLUT/glut.h :-( --- configure.ac | 151 +++++++++--------- simgear/debug/logstream.hxx | 1 + simgear/io/Makefile.am | 12 +- simgear/metar/MetarTest/MetarLibTest.cpp | 13 +- simgear/scene/sky/clouds3d/SkyContext.cpp | 7 +- .../sky/clouds3d/SkyDynamicTextureManager.hpp | 12 +- simgear/scene/sky/clouds3d/SkyLight.cpp | 7 +- simgear/scene/sky/clouds3d/SkyMaterial.hpp | 11 +- simgear/scene/sky/clouds3d/SkyMinMaxBox.cpp | 12 +- .../clouds3d/SkyRenderableInstanceGroup.cpp | 11 +- simgear/scene/sky/clouds3d/SkyTexture.hpp | 11 +- simgear/scene/sky/clouds3d/camdisplay.cpp | 11 +- simgear/scene/sky/dome.cxx | 3 +- simgear/screen/GLBitmaps.cxx | 3 +- simgear/screen/Makefile.am | 2 + simgear/screen/screen-dump.cxx | 3 +- simgear/xgl/xgl.c | 2 +- 17 files changed, 167 insertions(+), 105 deletions(-) diff --git a/configure.ac b/configure.ac index 5cce26bc..ac5d8d7f 100644 --- a/configure.ac +++ b/configure.ac @@ -6,7 +6,7 @@ dnl $Id$ AC_INIT AC_CONFIG_SRCDIR([simgear/bucket/newbucket.cxx]) -# Require at least automake 2.52 +dnl Require at least automake 2.52 AC_PREREQ(2.52) dnl Initialize the automake stuff @@ -39,20 +39,22 @@ AC_PROG_INSTALL AC_PROG_LN_S -# Used on the Irix platform +AC_CANONICAL_HOST + +dnl Used on the Irix platform AR="ar" ARFLAGS="cru" -OS=`uname -s` -if test "$OS" = "IRIX" -o "$OS" = "IRIX64"; then +case "${host}" in +*-*-irix*) if test "$CXX" = "CC"; then AR="CC -ar" ARFLAGS="-o" fi -fi + ;; +esac AC_SUBST(AR) AC_SUBST(ARFLAGS) - if echo $includedir | egrep "simgear$" > /dev/null; then echo "includedir is" $includedir "libdir is" $libdir else @@ -60,8 +62,7 @@ else echo "includedir changed to" $includedir "libdir is" $libdir fi -# set logging default value -# with_logging=yes +dnl set logging; default value of with_logging=yes AC_ARG_WITH(logging, [ --with-logging Include logging output (default)]) if test "x$with_logging" = "xno" ; then AC_DEFINE([FG_NDEBUG], 1, [Define for no logging output]) @@ -90,38 +91,26 @@ fi AM_CONDITIONAL(ENABLE_JPEG_SERVER, test "x$with_jpeg_factory" = "xyes") -dnl Check for MS Windows environment -AC_CHECK_HEADER(windows.h) - -AC_EGREP_CPP(yes, -[#ifdef __MINGW32__ - yes - #endif -],is_mingw=yes, is_mingw=no) - -echo "IS_MINGW = $is_mingw" -AM_CONDITIONAL(IS_MINGW, test "x$is_mingw" = "xyes") - -AC_EGREP_CPP(yes, -[#ifdef __CYGWIN__ - yes - #endif -],is_cygwin=yes, is_cygwin=no) - -echo "IS_CYGWIN = $is_cygwin" -AM_CONDITIONAL(IS_CYGWIN, test "x$is_cygwin" = "xyes") - -if test "x$HOSTTYPE" != "xmacintosh" -a "x$is_mingw" != "xyes"; then - dnl extra library and include directories - EXTRA_DIRS="/usr/X11R6" +dnl Determine an extra directories to add to include/lib search paths +case "${host}" in +*-apple-darwin* | *-*-mingw32*) + echo no EXTRA_DIRS for $host + ;; +*) + if test -d /usr/X11R6 ; then + EXTRA_DIR1="/usr/X11R6" + fi if test -d /opt/X11R6 ; then - EXTRA_DIRS="$EXTRA_DIRS /opt/X11R6" + EXTRA_DIR2="/opt/X11R6" fi -fi + EXTRA_DIRS="$EXTRA_DIR1 $EXTRA_DIR2" + ;; +esac wi_EXTRA_DIRS(no, ${EXTRA_DIRS}) + dnl Using AM_CONDITIONAL is a step out of the protected little dnl automake fold so it is potentially dangerous. But, we are dnl beginning to run into cases where the standard checks are not @@ -129,11 +118,18 @@ dnl enough. AM_CONDITIONALS are then referenced to conditionally dnl build a Makefile.in from a Makefile.am which lets us define custom dnl includes, compile alternative source files, etc. -dnl X11 might be installed on Mac OS X, don't want to use it if it is. -if test "x$HOSTTYPE" != "xmacintosh" ; then - dnl Check for X11 (fancy) +dnl X11 might be installed on Mac OS X or cygwin/mingwin, we don't want +dnl to use it if it is. +case "${host}" in +*-apple-darwin* | *-*-cygwin* | *-*-mingw32*) + echo no fancy X11 check + ;; + +*) AC_PATH_XTRA -fi + ;; + +esac dnl Checks for libraries. @@ -154,8 +150,6 @@ AM_CONDITIONAL(HAVE_THREADS, test "x$ac_cv_lib_pthread_pthread_exit" = "xyes" -a AC_CHECK_LIB(socket, socket) -AC_CANONICAL_HOST - case "${host}" in *-*-cygwin* | *-*-mingw32*) dnl CygWin under Windoze. @@ -164,25 +158,27 @@ case "${host}" in AC_DEFINE([WIN32], 1, [Define for Win32 platforms]) AC_DEFINE([NOMINMAX], 1, [Define for Win32 platforms]) - dnl just define these to true and hope for the best - ac_cv_lib_glut_glutGetModifiers="yes" - ac_cv_lib_glut_glutGameModeString="yes" - LIBS="$LIBS -lglut32 -lglu32 -lopengl32" LIBS="$LIBS -luser32 -lgdi32 -lwinmm" - if test "x$is_mingw" = "xyes" ; then - EXTRA_DIRS="${EXTRA_DIRS}" - fi + + dnl add -lwsock32 for mingwin + case "${host}" in + *-*-mingw32*) + LIBS="$LIBS -lwsock32" + ;; + esac + echo "Will link apps with $LIBS" - ;; + *-apple-darwin*) dnl Mac OS X LIBS="$LIBS -framework GLUT -framework OpenGL -framework Carbon -lobjc" ;; + *) - dnl Reasonable stuff for X-Windows based machines + dnl X-Windows based machines AC_CHECK_LIB(X11, XCreateWindow) AC_CHECK_LIB(Xext, XShmCreateImage) @@ -220,34 +216,23 @@ case "${host}" in AC_CHECK_LIB(MesaGLU, gluLookAt) fi - dnl check for glut - AC_CHECK_LIB(glut, glutGetModifiers) - - dnl test for glutGameModeString, but avoid adding glut a second time into - dnl the list of libraries - save_LIBS="$LIBS" - AC_CHECK_LIB(glut, glutGameModeString) - LIBS="$save_LIBS" - + LIBS="$LIBS -lglut" ;; -esac -if test "x$ac_cv_lib_glut_glutGetModifiers" = "xno"; then - echo - echo "Unable to find the necessary OpenGL or GLUT libraries." - echo "See config.log for automated test details and results ..." - exit 1 -fi +esac -if test "x$ac_cv_lib_glut_glutGameModeString" = "xno"; then - echo - echo "Your version of glut doesn't support game mode." - echo "You need to install the latest version of glut. If your" - echo "distribution doesn't provide a newer version, you can get the source" - echo "code from:" - echo - echo " http://reality.sgi.com/opengl/glut3/glut3.html" - exit 1 +dnl check for glut location +AC_CHECK_HEADER(GL/glut.h) +if test "x$ac_cv_header_GL_glut_h" = "xyes"; then + AC_DEFINE([GLUT_H], "GL/glut.h", [Define as glut.h include location]) +else + AC_CHECK_HEADER(GLUT/glut.h) + if test "x$ac_cv_header_GLUT_glut_h" = "xyes"; then + AC_DEFINE([GLUT_H], "GLUT/glut.h", [Define as glut.h include location]) + else + echo "Neither GL/glut.h nor GLUT/glut.h found. Cannot continue" + exit + fi fi opengl_LIBS="$LIBS" @@ -256,7 +241,8 @@ LIBS="$base_LIBS" AC_SUBST(base_LIBS) AC_SUBST(opengl_LIBS) -AM_CONDITIONAL(HAVE_XWINDOWS, test "x$ac_cv_lib_X11_XCreateWindow" = "xyes" ) +dnl Check for MS Windows environment +AC_CHECK_HEADER(windows.h) AM_CONDITIONAL(EXTGL_NEEDED, test "x$ac_cv_header_windows_h" = "xyes") # The following are C++ items that need to be tested for with the c++ @@ -311,8 +297,6 @@ fi AC_LANG_POP -dnl Specify if we want logging (testing build) or not (release build) - dnl Check for system installed zlib AC_CHECK_HEADER(zlib.h) if test "x$ac_cv_header_zlib_h" != "xyes"; then @@ -326,7 +310,7 @@ dnl Checks for header files. AC_HEADER_STDC AC_CHECK_HEADERS( \ fcntl.h getopt.h malloc.h memory.h stdint.h stdlib.h sys/param.h \ - sys/stat.h sys/time.h sys/timeb.h unistd.h windows.h winbase.h values.h ) + sys/stat.h sys/time.h sys/timeb.h unistd.h winbase.h values.h ) if test "x$ac_cv_header_stdint_h" = "xyes"; then AC_DEFINE([HAVE_STDINT_H], 1, [Define if stdint.h exists]) @@ -341,7 +325,8 @@ AC_STRUCT_TM dnl Checks for library functions. AC_TYPE_SIGNAL AC_FUNC_VPRINTF -AC_CHECK_FUNCS( ftime gettimeofday timegm memcpy bcopy mktime strstr rand \ +AC_CHECK_FUNCS( \ + ftime gettimeofday timegm memcpy bcopy mktime strstr rand \ random drand48 setitimer getitimer signal GetLocalTime rint getrusage ) AM_CONFIG_HEADER(simgear/simgear_config.h) @@ -388,6 +373,13 @@ fi echo -n "Automake version: ($AUTO_MAKE_VERSION) " automake --version | head -1 +if test "x$ac_cv_header_GL_glut_h" = "xyes"; then + echo "With GL/glut.h" +fi +if test "x$ac_cv_header_GLUT_glut_h" = "xyes"; then + echo "With GLUT/glut.h" +fi + if test "x$with_jpeg_factory" = "xyes"; then echo "With JPEG Factory support" else @@ -399,3 +391,4 @@ if test "x$ac_cv_lib_pthread_pthread_exit" = "xyes" -a "x$ac_cv_header_pthread_h else echo "Threads: no threads (pthread lib not found.)" fi + diff --git a/simgear/debug/logstream.hxx b/simgear/debug/logstream.hxx index ea35ee95..f28ca610 100644 --- a/simgear/debug/logstream.hxx +++ b/simgear/debug/logstream.hxx @@ -46,6 +46,7 @@ #ifndef SG_HAVE_NATIVE_SGI_COMPILERS SG_USING_STD(streambuf); SG_USING_STD(ostream); +SG_USING_STD(cout); SG_USING_STD(cerr); SG_USING_STD(endl); #else diff --git a/simgear/io/Makefile.am b/simgear/io/Makefile.am index 9cf9c3a2..60bf8015 100644 --- a/simgear/io/Makefile.am +++ b/simgear/io/Makefile.am @@ -22,12 +22,6 @@ libsgio_a_SOURCES = \ INCLUDES = -I$(top_srcdir) -if IS_MINGW -NETWORK_LIB = -lwsock32 -else -NETWORK_LIB = -endif - noinst_PROGRAMS = decode_binobj socktest lowtest tcp_server tcp_client tcp_server_SOURCES = tcp_server.cxx @@ -38,7 +32,7 @@ tcp_server_LDADD = \ $(top_builddir)/simgear/bucket/libsgbucket.a \ $(top_builddir)/simgear/misc/libsgmisc.a \ $(top_builddir)/simgear/xml/libsgxml.a \ - -lplibnet -lplibul -lz $(NETWORK_LIB) + -lplibnet -lplibul -lz tcp_client_SOURCES = tcp_client.cxx @@ -48,7 +42,7 @@ tcp_client_LDADD = \ $(top_builddir)/simgear/bucket/libsgbucket.a \ $(top_builddir)/simgear/misc/libsgmisc.a \ $(top_builddir)/simgear/xml/libsgxml.a \ - -lplibnet -lplibul -lz $(NETWORK_LIB) + -lplibnet -lplibul -lz socktest_SOURCES = socktest.cxx @@ -58,7 +52,7 @@ socktest_LDADD = \ $(top_builddir)/simgear/debug/libsgdebug.a \ $(top_builddir)/simgear/misc/libsgmisc.a \ $(top_builddir)/simgear/xml/libsgxml.a \ - -lplibnet -lplibul -lz $(NETWORK_LIB) + -lplibnet -lplibul -lz lowtest_SOURCES = lowtest.cxx diff --git a/simgear/metar/MetarTest/MetarLibTest.cpp b/simgear/metar/MetarTest/MetarLibTest.cpp index 6135ed18..466e638f 100644 --- a/simgear/metar/MetarTest/MetarLibTest.cpp +++ b/simgear/metar/MetarTest/MetarLibTest.cpp @@ -1,9 +1,18 @@ // Metar Library test +#ifdef HAVE_CONFIG_H +# include +#endif + +#ifdef HAVE_WINDOWS_H +# include +#endif + +#include GLUT_H + #include #include "../MetarReport.h" #include "../MetarStation.h" -#include static char *report[] = { @@ -546,4 +555,4 @@ main( testMetarReport(); testMetarStation( argc, argv ); return 0; -} \ No newline at end of file +} diff --git a/simgear/scene/sky/clouds3d/SkyContext.cpp b/simgear/scene/sky/clouds3d/SkyContext.cpp index 499ed478..78b80b22 100644 --- a/simgear/scene/sky/clouds3d/SkyContext.cpp +++ b/simgear/scene/sky/clouds3d/SkyContext.cpp @@ -24,7 +24,12 @@ # include #endif -#include +#ifdef HAVE_WINDOWS_H +# include +#endif + +#include GLUT_H + #ifndef WIN32 #include #endif diff --git a/simgear/scene/sky/clouds3d/SkyDynamicTextureManager.hpp b/simgear/scene/sky/clouds3d/SkyDynamicTextureManager.hpp index f16060a9..3cf2473b 100644 --- a/simgear/scene/sky/clouds3d/SkyDynamicTextureManager.hpp +++ b/simgear/scene/sky/clouds3d/SkyDynamicTextureManager.hpp @@ -26,8 +26,18 @@ // warning for truncation of template name for browse info #pragma warning( disable : 4786) +#ifdef HAVE_CONFIG_H +# include +#endif + +#ifdef HAVE_WINDOWS_H +# include +#endif + #include -#include + +#include GLUT_H + #include "SkyUtil.hpp" #include "SkySingleton.hpp" diff --git a/simgear/scene/sky/clouds3d/SkyLight.cpp b/simgear/scene/sky/clouds3d/SkyLight.cpp index 6281da8e..657dd0df 100644 --- a/simgear/scene/sky/clouds3d/SkyLight.cpp +++ b/simgear/scene/sky/clouds3d/SkyLight.cpp @@ -24,6 +24,12 @@ # include #endif +#ifdef HAVE_WINDOWS_H +# include +#endif + +#include GLUT_H + #ifdef WIN32 # ifdef _MSC_VER # pragma warning( disable : 4786) @@ -34,7 +40,6 @@ #include "SkyLight.hpp" #include "SkyMaterial.hpp" #include "mat44.hpp" -#include SkyMaterial* SkyLight::s_pMaterial = NULL; diff --git a/simgear/scene/sky/clouds3d/SkyMaterial.hpp b/simgear/scene/sky/clouds3d/SkyMaterial.hpp index feae9e37..69c9eb28 100644 --- a/simgear/scene/sky/clouds3d/SkyMaterial.hpp +++ b/simgear/scene/sky/clouds3d/SkyMaterial.hpp @@ -25,11 +25,20 @@ // #pragma warning( disable : 4786) +#ifdef HAVE_CONFIG_H +# include +#endif + +#ifdef HAVE_WINDOWS_H +# include +#endif + +#include GLUT_H + #include "vec4f.hpp" #include "SkyUtil.hpp" #include "SkyTextureManager.hpp" #include "SkyTextureState.hpp" -#include // forward class SkyRenderable; diff --git a/simgear/scene/sky/clouds3d/SkyMinMaxBox.cpp b/simgear/scene/sky/clouds3d/SkyMinMaxBox.cpp index 6c28790a..5124fbc2 100644 --- a/simgear/scene/sky/clouds3d/SkyMinMaxBox.cpp +++ b/simgear/scene/sky/clouds3d/SkyMinMaxBox.cpp @@ -20,9 +20,19 @@ * * Implementation of a bounding box class. Modified from Wes Hunt's BoundingBox. */ + +#ifdef HAVE_CONFIG_H +# include +#endif + +#ifdef HAVE_WINDOWS_H +# include +#endif + +#include GLUT_H + #include "SkyMinMaxBox.hpp" #include "camutils.hpp" -#include #include diff --git a/simgear/scene/sky/clouds3d/SkyRenderableInstanceGroup.cpp b/simgear/scene/sky/clouds3d/SkyRenderableInstanceGroup.cpp index 0764ddcf..5d0945c5 100644 --- a/simgear/scene/sky/clouds3d/SkyRenderableInstanceGroup.cpp +++ b/simgear/scene/sky/clouds3d/SkyRenderableInstanceGroup.cpp @@ -22,7 +22,16 @@ * other instances. */ -#include +#ifdef HAVE_CONFIG_H +# include +#endif + +#ifdef HAVE_WINDOWS_H +# include +#endif + +#include GLUT_H + #include "SkyRenderableInstanceGroup.hpp" #include "SkySceneManager.hpp" diff --git a/simgear/scene/sky/clouds3d/SkyTexture.hpp b/simgear/scene/sky/clouds3d/SkyTexture.hpp index fe3687d4..9ad4cfc3 100644 --- a/simgear/scene/sky/clouds3d/SkyTexture.hpp +++ b/simgear/scene/sky/clouds3d/SkyTexture.hpp @@ -25,11 +25,20 @@ // #pragma warning( disable : 4786 ) +#ifdef HAVE_CONFIG_H +# include +#endif + +#ifdef HAVE_WINDOWS_H +# include +#endif + +#include GLUT_H + #define __glext_h_ #define __GLEXT_H_ #define __glext_h_ #define __GLEXT_H_ -#include //------------------------------------------------------------------------------ /** diff --git a/simgear/scene/sky/clouds3d/camdisplay.cpp b/simgear/scene/sky/clouds3d/camdisplay.cpp index 736305a2..043eaaa8 100644 --- a/simgear/scene/sky/clouds3d/camdisplay.cpp +++ b/simgear/scene/sky/clouds3d/camdisplay.cpp @@ -19,7 +19,16 @@ // camdisplay.cpp //============================================================================ -#include +#ifdef HAVE_CONFIG_H +# include +#endif + +#ifdef HAVE_WINDOWS_H +# include +#endif + +#include GLUT_H + #include "camera.hpp" //---------------------------------------------------------------------------- diff --git a/simgear/scene/sky/dome.cxx b/simgear/scene/sky/dome.cxx index f7e2ddc8..17fc03f4 100644 --- a/simgear/scene/sky/dome.cxx +++ b/simgear/scene/sky/dome.cxx @@ -33,8 +33,7 @@ #include -#include -#include +#include GLUT_H #include diff --git a/simgear/screen/GLBitmaps.cxx b/simgear/screen/GLBitmaps.cxx index 0e9544ce..57f95e07 100755 --- a/simgear/screen/GLBitmaps.cxx +++ b/simgear/screen/GLBitmaps.cxx @@ -11,8 +11,7 @@ #include #include // memcpy() -#include -#include +#include GLUT_H #include "GLBitmaps.h" diff --git a/simgear/screen/Makefile.am b/simgear/screen/Makefile.am index 4140b0f1..aa16a1d8 100644 --- a/simgear/screen/Makefile.am +++ b/simgear/screen/Makefile.am @@ -2,6 +2,8 @@ includedir = @includedir@/screen lib_LIBRARIES = libsgscreen.a +EXTRA_DIST = jpgfactory.cxx jpgfactory.hxx + if ENABLE_JPEG_SERVER IMAGE_SERVER_INCL = jpgfactory.hxx IMAGE_SERVER_SRCS = jpgfactory.cxx diff --git a/simgear/screen/screen-dump.cxx b/simgear/screen/screen-dump.cxx index 47a40f22..27c6e9bc 100644 --- a/simgear/screen/screen-dump.cxx +++ b/simgear/screen/screen-dump.cxx @@ -32,8 +32,7 @@ #include #include -#include -#include +#include GLUT_H #include "screen-dump.hxx" diff --git a/simgear/xgl/xgl.c b/simgear/xgl/xgl.c index a3db64bb..bd74a054 100644 --- a/simgear/xgl/xgl.c +++ b/simgear/xgl/xgl.c @@ -7,7 +7,7 @@ #endif #include "xgl.h" -#include +#include GLUT_H #include #include -- 2.39.5