mono: add recipe for building from svn
authorHenryk Ploetz <henryk@openmoko.org>
Sat, 13 Oct 2007 22:46:30 +0000 (22:46 +0000)
committerHenryk Ploetz <henryk@openmoko.org>
Sat, 13 Oct 2007 22:46:30 +0000 (22:46 +0000)
* new svn recipes for mono-mcs-intermediate and mono (disabled with DEFAULT_PREFERENCE="-1"
* common mono-mcs-intermediate recipe code moved to include file

packages/mono/files/configure-svnr87352.patch [new file with mode: 0644]
packages/mono/mono-mcs-intermediate.inc [new file with mode: 0644]
packages/mono/mono-mcs-intermediate_1.2.5.1.bb
packages/mono/mono-mcs-intermediate_svn.bb [new file with mode: 0644]
packages/mono/mono_svn.bb [new file with mode: 0644]
packages/mono/mono_svn.inc [new file with mode: 0644]

diff --git a/packages/mono/files/configure-svnr87352.patch b/packages/mono/files/configure-svnr87352.patch
new file mode 100644 (file)
index 0000000..021554f
--- /dev/null
@@ -0,0 +1,21 @@
+--- mono/configure.in.orig     2007-10-11 21:05:59.000000000 +0200
++++ mono/configure.in  2007-10-11 23:44:23.000000000 +0200
+@@ -1148,6 +1148,8 @@
+               ], [
+                               AC_MSG_RESULT(no)
+                               with_tls=pthread
++              ], [
++                              AC_MSG_RESULT(yes)
+               ])
+       fi
+@@ -1250,6 +1252,9 @@
+               ], [
+                               with_sigaltstack=no
+                               AC_MSG_RESULT(no)
++              ], [
++                              AC_MSG_RESULT(yes)
++                              AC_DEFINE(HAVE_WORKING_SIGALTSTACK)
+               ])
+       fi
diff --git a/packages/mono/mono-mcs-intermediate.inc b/packages/mono/mono-mcs-intermediate.inc
new file mode 100644 (file)
index 0000000..db74b96
--- /dev/null
@@ -0,0 +1,60 @@
+# This is a straw-man recipe for step 1 in the two-step build of
+# mono. Because it's impossible to build the mcs directory
+# in cross-compile mode, this recipe will do a native build,
+# then tar the resulting install tree for usage by the mono
+# package in step 2.
+# See http://www.mono-project.com/Mono:ARM
+
+PR = "r0"
+DEPENDS = "mono-native glib-2.0-native perl-native"
+
+PARALLEL_MAKE = ""
+
+SRC_URI += "file://mono-fix-libdir-path.patch;patch=1"
+
+# Inherit native to set up compiler and paths ...
+inherit native
+# ... but override the target prefix
+prefix = "/usr"
+exec_prefix = "/usr"
+sysconfdir = "/etc"
+# TODO: Where does the mono package get
+# these paths from? Use the same source.
+
+do_fix_libtool_name() {
+       # inherit native will make that all native tools that are being
+       # built are prefixed with something like "i686-linux-",
+       # including libtool. Fix up some hardcoded libtool names:
+       for i in "${S}"/runtime/*-wrapper.in; do
+               sed -e "s/libtool/${BUILD_SYS}-libtool/" -i "${i}"
+       done
+}
+addtask fix_libtool_name after do_patch before do_configure
+
+do_stage() {
+       true
+}
+
+do_install() {
+       oe_runmake 'DESTDIR=${D}' install
+}
+
+do_package() {
+       true
+}
+
+do_populate_staging() {
+       cd ${D}
+       rm -f ${WORKDIR}/mono-mcs-${PV}.tar.gz
+       tar -cvzf ${WORKDIR}/mono-mcs-${PV}.tar.gz .
+       install -d ${STAGING_DIR}/share/mono-mcs
+       cp ${WORKDIR}/mono-mcs-${PV}.tar.gz ${STAGING_DIR}/share/mono-mcs/
+}
+
+do_package_write_ipk() {
+       true
+}
+
+do_package_write() {
+       true
+}
index 813da24..f2dbe04 100644 (file)
@@ -6,56 +6,4 @@
 # See http://www.mono-project.com/Mono:ARM
 
 require mono_1.2.5.inc
-PR = "r0"
-DEPENDS = "mono-native glib-2.0-native perl-native"
-
-PARALLEL_MAKE = ""
-
-SRC_URI += "file://mono-fix-libdir-path.patch;patch=1"
-
-# Inherit native to set up compiler and paths ...
-inherit native
-# ... but override the target prefix
-prefix = "/usr"
-exec_prefix = "/usr"
-sysconfdir = "/etc"
-# TODO: Where does the mono package get
-# these paths from? Use the same source.
-
-do_fix_libtool_name() {
-       # inherit native will make that all native tools that are being
-       # built are prefixed with something like "i686-linux-",
-       # including libtool. Fix up some hardcoded libtool names:
-       for i in "${S}"/runtime/*-wrapper.in; do
-               sed -e "s/libtool/${BUILD_SYS}-libtool/" -i "${i}"
-       done
-}
-addtask fix_libtool_name after do_patch before do_configure
-
-do_stage() {
-       true
-}
-
-do_install() {
-       oe_runmake 'DESTDIR=${D}' install
-}
-
-do_package() {
-       true
-}
-
-do_populate_staging() {
-       cd ${D}
-       rm -f ${WORKDIR}/mono-mcs-${PV}.tar.gz
-       tar -cvzf ${WORKDIR}/mono-mcs-${PV}.tar.gz .
-       install -d ${STAGING_DIR}/share/mono-mcs
-       cp ${WORKDIR}/mono-mcs-${PV}.tar.gz ${STAGING_DIR}/share/mono-mcs/
-}
-
-do_package_write_ipk() {
-       true
-}
-
-do_package_write() {
-       true
-}
+require mono-mcs-intermediate.inc
diff --git a/packages/mono/mono-mcs-intermediate_svn.bb b/packages/mono/mono-mcs-intermediate_svn.bb
new file mode 100644 (file)
index 0000000..f5dbedd
--- /dev/null
@@ -0,0 +1,12 @@
+# This is a straw-man recipe for step 1 in the two-step build of
+# mono. Because it's impossible to build the mcs directory
+# in cross-compile mode, this recipe will do a native build,
+# then tar the resulting install tree for usage by the mono
+# package in step 2.
+# See http://www.mono-project.com/Mono:ARM
+
+require mono_svn.inc
+require mono-mcs-intermediate.inc
+
+DEFAULT_PREFERENCE = "-1"
+EXTRA_OECONF_append = " --without-tls "
diff --git a/packages/mono/mono_svn.bb b/packages/mono/mono_svn.bb
new file mode 100644 (file)
index 0000000..6644efb
--- /dev/null
@@ -0,0 +1,95 @@
+require mono_svn.inc
+
+DEPENDS = "mono-native mono-mcs-intermediate glib-2.0 perl-native"
+
+PR = "r0"
+DEFAULT_PREFERENCE = "-1"
+
+SRC_URI += "file://configure-svnr87352.patch;patch=1"
+
+# Per http://www.mono-project.com/Mono:ARM
+EXTRA_OECONF += " --disable-mcs-build "
+# Instead, get the mcs tree from a different build (see mono-mcs-intermediate)
+
+do_install_prepend() {
+       install -d ${D}
+       pushd ${D}
+       tar -xzf ${STAGING_DIR}/share/mono-mcs/mono-mcs-${PV}.tar.gz
+       popd
+}
+
+do_install_append() {
+       # mono-mcs-intermediate builds and installs jay (a Yacc for Java and C#),
+       # however, jay is not being cross-compiled and thus only
+       # available for the buildhost architecture, so remove it
+       # entirely
+       pushd ${D}
+       rm -rf ./usr/share/man/man1/jay.1 ./usr/share/jay \
+           ./usr/share/jay/README.jay \
+           ./usr/bin/jay
+       popd
+
+       # Not packaged with the default rules and apparently
+       # not used for anything
+       rm -rf ${D}${datadir}/mono-1.0/mono/cil/cil-opcodes.xml
+}
+
+inherit mono
+
+# Import file definitions from Debian
+require mono_1.2.5.1-files.inc
+
+# Add some packages
+PACKAGES_append = " mono-doc mono mono-runtime"
+
+FILES_mono-doc_append = " /usr/share/libgc-mono/ "
+
+FILES_mono = ""
+ALLOW_EMPTY_mono = "1"
+RDEPENDS_mono = "mono-common mono-jit"
+
+FILES_mono-runtime = ""
+ALLOW_EMPTY_mono-runtime = "1"
+RDEPENDS_mono-runtime = "mono-jit mono-gac"
+
+RDEPENDS_mono-jit = "mono-common"
+
+FILES_libmono-dev =+ " /usr/lib/libmono.la /usr/lib/libmono-profiler-cov.la /usr/lib/libmono-profiler-aot.la \
+       /usr/lib/libMonoPosixHelper.la /usr/lib/libMonoSupportW.la"
+FILES_libmono-dbg =+ " /usr/lib/.debug/libmono*.so.* /usr/lib/.debug/libikvm-native.so \
+       /usr/lib/.debug/libMonoPosixHelper.so /usr/lib/.debug/libMonoSupportW.so"
+
+# Packages not included in Debian
+PACKAGES_prepend = "libnunit2.2-cil-dbg libnunit2.2-cil-dev libnunit2.2-cil \
+       libmono-cecil0.6-cil-dbg libmono-cecil0.6-cil-dev libmono-cecil0.6-cil \
+       libmono-cecil-mdb0.2-cil-dbg libmono-cecil-mdb0.2-cil \
+       libmono-db2-1.0-cil-dbg libmono-db2-1.0-cil-dev libmono-db2-1.0-cil \
+       libmono-mozilla0.1-cil-dbg libmono-mozilla0.1-cil \
+       libmono-system-web-extensions1.0-cil-dbg libmono-system-web-extensions1.0-cil"
+
+FILES_libnunit2.2-cil = "/usr/lib/mono/gac/nunit.*/2.2.* /usr/lib/mono/1.0/nunit.*.dll"
+FILES_libnunit2.2-cil-dev = "/usr/lib/pkgconfig/mono-nunit.pc"
+FILES_libnunit2.2-cil-dbg = "/usr/lib/mono/gac/nunit*/2.2.*/nunit.*.dll.mdb"
+
+FILES_libmono-cecil0.6-cil = "/usr/lib/mono/gac/Mono.Cecil*/0.6.*"
+FILES_libmono-cecil0.6-cil-dbg = "/usr/lib/mono/gac/Mono.Cecil*/0.6.*/Mono.Cecil*.dll.mdb"
+FILES_libmono-cecil0.6-cil-dev = "/usr/lib/pkgconfig/cecil.pc"
+
+FILES_libmono-cecil-mdb0.2-cil = "/usr/lib/mono/gac/Mono.Cecil.Mdb/0.2.*"
+FILES_libmono-cecil-mdb0.2-cil-dbg = "/usr/lib/mono/gac/Mono.Cecil.Mdb/0.2.*/Mono.Cecil*.dll.mdb"
+
+FILES_libmono-db2-1.0-cil = "/usr/lib/mono/gac/IBM.Data.DB2/1.0* /usr/lib/mono/1.0/IBM.Data.DB2.dll"
+FILES_libmono-db2-1.0-cil-dbg = "/usr/lib/mono/gac/IBM.Data.DB2/1.0*/IBM.Data.DB2.dll.mdb"
+
+FILES_libmono-system2.0-cil-dbg_append = " /usr/lib/mono/gac/System.Core/3.5.*/*.mdb "
+FILES_libmono-system2.0-cil_append = " /usr/lib/mono/gac/System.Core/3.5.* "
+
+FILES_libmono-mozilla0.1-cil-dbg = "/usr/lib/mono/gac/Mono.Mozilla/0.1.0.0*/Mono.Mozilla.dll.mdb"
+FILES_libmono-mozilla0.1-cil = "/usr/lib/mono/gac/Mono.Mozilla/0.1.0.0*/Mono.Mozilla.dll"
+
+FILES_libmono-system-web-extensions1.0-cil-dbg = "/usr/lib/mono/gac/System.Web.Extensions*/1.0*/*.mdb"
+FILES_libmono-system-web-extensions1.0-cil =  "/usr/lib/mono/gac/System.Web.Extensions*/1.0*/*.dll"
+
+# Move .pc files
+FILES_libmono-cairo1.0-cil-dev = "/usr/lib/pkgconfig/mono-cairo.pc"
+PACKAGES =+ " libmono-cairo1.0-cil-dev "
diff --git a/packages/mono/mono_svn.inc b/packages/mono/mono_svn.inc
new file mode 100644 (file)
index 0000000..be007e4
--- /dev/null
@@ -0,0 +1,15 @@
+DESCRIPTION = "Mono Programming Language"
+SECTION = "devel/mono"
+LICENSE = "GPL LGPL X11"
+
+SRCREV = "87352"
+SRC_URI = "svn://anonsvn.mono-project.com/source/trunk/;module=mcs;rev=${SRCREV} \
+       svn://anonsvn.mono-project.com/source/trunk/;module=mono;rev=${SRCREV} "
+
+PV = "1.2.5.1+svnr${SRCREV}"
+S = "${WORKDIR}/mono"
+
+inherit autotools
+EXTRA_OECONF_arm = "--without-tls"
+EXTRA_OECONF_mipsel = "--without-tls"
+