1
0
Fork 0

Make all PSL support conditional, because it's not included in plib

1.6.  The macro is HAVE_PLIB_PSL.
This commit is contained in:
david 2003-01-17 12:41:47 +00:00
parent 221f54f8f0
commit 04f1dc4837
6 changed files with 36 additions and 20 deletions

View file

@ -353,9 +353,9 @@ dnl joystick lib
AC_DEFINE([ENABLE_PLIB_JOYSTICK], 1, [Define to enable plib joystick support]) AC_DEFINE([ENABLE_PLIB_JOYSTICK], 1, [Define to enable plib joystick support])
dnl Compiling an in-memory PSL script is available only in the CVS dnl Checking for PSL in plib
dnl version of plib, so check for it. dnl version of plib, so check for it.
AC_MSG_CHECKING([for plib PSL in-memory script compilation support]) AC_MSG_CHECKING([for plib PSL scripting support])
AC_COMPILE_IFELSE([ AC_COMPILE_IFELSE([
#include <plib/psl.h> #include <plib/psl.h>
@ -367,13 +367,10 @@ int main() {
} }
], ],
[AC_MSG_RESULT(yes); [AC_MSG_RESULT(yes);
fg_psl_string_compile=yes], have_plib_psl=yes],
AC_MSG_RESULT(no) AC_MSG_RESULT(no)
) )
if test "x$fg_psl_string_compile" = "xyes"; then AM_CONDITIONAL(HAVE_PLIB_PSL, test "x$have_plib_psl" = "xyes")
AC_DEFINE([FG_PSL_STRING_COMPILE], 1,
[Support for compiling PSL scripts from an in-memory string.])
fi
dnl Check for MetaKit dnl Check for MetaKit
AC_CHECK_HEADER(mk4.h) AC_CHECK_HEADER(mk4.h)
@ -597,13 +594,14 @@ echo "================="
echo "Prefix: $prefix" echo "Prefix: $prefix"
if test "x$fg_psl_string_compile" = "xyes"; then if test "x$have_plib_psl" = "xyes"; then
echo "Scripts for input bindings: yes" echo "Plib PSL scripting: yes"
else else
echo "Scripts for input bindings: $fg_psl_string_compile" echo "Plib PSL scripting: $fg_psl_string_compile"
echo " PSL scripts attached to input bindings will not" echo " You will not be able to run scripts written in PSL"
echo " work. Download the latest CVS version of plib" echo " and some advanced GUI and input features may not"
echo " if you would like to enable them." echo " work. Download and install the latest CVS version"
echo " of plib if you would like to enable PSL support."
fi fi
if test "x$with_logging" != "x"; then if test "x$with_logging" != "x"; then

View file

@ -19,6 +19,12 @@ else
THREAD_LIBS = THREAD_LIBS =
endif endif
if HAVE_PLIB_PSL
PSL_LIBS = -lplibpsl
else
PSL_LIBS =
endif
AM_CXXFLAGS = -DPKGLIBDIR=\"$(pkglibdir)\" AM_CXXFLAGS = -DPKGLIBDIR=\"$(pkglibdir)\"
EXTRA_DIST = 3dfx.sh runfgfs.in runfgfs.bat.in EXTRA_DIST = 3dfx.sh runfgfs.in runfgfs.bat.in
@ -78,7 +84,8 @@ fgfs_LDADD = \
-lsgmath -lsgbucket -lsgdebug -lsgmagvar -lsgmisc -lsgxml \ -lsgmath -lsgbucket -lsgdebug -lsgmagvar -lsgmisc -lsgxml \
-lsgserial \ -lsgserial \
$(THREAD_LIBS) \ $(THREAD_LIBS) \
-lplibpu -lplibfnt -lplibjs -lplibnet -lplibssg -lplibsg -lplibul -lplibpsl \ -lplibpu -lplibfnt -lplibjs -lplibnet -lplibssg -lplibsg -lplibul \
$(PSL_LIBS) \
-lmk4 -lz \ -lmk4 -lz \
$(opengl_LIBS) \ $(opengl_LIBS) \
$(audio_LIBS) $(audio_LIBS)

View file

@ -19,7 +19,9 @@
#include <GUI/gui.h> #include <GUI/gui.h>
#include <GUI/new_gui.hxx> #include <GUI/new_gui.hxx>
#include <Scenery/tilemgr.hxx> #include <Scenery/tilemgr.hxx>
#if defined(HAVE_PLIB_PSL)
#include <Scripting/scriptmgr.hxx> #include <Scripting/scriptmgr.hxx>
#endif
#include <Time/tmp.hxx> #include <Time/tmp.hxx>
#include "fg_init.hxx" #include "fg_init.hxx"
@ -129,6 +131,7 @@ do_null (const SGPropertyNode * arg)
return true; return true;
} }
#if defined(HAVE_PLIB_PSL)
/** /**
* Built-in command: run a PSL script. * Built-in command: run a PSL script.
*/ */
@ -140,6 +143,7 @@ do_script (const SGPropertyNode * arg)
return mgr->run(arg->getStringValue("script")); return mgr->run(arg->getStringValue("script"));
} }
#endif // HAVE_PLIB_PSL
/** /**
@ -654,7 +658,9 @@ static struct {
SGCommandMgr::command_t command; SGCommandMgr::command_t command;
} built_ins [] = { } built_ins [] = {
{ "null", do_null }, { "null", do_null },
#if defined(HAVE_PLIB_PSL)
{ "script", do_script }, { "script", do_script },
#endif // HAVE_PLIB_PSL
{ "exit", do_exit }, { "exit", do_exit },
{ "load", do_load }, { "load", do_load },
{ "save", do_save }, { "save", do_save },

View file

@ -109,7 +109,9 @@
#include <Navaids/navlist.hxx> #include <Navaids/navlist.hxx>
#include <Scenery/scenery.hxx> #include <Scenery/scenery.hxx>
#include <Scenery/tilemgr.hxx> #include <Scenery/tilemgr.hxx>
#if defined(HAVE_PLIB_PSL)
#include <Scripting/scriptmgr.hxx> #include <Scripting/scriptmgr.hxx>
#endif
#include <Sound/fg_fx.hxx> #include <Sound/fg_fx.hxx>
#include <Sound/soundmgr.hxx> #include <Sound/soundmgr.hxx>
#include <Systems/system_mgr.hxx> #include <Systems/system_mgr.hxx>
@ -1478,11 +1480,13 @@ bool fgInitSubsystems() {
globals->add_subsystem("logger", new FGLogger); globals->add_subsystem("logger", new FGLogger);
#if defined(HAVE_PLIB_PSL)
//////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////
// Create and register the script manager. // Create and register the script manager.
//////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////
globals->add_subsystem("scripting", new FGScriptMgr); globals->add_subsystem("scripting", new FGScriptMgr);
#endif // HAVE_PLIB_PSL
//////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////

View file

@ -10,6 +10,12 @@ else
NETWORK_DIRS = Network NETWORK_DIRS = Network
endif endif
if HAVE_PLIB_PSL
SCRIPTING_DIRS = Scripting
else
SCRIPTING_DIRS =
endif
SUBDIRS = \ SUBDIRS = \
Include \ Include \
Aircraft \ Aircraft \
@ -27,7 +33,7 @@ SUBDIRS = \
$(NETWORK_DIRS) \ $(NETWORK_DIRS) \
Objects \ Objects \
Scenery \ Scenery \
Scripting \ $(SCRIPTING_DIRS) \
Sound \ Sound \
Systems \ Systems \
Time \ Time \

View file

@ -137,7 +137,6 @@ FGScriptMgr::update (double delta_time_sec)
bool bool
FGScriptMgr::run (const char * script) const FGScriptMgr::run (const char * script) const
{ {
#if defined(FG_PSL_STRING_COMPILE)
// FIXME: detect and report errors // FIXME: detect and report errors
pslProgram program(extensions); pslProgram program(extensions);
if (program.compile(script, globals->get_fg_root().c_str()) > 0) if (program.compile(script, globals->get_fg_root().c_str()) > 0)
@ -145,10 +144,6 @@ FGScriptMgr::run (const char * script) const
while (program.step() != PSL_PROGRAM_END) while (program.step() != PSL_PROGRAM_END)
; ;
return true; return true;
#else
SG_LOG(SG_INPUT, SG_ALERT, "Input-binding scripts not supported");
return false;
#endif
} }
bool bool