1.6. The macro is HAVE_PLIB_PSL.
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.
-AC_MSG_CHECKING([for plib PSL in-memory script compilation support])
+AC_MSG_CHECKING([for plib PSL scripting support])
AC_COMPILE_IFELSE([
#include <plib/psl.h>
}
],
[AC_MSG_RESULT(yes);
- fg_psl_string_compile=yes],
+ have_plib_psl=yes],
AC_MSG_RESULT(no)
)
-if test "x$fg_psl_string_compile" = "xyes"; then
- AC_DEFINE([FG_PSL_STRING_COMPILE], 1,
- [Support for compiling PSL scripts from an in-memory string.])
-fi
+AM_CONDITIONAL(HAVE_PLIB_PSL, test "x$have_plib_psl" = "xyes")
dnl Check for MetaKit
AC_CHECK_HEADER(mk4.h)
echo "Prefix: $prefix"
-if test "x$fg_psl_string_compile" = "xyes"; then
- echo "Scripts for input bindings: yes"
+if test "x$have_plib_psl" = "xyes"; then
+ echo "Plib PSL scripting: yes"
else
- echo "Scripts for input bindings: $fg_psl_string_compile"
- echo " PSL scripts attached to input bindings will not"
- echo " work. Download the latest CVS version of plib"
- echo " if you would like to enable them."
+ echo "Plib PSL scripting: $fg_psl_string_compile"
+ echo " You will not be able to run scripts written in PSL"
+ echo " and some advanced GUI and input features may not"
+ echo " work. Download and install the latest CVS version"
+ echo " of plib if you would like to enable PSL support."
fi
if test "x$with_logging" != "x"; then
THREAD_LIBS =
endif
+if HAVE_PLIB_PSL
+PSL_LIBS = -lplibpsl
+else
+PSL_LIBS =
+endif
+
AM_CXXFLAGS = -DPKGLIBDIR=\"$(pkglibdir)\"
EXTRA_DIST = 3dfx.sh runfgfs.in runfgfs.bat.in
-lsgmath -lsgbucket -lsgdebug -lsgmagvar -lsgmisc -lsgxml \
-lsgserial \
$(THREAD_LIBS) \
- -lplibpu -lplibfnt -lplibjs -lplibnet -lplibssg -lplibsg -lplibul -lplibpsl \
+ -lplibpu -lplibfnt -lplibjs -lplibnet -lplibssg -lplibsg -lplibul \
+ $(PSL_LIBS) \
-lmk4 -lz \
$(opengl_LIBS) \
$(audio_LIBS)
#include <GUI/gui.h>
#include <GUI/new_gui.hxx>
#include <Scenery/tilemgr.hxx>
+#if defined(HAVE_PLIB_PSL)
#include <Scripting/scriptmgr.hxx>
+#endif
#include <Time/tmp.hxx>
#include "fg_init.hxx"
return true;
}
+#if defined(HAVE_PLIB_PSL)
/**
* Built-in command: run a PSL script.
*/
return mgr->run(arg->getStringValue("script"));
}
+#endif // HAVE_PLIB_PSL
/**
SGCommandMgr::command_t command;
} built_ins [] = {
{ "null", do_null },
+#if defined(HAVE_PLIB_PSL)
{ "script", do_script },
+#endif // HAVE_PLIB_PSL
{ "exit", do_exit },
{ "load", do_load },
{ "save", do_save },
#include <Navaids/navlist.hxx>
#include <Scenery/scenery.hxx>
#include <Scenery/tilemgr.hxx>
+#if defined(HAVE_PLIB_PSL)
#include <Scripting/scriptmgr.hxx>
+#endif
#include <Sound/fg_fx.hxx>
#include <Sound/soundmgr.hxx>
#include <Systems/system_mgr.hxx>
globals->add_subsystem("logger", new FGLogger);
+#if defined(HAVE_PLIB_PSL)
////////////////////////////////////////////////////////////////////
// Create and register the script manager.
////////////////////////////////////////////////////////////////////
globals->add_subsystem("scripting", new FGScriptMgr);
+#endif // HAVE_PLIB_PSL
////////////////////////////////////////////////////////////////////
NETWORK_DIRS = Network
endif
+if HAVE_PLIB_PSL
+SCRIPTING_DIRS = Scripting
+else
+SCRIPTING_DIRS =
+endif
+
SUBDIRS = \
Include \
Aircraft \
$(NETWORK_DIRS) \
Objects \
Scenery \
- Scripting \
+ $(SCRIPTING_DIRS) \
Sound \
Systems \
Time \
bool
FGScriptMgr::run (const char * script) const
{
-#if defined(FG_PSL_STRING_COMPILE)
// FIXME: detect and report errors
pslProgram program(extensions);
if (program.compile(script, globals->get_fg_root().c_str()) > 0)
while (program.step() != PSL_PROGRAM_END)
;
return true;
-#else
- SG_LOG(SG_INPUT, SG_ALERT, "Input-binding scripts not supported");
- return false;
-#endif
}
bool