]> git.mxchange.org Git - flightgear.git/commitdiff
Tatsuhiro Nishioka:
authortorsten <torsten>
Wed, 16 Sep 2009 17:07:49 +0000 (17:07 +0000)
committerTim Moore <timoore@redhat.com>
Thu, 17 Sep 2009 20:54:42 +0000 (22:54 +0200)
Patches for configure.ac and Makefile.am files in FG/SG so Mac developers can build these in a unix way.
These also enables Mac developers to choose either PLIB framework or PLIB static libs.

configure.ac
src/FDM/YASim/Makefile.am
src/GUI/Makefile.am
src/Input/Makefile.am
src/Main/Makefile.am

index 7b0dab42da108173f1d008a57333e4462b2d6f17..d514661019a589dcf6e07f834d6246491292a250 100644 (file)
@@ -1,4 +1,4 @@
-dnl Process this file with autoget.sh to produce a working configure
+dnl Process this file with autogen.sh to produce a working configure
 dnl script.
 
 AC_INIT
@@ -51,6 +51,53 @@ if test "x$with_osg" != "x" ; then
     EXTRA_DIRS="${EXTRA_DIRS} $with_osg"
 fi
 
+# specify framework related locations for Mac OS X
+case "${host}" in
+*-apple-darwin*)
+
+    dnl Thank you Christian Bauer from SheepSaver
+    dnl Modified by Tatsuhiro Nishioka for accepting a given framework path
+    dnl AC_CHECK_FRAMEWORK($1=NAME, $2=INCLUDES, $3=FRAMEWORK_PATH) ; $3 is optional
+    AC_DEFUN([AC_CHECK_FRAMEWORK], [
+    AS_VAR_PUSHDEF([ac_Framework], [ac_cv_framework_$1])dnl
+    AC_CACHE_CHECK([whether compiler supports framework $1],
+        ac_Framework, [
+        saved_LIBS="$LIBS"
+        FRAMEWORKS="$FRAMEWORKS -framework $1"
+        if test "$3" = ""; then
+            FRAMEWORKS="$FRAMEWORKS $ADD2LD"
+        elif test "`echo $FRAMEWORKS | grep -- -F$3`" = ""; then
+            FRAMEWORKS="$FRAMEWORKS -F$3"
+            CXXFLAGS="$CXXFLAGS -F$3"
+            CCFLAGS="$CCFLAGS -F$3"
+            dnl This is needed for AC_TRY_LINK when a framework path is specified
+            export DYLD_FRAMEWORK_PATH="${DYLD_FRAMEWORK_PATH}:$3"
+        fi
+        AC_TRY_LINK(
+        [$2], [],
+        [AS_VAR_SET(ac_Framework, yes)], [AS_VAR_SET(ac_Framework, no); LIBS="$saved_LIBS"]
+        )
+    ])
+    AS_IF([test AS_VAR_GET(ac_Framework) = yes],
+        [AC_DEFINE(AS_TR_CPP(HAVE_FRAMEWORK_$1), 1, [Define if framework $1 is available.])]
+    )
+    AS_VAR_POPDEF([ac_Framework])dnl
+    ])
+
+    # Mac OS X specific configure options
+    AC_ARG_WITH(osg_framework, [  --with-osg-framework=PREFIX       Specify the prefix path to osg frameworks [default=standard framework paths]])
+
+    if test "x$with_plib_framework" != "x" ; then
+        echo "plib prefix is $with_plib_framework"
+    fi
+
+    AC_ARG_WITH(plib_framework, [  --with-plib-framework=PREFIX       Specify the prefix path to PLIB framework [default=standard framework paths]])
+    if test "x$with_osg_framework" != "x" ; then
+        echo "osg prefix is $with_osg_framework"
+    fi
+    ;;
+esac
+
 dnl Determine an extra directories to add to include/lib search paths
 case "${host}" in
 *-apple-darwin* | *-*-mingw32*)
@@ -117,6 +164,30 @@ dnl EXPERIMENTAL generic event driven input device
 AC_ARG_WITH(eventinput, [  --with-eventinput       Include event driven input (EXPERIMENTAL) [default=no]], [], [with_eventinput=no])
 if test "x$with_eventinput" = "xyes"; then
     AC_DEFINE([WITH_EVENTINPUT], 1, [Define to enable generic event driven input device])
+    case "${host}" in
+    dnl OS specific sources for event driven input
+    dnl Linux and Mac OS X are supported at this moment
+    *-apple-darwin*)
+        eventinput_EXTRA_OBJS="FGMacOSXEventInput.o"
+        eventinput_INCUDES=""
+        eventinput_LIBS=""
+        ;;
+    *linux*)
+        dnl
+        dnl FIXME: include paths for dbus are hard-coded at this moment.
+        dnl FIXME: these must be found in configure
+        dnl
+        eventinput_EXTRA_OBJS="FGLinuxEventInput.o"
+        eventinput_INCLUDES="-I/usr/include/dbus-1.0 -I/usr/lib64/dbus-1.0/include -I/usr/lib/dbus-1.0/include"
+        eventinput_LIBS="-ldbus-1 -lhal"
+        ;;
+    *)
+        echo "Event driven input is not supported on ${host}."
+        ;;
+    esac
+    AC_SUBST(eventinput_EXTRA_OBJS)
+    AC_SUBST(eventinput_INCLUDES)
+    AC_SUBST(eventinput_LIBS)
 fi
 AM_CONDITIONAL(WITH_EVENTINPUT, test "x$with_eventinput" = "xyes")
 
@@ -468,6 +539,18 @@ fi
 AM_CONDITIONAL(ENABLE_JPEG_SERVER, test "x$ac_cv_header_simgear_screen_jpgfactory_hxx" = "xyes")
 
 # Check for "plib" without which we cannot go on
+case "${host}" in
+*-apple-darwin*)
+    if test "x$with_plib_framework" != "x"; then
+        AC_CHECK_FRAMEWORK(PLIB, [#include <plib/ul.h>], $with_plib_framework, no)
+        plib_FRAMEWORK="$FRAMEWORKS"
+        AC_SUBST(plib_FRAMEWORK)
+        FRAMEWORKS=""
+    fi
+    ;;
+esac
+AM_CONDITIONAL(HAVE_FRAMEWORK_PLIB, test "x$ac_cv_framework_PLIB" != "x")
+
 AC_CHECK_HEADER(plib/ul.h)
 if test "x$ac_cv_header_plib_ul_h" != "xyes"; then
     echo
@@ -480,6 +563,7 @@ if test "x$ac_cv_header_plib_ul_h" != "xyes"; then
     exit
 fi
 
+echo "$DYLD_FRAMEWORK_PATH"
 AC_MSG_CHECKING([for plib 1.8.5 or newer])
 AC_TRY_RUN([
 #include <plib/ul.h>
@@ -520,48 +604,58 @@ fi
 # Find the OSG libraries.  Note special handling for OS X frameworks
 case "${host}" in
 *-apple-darwin*)
-
-    dnl Thank you Christian Bauer from SheepSaver
-    dnl AC_CHECK_FRAMEWORK($1=NAME, $2=INCLUDES)
-    AC_DEFUN([AC_CHECK_FRAMEWORK], [
-    AS_VAR_PUSHDEF([ac_Framework], [ac_cv_framework_$1])dnl
-    AC_CACHE_CHECK([whether compiler supports framework $1],
-        ac_Framework, [
-        saved_LIBS="$LIBS"
-        LIBS="$LIBS -framework $1"
-        AC_TRY_LINK(
-        [$2], [],
-        [AS_VAR_SET(ac_Framework, yes)], [AS_VAR_SET(ac_Framework, no); LIBS="$saved_LIBS"]
-        )
-    ])
-    AS_IF([test AS_VAR_GET(ac_Framework) = yes],
-        [AC_DEFINE(AS_TR_CPP(HAVE_FRAMEWORK_$1), 1, [Define if framework $1 is available.])]
-    )
-    AS_VAR_POPDEF([ac_Framework])dnl
-    ])
-
-    if test "x$enable_osgdebug" = "xyes"; then
-        AC_CHECK_LIB(osgViewerd,osgViewerGetVersion)
-        AC_CHECK_LIB(osgGAd,osgGAGetVersion)
-        AC_CHECK_LIB(osgTextd,osgTextGetVersion)
-        LIBS="$LIBS -losgFXd"
-        AC_CHECK_LIB(osgUtild,osgUtilGetVersion)
-        AC_CHECK_LIB(osgDBd,osgDBGetVersion)
-        AC_CHECK_LIB(osgSimd,osgSimGetVersion)
-        AC_CHECK_LIB(osgParticled,osgParticleGetVersion)
-        AC_CHECK_LIB(osgd,osgGetVersion)
-        AC_CHECK_LIB(OpenThreadsd,OpenThreadsGetVersion)
+    if test "x$with_osg_framework" = "x"; then
+        if test "x$enable_osgdebug" = "xyes"; then
+            # debug version of osg libs
+            AC_CHECK_LIB(OpenThreadsd,OpenThreadsGetVersion)
+            openthreads_LIBS="$LIBS"
+            LIBS=""
+            AC_CHECK_LIB(osgd,osgGetVersion)
+            AC_CHECK_LIB(osgUtild,osgUtilGetVersion)
+            AC_CHECK_LIB(osgDBd,osgDBGetVersion)
+            AC_CHECK_LIB(osgTextd,osgTextGetVersion)
+            AC_CHECK_LIB(osgGAd,osgGAGetVersion)
+            AC_CHECK_LIB(osgViewerd,osgViewerGetVersion)
+            AC_CHECK_LIB(osgSimd,osgSimGetVersion)
+            AC_CHECK_LIB(osgParticled,osgParticleGetVersion)
+            OSG_LIBS="$LIBS -losgFXd $openthreads_LIBS"
+            LIBS=""
+        else
+            # release version of osg libs
+            AC_CHECK_LIB(OpenThreads,OpenThreadsGetVersion)
+            openthreads_LIBS="$LIBS"
+            LIBS=""
+            AC_CHECK_LIB(osg,osgGetVersion)
+            AC_CHECK_LIB(osgUtil,osgUtilGetVersion)
+            AC_CHECK_LIB(osgDB,osgDBGetVersion)
+            AC_CHECK_LIB(osgText,osgTextGetVersion)
+            AC_CHECK_LIB(osgGA,osgGAGetVersion)
+            AC_CHECK_LIB(osgViewer,osgViewerGetVersion)
+            AC_CHECK_LIB(osgSim,osgSimGetVersion)
+            AC_CHECK_LIB(osgParticle,osgParticleGetVersion)
+            OSG_LIBS="$LIBS -losgFX $openthreads_LIBS"
+            LIBS=""
+            # echo $LIBS
+        fi
+        AC_SUBST(openthreads_LIBS)
+        AC_SUBST(OSG_LIBS)
     else
-        AC_CHECK_FRAMEWORK(osgViewer, [#include <osgViewer/Version>])
-        AC_CHECK_FRAMEWORK(osgGA, [#include <osgGA/Version>])
-        AC_CHECK_FRAMEWORK(osgText, [#include <osgText/Version>])
-        AC_CHECK_FRAMEWORK(osgFX, [#include <osgFX/AnisotropicLighting>])
-        AC_CHECK_FRAMEWORK(osgUtil, [#include <osgUtil/Version>])
-        AC_CHECK_FRAMEWORK(osgDB, [#include <osgDB/Version>])
-        AC_CHECK_FRAMEWORK(osgSim, [#include <osgSim/Version>])
-        AC_CHECK_FRAMEWORK(osgParticle, [#include <osgParticle/Version>])
-        AC_CHECK_FRAMEWORK(osg, [#include <osg/Version>])
-        AC_CHECK_FRAMEWORK(OpenThreads, [#include <OpenThreads/Version>])
+        # Checking osg frameworks.
+        AC_CHECK_FRAMEWORK(osgViewer, [#include <osgViewer/Version>], $with_osg_framework)
+        AC_CHECK_FRAMEWORK(osgGA, [#include <osgGA/Version>], $with_osg_framework)
+        AC_CHECK_FRAMEWORK(osgText, [#include <osgText/Version>], $with_osg_framework)
+        AC_CHECK_FRAMEWORK(osgFX, [#include <osgFX/AnisotropicLighting>], $with_osg_framework)
+        AC_CHECK_FRAMEWORK(osgUtil, [#include <osgUtil/Version>], $with_osg_framework)
+        AC_CHECK_FRAMEWORK(osgDB, [#include <osgDB/Version>], $with_osg_framework)
+        AC_CHECK_FRAMEWORK(osgSim, [#include <osgSim/Version>], $with_osg_framework)
+        AC_CHECK_FRAMEWORK(osgParticle, [#include <osgParticle/Version>], $with_osg_framework)
+        AC_CHECK_FRAMEWORK(osg, [#include <osg/Version>], $with_osg_framework)
+        osg_FRAMEWORKS="$FRAMEWORKS"
+        FRAMEWORKS=""
+        AC_CHECK_FRAMEWORK(OpenThreads, [#include <OpenThreads/Version>], $with_osg_framework)
+        openthreads_FRAMEWORK="$FRAMEWORKS"
+        AC_SUBST(osg_FRAMEWORKS)
+        AC_SUBST(openthreads_FRAMEWORK)
     fi
     ;;
 *)
@@ -590,6 +684,7 @@ case "${host}" in
     fi
     ;;
 esac
+AM_CONDITIONAL(HAVE_FRAMEWORK_OSG, test "x$ac_cv_framework_osg" != "x")
 
 AC_LANG_POP
 
@@ -736,6 +831,7 @@ AC_CONFIG_FILES([ \
        utils/TerraSync/Makefile \
        utils/xmlgrep/Makefile \
        utils/fgviewer/Makefile \
+       utils/fgpanel/Makefile \
 ])
 AC_OUTPUT
 
index aae98c48c30efab709d28985000cf52bc5ba7577..f75029429feed8959da3e35f5c7de644503e73d0 100644 (file)
@@ -46,9 +46,17 @@ noinst_PROGRAMS = proptest
 
 yasim_SOURCES = yasim-test.cpp $(SHARED_SOURCE_FILES)
 
-yasim_LDADD = -lsgxml -lsgprops -lsgdebug -lsgmisc -lsgstructure $(base_LIBS)
+yasim_LDADD = -lsgxml -lsgprops -lsgdebug -lsgmisc -lsgstructure -lsgtiming $(base_LIBS)
 
 proptest_SOURCES = proptest.cpp $(SHARED_SOURCE_FILES)
-proptest_LDADD = -lsgxml -lsgprops -lsgdebug -lsgmisc -lsgstructure $(base_LIBS)
+proptest_LDADD = -lsgxml -lsgprops -lsgdebug -lsgmisc -lsgstructure -lsgtiming $(base_LIBS)
+
+if HAVE_FRAMEWORK_OSG
+yasim_LDFLAGS = $(openthreads_FRAMEWORKS)
+proptest_LDFLAGS = $(openthreads_FRAMEWORKS)
+else
+yasim_LDFLAGS = $(openthreads_LIBS)
+proptest_LDFLAGS = $(openthreads_LIBS)
+endif
 
 INCLUDES = -I$(top_srcdir) -I$(top_srcdir)/src
index 512e5d192c4deb21cdb06bb4af965ecdc5b08070..890807f2a9734b5cc12f2d4d673784cbc273d6b6 100644 (file)
@@ -1,6 +1,18 @@
 noinst_LIBRARIES = libGUI.a
 noinst_PROGRAMS = layout-test
 
+if HAVE_FRAMEWORK_PLIB
+layout_test_PLIB_FW = $(plib_FRAMEWORK)
+else
+layout_test_PLIB_LIBS = -lplibpw -lplibpu -lplibfnt -lplibul
+endif
+
+if HAVE_FRAMEWORK_OSG
+layout_test_OSG_LIBS = $(openthreads_FRAMEWORK)
+else
+layout_test_OSG_LIBS = $(openthreads_LIBS)
+endif
+
 libGUI_a_SOURCES = \
         new_gui.cxx new_gui.hxx \
         dialog.cxx dialog.hxx \
@@ -17,5 +29,8 @@ INCLUDES = -I$(top_srcdir) -I$(top_srcdir)/src
 layout_test_SOURCES = layout-test.cxx
 
 layout_test_LDADD = libGUI.a \
-                    -lsgprops -lsgdebug -lsgstructure -lsgmisc -lsgxml \
-                    -lplibpw -lplibpu -lplibfnt -lplibul $(opengl_LIBS)
+                    -lsgprops -lsgdebug -lsgstructure -lsgmisc -lsgxml -lsgtiming \
+                    $(layout_test_PLIB_LIBS) $(opengl_LIBS)
+
+# mainly for Macs
+layout_test_LDFLAGS = $(layout_test_PLIB_FW) $(layout_test_OSG_LIBS)
index cea5f627fc0a484f4e04898549b07306ab153bd3..c6ec7dba17c073967239cbee27a0d2fbc6542d17 100644 (file)
@@ -3,13 +3,33 @@ AM_CXXFLAGS = -DPKGLIBDIR=\"$(pkgdatadir)\"
 noinst_LIBRARIES = libInput.a
 
 if WITH_EVENTINPUT
-libInput_Event_SOURCES = FGEventInput.cxx FGEventInput.hxx FGLinuxEventInput.cxx FGLinuxEventInput.hxx
-libInput_Event_INCLUDES = -I/usr/include/dbus-1.0 -I/usr/lib64/dbus-1.0/include -I/usr/lib/dbus-1.0/include 
+EXTRA_libInput_a_SOURCES = FGLinuxEventInput.cxx FGLinuxEventInput.hxx \
+       FGMacOSXEventInput.cxx FGMacOSXEventInput.hxx
+libInput_Event_SOURCES = FGEventInput.cxx FGEventInput.hxx 
+libInput_Event_INCLUDES = $(eventinput_INCLUDES)
+libInput_a_LIBADD = $(eventinput_EXTRA_OBJS)
+libInput_a_DEPENDENCIES = $(eventinput_EXTRA_OBJS)
 else
 libInput_Event_SOURCES = 
 libInput_Event_INCLUDES = 
 endif
 
+if HAVE_FRAMEWORK_PLIB
+js_demo_LDFLAGS = $(plib_FRAMEWORK)
+fgjs_LDFLAGS = $(plib_FRAMEWORK) 
+else
+js_demo_PLIB_LIBS = -lplibjs -lplibul
+fgjs_PLIB_LIBS = -lplibjs -lplibul
+js_demo_LDFLAGS =
+fgjs_LDFLAGS=
+endif
+
+if HAVE_FRAMEWORK_OSG
+fgjs_LDFLAGS = $(openthreads_FRAMEWORK)
+else
+fgjs_LDFLAGS = $(openthreads_LIBS)
+endif
+
 libInput_a_SOURCES = input.cxx input.hxx FGCommonInput.cxx FGCommonInput.hxx \
        FGDeviceConfigurationMap.cxx FGDeviceConfigurationMap.hxx \
        FGButton.cxx FGButton.hxx \
@@ -22,11 +42,11 @@ bin_PROGRAMS = js_demo fgjs
 
 js_demo_SOURCES = js_demo.cxx
 
-js_demo_LDADD = -lplibjs $(base_LIBS) $(joystick_LIBS) -lplibul
+js_demo_LDADD = $(js_demo_PLIB_LIBS) $(base_LIBS) $(joystick_LIBS)
 
 fgjs_SOURCES = fgjs.cxx jsinput.cxx jsinput.h jssuper.cxx jssuper.h
 
-fgjs_LDADD = -lplibjs -lplibul $(base_LIBS) $(joystick_LIBS) \
+fgjs_LDADD = $(js_demo_PLIB_LIBS) $(base_LIBS) $(joystick_LIBS) \
        -lsgprops -lsgmisc -lsgio -lsgdebug -lsgstructure -lsgxml -lz
 
 INCLUDES = -I$(top_srcdir) -I$(top_srcdir)/src -I$(top_srcdir)/src/Main \
index e30701f7ba0f1578d23aafc937de1c44a8ea360d..0994d859ad1c585049c147cb8f712a262dd1bec7 100644 (file)
@@ -16,11 +16,24 @@ THREAD_LIBS =
 endif
 
 if WITH_EVENTINPUT
-EVENT_LIBS = -ldbus-1 -lhal
+EVENT_LIBS = $(eventinput_LIBS)
 else
 EVENT_LIBS =
 endif
 
+if HAVE_FRAMEWORK_PLIB
+fgfs_PLIB_FW = $(plib_FRAMEWORK)
+metar_PLIB_FW = $(plib_FRAMEWORK)
+else
+fgfs_PLIB_LIBS = -lplibpuaux -lplibpu -lplibfnt -lplibjs -lplibnet \
+       -lplibsg -lplibul 
+metar_PLIB_LIBS = -lplibnet -lplibul 
+endif
+
+if HAVE_FRAMEWORK_OSG
+fgfs_OSG_FW = $(osg_FRAMEWORKS) $(openthreads_FRAMEWORK)
+endif
+
 GFX_CODE = fg_os_osgviewer.cxx fg_os_common.cxx fg_os.hxx
 
 JSBSIM_LIBS = \
@@ -104,8 +117,7 @@ fgfs_LDADD = \
        -lsgmaterial -lsgutil -lsgtiming -lsgio -lsgscreen -lsgmath -lsgbucket \
        -lsgprops -lsgdebug -lsgmagvar -lsgmisc -lsgnasal -lsgxml -lsgsound \
        -lsgserial -lsgstructure -lsgenvironment \
-       -lplibpuaux -lplibpu -lplibfnt -lplibjs -lplibnet \
-       -lplibsg -lplibul \
+        $(fgfs_PLIB_LIBS) \
        $(OSG_LIBS) \
        $(THREAD_LIBS) \
        $(network_LIBS) \
@@ -114,11 +126,15 @@ fgfs_LDADD = \
        $(openal_LIBS) \
        $(EVENT_LIBS)
 
+fgfs_LDFLAGS = $(fgfs_PLIB_FW) $(fgfs_OSG_FW)
+
 metar_SOURCES = metar_main.cxx
 
 metar_LDADD = \
         -lsgenvironment -lsgio -lsgbucket -lsgmisc -lsgstructure -lsgdebug \
-        -lplibnet -lplibul $(network_LIBS) \
+        $(metar_PLIB_LIBS) $(network_LIBS) \
         -lz $(base_LIBS)
 
+metar_LDFLAGS = $(metar_PLIB_FW)
+
 INCLUDES = -I$(top_srcdir) -I$(top_srcdir)/src -I$(top_srcdir)/src/FDM/JSBSim