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:
parent
221f54f8f0
commit
04f1dc4837
6 changed files with 36 additions and 20 deletions
24
configure.ac
24
configure.ac
|
@ -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
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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 },
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
|
|
|
@ -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 \
|
||||||
|
|
|
@ -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
|
||||||
|
|
Loading…
Add table
Reference in a new issue