From 6ab2767ae321ad4f2f5891a7e359fd7273845bd5 Mon Sep 17 00:00:00 2001 From: Henryk Ploetz Date: Sat, 13 Oct 2007 22:46:30 +0000 Subject: mono: add recipe for building from svn * 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 | 21 ++++++ packages/mono/mono-mcs-intermediate.inc | 60 ++++++++++++++++ packages/mono/mono-mcs-intermediate_1.2.5.1.bb | 54 +-------------- packages/mono/mono-mcs-intermediate_svn.bb | 12 ++++ packages/mono/mono_svn.bb | 95 ++++++++++++++++++++++++++ packages/mono/mono_svn.inc | 15 ++++ 6 files changed, 204 insertions(+), 53 deletions(-) create mode 100644 packages/mono/files/configure-svnr87352.patch create mode 100644 packages/mono/mono-mcs-intermediate.inc create mode 100644 packages/mono/mono-mcs-intermediate_svn.bb create mode 100644 packages/mono/mono_svn.bb create mode 100644 packages/mono/mono_svn.inc (limited to 'packages/mono') diff --git a/packages/mono/files/configure-svnr87352.patch b/packages/mono/files/configure-svnr87352.patch new file mode 100644 index 0000000000..021554f35e --- /dev/null +++ b/packages/mono/files/configure-svnr87352.patch @@ -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 index 0000000000..db74b96ee3 --- /dev/null +++ b/packages/mono/mono-mcs-intermediate.inc @@ -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 +} diff --git a/packages/mono/mono-mcs-intermediate_1.2.5.1.bb b/packages/mono/mono-mcs-intermediate_1.2.5.1.bb index 813da24ddf..f2dbe048d7 100644 --- a/packages/mono/mono-mcs-intermediate_1.2.5.1.bb +++ b/packages/mono/mono-mcs-intermediate_1.2.5.1.bb @@ -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 index 0000000000..f5dbedd612 --- /dev/null +++ b/packages/mono/mono-mcs-intermediate_svn.bb @@ -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 index 0000000000..6644efb4e3 --- /dev/null +++ b/packages/mono/mono_svn.bb @@ -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 index 0000000000..be007e4b9e --- /dev/null +++ b/packages/mono/mono_svn.inc @@ -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" + -- cgit 1.2.3-korg