[chronojump] Fix R.NET build and make it portable
- From: Andoni Morales Alastruey <amorales src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [chronojump] Fix R.NET build and make it portable
- Date: Mon, 14 Oct 2013 11:27:03 +0000 (UTC)
commit 97aef3c6e8fb67eb0f63c4f6cba04afed2a463ff
Author: Andoni Morales Alastruey <ylatuya gmail com>
Date: Mon Oct 14 13:05:13 2013 +0200
Fix R.NET build and make it portable
Makefile.am | 6 +-
autogen.sh | 2 +-
build/Makefile.am | 8 ++
build/build.environment.mk | 56 +++++++++++
build/build.mk | 3 +
build/build.rules.mk | 97 +++++++++++++++++++
build/m4/Makefile.am | 6 +
expansions.m4 => build/m4/shamrock/expansions.m4 | 0
{m4 => build/m4}/shamrock/gnome-doc.m4 | 0
{m4 => build/m4}/shamrock/i18n.m4 | 0
{m4 => build/m4}/shamrock/mono.m4 | 0
{m4 => build/m4}/shamrock/monodoc.m4 | 0
{m4 => build/m4}/shamrock/nunit.m4 | 0
{m4 => build/m4}/shamrock/programs.m4 | 0
{m4 => build/m4}/shamrock/util.m4 | 0
{m4 => build/m4}/shave/shave-libtool.in | 0
{m4 => build/m4}/shave/shave.in | 0
{m4 => build/m4}/shave/shave.m4 | 0
configure.ac | 39 +++++++-
m4/shamrock/expansions.m4 | 50 ----------
m4/shave/shave | 109 ----------------------
m4/shave/shave-libtool | 109 ----------------------
rdotnet/Makefile.am | 14 +---
rdotnet/R.NET/Makefile.am | 71 ++++++++++++++
rdotnet/RDotNet.NativeLibrary/Makefile.am | 11 ++
25 files changed, 292 insertions(+), 289 deletions(-)
---
diff --git a/Makefile.am b/Makefile.am
index 1c3b852..02239af 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,9 +1,9 @@
-EXTRA_DIST = m4 expansions.m4
+EXTRA_DIST = build/m4 expansions.m4
-ACLOCAL_AMFLAGS = -I m4
+ACLOCAL_AMFLAGS = -I build/m4 -I build/m4/shave -I build/m4/shamrock
SUBDIRS = chronopic-firmware \
- encoder libcesarplayer CesarPlayer src po manual chronojump_server #rdotnet
+ encoder libcesarplayer CesarPlayer rdotnet src po manual chronojump_server
if OSTYPE_LINUX
SUBDIRS += chronopic-tests chronojump_server
diff --git a/autogen.sh b/autogen.sh
index d1cb822..dddeceb 100755
--- a/autogen.sh
+++ b/autogen.sh
@@ -18,7 +18,7 @@ test -z "$srcdir" && srcdir=.
ORIGDIR=`pwd`
cd $srcdir
TEST_TYPE=-f
-aclocalinclude="-I m4/shamrock -I m4/shave $ACLOCAL_FLAGS"
+aclocalinclude="-I build/m4/shamrock -I build/m4/shave $ACLOCAL_FLAGS"
conf_flags="--enable-maintainer-mode"
#test $TEST_TYPE $FILE || {
diff --git a/build/Makefile.am b/build/Makefile.am
new file mode 100644
index 0000000..e781ccd
--- /dev/null
+++ b/build/Makefile.am
@@ -0,0 +1,8 @@
+SUBDIRS = m4
+
+EXTRA_DIST = \
+ icon-theme-installer \
+ private-icon-theme-installer
+
+CLEANFILES = *.exe *.mdb
+MAINTAINERCLEANFILES = Makefile.in
diff --git a/build/build.environment.mk b/build/build.environment.mk
new file mode 100644
index 0000000..0ce133f
--- /dev/null
+++ b/build/build.environment.mk
@@ -0,0 +1,56 @@
+# Initializers
+MONO_BASE_PATH =
+MONO_ADDINS_PATH =
+
+# Install Paths
+DEFAULT_INSTALL_DIR = $(pkglibdir)
+
+# External libraries to link against, generated from configure
+LINK_SYSTEM = -r:System
+LINK_SYSTEM_CORE = -r:System.Core
+LINK_SYSTEM_DATA_DATASETEXTENSTIONS = -r:System.Data.DataSetExtensions
+LINK_SYSTEM_DRAWING = -r:System.Drawing
+LINK_SYSTEM_NUMERICS = -r:System.Numerics
+LINK_SYSTEM_XML = -r:System.Xml
+LINK_SYSTEM_XML_LINQ = -r:System.Xml.Linq
+LINK_MICROSOFT_CSHARP = -r:Microsoft.CSharp
+LINK_CAIRO = -r:Mono.Cairo
+LINK_MONO_POSIX = -r:Mono.Posix
+LINK_GLIB = $(GLIBSHARP_LIBS)
+LINK_GTK = $(GTKSHARP_LIBS)
+LINK_GCONF = $(GCONFSHARP_LIBS)
+LINK_RDOTNET = -r:$(DIR_BIN)/RDotNet.dll
+LINK_RDOTNET_NATIVE = -r:$(DIR_BIN)/RDotNet.NativeLibrary.dll
+
+
+REF_DEP_RDOTNET_NATIVE = \
+ $(LINK_SYSTEM) \
+ $(LINK_SYSTEM_CORE) \
+ $(LINK_SYSTEM_DATA_DATASETEXTENSTIONS) \
+ $(LINK_SYSTEM_XML) \
+ $(LINK_SYSTEM_XML_LINQ) \
+ $(LINK_MICROSOFT_CSHARP)
+
+REF_DEP_RDOTNET = \
+ $(LINK_SYSTEM) \
+ $(LINK_SYSTEM_CORE) \
+ $(LINK_SYSTEM_DATA) \
+ $(LINK_SYSTEM_DATA_DATASETEXTENSTIONS) \
+ $(LINK_SYSTEM_NUMERICS) \
+ $(LINK_SYSTEM_XML) \
+ $(LINK_SYSTEM_XML_LINQ) \
+ $(LINK_MICROSOFT_CSHARP) \
+ $(LINK_RDOTNET_NATIVE)
+
+
+
+DIR_BIN = $(top_builddir)/bin
+
+# Cute hack to replace a space with something
+colon:= :
+empty:=
+space:= $(empty) $(empty)
+
+# Build path to allow running uninstalled
+RUN_PATH = $(subst $(space),$(colon), $(MONO_BASE_PATH))
+
diff --git a/build/build.mk b/build/build.mk
new file mode 100644
index 0000000..78e0760
--- /dev/null
+++ b/build/build.mk
@@ -0,0 +1,3 @@
+include $(top_srcdir)/build/build.environment.mk
+include $(top_srcdir)/build/build.rules.mk
+
diff --git a/build/build.rules.mk b/build/build.rules.mk
new file mode 100644
index 0000000..43112df
--- /dev/null
+++ b/build/build.rules.mk
@@ -0,0 +1,97 @@
+UNIQUE_FILTER_PIPE = tr [:space:] \\n | sort | uniq
+BUILD_DATA_DIR = $(top_builddir)/bin/share/$(PACKAGE)
+
+SOURCES_BUILD = $(addprefix $(srcdir)/, $(SOURCES))
+#SOURCES_BUILD += $(top_srcdir)/src/AssemblyInfo.cs
+
+RESOURCES_EXPANDED = $(addprefix $(srcdir)/, $(RESOURCES))
+RESOURCES_BUILD = $(foreach resource, $(RESOURCES_EXPANDED), \
+ -resource:$(resource),$(notdir $(resource)))
+
+#INSTALL_ICONS = $(top_srcdir)/build/private-icon-theme-installer "$(mkinstalldirs)" "$(INSTALL_DATA)"
+#THEME_ICONS_SOURCE = $(wildcard $(srcdir)/ThemeIcons/*/*/*.png) $(wildcard
$(srcdir)/ThemeIcons/scalable/*/*.svg)
+#THEME_ICONS_RELATIVE = $(subst $(srcdir)/ThemeIcons/, , $(THEME_ICONS_SOURCE))
+
+ASSEMBLY_EXTENSION = $(strip $(patsubst library, dll, $(TARGET)))
+ASSEMBLY_FILE = $(top_builddir)/bin/$(ASSEMBLY).$(ASSEMBLY_EXTENSION)
+
+INSTALL_DIR_RESOLVED = $(firstword $(subst , $(DEFAULT_INSTALL_DIR), $(INSTALL_DIR)))
+
+if ENABLE_TESTS
+ LINK += " $(NUNIT_LIBS)"
+ ENABLE_TESTS_FLAG = "-define:ENABLE_TESTS"
+endif
+
+FILTERED_LINK = $(shell echo "$(LINK)" | $(UNIQUE_FILTER_PIPE))
+DEP_LINK = $(shell echo "$(LINK)" | $(UNIQUE_FILTER_PIPE) | sed s,-r:,,g | grep '$(top_builddir)/bin/')
+
+OUTPUT_FILES = \
+ $(ASSEMBLY_FILE) \
+ $(ASSEMBLY_FILE).mdb \
+ $(DLLCONFIG)
+
+moduledir = $(INSTALL_DIR_RESOLVED)
+module_SCRIPTS = $(OUTPUT_FILES)
+
+ INTLTOOL_DESKTOP_RULE@
+desktopdir = $(datadir)/applications
+desktop_in_files = $(DESKTOP_FILE)
+desktop_DATA = $(desktop_in_files:.desktop.in=.desktop)
+
+imagesdir = @datadir@/@PACKAGE@/images
+images_DATA = $(IMAGES)
+
+logo_48dir = @datadir@/icons/hicolor/48x48/apps
+logo_48_DATA = $(LOGO_48)
+
+logodir = @datadir@/icons/hicolor/scalable/apps
+logo_DATA = $(LOGO)
+
+all: $(ASSEMBLY_FILE)
+
+run:
+ @pushd $(top_builddir); \
+ make run; \
+ popd;
+
+test:
+ @pushd $(top_builddir)/tests; \
+ make $(ASSEMBLY); \
+ popd;
+
+build-debug:
+ @echo $(DEP_LINK)
+
+$(ASSEMBLY_FILE).mdb: $(ASSEMBLY_FILE)
+
+$(ASSEMBLY_FILE): $(SOURCES_BUILD) $(RESOURCES_EXPANDED) $(DEP_LINK)
+ @mkdir -p $(top_builddir)/bin
+ $(MCS) \
+ $(GMCS_FLAGS) \
+ $(ASSEMBLY_BUILD_FLAGS) \
+ -nowarn:0278 -nowarn:0078 $$warn -unsafe \
+ -define:HAVE_GTK -codepage:utf8 \
+ -debug -target:$(TARGET) -out:$@ \
+ $(BUILD_DEFINES) $(ENABLE_TESTS_FLAG) $(ENABLE_ATK_FLAG) \
+ $(FILTERED_LINK) $(RESOURCES_BUILD) $(SOURCES_BUILD)
+ @if [ ! -z "$(EXTRA_BUNDLE)" ]; then \
+ cp $(EXTRA_BUNDLE) $(top_builddir)/bin; \
+ fi;
+
+#theme-icons: $(THEME_ICONS_SOURCE)
+# @$(INSTALL_ICONS) -il "$(BUILD_DATA_DIR)" "$(srcdir)" $(THEME_ICONS_RELATIVE)
+
+install-data-hook: $(THEME_ICONS_SOURCE)
+ @$(INSTALL_ICONS) -i "$(DESTDIR)$(pkgdatadir)" "$(srcdir)" $(THEME_ICONS_RELATIVE)
+ $(EXTRA_INSTALL_DATA_HOOK)
+
+uninstall-hook: $(THEME_ICONS_SOURCE)
+ @$(INSTALL_ICONS) -u "$(DESTDIR)$(pkgdatadir)" "$(srcdir)" $(THEME_ICONS_RELATIVE)
+ $(EXTRA_UNINSTALL_HOOK)
+
+EXTRA_DIST = $(SOURCES_BUILD) $(RESOURCES_EXPANDED) $(THEME_ICONS_SOURCE) $(IMAGES) $(LOGO) $(LOGO_48)
$(desktop_in_files)
+
+CLEANFILES = $(OUTPUT_FILES)
+DISTCLEANFILES = *.pidb $(desktop_DATA)
+MAINTAINERCLEANFILES = Makefile.in
+
diff --git a/build/m4/Makefile.am b/build/m4/Makefile.am
new file mode 100644
index 0000000..6c1d899
--- /dev/null
+++ b/build/m4/Makefile.am
@@ -0,0 +1,6 @@
+EXTRA_DIST = \
+ $(srcdir)/shamrock/*.m4 \
+ $(srcdir)/shave/*.m4 \
+ $(srcdir)/shave/*.in
+MAINTAINERCLEANFILES = Makefile.in
+
diff --git a/expansions.m4 b/build/m4/shamrock/expansions.m4
similarity index 100%
rename from expansions.m4
rename to build/m4/shamrock/expansions.m4
diff --git a/m4/shamrock/gnome-doc.m4 b/build/m4/shamrock/gnome-doc.m4
similarity index 100%
rename from m4/shamrock/gnome-doc.m4
rename to build/m4/shamrock/gnome-doc.m4
diff --git a/m4/shamrock/i18n.m4 b/build/m4/shamrock/i18n.m4
similarity index 100%
rename from m4/shamrock/i18n.m4
rename to build/m4/shamrock/i18n.m4
diff --git a/m4/shamrock/mono.m4 b/build/m4/shamrock/mono.m4
similarity index 100%
rename from m4/shamrock/mono.m4
rename to build/m4/shamrock/mono.m4
diff --git a/m4/shamrock/monodoc.m4 b/build/m4/shamrock/monodoc.m4
similarity index 100%
rename from m4/shamrock/monodoc.m4
rename to build/m4/shamrock/monodoc.m4
diff --git a/m4/shamrock/nunit.m4 b/build/m4/shamrock/nunit.m4
similarity index 100%
rename from m4/shamrock/nunit.m4
rename to build/m4/shamrock/nunit.m4
diff --git a/m4/shamrock/programs.m4 b/build/m4/shamrock/programs.m4
similarity index 100%
rename from m4/shamrock/programs.m4
rename to build/m4/shamrock/programs.m4
diff --git a/m4/shamrock/util.m4 b/build/m4/shamrock/util.m4
similarity index 100%
rename from m4/shamrock/util.m4
rename to build/m4/shamrock/util.m4
diff --git a/m4/shave/shave-libtool.in b/build/m4/shave/shave-libtool.in
similarity index 100%
rename from m4/shave/shave-libtool.in
rename to build/m4/shave/shave-libtool.in
diff --git a/m4/shave/shave.in b/build/m4/shave/shave.in
similarity index 100%
rename from m4/shave/shave.in
rename to build/m4/shave/shave.in
diff --git a/m4/shave/shave.m4 b/build/m4/shave/shave.m4
similarity index 100%
rename from m4/shave/shave.m4
rename to build/m4/shave/shave.m4
diff --git a/configure.ac b/configure.ac
index ff56cb2..f893f15 100644
--- a/configure.ac
+++ b/configure.ac
@@ -5,12 +5,17 @@ AC_INIT([chronojump], [1.3.9])
AM_INIT_AUTOMAKE([foreign])
AM_MAINTAINER_MODE
-AC_CONFIG_MACRO_DIR([m4])
-AC_SUBST([ACLOCAL_AMFLAGS], ["-I m4/shamrock -I m4/shave \${ACLOCAL_FLAGS}"])
-
+AC_CONFIG_MACRO_DIR([build/m4])
+AC_SUBST([ACLOCAL_AMFLAGS], ["-I build/m4/shamrock -I build/m4/shave \${ACLOCAL_FLAGS}"])
+
+AM_PROG_CC_STDC
+AC_ISC_POSIX
+AC_PROG_CC
+AC_C_CONST
+AC_HEADER_STDC
AM_PROG_LIBTOOL
-
AM_PATH_PYTHON
+LT_INIT
dnl Check for pkg-config
AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
@@ -25,6 +30,25 @@ SHAMROCK_EXPAND_DATADIR
AC_PROG_INSTALL
+#*******************************************************************************
+# Internationalization
+#*******************************************************************************
+GETTEXT_PACKAGE=chronojump
+AC_SUBST(GETTEXT_PACKAGE)
+AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE", [GETTEXT package name])
+
+dnl Check for gettext utils
+AC_PATH_PROG(MSGFMT, msgfmt, no)
+if test "x$MSGFMT" = "xno"; then
+ AC_MSG_ERROR([gettext not found])
+else
+ AC_SUBST(MSGFMT,[msgfmt])
+fi
+
+IT_PROG_INTLTOOL([0.40.0])
+AM_GLIB_GNU_GETTEXT
+
+
dnl Mono and C# compiler
dnl Check first for a 4.0 compiler or than fallback to 2.0
SHAMROCK_CHECK_MONO_MODULE(2.4.0)
@@ -99,6 +123,9 @@ if test -z "$CONFIG_REQUESTED" ; then
enable_release=yes
fi
+dnl Disable tests
+AM_CONDITIONAL(ENABLE_TESTS, test x = y)
+
dnl package checks, common for all configs
PKG_CHECK_MODULES([GLIB_SHARP_20], [glib-sharp-2.0])
@@ -111,6 +138,8 @@ AC_SUBST(CESARPLAYER_LIBS)
AC_CONFIG_FILES([
Makefile
+build/m4/shave/shave
+build/m4/shave/shave-libtool
chronopic-firmware/Makefile
chronopic-firmware/chronopic-firmwarecord/Makefile
chronopic-firmware/chronopic-firmwarecord/libIris/Makefile
@@ -131,6 +160,8 @@ CesarPlayer/AssemblyInfo.cs
CesarPlayer/CesarPlayer.dll.config
win32/chronojump_innosetup.iss
rdotnet/Makefile
+rdotnet/R.NET/Makefile
+rdotnet/RDotNet.NativeLibrary/Makefile
])
AC_OUTPUT
diff --git a/rdotnet/Makefile.am b/rdotnet/Makefile.am
index 46b7abf..851b5e2 100644
--- a/rdotnet/Makefile.am
+++ b/rdotnet/Makefile.am
@@ -1,13 +1 @@
-R_NET_BIN_FOLDER = R.NET/bin/Debug
-R_NET_ASSEMBLY = $(R_NET_BIN_FOLDER)/RDotNet.dll
-R_NET_NATIVE_ASSEMBLY = $(R_NET_BIN_FOLDER)/RDotNet.NativeLibrary.dll
-
-$(R_NET_ASSEMBLY) $(R_NET_NATIVE_ASSEMBLY):
- xbuild R.NET/RDotNet.csproj
-
-all: $(R_NET_ASSEMBLY) $(R_NET_NATIVE_ASSEMBLY)
-
-chronojump_pkglibdir = $(pkglibdir)
-chronojump_pkglib_SCRIPTS = $(R_NET_ASSEMBLY) $(R_NET_NATIVE_ASSEMBLY)
-
-CLEANFILES = $(R_NET_ASSEMBLY) $(R_NET_NATIVE_ASSEMBLY)
+SUBDIRS = RDotNet.NativeLibrary R.NET
diff --git a/rdotnet/R.NET/Makefile.am b/rdotnet/R.NET/Makefile.am
new file mode 100644
index 0000000..f76a722
--- /dev/null
+++ b/rdotnet/R.NET/Makefile.am
@@ -0,0 +1,71 @@
+ASSEMBLY = RDotNet
+TARGET = library
+
+LINK = $(REF_DEP_RDOTNET)
+
+SOURCES = \
+ Closure.cs \
+ ComplexVector.cs \
+ CharacterMatrix.cs \
+ ComplexMatrix.cs \
+ BuiltinFunction.cs \
+ Devices/CharacterDeviceAdapter.cs \
+ Devices/ConsoleDevice.cs \
+ Devices/NullCharacterDevice.cs \
+ Devices/ICharacterDevice.cs \
+ Internals/Delegates.cs \
+ Internals/OutputMode.cs \
+ Internals/Unix/RStart.cs \
+ Internals/ConsoleOutputType.cs \
+ Internals/BusyType.cs \
+ Internals/SaveActions.cs \
+ Internals/Unix/Delegates.cs \
+ Internals/Windows/Delegates.cs \
+ Internals/Windows/RStart.cs \
+ Internals/Windows/UiMode.cs \
+ Internals/YesNoCancel.cs \
+ SpecialFunction.cs \
+ Environment.cs \
+ Expression.cs \
+ ExpressionVector.cs \
+ DataFrame.cs \
+ DataFrameRow.cs \
+ DynamicVector.cs \
+ Dynamic/DataFrameDynamicMeta.cs \
+ Dynamic/SymbolicExpressionDynamicMeta.cs \
+ Dynamic/ListDynamicMeta.cs \
+ Function.cs \
+ GenericVector.cs \
+ Language.cs \
+ LogicalMatrix.cs \
+ Pairlist.cs \
+ RawMatrix.cs \
+ NumericMatrix.cs \
+ IntegerMatrix.cs \
+ Matrix.cs \
+ InternalString.cs \
+ Internals/SEXPREC_HEADER.cs \
+ RawVector.cs \
+ Internals/ParseStatus.cs \
+ NumericVector.cs \
+ IntegerVector.cs \
+ Internals/VECTOR_SEXPREC.cs \
+ ParseException.cs \
+ ProtectedPointer.cs \
+ REngineExtension.cs \
+ StartupParameter.cs \
+ Symbol.cs \
+ SymbolicExpression.cs \
+ Internals/SEXPREC.cs \
+ Internals/SymbolicExpressionType.cs \
+ Internals/sxpinfo.cs \
+ Properties/AssemblyInfo.cs \
+ REngine.cs \
+ SymbolicExpressionExtension.cs \
+ Utility.cs \
+ Vector.cs \
+ LogicalVector.cs \
+ CharacterVector.cs
+
+
+include $(top_srcdir)/build/build.mk
diff --git a/rdotnet/RDotNet.NativeLibrary/Makefile.am b/rdotnet/RDotNet.NativeLibrary/Makefile.am
new file mode 100644
index 0000000..a106b66
--- /dev/null
+++ b/rdotnet/RDotNet.NativeLibrary/Makefile.am
@@ -0,0 +1,11 @@
+ASSEMBLY = RDotNet.NativeLibrary
+TARGET = library
+
+LINK = $(REF_DEP_RDOTNET_NATIVE)
+
+SOURCES = \
+ Properties/AssemblyInfo.cs \
+ UnmanagedDll.cs \
+ NativeUtility.cs
+
+include $(top_srcdir)/build/build.mk
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]