diff --git a/configure.ac b/configure.ac index 5d47414..790b4b9 100644 --- a/configure.ac +++ b/configure.ac @@ -152,16 +152,12 @@ AC_CONFIG_HEADERS([config.h:config.h.in]) dnl configure plugin directories dnl TODO: make this conditional -AC_CONFIG_FILES([ - plugins/pyloader/config/sgpemv2-uninstalled.pc:config/sgpemv2-uninstalled.pc.in - plugins/xmlsave/config/sgpemv2-uninstalled.pc:config/sgpemv2-uninstalled.pc.in -]) -AC_CONFIG_SUBDIRS([ - plugins/pyloader - plugins/xmlsave -]) +AC_CONFIG_FILES([plugins/pyloader/config/sgpemv2-uninstalled.pc:config/sgpemv2-uninstalled.pc.in]) +AC_CONFIG_FILES([plugins/xmlsave/config/sgpemv2-uninstalled.pc:config/sgpemv2-uninstalled.pc.in]) +AC_CONFIG_SUBDIRS([plugins/pyloader plugins/xmlsave]) +# Now, output this very package Makefiles: AC_CONFIG_FILES([ Makefile po/Makefile.in diff --git a/plugins/pyloader/src/hook.cc b/plugins/pyloader/src/hook.cc index 6426360..30ef3fb 100644 --- a/plugins/pyloader/src/hook.cc +++ b/plugins/pyloader/src/hook.cc @@ -1,4 +1,4 @@ -// src/backend/pyloader/hook.cc - Copyright 2005, 2006, University +// src/hook.cc - Copyright 2005, 2006, University // of Padova, dept. of Pure and Applied // Mathematics // @@ -30,6 +30,8 @@ #include "python_policy_manager.hh" +#include "config.h" + #ifdef __cplusplus extern "C" { #endif diff --git a/plugins/xmlsave/Makefile.am b/plugins/xmlsave/Makefile.am index 6dfaa56..f4bdde4 100644 --- a/plugins/xmlsave/Makefile.am +++ b/plugins/xmlsave/Makefile.am @@ -60,32 +60,32 @@ EXTRA_DIST += \ # ############################################################ # -# source : libpyloader.la +# source : libxmlsave.la # # ############################################################ plugin_LTLIBRARIES += libxmlsave.la -libpyloader_la_CPPFLAGS = \ +libxmlsave_la_CPPFLAGS = \ -I@top_srcdir@ \ -DSHAREDIR="\"$(sharedir)\"" \ -DLOCALEDIR="\"$(localedir)\"" \ $(LIBXML2_CFLAGS) \ $(GLIBMM_CFLAGS) \ $(SGPEMV2_CFLAGS) -libpyloader_la_CXXFLAGS = \ +libxmlsave_la_CXXFLAGS = \ $(VISIB_HIDDEN) -libpyloader_la_LIBADD = \ +libxmlsave_la_LIBADD = \ $(LIBXML2_LIBS) \ $(GLIBMM_LIBS) \ $(SGPEMV2_LIBS) -libpyloader_la_LDFLAGS = \ +libxmlsave_la_LDFLAGS = \ $(LT_LDFLAGS) \ -version-info 0:0:0 \ -module # Please keep this in sorted order: -libpyloader_la_SOURCES = \ +libxmlsave_la_SOURCES = \ src/hook.cc noinst_HEADERS += @@ -103,25 +103,25 @@ if COND_TESTS #noinst_PROGRAMS = \ # src/testsuite/test-xmlsave -src_testsuite_test_xmlsave_CPPFLAGS = \ - -I@top_srcdir@ \ - -DSHAREDIR="\"$(sharedir)\"" \ - $(LIBXML2_CFLAGS) \ - $(GLIBMM_CFLAGS) \ - $(SGPEMV2_CFLAGS) -src_testsuite_test_xmlsave_DEPENDENCIES = \ - libxmlsave.la -src_testsuite_test_xmlsave_LDFLAGS = \ - $(SGPEMV2_LIBS) \ - $(GLIBMM_LIBS) \ - $(LIBXML2_LIBS) -src_testsuite_test_xmlsave_SOURCES = \ - src/testsuite/test-xml_save.cc +#src_testsuite_test_xml_save_CPPFLAGS = \ +# -I@top_srcdir@ \ +# -DSHAREDIR="\"$(sharedir)\"" \ +# $(LIBXML2_CFLAGS) \ +# $(GLIBMM_CFLAGS) \ +# $(SGPEMV2_CFLAGS) +#src_testsuite_test_xml_save_DEPENDENCIES = \ +# libxmlsave.la +#src_testsuite_test_xml_save_LDFLAGS = \ +# $(SGPEMV2_LIBS) \ +# $(GLIBMM_LIBS) \ +# $(LIBXML2_LIBS) +#src_testsuite_test_xml_save_SOURCES = \ +# src/testsuite/test-xml_save.cc # Workaround an automake bug that leaves behind some files # while it's finishing the distcheck target -CLEANFILES += \ - src/testsuite/.libs/test-xml_save +#CLEANFILES += \ +# src/testsuite/.libs/test-xml_save endif #~ if COND_TESTS diff --git a/plugins/xmlsave/src/hook.cc b/plugins/xmlsave/src/hook.cc new file mode 100644 index 0000000..d3fd835 --- /dev/null +++ b/plugins/xmlsave/src/hook.cc @@ -0,0 +1,50 @@ +// src/hook.cc - Copyright 2005, 2006, University +// of Padova, dept. of Pure and Applied +// Mathematics +// +// This file is part of SGPEMv2. +// +// This is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 2 of the License, or +// (at your option) any later version. +// +// SGPEMv2 is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with SGPEMv2; if not, write to the Free Software +// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +// The idea of this file is to provide a static function to execute +// when the plugin (this library) is loaded. Thus the name "hook". + +// For the moment, instead of a function hook to be called by the +// libbackend.so module, we have a static PythonPolicyManager object. +// This is a risk. +#warning FIXME : this code is quite a bad idea. Replace me with \ + a hookable structure, and execute a pointer to function stored \ + therein. See "info libtool": "dlopened modules" + +#ifdef __cplusplus +extern "C" { +#endif + +#include "config.h" + +#define SG_CONSTRUCTOR __attribute__ ((constructor)) +#define SG_DESTRUCTOR __attribute__ ((destructor)) + +void SG_DLLEXPORT SG_CONSTRUCTOR hook_ctor(void) +{ +} + +void SG_DLLEXPORT SG_DESTRUCTOR hook_dtor(void) +{ +} + +#ifdef __cplusplus +} +#endif