- Merged branch 0.3-r556--SPLIT_PYLOADER_CONFIG back into trunk

git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@561 3ecf2c5c-341e-0410-92b4-d18e462d057c
This commit is contained in:
tchernobog 2006-04-06 19:01:13 +00:00
parent c6d4f5fd27
commit 51f0d7fbe7
36 changed files with 849 additions and 48 deletions

View File

@ -459,7 +459,7 @@ WARN_LOGFILE =
# directories like "/usr/src/myproject". Separate the files or directories # directories like "/usr/src/myproject". Separate the files or directories
# with spaces. # with spaces.
INPUT = @abs_top_srcdir@/src INPUT = @abs_top_srcdir@/src @abs_top_srcdir@/plugins
# If the value of the INPUT tag contains directories, you can use the # If the value of the INPUT tag contains directories, you can use the
# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp # FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
@ -480,7 +480,7 @@ RECURSIVE = YES
# excluded from the INPUT source files. This way you can easily exclude a # excluded from the INPUT source files. This way you can easily exclude a
# subdirectory from a directory tree whose root is specified with the INPUT tag. # subdirectory from a directory tree whose root is specified with the INPUT tag.
EXCLUDE = @abs_top_srcdir@/src/testsuite EXCLUDE =
# The EXCLUDE_SYMLINKS tag can be used select whether or not files or # The EXCLUDE_SYMLINKS tag can be used select whether or not files or
# directories that are symbolic links (a Unix filesystem feature) are excluded # directories that are symbolic links (a Unix filesystem feature) are excluded
@ -494,7 +494,7 @@ EXCLUDE_SYMLINKS = NO
# against the file with absolute path, so to exclude all test directories # against the file with absolute path, so to exclude all test directories
# for example use the pattern */test/* # for example use the pattern */test/*
EXCLUDE_PATTERNS = EXCLUDE_PATTERNS = */testsuite/*
# The EXAMPLE_PATH tag can be used to specify one or more files or # The EXAMPLE_PATH tag can be used to specify one or more files or
# directories that contain example code fragments that are included (see # directories that contain example code fragments that are included (see

View File

@ -0,0 +1,17 @@
# pkg-config configuration file for sgpemv2 - UNINSTALLED version
prefix=@prefix@
exec_prefix=${prefix}
libdir=@abs_top_builddir@
includedir=@abs_top_srcdir@/src
policies_dir=@datadir@/@PACKAGE@/policies
plugins_dir=@datadir@/@PACKAGE@/plugins
Name: SGPEMv2
Description: An educational simulator for process scheduling and management
Version: @PACKAGE_VERSION@
URL: http://www.math.unipd.it/
Requires: glibmm-2.4 >= 2.8 gthread-2.0 >= 2.8
Libs: -L${libdir}/src/backend -lbackend
Libs.private: -lglibmm-2.4 -lgthread-2.0
Cflags: -I${includedir}/backend

17
config/sgpemv2.pc.in Normal file
View File

@ -0,0 +1,17 @@
# pkg-config configuration file for sgpemv2
prefix=@prefix@
exec_prefix=${prefix}
libdir=@libdir@/@PACKAGE@
includedir=${prefix}/include
policies_dir=@datadir@/@PACKAGE@/policies
plugins_dir=@datadir@/@PACKAGE@/plugins
Name: SGPEMv2
Description: An educational simulator for process scheduling and management
Version: @PACKAGE_VERSION@
URL: http://www.math.unipd.it/
Requires: glibmm-2.4 >= 2.8 gthread-2.0 >= 2.8
Libs: -L${libdir} -lbackend
Libs.private: -lglibmm-2.4 -lgthread-2.0
Cflags: -I${includedir}/sgpemv2

81
m4/sgpemv2-dirs.m4 Normal file
View File

@ -0,0 +1,81 @@
dnl m4/sgpemv2-dirs.m4 - Copyright 2005, 2006, University
dnl of Padova, dept. of Pure and Applied
dnl Mathematics
dnl
dnl This file is part of SGPEMv2.
dnl
dnl This is free software; you can redistribute it and/or modify
dnl it under the terms of the GNU General Public License as published by
dnl the Free Software Foundation; either version 2 of the License, or
dnl (at your option) any later version.
dnl
dnl SGPEMv2 is distributed in the hope that it will be useful,
dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
dnl GNU General Public License for more details.
dnl
dnl You should have received a copy of the GNU General Public License
dnl along with SGPEMv2; if not, write to the Free Software
dnl Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
dnl ---------- AC_PROG_SGPEMV2 ---------------------
dnl
dnl Synopsis: AC_PROG_SGPEMV2([min_version])
dnl
dnl This macro checks if sgpemv2 is installed, and
dnl AC_SUBSTs the following variables:
dnl
dnl SGPEMV2_CFLAGS -> necessary includes for compiling
dnl plugins
dnl SGPEMV2_LIBS -> libraries to link against when
dnl building a loadable plugin
dnl SGPEMV2_POLICIES_DIR -> global policies directory
dnl SGPEMV2_PLUGINS_DIR -> global plugins directory
dnl
dnl This is particularly useful for plugin installation.
dnl It takes a parameter which is the minimal version
dnl installed of sgpemv2 this macro checks for.
dnl The parameter is mandatory.
dnl
dnl Example of usage: AC_PROG_SGPEMV2([0.1])
dnl ------------------------------------------------
AC_DEFUN([AC_PROG_SGPEMV2],
[
PKG_PROG_PKG_CONFIG([0.20])
if test "x$1" = "x"; then
AC_MSG_FAILURE([Wrong number of parameters passed to macro AC@&t@_PROG_SGPEMV2. Please contact this package mantainer.])
fi
_pkg_sgpemv2_module="sgpemv2 >= $1"
PKG_CHECK_MODULES([SGPEMV2], [$_pkg_sgpemv2_module],
:, AC_MSG_ERROR([$SGPEMV2_PKG_ERRORS]))
AC_MSG_CHECKING([for sgpemv2 compiler flags])
AC_MSG_RESULT([$SGPEMV2_CFLAGS])
AC_MSG_CHECKING([for sgpemv2 linking flags])
AC_MSG_RESULT([$SGPEMV2_LIBS])
AC_MSG_CHECKING([for sgpemv2 policies default installation directory])
SGPEMV2_POLICIES_DIR=`$PKG_CONFIG --variable=policies_dir "$_pkg_sgpemv2_module" 2>/dev/null`
if test "x$SGPEMV2_POLICIES_DIR" = "x"; then
AC_MSG_ERROR([Unable to retrieve value])
else
AC_MSG_RESULT([$SGPEMV2_POLICIES_DIR])
fi
AC_MSG_CHECKING([for sgpemv2 plugins default installation directory])
SGPEMV2_PLUGINS_DIR=`$PKG_CONFIG --variable=plugins_dir "$_pkg_sgpemv2_module" 2>/dev/null`
if test "x$SGPEMV2_PLUGINS_DIR" = "x"; then
AC_MSG_ERROR([Unable to retrieve value])
else
AC_MSG_RESULT([$SGPEMV2_PLUGINS_DIR])
fi
AC_SUBST([SGPEMV2_POLICIES_DIR])
AC_SUBST([SGPEMV2_PLUGINS_DIR])
])dnl ------- AC_PROG_SGPEMV2 ----------------------

10
plugins/pyloader/AUTHORS Normal file
View File

@ -0,0 +1,10 @@
Authors of SGPEMv2
Giovanni Giacobbi <ggiacobb@studenti.math.unipd.it>
Filippo Paparella <ironpipp@gmail.com>
Paolo Santi <psanti@studenti.math.unipd.it>
Matteo Settenvini <matteo@member.fsf.org>
Marco Trevisan <mtrevisa@studenti.math.unipd.it>
Djina Verbanac <betalgez@yahoo.com>
Luca Vezzaro <lvezzaro@studenti.math.unipd.it>

View File

@ -0,0 +1,196 @@
# Makefile.am - 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
# extra calls
.PHONY : apidox
# this should be the only recursive call
SUBDIRS = po
# directories definition
localedir = @datadir@/locale
plugindir = $(SGPEMV2_PLUGINS_DIR)
sharedir = $(plugindir)/extras/pyloader
policiesdir = $(SGPEMV2_POLICIES_DIR)
#define empty global variables
plugin_LTLIBRARIES =
noinst_HEADERS =
noinst_PYTHON =
EXTRA_DIST =
MAINTAINERCLEANFILES =
MOSTLYCLEANFILES =
CLEANFILES =
# ############################################################
#
# extra dist, cleanup and automake/aclocal flags
#
# ############################################################
ACLOCAL_AMFLAGS = -I m4
macros = m4/compilerflags.m4 \
m4/linkingflags.m4 \
m4/sgpemv2-dirs.m4
EXTRA_DIST += \
config/config.rpath \
config/mkinstalldirs \
configure.ac \
gettext.h \
$(macros)
# ############################################################
#
# source : libpyloader.la
#
# ############################################################
plugin_LTLIBRARIES += libpyloader.la
libpyloader_la_CPPFLAGS = \
-I@top_srcdir@ \
-DSHAREDIR="\"$(sharedir)\"" \
-DLOCALEDIR="\"$(localedir)\"" \
$(PYTHON_CPPFLAGS) \
$(GLIBMM_CFLAGS) \
$(SGPEMV2_CFLAGS)
libpyloader_la_CXXFLAGS = \
$(VISIB_HIDDEN)
libpyloader_la_LIBADD = \
$(PYTHON_LDFLAGS) \
$(PYTHON_EXTRA_LIBS) \
$(GLIBMM_LIBS) \
$(SGPEMV2_LIBS)
libpyloader_la_LDFLAGS = \
$(PYTHON_EXTRA_LDFLAGS) \
$(LT_LDFLAGS) \
-version-info 0:0:0 \
-module
# Please keep this in sorted order:
libpyloader_la_SOURCES = \
python_policy.cc \
python_policy_manager.cc \
hook.cc
noinst_HEADERS += \
python_policy.hh \
python_policy_manager.hh
share_PYTHON = \
Abstract.py \
Policy.py \
ScriptAdapter.py
# ############################################################
#
# C++ modules -> Python loadable modules
#
# ############################################################
proxies = sgpem.py
wrappers = sgpem_wrap.cc
share_LTLIBRARIES = _sgpem.la
share_PYTHON += $(proxies)
# static pattern rule
$(proxies) $(wrappers) : sgpem.i
test -d "$(@D)" || mkdir -p -- "$(@D)"
$(SWIG) $(SWIG_PYTHON_OPT) -o $@ $<
_sgpem_la_INTERFACES = sgpem.i
_sgpem_la_CPPFLAGS = \
-I@top_srcdir@ \
$(SWIG_PYTHON_CPPFLAGS) \
$(GLIBMM_CFLAGS) \
$(SGPEMV2_CFLAGS)
_sgpem_la_LDFLAGS = -module -export-dynamic \
$(GLIBMM_LDFLAGS)
_sgpem_la_LIBADD = $(SGPEMV2_LIBS) \
$(GLIBMM_LIBS)
_sgpem_la_SOURCES = $(wrappers)
EXTRA_DIST += $(_sgpem_la_INTERFACES)
MOSTLYCLEANFILES += $(proxies) $(wrappers)
# ############################################################
#
# source : builtin-policies
#
# ############################################################
# built-in policies
policies_PYTHON = \
builtin-policies/fcfs.py \
builtin-policies/sjf.py
# ############################################################
#
# check : testsuite
#
# ############################################################
if COND_TESTS
# DEJATOOL = src/testsuite/example-test.exp
noinst_PROGRAMS = \
testsuite/test-pyloader
testsuite_test_pyloader_CPPFLAGS = \
-I@top_srcdir@ \
-DSHAREDIR="\"$(sharedir)\"" \
$(PYTHON_CPPFLAGS) \
$(GLIBMM_CFLAGS) \
$(GTHREAD_CFLAGS) \
$(SGPEMV2_CFLAGS)
testsuite_test_pyloader_DEPENDENCIES = \
libpyloader.la
testsuite_test_pyloader_LDFLAGS = \
$(SGPEMV2_LIBS) \
$(GLIBMM_LIBS) \
$(GTHREAD_LIBS) \
$(PYTHON_LDFLAGS) \
$(PYTHON_EXTRA_LIBS) \
$(PYTHON_EXTRA_LDFLAGS)
testsuite_test_pyloader_SOURCES = \
testsuite/test-python_loader.cc \
python_policy.cc \
python_policy_manager.cc
noinst_PYTHON += testsuite/python_loader_configure.py \
testsuite/python_loader_sort_queue.py \
testsuite/python_loader_is_preemptive.py \
testsuite/python_loader_get_time_slice.py
# Workaround an automake bug that leaves behind some files
# while it's finishing the distcheck target
CLEANFILES += \
testsuite/.libs/test-pyloader
endif #~ if COND_TESTS

0
plugins/pyloader/NEWS Normal file
View File

0
plugins/pyloader/README Normal file
View File

View File

@ -0,0 +1,160 @@
# configure.ac - Copyright 2005, 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
dnl ----------------- CONFIGURE ---------------------
AC_INIT([sgpemv2-pyloader],[0.1],[matteo@member.fsf.org])
if test -f "`pwd`/configure.ac"; then
AC_MSG_FAILURE([
** This seems to be the pkg root directory.
** Compiling here your sources is considered
** as unpolite as exploring your nose with
** your pinky whilst attending a wedding party.
** Please create a new dir as described in
** the README file, and then run configure
** into it. If you think you've got it right,
** please inform the mantainer of this error!
** He'll thoroughfully bash his head on the wall.],
-1 )
fi
AC_GNU_SOURCE
AC_CONFIG_AUX_DIR(config)
AC_CANONICAL_TARGET
dnl starting automake
AM_INIT_AUTOMAKE([dejagnu dist-bzip2])
dnl gettext & libtool
AC_ARG_VAR([LT_LDFLAGS],
[You can use this variable to pass an option
to libtool when it is in linking mode (for
example, "-all-static")])
AC_PROG_LIBTOOL
AM_GNU_GETTEXT([external])
AM_GNU_GETTEXT_VERSION([0.14.1])
dnl PYTHON_VERSION is declared precious by AC_PYTHON_DEVEL,
dnl so don't use it here
PY_VERSION=2.3
GTKMM_VERSION=2.8.0
SGPEMV2_VERSION=0.1
dnl c++ compiler and flags
AC_PROG_CXX
AC_CHECK_CXXFLAG([CXXFLAGS], [Wall])
AC_CHECK_CXXFLAG([CXXFLAGS], [pedantic])
AC_CHECK_CXXFLAG([CXXFLAGS], [Wextra])
AC_CHECK_CXXFLAG([CXXFLAGS], [Wno-long-long])
AC_CHECK_LDFLAG([LDFLAGS], [--as-needed])
AC_PROG_INSTALL
dnl make
AC_PROG_MAKE_SET
dnl check for python and SWIG
AC_PYTHON_DEVEL([>= '$PY_VERSION'])
AC_PROG_SWIG
SWIG_ENABLE_CXX
SWIG_PYTHON
dnl add pkg-config search path for sgpemv2-uninstalled.pc
dnl if we're building in a subdir of that pkg
_old_pkg_path=$[]PKG@&t@_CONFIG_PATH
if test -f "../../config/sgpemv2-uninstalled.pc"; then
export PKG_@&t@CONFIG_PATH="../../config:$PKG_CONFIG_PATH"
fi
dnl check for sgpemv2!
AC_PROG_SGPEMV2([$SGPEMV2_VERSION])
dnl revert from old var
if test "x$_old_pkg_path" = "x"; then
unset -v PKG@&t@_CONFIG_PATH
else
export PKG@&t@_CONFIG_PATH="$_old_pkg_path"
fi
dnl check for glib & cairo
PKG_CHECK_MODULES([GTHREAD],
[gthread-2.0 >= $GTKMM_VERSION],
:, AC_MSG_ERROR([$GTHREAD_PKG_ERRORS]))
PKG_CHECK_MODULES([GLIBMM],
[glibmm-2.4 >= $GTKMM_VERSION],
:, AC_MSG_ERROR([$GLIBMM_PKG_ERRORS]))
dnl use DSO visibility tags for systems that supports it correctly
dnl (for example, GCC 4.0 and above)
dnl see http://gcc.gnu.org/wiki/Visibility for more informations
AH_TEMPLATE([SG_DLLEXPORT],[Attribute for objects to be exported from DSOs])
AH_TEMPLATE([SG_DLLIMPORT],[Attribute for objects to be imported from DSOs])
AH_TEMPLATE([SG_DLLLOCAL], [Attribute for objects local to current DSO])
AH_TEMPLATE([SG_DLLPUBLIC],[Attribute for DSO public objects])
dnl for now it works only with GCC >= 4.0.0
AC_MSG_CHECKING([whether GCC supports DSO visibility attributes])
AC_LANG_PUSH([C++])
AC_COMPILE_IFELSE(
AC_LANG_PROGRAM([], [
#if defined __GNUC__ && (__GNUC__) >= 4
return 0;
#else
bails out with a compilation error.
#endif
]),[
AC_MSG_RESULT([yes])
AC_DEFINE([SG_DLLIMPORT],[/* intentionally left with no value */])
AC_DEFINE([SG_DLLEXPORT],[__attribute__ ((visibility("default")))])
AC_DEFINE([SG_DLLLOCAL],[__attribute__ ((visibility("hidden")))])
AC_DEFINE([SG_DLLPUBLIC],[__attribute__ ((visibility("default")))])
AC_CHECK_CXXFLAG([VISIB_HIDDEN], [fvisibility=hidden])
AC_SUBST([VISIB_HIDDEN])
AC_CHECK_CXXFLAG([CXXFLAGS],[fvisibility-inlines-hidden])
],[
AC_MSG_RESULT([no])
AC_DEFINE([SG_DLLIMPORT],[/* unsupported */])
AC_DEFINE([SG_DLLEXPORT],[/* unsupported */])
AC_DEFINE([SG_DLLLOCAL],[/* unsupported */])
AC_DEFINE([SG_DLLPUBLIC],[/* unsupported */])
])
AC_LANG_POP
dnl see if we've to compile tests
AC_MSG_CHECKING([whether tests have to be built])
AC_ARG_ENABLE([tests],
AS_HELP_STRING([--disable-tests],
[don't compile the tests provided with sgpemv2]),
[compile_tests="$enableval"],
[compile_tests="yes"])
AC_MSG_RESULT([$compile_tests])
AM_CONDITIONAL([COND_TESTS], [test "$compile_tests" = "yes"])
dnl output files
AC_CONFIG_HEADERS([config.h:config.h.in])
AC_CONFIG_FILES([
Makefile
po/Makefile.in
])
AC_OUTPUT

View File

@ -0,0 +1,83 @@
/* Convenience header for conditional use of GNU <libintl.h>.
Copyright (C) 1995-1998, 2000-2002, 2004 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU Library General Public License as published
by the Free Software Foundation; either version 2, or (at your option)
any later version.
This program 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
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
USA. */
#ifndef _LIBGETTEXT_H
#define _LIBGETTEXT_H 1
/* NLS can be disabled through the configure --disable-nls option. */
#if ENABLE_NLS
/* Get declarations of GNU message catalog functions. */
# include <libintl.h>
#else
/* Solaris /usr/include/locale.h includes /usr/include/libintl.h, which
chokes if dcgettext is defined as a macro. So include it now, to make
later inclusions of <locale.h> a NOP. We don't include <libintl.h>
as well because people using "gettext.h" will not include <libintl.h>,
and also including <libintl.h> would fail on SunOS 4, whereas <locale.h>
is OK. */
#if defined(__sun)
# include <locale.h>
#endif
/* Many header files from the libstdc++ coming with g++ 3.3 or newer include
<libintl.h>, which chokes if dcgettext is defined as a macro. So include
it now, to make later inclusions of <libintl.h> a NOP. */
#if defined(__cplusplus) && defined(__GNUG__) && (__GNUC__ >= 3)
# include <cstdlib>
# if (__GLIBC__ >= 2) || _GLIBCXX_HAVE_LIBINTL_H
# include <libintl.h>
# endif
#endif
/* Disabled NLS.
The casts to 'const char *' serve the purpose of producing warnings
for invalid uses of the value returned from these functions.
On pre-ANSI systems without 'const', the config.h file is supposed to
contain "#define const". */
# define gettext(Msgid) ((const char *) (Msgid))
# define dgettext(Domainname, Msgid) ((const char *) (Msgid))
# define dcgettext(Domainname, Msgid, Category) ((const char *) (Msgid))
# define ngettext(Msgid1, Msgid2, N) \
((N) == 1 ? (const char *) (Msgid1) : (const char *) (Msgid2))
# define dngettext(Domainname, Msgid1, Msgid2, N) \
((N) == 1 ? (const char *) (Msgid1) : (const char *) (Msgid2))
# define dcngettext(Domainname, Msgid1, Msgid2, N, Category) \
((N) == 1 ? (const char *) (Msgid1) : (const char *) (Msgid2))
# define textdomain(Domainname) ((const char *) (Domainname))
# define bindtextdomain(Domainname, Dirname) ((const char *) (Dirname))
# define bind_textdomain_codeset(Domainname, Codeset) ((const char *) (Codeset))
#endif
/* A pseudo function call that serves as a marker for the automated
extraction of messages, but does not call gettext(). The run-time
translation is done at a different place in the code.
The argument, String, should be a literal string. Concatenated strings
and other string expressions won't work.
The macro's expansion is not parenthesized, so that it is suitable as
initializer for static 'char[]' or 'const char[]' variables. */
#define gettext_noop(String) String
/* Commodity macros -- added by Matteo Settenvini 2006-01-13 */
#define _(x) (gettext(x))
#define N_(x) (gettext_noop(x))
#endif /* _LIBGETTEXT_H */

View File

@ -0,0 +1,60 @@
dnl **************************************************
dnl Copyright (C) 2004 Matteo Settenvini
dnl **************************************************
dnl ---------- AC_CHECK_CXXFLAG ---------------------
dnl This macro checks if a particular flag for the
dnl C++ compiler works. If it is so, it puts the flag
dnl into the first macro parameter.
dnl Example of usage : AC_CHECK_CXXFLAG([CXXFLAGS],[Wall])
dnl -------------------------------------------------
AC_DEFUN([AC_CHECK_CXXFLAG],
[ if test -z "$1" -o -z "$2"; then
AC_MSG_FAILURE([Wrong parameters passed to the m4 macro.
Please contact the package mantainer.])
fi
AC_REQUIRE([AC_PROG_CXX])dnl
AC_MSG_CHECKING([whether $CXX supports the -$2 flag])
ac_check_cxxflags=$CXXFLAGS
CXXFLAGS="-$2"
AC_LANG_PUSH([C++])
AC_COMPILE_IFELSE(
AC_LANG_PROGRAM([], [return 0;]),
[AC_MSG_RESULT([yes])
CXXFLAGS="$ac_check_cxxflags"
$1="-$2 $[$1]" ],
[AC_MSG_RESULT([no])
CXXFLAGS=$ac_check_cxxflags ]
)
AC_LANG_POP
])dnl ------- AC_CHECK_CXXFLAG ----------------------
dnl ---------- AC_CHECK_CFLAG ---------------------
dnl This macro checks if a particular flag for the
dnl C compiler works. If it is so, it adds the flag
dnl into the first macro parameter.
dnl Example of usage : AC_CHECK_CFLAG([CFLAGS],[Wall])
dnl -------------------------------------------------
AC_DEFUN([AC_CHECK_CFLAG],
[ if test -z "$1" -o -z "$2"; then
AC_MSG_FAILURE([Wrong parameters passed to the m4 macro.
Please contact the package mantainer.])
fi
AC_REQUIRE([AC_PROG_CC])dnl
AC_MSG_CHECKING([whether $CC supports the -$2 flag])
ac_check_cflags=$CFLAGS
CFLAGS="-$2"
AC_LANG_PUSH([C])
AC_COMPILE_IFELSE(
AC_LANG_PROGRAM([], [return 0;]),
[AC_MSG_RESULT([yes])
CFLAGS="$ac_check_cflags"
$1="-$2 $[$1]" ],
[AC_MSG_RESULT([no])
CFLAGS=$ac_check_cflags ]
)
AC_LANG_POP
])dnl ------- AC_CHECK_CFLAG ----------------------

View File

@ -0,0 +1,31 @@
dnl **************************************************
dnl Copyright (C) 2004 Matteo Settenvini
dnl **************************************************
dnl ---------- AX_CHECK_LDFLAG ---------------------
dnl This macro checks if a particular flag for the
dnl C++ compiler works. If it is so, it adds the flag
dnl to the end of the first parameter.
dnl Example of usage : AC_CHECK_LDFLAG([LDFLAGS],[--as-needed])
dnl -------------------------------------------------
AC_DEFUN([AC_CHECK_LDFLAG],
[ if test -z "$1" -o -z "$2"; then
AC_MSG_FAILURE([Wrong parameters passed to the m4 macro.
Please contact the package mantainer.])
fi
AC_REQUIRE([AC_PROG_CC])dnl
AC_MSG_CHECKING([whether the linker supports the $2 flag])
ac_check_ldflags=$LDFLAGS
LDFLAGS="-Wl,$2"
AC_LANG_PUSH([C])
AC_LINK_IFELSE(
AC_LANG_PROGRAM([], [return 0;]),
[AC_MSG_RESULT([yes])
LDFLAGS=$ac_check_ldflags
$1="-Wl,$2 $[$1]" ],
[AC_MSG_RESULT([no])
LDFLAGS=$ac_check_ldflags ]
)
AC_LANG_POP
])dnl ------- AC_CHECK_LDFLAG ----------------------

View File

@ -0,0 +1,81 @@
dnl m4/sgpemv2-dirs.m4 - Copyright 2005, 2006, University
dnl of Padova, dept. of Pure and Applied
dnl Mathematics
dnl
dnl This file is part of SGPEMv2.
dnl
dnl This is free software; you can redistribute it and/or modify
dnl it under the terms of the GNU General Public License as published by
dnl the Free Software Foundation; either version 2 of the License, or
dnl (at your option) any later version.
dnl
dnl SGPEMv2 is distributed in the hope that it will be useful,
dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
dnl GNU General Public License for more details.
dnl
dnl You should have received a copy of the GNU General Public License
dnl along with SGPEMv2; if not, write to the Free Software
dnl Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
dnl ---------- AC_PROG_SGPEMV2 ---------------------
dnl
dnl Synopsis: AC_PROG_SGPEMV2([min_version])
dnl
dnl This macro checks if sgpemv2 is installed, and
dnl AC_SUBSTs the following variables:
dnl
dnl SGPEMV2_CFLAGS -> necessary includes for compiling
dnl plugins
dnl SGPEMV2_LIBS -> libraries to link against when
dnl building a loadable plugin
dnl SGPEMV2_POLICIES_DIR -> global policies directory
dnl SGPEMV2_PLUGINS_DIR -> global plugins directory
dnl
dnl This is particularly useful for plugin installation.
dnl It takes a parameter which is the minimal version
dnl installed of sgpemv2 this macro checks for.
dnl The parameter is mandatory.
dnl
dnl Example of usage: AC_PROG_SGPEMV2([0.1])
dnl ------------------------------------------------
AC_DEFUN([AC_PROG_SGPEMV2],
[
PKG_PROG_PKG_CONFIG([0.20])
if test "x$1" = "x"; then
AC_MSG_FAILURE([Wrong number of parameters passed to macro AC@&t@_PROG_SGPEMV2. Please contact this package mantainer.])
fi
_pkg_sgpemv2_module="sgpemv2 >= $1"
PKG_CHECK_MODULES([SGPEMV2], [$_pkg_sgpemv2_module],
:, AC_MSG_ERROR([$SGPEMV2_PKG_ERRORS]))
AC_MSG_CHECKING([for sgpemv2 compiler flags])
AC_MSG_RESULT([$SGPEMV2_CFLAGS])
AC_MSG_CHECKING([for sgpemv2 linking flags])
AC_MSG_RESULT([$SGPEMV2_LIBS])
AC_MSG_CHECKING([for sgpemv2 policies default installation directory])
SGPEMV2_POLICIES_DIR=`$PKG_CONFIG --variable=policies_dir "$_pkg_sgpemv2_module" 2>/dev/null`
if test "x$SGPEMV2_POLICIES_DIR" = "x"; then
AC_MSG_ERROR([Unable to retrieve value])
else
AC_MSG_RESULT([$SGPEMV2_POLICIES_DIR])
fi
AC_MSG_CHECKING([for sgpemv2 plugins default installation directory])
SGPEMV2_PLUGINS_DIR=`$PKG_CONFIG --variable=plugins_dir "$_pkg_sgpemv2_module" 2>/dev/null`
if test "x$SGPEMV2_PLUGINS_DIR" = "x"; then
AC_MSG_ERROR([Unable to retrieve value])
else
AC_MSG_RESULT([$SGPEMV2_PLUGINS_DIR])
fi
AC_SUBST([SGPEMV2_POLICIES_DIR])
AC_SUBST([SGPEMV2_PLUGINS_DIR])
])dnl ------- AC_PROG_SGPEMV2 ----------------------

View File

@ -0,0 +1,41 @@
# Makefile variables for PO directory in any package using GNU gettext.
# Usually the message domain is the same as the package name.
DOMAIN = $(PACKAGE)
# These two variables depend on the location of this directory.
subdir = po
top_builddir = ..
# These options get passed to xgettext.
XGETTEXT_OPTIONS = --keyword=_ --keyword=N_
# This is the copyright holder that gets inserted into the header of the
# $(DOMAIN).pot file. Set this to the copyright holder of the surrounding
# package. (Note that the msgstr strings, extracted from the package's
# sources, belong to the copyright holder of the package.) Translators are
# expected to transfer the copyright for their translations to this person
# or entity, or to disclaim their copyright. The empty string stands for
# the public domain; in this case the translators are expected to disclaim
# their copyright.
COPYRIGHT_HOLDER = Free Software Foundation, Inc.
# This is the email address or URL to which the translators shall report
# bugs in the untranslated strings:
# - Strings which are not entire sentences, see the maintainer guidelines
# in the GNU gettext documentation, section 'Preparing Strings'.
# - Strings which use unclear terms or require additional context to be
# understood.
# - Strings which make invalid assumptions about notation of date, time or
# money.
# - Pluralisation problems.
# - Incorrect English spelling.
# - Incorrect formatting.
# It can be your email address, or a mailing list address where translators
# can write to without being subscribed, or the URL of a web page through
# which the translators can contact you.
MSGID_BUGS_ADDRESS = matteo@member.fsf.org
# This is the list of locale categories, beyond LC_MESSAGES, for which the
# message catalogs shall be used. It is usually empty.
EXTRA_LOCALE_CATEGORIES =

View File

View File

@ -28,8 +28,8 @@
#include <iostream> #include <iostream>
#include "../policy.hh" #include "policy.hh"
#include "../user_interrupt_exception.hh" #include "user_interrupt_exception.hh"
namespace sgpem namespace sgpem
{ {

View File

@ -19,7 +19,7 @@
// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#include "python_policy_manager.hh" #include "python_policy_manager.hh"
#include "../global_settings.hh" #include "global_settings.hh"
#include <Python.h> #include <Python.h>
#include <glibmm/ustring.h> #include <glibmm/ustring.h>
@ -101,7 +101,7 @@ PythonPolicyManager::init()
for_each(GlobalSettings::instance().policies_dir_begin(), for_each(GlobalSettings::instance().policies_dir_begin(),
GlobalSettings::instance().policies_dir_end(), GlobalSettings::instance().policies_dir_end(),
pol_dirs_concat(importdirs)); pol_dirs_concat(importdirs));
importdirs += " '" MODDIR "' ]\n"; importdirs += " '" SHAREDIR "' ]\n";
PyRun_SimpleString(importdirs.c_str()); PyRun_SimpleString(importdirs.c_str());

View File

@ -25,7 +25,7 @@
#include <Python.h> #include <Python.h>
#include "../policy_manager.hh" #include "policy_manager.hh"
#include "python_policy.hh" #include "python_policy.hh"
namespace sgpem namespace sgpem

View File

@ -22,13 +22,12 @@
* class and its closely related cousins. More documentation to be written * class and its closely related cousins. More documentation to be written
* here, thanks very much. */ * here, thanks very much. */
#include "backend/pyloader/python_policy_manager.hh" #include "../python_policy_manager.hh"
#include "backend/pyloader/python_policy.hh" #include "../python_policy.hh"
#include "backend/global_settings.hh" #include "global_settings.hh"
#include "backend/schedulable_list.hh" #include "schedulable_list.hh"
#include "backend/scheduler.hh" #include "scheduler.hh"
#include "backend/user_interrupt_exception.hh" #include "user_interrupt_exception.hh"
#include "templates/smartp.hh"
#include <Python.h> #include <Python.h>
#include <glibmm/module.h> #include <glibmm/module.h>

View File

@ -37,10 +37,6 @@
./src/backend/schedulable_status.hh ./src/backend/schedulable_status.hh
./src/backend/process.cc ./src/backend/process.cc
./src/backend/process.hh ./src/backend/process.hh
./src/backend/pyloader/python_policy_manager.cc
./src/backend/pyloader/python_policy_manager.hh
./src/backend/pyloader/python_policy.cc
./src/backend/pyloader/python_policy.hh
./src/backend/schedulable_list.cc ./src/backend/schedulable_list.cc
./src/backend/schedulable_list.hh ./src/backend/schedulable_list.hh
./src/standard_io.cc ./src/standard_io.cc

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: matteo@member.fsf.org\n" "Report-Msgid-Bugs-To: matteo@member.fsf.org\n"
"POT-Creation-Date: 2006-03-05 23:32+0100\n" "POT-Creation-Date: 2006-04-06 18:18+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -16,17 +16,34 @@ msgstr ""
"Content-Type: text/plain; charset=CHARSET\n" "Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
#: src/parse_opts.cc:92 #: src/parse_opts.cc:89
#, c-format
msgid ""
"[EE] Wrong number of parameters. Please see \n"
"%s --help\n"
msgstr ""
#: src/parse_opts.cc:108
#, c-format #, c-format
msgid "" msgid ""
"SGPEMv2 is an educational software acting as a process scheduling simulator\n" "SGPEMv2 is an educational software acting as a process scheduling simulator\n"
"\n" "\n"
"\n" "\n"
"Usage : sgpemv2 [options]\n" "Usage : sgpemv2 [options] filename\n"
"\n" "\n"
"Options:\n" "Options:\n"
"\t-h, --help this help you're reading\n" "\t-h, --help this help you're reading\n"
"\t-n, --no-gui starts the program in command line mode\n" "\t-N, --no-gui starts the program in command line mode\n"
"\t-P dir, --policies-dir=dir\n"
"\t add this directory to the default modules\n"
"\t search path\n"
"\t-M dir, --modules-dir=dir\n"
"\t add this directory to default plugin\n"
"\t search path\n"
"\n"
"Filename:\n"
"\t a valid SGPEMv2 XML file\n"
"\t to be opened.\n"
"\n" "\n"
"Long options are available only on GNU systems.\n" "Long options are available only on GNU systems.\n"
"\n" "\n"
@ -36,11 +53,11 @@ msgstr ""
msgid "Exit" msgid "Exit"
msgstr "" msgstr ""
#: src/graphical_terminal_io.cc:47 #: src/graphical_terminal_io.cc:46
msgid "Textual Simulation Log" msgid "Textual Simulation Log"
msgstr "" msgstr ""
#: src/graphical_terminal_io.cc:70 #: src/graphical_terminal_io.cc:69
msgid "Send Command" msgid "Send Command"
msgstr "" msgstr ""
@ -70,11 +87,23 @@ msgstr ""
#: src/text_simulation.cc:120 #: src/text_simulation.cc:120
msgid "" msgid ""
"\n" "\n"
"ERROR: "
msgstr ""
#: src/text_simulation.cc:122
msgid ""
"\n"
"Simulation is now stopped"
msgstr ""
#: src/text_simulation.cc:131
msgid ""
"\n"
"-- PAUSE COMMAND --\n" "-- PAUSE COMMAND --\n"
"Pauses the simulation. The next call to RUN will restart it." "Pauses the simulation. The next call to RUN will restart it."
msgstr "" msgstr ""
#: src/text_simulation.cc:130 #: src/text_simulation.cc:141
msgid "" msgid ""
"\n" "\n"
"-- STOP COMMAND --\n" "-- STOP COMMAND --\n"
@ -82,21 +111,21 @@ msgid ""
"FIRST instant and start it." "FIRST instant and start it."
msgstr "" msgstr ""
#: src/text_simulation.cc:141 #: src/text_simulation.cc:152
msgid "" msgid ""
"\n" "\n"
"-- RESET COMMAND --\n" "-- RESET COMMAND --\n"
"Resets the simulation jumping back to the first instant." "Resets the simulation jumping back to the first instant."
msgstr "" msgstr ""
#: src/text_simulation.cc:151 #: src/text_simulation.cc:162
msgid "" msgid ""
"\n" "\n"
"-- QUIT COMMAND --\n" "-- QUIT COMMAND --\n"
"Exits the program." "Exits the program."
msgstr "" msgstr ""
#: src/text_simulation.cc:154 #: src/text_simulation.cc:165
msgid "" msgid ""
"\n" "\n"
"\n" "\n"
@ -104,7 +133,7 @@ msgid ""
"\n" "\n"
msgstr "" msgstr ""
#: src/text_simulation.cc:162 #: src/text_simulation.cc:173
msgid "" msgid ""
"\n" "\n"
"-- Do you really want me to explain what HELP means? --\n" "-- Do you really want me to explain what HELP means? --\n"
@ -112,7 +141,7 @@ msgid ""
"\n" "\n"
msgstr "" msgstr ""
#: src/text_simulation.cc:184 #: src/text_simulation.cc:195
msgid "" msgid ""
"\n" "\n"
"-- SetMode COMMAND --\n" "-- SetMode COMMAND --\n"
@ -128,20 +157,20 @@ msgid ""
"animation\n" "animation\n"
msgstr "" msgstr ""
#: src/text_simulation.cc:191 #: src/text_simulation.cc:202
msgid "" msgid ""
"\n" "\n"
"ERROR: wrong number of parameters.\n" "ERROR: wrong number of parameters.\n"
"Type HELP SETMODE for the description of the sintax" "Type HELP SETMODE for the description of the sintax"
msgstr "" msgstr ""
#: src/text_simulation.cc:200 #: src/text_simulation.cc:211
msgid "" msgid ""
"\n" "\n"
"ERROR: the second parameter can be only CONTINUOUS or STEP" "ERROR: the second parameter can be only CONTINUOUS or STEP"
msgstr "" msgstr ""
#: src/text_simulation.cc:208 #: src/text_simulation.cc:219
msgid "" msgid ""
"\n" "\n"
"-- GetMode COMMAND --\n" "-- GetMode COMMAND --\n"
@ -150,19 +179,19 @@ msgid ""
"\tSTEP : if if the simulation is shown step-by-step" "\tSTEP : if if the simulation is shown step-by-step"
msgstr "" msgstr ""
#: src/text_simulation.cc:213 #: src/text_simulation.cc:224
msgid "" msgid ""
"\n" "\n"
"CONTINUOUS" "CONTINUOUS"
msgstr "" msgstr ""
#: src/text_simulation.cc:215 #: src/text_simulation.cc:226
msgid "" msgid ""
"\n" "\n"
"STEP" "STEP"
msgstr "" msgstr ""
#: src/text_simulation.cc:222 #: src/text_simulation.cc:233
msgid "" msgid ""
"\n" "\n"
"-- SetTimer COMMAND --\n" "-- SetTimer COMMAND --\n"
@ -173,21 +202,21 @@ msgid ""
"\t<param> must be an integer value > 0 and < 10000.\n" "\t<param> must be an integer value > 0 and < 10000.\n"
msgstr "" msgstr ""
#: src/text_simulation.cc:228 #: src/text_simulation.cc:239
msgid "" msgid ""
"\n" "\n"
"ERROR: wrong number of parameters.\n" "ERROR: wrong number of parameters.\n"
"Type HELP SETTIMER for the description of the sintax" "Type HELP SETTIMER for the description of the sintax"
msgstr "" msgstr ""
#: src/text_simulation.cc:237 #: src/text_simulation.cc:248
msgid "" msgid ""
"\n" "\n"
"ERROR: the second parameter has a wrong value.\n" "ERROR: the second parameter has a wrong value.\n"
"Type HELP SETTIMER for the description of the sintax" "Type HELP SETTIMER for the description of the sintax"
msgstr "" msgstr ""
#: src/text_simulation.cc:245 #: src/text_simulation.cc:256
msgid "" msgid ""
"\n" "\n"
"-- GetTimer COMMAND --\n" "-- GetTimer COMMAND --\n"
@ -195,7 +224,7 @@ msgid ""
"waits between a step and the following one" "waits between a step and the following one"
msgstr "" msgstr ""
#: src/text_simulation.cc:258 #: src/text_simulation.cc:269
msgid "" msgid ""
"\n" "\n"
"-- JumpTo COMMAND --\n" "-- JumpTo COMMAND --\n"
@ -206,28 +235,28 @@ msgid ""
"\t<param> must be an integer value >= 0" "\t<param> must be an integer value >= 0"
msgstr "" msgstr ""
#: src/text_simulation.cc:265 #: src/text_simulation.cc:276
msgid "" msgid ""
"\n" "\n"
"ERROR: wrong number of parameters.\n" "ERROR: wrong number of parameters.\n"
"Type HELP JUMPTO for the description of the sintax" "Type HELP JUMPTO for the description of the sintax"
msgstr "" msgstr ""
#: src/text_simulation.cc:274 #: src/text_simulation.cc:285
msgid "" msgid ""
"\n" "\n"
"ERROR: the second parameter has a wrong value.\n" "ERROR: the second parameter has a wrong value.\n"
"Type HELP JUMPTO for the description of the sintax" "Type HELP JUMPTO for the description of the sintax"
msgstr "" msgstr ""
#: src/text_simulation.cc:282 #: src/text_simulation.cc:293
msgid "" msgid ""
"\n" "\n"
"-- GetPolicy COMMAND --\n" "-- GetPolicy COMMAND --\n"
"Returns the name and the description of the current applied policy." "Returns the name and the description of the current applied policy."
msgstr "" msgstr ""
#: src/text_simulation.cc:292 #: src/text_simulation.cc:303
msgid "" msgid ""
"\n" "\n"
"-- GetPolicyAttributes COMMAND --\n" "-- GetPolicyAttributes COMMAND --\n"
@ -239,13 +268,13 @@ msgid ""
"\twhether the parameter is REQUIRED" "\twhether the parameter is REQUIRED"
msgstr "" msgstr ""
#: src/text_simulation.cc:354 #: src/text_simulation.cc:365
msgid "" msgid ""
"\n" "\n"
"Command not recognized: " "Command not recognized: "
msgstr "" msgstr ""
#: src/text_simulation.cc:356 #: src/text_simulation.cc:367
msgid "" msgid ""
"\n" "\n"
"Typer HELP for a list of avaiable commands." "Typer HELP for a list of avaiable commands."