Author: cazfi Date: Fri Jul 8 07:27:28 2016 New Revision: 33200 URL: http://svn.gna.org/viewcvs/freeciv?rev=33200&view=rev Log: Made it possible to link stub AI statically in.
See patch #7388 Modified: trunk/ai/Makefile.am trunk/ai/stub/Makefile.am trunk/configure.ac trunk/server/Makefile.am trunk/server/aiiface.c Modified: trunk/ai/Makefile.am URL: http://svn.gna.org/viewcvs/freeciv/trunk/ai/Makefile.am?rev=33200&r1=33199&r2=33200&view=diff ============================================================================== --- trunk/ai/Makefile.am (original) +++ trunk/ai/Makefile.am Fri Jul 8 07:27:28 2016 @@ -18,6 +18,10 @@ module_dirs += threxpr endif +if AI_MOD_STATIC_STUB +module_dirs += stub +endif + AM_CPPFLAGS = -I$(top_srcdir)/utility -I$(top_srcdir)/common \ -I$(top_srcdir)/common/networking \ -I$(top_srcdir)/dependencies/tinycthread @@ -33,7 +37,9 @@ if !AI_MOD_STATIC_THREXPR module_dirs += threxpr endif +if !AI_MOD_STATIC_STUB module_dirs += stub +endif else # AI module loading supported, but experimental modules not built endif Modified: trunk/ai/stub/Makefile.am URL: http://svn.gna.org/viewcvs/freeciv/trunk/ai/stub/Makefile.am?rev=33200&r1=33199&r2=33200&view=diff ============================================================================== --- trunk/ai/stub/Makefile.am (original) +++ trunk/ai/stub/Makefile.am Fri Jul 8 07:27:28 2016 @@ -1,12 +1,19 @@ ## Process this file with automake to produce Makefile.in +if AI_MOD_STATIC_STUB +noinst_LTLIBRARIES = libstubai.la +else aimodule_LTLIBRARIES = fc_ai_stub.la +endif AM_CPPFLAGS = \ -I$(top_srcdir)/utility \ -I$(top_srcdir)/common \ -I$(top_srcdir)/common/networking +if AI_MOD_STATIC_STUB +libstubai_la_SOURCES = stubai.c +else fc_ai_stub_la_SOURCES = stubai.c - fc_ai_stub_la_LDFLAGS = -module +endif Modified: trunk/configure.ac URL: http://svn.gna.org/viewcvs/freeciv/trunk/configure.ac?rev=33200&r1=33199&r2=33200&view=diff ============================================================================== --- trunk/configure.ac (original) +++ trunk/configure.ac Fri Jul 8 07:27:28 2016 @@ -542,6 +542,7 @@ ai_mod_static_classic=no ai_mod_static_threaded=no ai_mod_static_threxpr=no +ai_mod_static_stub=no for module in $(echo $static_modules | $SED 's/,/ /g') ; do if test "x$module" = "xclassic" ; then @@ -559,6 +560,10 @@ ai_mod_default_needed=yes AC_DEFINE([AI_MOD_STATIC_THREXPR], [1], [experimental threads ai module statically linked]) + elif test "x$module" = "xstub" ; then + ai_mod_static_stub=yes + AC_DEFINE([AI_MOD_STATIC_STUB], [1], + [stub ai module statically linked]) else AC_MSG_ERROR([bad value ${module} for --enable-ai-static]) fi @@ -573,6 +578,8 @@ [test "x$ai_mod_static_threaded" = "xyes"]) AM_CONDITIONAL([AI_MOD_STATIC_THREXPR], [test "x$ai_mod_static_threxpr" = "xyes"]) +AM_CONDITIONAL([AI_MOD_STATIC_STUB], +[test "x$ai_mod_static_stub" = "xyes"]) AC_ARG_WITH([default-ai], AS_HELP_STRING([--with-default-ai], [default ai type [first static]]), @@ -598,6 +605,9 @@ fc_ai_last=$fc_ai_last+1 fi if test "x$ai_mod_static_threxpr" = "xyes" ; then + fc_ai_last=$fc_ai_last+1 +fi +if test "x$ai_mod_static_stub" = "xyes" ; then fc_ai_last=$fc_ai_last+1 fi if test "x$enable_aimodules" = "xyes" ; then Modified: trunk/server/Makefile.am URL: http://svn.gna.org/viewcvs/freeciv/trunk/server/Makefile.am?rev=33200&r1=33199&r2=33200&view=diff ============================================================================== --- trunk/server/Makefile.am (original) +++ trunk/server/Makefile.am Fri Jul 8 07:27:28 2016 @@ -145,6 +145,9 @@ if AI_MOD_STATIC_THREXPR da_libs += $(top_builddir)/ai/threxpr/libthrexprai.la endif +if AI_MOD_STATIC_STUB +da_libs += $(top_builddir)/ai/stub/libstubai.la +endif # These files are not generated to builddir, but to srcdir */ MAINTAINERCLEANFILES = \ Modified: trunk/server/aiiface.c URL: http://svn.gna.org/viewcvs/freeciv/trunk/server/aiiface.c?rev=33200&r1=33199&r2=33200&view=diff ============================================================================== --- trunk/server/aiiface.c (original) +++ trunk/server/aiiface.c Fri Jul 8 07:27:28 2016 @@ -40,6 +40,10 @@ #ifdef AI_MOD_STATIC_THREXPR bool fc_ai_threxpr_setup(struct ai_type *ai); +#endif + +#ifdef AI_MOD_STATIC_STUB +bool fc_ai_stub_setup(struct ai_type *ai); #endif static struct ai_type *default_ai = NULL; @@ -129,7 +133,7 @@ void ai_init(void) { bool failure = FALSE; -#if !defined(AI_MODULES) || defined(AI_MOD_STATIC_CLASSIC) || defined(AI_MOD_STATIC_THREADED) || defined(AI_MOD_STATIC_THREXPR) +#if !defined(AI_MODULES) || defined(AI_MOD_STATIC_CLASSIC) || defined(AI_MOD_STATIC_THREADED) || defined(AI_MOD_STATIC_THREXPR) || defined(AI_MOD_STATIC_STUB) /* First !defined(AI_MODULES) case is for default ai support. */ struct ai_type *ai; #endif @@ -193,6 +197,17 @@ } #endif /* AI_MOD_STATIC_THREXPR */ +#ifdef AI_MOD_STATIC_STUB + ai = ai_type_alloc(); + if (ai != NULL) { + init_ai(ai); + if (!fc_ai_stub_setup(ai)) { + log_error(_("Failed to setup \"%s\" AI module"), "stub"); + ai_type_dealloc(); + } + } +#endif /* AI_MOD_STATIC_STUB */ + default_ai = ai_type_by_name(AI_MOD_DEFAULT); #ifdef AI_MODULES if (default_ai == NULL) { _______________________________________________ Freeciv-commits mailing list Freeciv-commits@gna.org https://mail.gna.org/listinfo/freeciv-commits