<?xml version="1.0" encoding="utf-8" ?> <Autotools> <ProjectAutogenSh> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:dnpb="http://dnpb.sourceforge.net/schemas/prebuild-1.7.xsd" exclude-result-prefixes="dnpb" > <xsl:template match="/"><xsl:text disable-output-escaping="yes">#!/bin/sh # Run this to generate all the initial makefiles, etc. # Ripped off from Mono, which ripped off from GNOME macros version DIE=0 srcdir=`dirname $0` test -z "$srcdir" && srcdir=. if [ -n "$MONO_PATH" ]; then # from -> /mono/lib:/another/mono/lib # to -> /mono /another/mono for i in `echo ${MONO_PATH} | tr ":" " "`; do i=`dirname ${i}` if [ -n "{i}" -a -d "${i}/share/aclocal" ]; then ACLOCAL_FLAGS="-I ${i}/share/aclocal $ACLOCAL_FLAGS" fi if [ -n "{i}" -a -d "${i}/bin" ]; then PATH="${i}/bin:$PATH" fi done export PATH fi (autoconf --version) < /dev/null > /dev/null 2>&1 || { echo echo "**Error**: You must have \`autoconf' installed to compile Mono." echo "Download the appropriate package for your distribution," echo "or get the source tarball at ftp://ftp.gnu.org/pub/gnu/" DIE=1 } if [ -z "$LIBTOOL" ]; then LIBTOOL=`which glibtool 2>/dev/null` if [ ! -x "$LIBTOOL" ]; then LIBTOOL=`which libtool` fi fi (grep "^AM_PROG_LIBTOOL" $srcdir/configure.ac >/dev/null) && { ($LIBTOOL --version) < /dev/null > /dev/null 2>&1 || { echo echo "**Error**: You must have \`libtool' installed to compile Mono." echo "Get ftp://ftp.gnu.org/pub/gnu/libtool-1.2d.tar.gz" echo "(or a newer version if it is available)" DIE=1 } } grep "^AM_GNU_GETTEXT" $srcdir/configure.ac >/dev/null && { grep "sed.*POTFILES" $srcdir/configure.ac >/dev/null || \ (gettext --version) < /dev/null > /dev/null 2>&1 || { echo echo "**Error**: You must have \`gettext' installed to compile Mono." echo "Get ftp://alpha.gnu.org/gnu/gettext-0.10.35.tar.gz" echo "(or a newer version if it is available)" DIE=1 } } (automake --version) < /dev/null > /dev/null 2>&1 || { echo echo "**Error**: You must have \`automake' installed to compile Mono." echo "Get ftp://ftp.gnu.org/pub/gnu/automake-1.3.tar.gz" echo "(or a newer version if it is available)" DIE=1 NO_AUTOMAKE=yes } # if no automake, don't bother testing for aclocal test -n "$NO_AUTOMAKE" || (aclocal --version) < /dev/null > /dev/null 2>&1 || { echo echo "**Error**: Missing \`aclocal'. The version of \`automake'" echo "installed doesn't appear recent enough." echo "Get ftp://ftp.gnu.org/pub/gnu/automake-1.3.tar.gz" echo "(or a newer version if it is available)" DIE=1 } if test "$DIE" -eq 1; then exit 1 fi if test -z "$NOCONFIGURE"; then if test -z "$*"; then echo "**Warning**: I am going to run \`configure' with no arguments." echo "If you wish to pass any to it, please specify them on the" echo \`$0\'" command line." echo fi fi case $CC in xlc ) am_opt=--include-deps;; esac if grep "^AM_PROG_LIBTOOL" configure.ac >/dev/null; then if test -z "$NO_LIBTOOLIZE" ; then echo "Running libtoolize..." ${LIBTOOL}ize --force --copy fi fi echo "Running aclocal $ACLOCAL_FLAGS ..." aclocal $ACLOCAL_FLAGS || { echo echo "**Error**: aclocal failed. This may mean that you have not" echo "installed all of the packages you need, or you may need to" echo "set ACLOCAL_FLAGS to include \"-I \$prefix/share/aclocal\"" echo "for the prefix where you installed the packages whose" echo "macros were not found" exit 1 } if grep "^AM_CONFIG_HEADER" configure.ac >/dev/null; then echo "Running autoheader..." autoheader || { echo "**Error**: autoheader failed."; exit 1; } fi echo "Running automake --gnu $am_opt ..." automake --add-missing --gnu $am_opt || { echo "**Error**: automake failed."; exit 1; } echo "Running autoconf ..." autoconf || { echo "**Error**: autoconf failed."; exit 1; } conf_flags="--enable-maintainer-mode --enable-compile-warnings" #--enable-iso-c if test x$NOCONFIGURE = x; then echo Running $srcdir/configure $conf_flags "$@" ... $srcdir/configure $conf_flags "$@" \ && echo Now type \`make\' to compile $PKG_NAME || exit 1 else echo Skipping configure process. fi </xsl:text> </xsl:template> </xsl:stylesheet> </ProjectAutogenSh> <ProjectConfigureAc> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:dnpb="http://dnpb.sourceforge.net/schemas/prebuild-1.7.xsd" exclude-result-prefixes="dnpb" xml:space="preserve" > <!-- Removes the xml version header in the generated file --> <xsl:output method="text"/> <xsl:param name="solutionName" /> <xsl:param name="projectName" /> <xsl:param name="projectVersion" /> <xsl:param name="assemblyName" /> <xsl:variable name="lcProjectName"><xsl:value-of select="translate($projectName, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz')"/></xsl:variable> <xsl:template match="/"> <xsl:for-each select="//dnpb:Solution[@name=$solutionName]/dnpb:Project[@name=$projectName]" >AC_INIT([<xsl:value-of select="$projectName" />],[<xsl:value-of select="$projectVersion" />]) AC_PREREQ(2.60) AC_CANONICAL_SYSTEM AC_CONFIG_AUX_DIR(.) AM_INIT_AUTOMAKE([1.9 tar-ustar foreign]) AM_MAINTAINER_MODE dnl AC_PROG_INTLTOOL([0.25]) AC_PROG_INSTALL ASSEMBLY_NAME=<xsl:value-of select="$assemblyName" /> PROJECT_NAME=<xsl:value-of select="$projectName" /> PROJECT_VERSION=$VERSION PROJECT_DESCRIPTION="<xsl:value-of select="dnpb:Description/text()" />" PROJECT_TYPE="<xsl:value-of select="@type" />" AC_SUBST(ASSEMBLY_NAME) AC_SUBST(PROJECT_NAME) AC_SUBST(PROJECT_VERSION) AC_SUBST(DESCRIPTION) AC_MSG_CHECKING([assembly type]) case $PROJECT_TYPE in *Exe) ASSEMBLY_EXTENSION=exe ;; *Library) ASSEMBLY_EXTENSION=dll ;; *) AC_MSG_ERROR([*** Please add support for project type $PROJECT_TYPE to configure.ac checks!]) ;; esac AC_MSG_RESULT([$PROJECT_TYPE]) AC_SUBST(ASSEMBLY_EXTENSION) AC_MSG_CHECKING([whether we're compiling from an RCS]) if test -f "$srcdir/.cvs_version" ; then from_rcs=cvs else if test -f "$srcdir/.svn/entries" ; then from_rcs=svn else from_rcs=no fi fi AC_MSG_RESULT($from_rcs) MONO_REQUIRED_VERSION=1.1 <xsl:text disable-output-escaping="yes"> PKG_CHECK_MODULES(MONO_DEPENDENCY, mono >= $MONO_REQUIRED_VERSION, has_mono=true, has_mono=false) </xsl:text> if test "x$has_mono" = "xtrue"; then AC_PATH_PROG(RUNTIME, mono, no) AC_PATH_PROG(CSC, gmcs, no) AC_PATH_PROG(RESGEN, resgen2, no) if test `uname -s` = "Darwin"; then LIB_PREFIX= LIB_SUFFIX=.dylib else LIB_PREFIX=.so LIB_SUFFIX= fi else AC_PATH_PROG(CSC, csc.exe, no) if test x$CSC = "xno"; then AC_MSG_ERROR([You need to install either mono or .Net]) else RUNTIME= LIB_PREFIX= LIB_SUFFIX= fi fi AC_PATH_PROG(GACUTIL, gacutil) if test "x$GACUTIL" = "xno" ; then AC_MSG_ERROR([No gacutil tool found]) fi GACUTIL_FLAGS='/package <xsl:value-of select="$assemblyName" /> /gacdir $(DESTDIR)$(prefix)/lib' AC_SUBST(GACUTIL_FLAGS) AC_SUBST(PATH) AC_SUBST(LD_LIBRARY_PATH) AC_SUBST(LIB_PREFIX) AC_SUBST(LIB_SUFFIX) AC_SUBST(RUNTIME) AC_SUBST(CSC) AC_SUBST(RESGEN) AC_SUBST(GACUTIL) AC_SUBST(BASE_DEPENDENCIES_CFLAGS) AC_SUBST(BASE_DEPENDENCIES_LIBS) dnl Find monodoc MONODOC_REQUIRED_VERSION=1.0 AC_SUBST(MONODOC_REQUIRED_VERSION) <xsl:text disable-output-escaping="yes"> PKG_CHECK_MODULES(MONODOC_DEPENDENCY, monodoc >= $MONODOC_REQUIRED_VERSION, enable_monodoc=yes, enable_monodoc=no) </xsl:text> if test "x$enable_monodoc" = "xyes"; then AC_PATH_PROG(MONODOC, monodoc, no) if test x$MONODOC = xno; then enable_monodoc=no fi else MONODOC= fi AC_SUBST(MONODOC) AM_CONDITIONAL(ENABLE_MONODOC, test "x$enable_monodoc" = "xyes") winbuild=no case "$host" in *-*-mingw*|*-*-cygwin*) winbuild=yes ;; esac AM_CONDITIONAL(WINBUILD, test x$winbuild = xyes) <xsl:if test="@type='Exe' or @type='WinExe'">AC_CONFIG_FILES(<xsl:value-of select="$lcProjectName" />)</xsl:if> <xsl:if test="@type='Library'">AC_CONFIG_FILES(<xsl:value-of select="$projectName" />.pc)</xsl:if> AC_CONFIG_FILES(Makefile) AC_OUTPUT echo "===" echo "" echo "Project configuration summary" echo "" echo " * Installation prefix: $prefix" echo " * compiler: $CSC" echo " * Documentation: $enable_monodoc ($MONODOC)" echo " * Project Name: $PROJECT_NAME" echo " * Version: $PROJECT_VERSION" echo "" echo "===" </xsl:for-each> </xsl:template> </xsl:stylesheet> </ProjectConfigureAc> <ProjectMakefileAm> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:dnpb="http://dnpb.sourceforge.net/schemas/prebuild-1.7.xsd" exclude-result-prefixes="dnpb" xml:space="preserve" > <xsl:param name="projectName" /> <xsl:param name="solutionName" /> <xsl:param name="assemblyName" /> <xsl:variable name="lcProjectName"><xsl:value-of select="translate($projectName, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz')"/></xsl:variable> <xsl:param name="embeddedFiles" /> <xsl:param name="compiledFiles" /> <xsl:param name="contentFiles" /> <xsl:param name="extraDistFiles" /> <xsl:param name="pkgLibs" /> <xsl:param name="binaryLibs" /> <xsl:param name="systemLibs" /> <xsl:param name="localCopyTargets" /> <xsl:param name="hasAssemblyConfig" /> <xsl:template match="/"> <xsl:for-each select="//dnpb:Solution[@name=$solutionName]/dnpb:Project[@name=$projectName]"> <xsl:variable name="lcType"><xsl:value-of select="translate(@type, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz')" /></xsl:variable> ASSEMBLY=$(ASSEMBLY_NAME).$(ASSEMBLY_EXTENSION) <!-- If the project is an application, create targets for the wrapper script --> <xsl:if test="@type='Exe' or @type='WinExe'"> <xsl:value-of select="$lcProjectName" />dir = $(prefix)/lib/<xsl:value-of select="$lcProjectName" /> <xsl:value-of select="$lcProjectName" />_DATA = $(ASSEMBLY)<xsl:if test="$hasAssemblyConfig='true'"> $(ASSEMBLY).config</xsl:if> bin_SCRIPTS=<xsl:value-of select="$lcProjectName" /> </xsl:if><xsl:if test="@type='Library'"> pkgconfigdir = $(prefix)/lib/pkgconfig pkgconfig_DATA = <xsl:value-of select="$projectName" />.pc <xsl:if test="$hasAssemblyConfig='true'"> <xsl:value-of select="translate($lcProjectName, '.', '_')" />dir = $(prefix)/lib/mono/<xsl:value-of select="$projectName" /> <xsl:value-of select="translate($lcProjectName, '.', '_')" />_DATA = $(ASSEMBLY).config </xsl:if> noinst_DATA = $(ASSEMBLY) </xsl:if> PACKAGES =<xsl:value-of select="$pkgLibs" /> BINARY_LIBS =<xsl:value-of select="$binaryLibs" /> SYSTEM_LIBS =<xsl:value-of select="$systemLibs" /> RESOURCES_SRC =<xsl:value-of select="$embeddedFiles" /> RESOURCES = $(RESOURCES_SRC:.resx=.resources) SOURCES =<xsl:value-of select="$compiledFiles" /> EXTRA_DIST=$(SOURCES) $(BINARY_LIBS) $(RESOURCES_SRC) install-sh missing <xsl:value-of select="$extraDistFiles" /> CLEANFILES=$(ASSEMBLY) <xsl:value-of select="$localCopyTargets" /> <xsl:for-each select="//dnpb:Solution[@name=$solutionName]/dnpb:Project[@name=$projectName]/dnpb:Configuration"> <xsl:variable name="outputPath"><xsl:value-of select="dnpb:Options/dnpb:OutputPath/text()" /></xsl:variable> <xsl:variable name="keyFile"><xsl:value-of select="dnpb:Options/dnpb:KeyFile/text()" /></xsl:variable> <xsl:variable name="docFile"><xsl:value-of select="dnpb:Options/dnpb:XmlDocFile/text()" /></xsl:variable> <xsl:value-of select="$outputPath"/>/$(ASSEMBLY): $(srcdir)/$(ASSEMBLY).response $(RESOURCES) $(SOURCES) $(BINARY_LIBS) <xsl:call-template name="substring-after-last-mod"><xsl:with-param name="input" select="$keyFile" /><xsl:with-param name="substr" select="'/'" /></xsl:call-template> <xsl:if test="$docFile!=''">mkdir -p doc <xsl:text disable-output-escaping="yes">&&</xsl:text> </xsl:if>mkdir -p <xsl:value-of select="$outputPath" /> <xsl:text disable-output-escaping="yes">&&</xsl:text> $(CSC) /out:$@ \ /target:<xsl:value-of select="$lcType" /> \<xsl:if test="$embeddedFiles!=''"> $(addprefix /resource:$(srcdir)/, $(RESOURCES)) \</xsl:if><xsl:if test="$pkgLibs!=''"> $(addprefix /pkg:, $(PACKAGES)) \</xsl:if><xsl:if test="$systemLibs!=''"> $(addprefix /r:, $(SYSTEM_LIBS)) \</xsl:if><xsl:if test="$binaryLibs!=''"> $(addprefix /r:$(srcdir)/, $(BINARY_LIBS)) \</xsl:if> @$(srcdir)/$(ASSEMBLY).response \<xsl:if test="$docFile!=''"> /doc:doc/<xsl:value-of select="$docFile" /> \</xsl:if><xsl:if test="$keyFile!=''"> /keyfile:$(srcdir)/<xsl:call-template name="substring-after-last-mod"><xsl:with-param name="input" select="$keyFile" /><xsl:with-param name="substr" select="'/'" /></xsl:call-template> \</xsl:if><xsl:if test="dnpb:Options/dnpb:AllowUnsafe/text()='true'"> /unsafe \</xsl:if><xsl:text disable-output-escaping="yes"> && rm -f $(ASSEMBLY) \ && ln $@ $(ASSEMBLY)</xsl:text> CLEANFILES+=<xsl:value-of select="$outputPath"/>/$(ASSEMBLY) <!-- if this project config has a KeyFile --> <xsl:if test="$keyFile!=''">EXTRA_DIST+=<xsl:call-template name="substring-after-last-mod"><xsl:with-param name="input" select="$keyFile" /><xsl:with-param name="substr" select="'/'" /></xsl:call-template></xsl:if> <xsl:value-of select="@name" />: <xsl:value-of select="$outputPath"/>/$(ASSEMBLY)<xsl:text disable-output-escaping="yes"> rm -f $(ASSEMBLY) \ &&</xsl:text> ln <xsl:value-of select="$outputPath"/>/$(ASSEMBLY) $(ASSEMBLY) <!-- If the project is a library, create library-specific targets --> <xsl:if test="//dnpb:Solution[@name=$solutionName]/dnpb:Project[@name=$projectName]/@type='Library'"> <xsl:choose> <!-- If the project has a keyfile, make a gac install/uninstall target --> <xsl:when test="dnpb:Options/dnpb:KeyFile/text()!=''"> <xsl:value-of select="@name" />_install-data-local: <xsl:value-of select="$outputPath"/>/$(ASSEMBLY) echo "$(GACUTIL) /i $(ASSEMBLY) /f $(GACUTIL_FLAGS)"; \ $(GACUTIL) /i $(ASSEMBLY) /f $(GACUTIL_FLAGS) || exit 1; <xsl:value-of select="@name" />_uninstall-local: if [`gacutil -l <xsl:value-of select="$projectName" /> | grep "Number" | awk -F= '{print $$2}'` -gt "0" ] ; \ then \ echo "$(GACUTIL) /u $(ASSEMBLY_NAME) $(GACUTIL_FLAGS)"; \ $(GACUTIL) /u $(ASSEMBLY_NAME) $(GACUTIL_FLAGS) || exit 1; \ fi </xsl:when> <!-- If there is no keyfile for the project, define a filesystem install target --> <xsl:otherwise> noinst_<xsl:value-of select="@name" />_<xsl:value-of select="translate($lcProjectName, '.', '_')" />dir = $(prefix)/lib/mono/<xsl:value-of select="$projectName" /> noinst_<xsl:value-of select="@name" />_<xsl:value-of select="translate($lcProjectName, '.', '_')" />_DATA = <xsl:value-of select="$outputPath"/>/$(ASSEMBLY) </xsl:otherwise> </xsl:choose> </xsl:if> </xsl:for-each> <xsl:variable name="defaultConfig"><xsl:value-of select="//dnpb:Solution[@name=$solutionName]/dnpb:Project[@name=$projectName]/dnpb:Configuration/@name" /></xsl:variable> $(ASSEMBLY): <xsl:value-of select="$defaultConfig" /> <xsl:text disable-output-escaping="yes"> $(srcdir)/$(ASSEMBLY).response: $(srcdir)/Makefile echo "$(addprefix $(srcdir)/, $(SOURCES))" > $@ </xsl:text> all: $(ASSEMBLY) # rule to compile .resx files to .resources %.resources: %.resx $(RESGEN) /useSourcePath /compile $(@:.resources=.resx) <xsl:if test="@type='Library'"> <!-- if the default config has a KeyFile --> <xsl:choose> <xsl:when test="//dnpb:Solution[@name=$solutionName]/dnpb:Project[@name=$projectName]/dnpb:Configuration[@name=$defaultConfig]/dnpb:Options/dnpb:KeyFile/text()!=''"> install-data-local: <xsl:value-of select="$defaultConfig" />_install-data-local uninstall-local: <xsl:value-of select="$defaultConfig" />_uninstall-local </xsl:when> <!-- If the default config does not have a KeyFile, don't really do anything --> <xsl:otherwise> #<xsl:value-of select="translate($lcProjectName, '.', '_')" />dir+=$(noinst_<xsl:value-of select="$defaultConfig" />_<xsl:value-of select="translate($lcProjectName, '.', '_')" />dir) #<xsl:value-of select="translate($lcProjectName, '.', '_')" />_DATA+=$(noinst_<xsl:value-of select="$defaultConfig" />_<xsl:value-of select="translate($lcProjectName, '.', '_')" />_DATA) </xsl:otherwise> </xsl:choose> </xsl:if> </xsl:for-each> </xsl:template> <xsl:template name="substring-after-last" xml:space="default"> <xsl:param name="input" /> <xsl:param name="substr" /> <!-- Extract the string which comes after the first occurence --> <xsl:variable name="temp" select="substring-after($input,$substr)" /> <xsl:choose> <!-- If it still contains the search string then recursively process --> <xsl:when test="$substr and contains($temp,$substr)"> <xsl:call-template name="substring-after-last"> <xsl:with-param name="input" select="$temp" /> <xsl:with-param name="substr" select="$substr" /> </xsl:call-template> </xsl:when> <xsl:otherwise> <xsl:value-of select="$temp" /> </xsl:otherwise> </xsl:choose> </xsl:template> <xsl:template name="substring-after-last-mod" xml:space="default"> <xsl:param name="input" /> <xsl:param name="substr" /> <xsl:choose> <xsl:when test="contains($input,$substr)"> <xsl:call-template name="substring-after-last"> <xsl:with-param name="input" select="$input" /> <xsl:with-param name="substr" select="$substr" /> </xsl:call-template> </xsl:when> <xsl:otherwise> <xsl:value-of select="$input" /> </xsl:otherwise> </xsl:choose> </xsl:template> </xsl:stylesheet> </ProjectMakefileAm> <ProjectPcIn> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:dnpb="http://dnpb.sourceforge.net/schemas/prebuild-1.7.xsd" exclude-result-prefixes="dnpb" xml:space="preserve" > <!-- Removes the xml version header in the generated file --> <xsl:output method="text"/> <xsl:param name="projectName" /> <xsl:param name="solutionName" /> <xsl:variable name="lcProjectName"><xsl:value-of select="translate($projectName, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz')"/></xsl:variable> <xsl:template match="/"><xsl:for-each select="//dnpb:Solution[@name=$solutionName]/dnpb:Project[@name=$projectName]">prefix=@prefix@ exec_prefix=${prefix} libdir=${exec_prefix}/lib/mono/@PROJECT_NAME@ Name: <xsl:value-of select="@name" /> Description: <xsl:value-of select="Description/text()" /> Version: @PROJECT_VERSION@ Requires:<xsl:for-each select="Reference"><xsl:if test="@localCopy=false"><xsl:text disable-output-escaping="yes"> </xsl:text><xsl:value-of select="@name" /></xsl:if></xsl:for-each> Libs: -r:${libdir}/@PROJECT_NAME@.dll </xsl:for-each> </xsl:template> </xsl:stylesheet> </ProjectPcIn> <SolutionAutogenSh> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:dnpb="http://dnpb.sourceforge.net/schemas/prebuild-1.7.xsd" exclude-result-prefixes="dnpb" > <xsl:param name="solutionName" /> <xsl:template match="/"><xsl:text disable-output-escaping="yes">#!/bin/sh # Run this to generate all the initial makefiles, etc. # Ripped off from Mono, which ripped off from GNOME macros version DIE=0 srcdir=`dirname $0` test -z "$srcdir" && srcdir=. if [ -n "$MONO_PATH" ]; then # from -> /mono/lib:/another/mono/lib # to -> /mono /another/mono for i in `echo ${MONO_PATH} | tr ":" " "`; do i=`dirname ${i}` if [ -n "{i}" -a -d "${i}/share/aclocal" ]; then ACLOCAL_FLAGS="-I ${i}/share/aclocal $ACLOCAL_FLAGS" fi if [ -n "{i}" -a -d "${i}/bin" ]; then PATH="${i}/bin:$PATH" fi done export PATH fi (autoconf --version) < /dev/null > /dev/null 2>&1 || { echo echo "**Error**: You must have \`autoconf' installed to compile Mono." echo "Download the appropriate package for your distribution," echo "or get the source tarball at ftp://ftp.gnu.org/pub/gnu/" DIE=1 } if [ -z "$LIBTOOL" ]; then LIBTOOL=`which glibtool 2>/dev/null` if [ ! -x "$LIBTOOL" ]; then LIBTOOL=`which libtool` fi fi (grep "^AM_PROG_LIBTOOL" $srcdir/configure.ac >/dev/null) && { ($LIBTOOL --version) < /dev/null > /dev/null 2>&1 || { echo echo "**Error**: You must have \`libtool' installed to compile Mono." echo "Get ftp://ftp.gnu.org/pub/gnu/libtool-1.2d.tar.gz" echo "(or a newer version if it is available)" DIE=1 } } grep "^AM_GNU_GETTEXT" $srcdir/configure.ac >/dev/null && { grep "sed.*POTFILES" $srcdir/configure.ac >/dev/null || \ (gettext --version) < /dev/null > /dev/null 2>&1 || { echo echo "**Error**: You must have \`gettext' installed to compile Mono." echo "Get ftp://alpha.gnu.org/gnu/gettext-0.10.35.tar.gz" echo "(or a newer version if it is available)" DIE=1 } } (automake --version) < /dev/null > /dev/null 2>&1 || { echo echo "**Error**: You must have \`automake' installed to compile Mono." echo "Get ftp://ftp.gnu.org/pub/gnu/automake-1.3.tar.gz" echo "(or a newer version if it is available)" DIE=1 NO_AUTOMAKE=yes } # if no automake, don't bother testing for aclocal test -n "$NO_AUTOMAKE" || (aclocal --version) < /dev/null > /dev/null 2>&1 || { echo echo "**Error**: Missing \`aclocal'. The version of \`automake'" echo "installed doesn't appear recent enough." echo "Get ftp://ftp.gnu.org/pub/gnu/automake-1.3.tar.gz" echo "(or a newer version if it is available)" DIE=1 } if test "$DIE" -eq 1; then exit 1 fi if test -z "$*"; then echo "**Warning**: I am going to run \`configure' with no arguments." echo "If you wish to pass any to it, please specify them on the" echo \`$0\'" command line." echo fi case $CC in xlc ) am_opt=--include-deps;; esac if grep "^AM_PROG_LIBTOOL" configure.ac >/dev/null; then if test -z "$NO_LIBTOOLIZE" ; then echo "Running libtoolize..." ${LIBTOOL}ize --force --copy fi fi echo "Running aclocal $ACLOCAL_FLAGS ..." aclocal $ACLOCAL_FLAGS || { echo echo "**Error**: aclocal failed. This may mean that you have not" echo "installed all of the packages you need, or you may need to" echo "set ACLOCAL_FLAGS to include \"-I \$prefix/share/aclocal\"" echo "for the prefix where you installed the packages whose" echo "macros were not found" exit 1 } if grep "^AM_CONFIG_HEADER" configure.ac >/dev/null; then echo "Running autoheader..." autoheader || { echo "**Error**: autoheader failed."; exit 1; } fi echo "Running automake --gnu $am_opt ..." automake --add-missing --gnu $am_opt || { echo "**Error**: automake failed."; exit 1; } echo "Running autoconf ..." autoconf || { echo "**Error**: autoconf failed."; exit 1; } </xsl:text> <xsl:for-each select="/dnpb:Prebuild/dnpb:Solution[@name=$solutionName]/dnpb:Project"> echo Running <xsl:value-of select="@name" />/autogen.sh ... (cd $srcdir/<xsl:value-of select="@name" /> ; NOCONFIGURE=1 /bin/sh ./autogen.sh "$@") echo Done running <xsl:value-of select="@name" />/autogen.sh ... </xsl:for-each> <xsl:text disable-output-escaping="yes"> conf_flags="--enable-maintainer-mode --enable-compile-warnings" #--enable-iso-c if test x$NOCONFIGURE = x; then echo Running $srcdir/configure $conf_flags "$@" ... $srcdir/configure $conf_flags "$@" \ && echo Now type \`make\' to compile $PKG_NAME || exit 1 else echo Skipping configure process. fi </xsl:text> </xsl:template> </xsl:stylesheet> </SolutionAutogenSh> <SolutionConfigureAc> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:dnpb="http://dnpb.sourceforge.net/schemas/prebuild-1.7.xsd" exclude-result-prefixes="dnpb" xml:space="preserve" > <!-- Removes the xml version header in the generated file --> <xsl:output method="text"/> <xsl:param name="solutionName" /> <xsl:template match="/" >AC_INIT([<xsl:value-of select="$solutionName" />]-solution,[<xsl:value-of select="/dnpb:Prebuild/dnpb:Solution[@name=$solutionName]/@version" />]) AC_CONFIG_AUX_DIR(.) AM_INIT_AUTOMAKE([1.9 tar-ustar foreign]) EXTRA_DIST="install-sh missing" SOLUTION_NAME=<xsl:value-of select="$solutionName" /> SOLUTION_VERSION=$VERSION SOLUTION_DESCRIPTION="<xsl:value-of select="/dnpb:Prebuild/dnpb:Solution[@name=$solutionName]/dnpb:Description" />" AC_SUBST(DESCRIPTION) AM_MAINTAINER_MODE dnl AC_PROG_INTLTOOL([0.25]) AC_PROG_INSTALL AC_MSG_CHECKING([whether we're building from an RCS]) if test -f "$srcdir/.cvs_version" ; then from_rcs=cvs else if test -f "$srcdir/.svn/entries" ; then from_rcs=svn else from_rcs=no fi fi AC_MSG_RESULT($from_rcs) CONFIG="Release" AC_SUBST(CONFIG) <!-- TODO: Ensure that these SUBDIRS are processed in dependency order --> AC_CONFIG_SUBDIRS(<xsl:for-each select="/dnpb:Prebuild/dnpb:Solution[@name=$solutionName]/dnpb:Project"><xsl:text disable-output-escaping="yes"> </xsl:text><xsl:value-of select="@name" /> </xsl:for-each>) <xsl:text disable-output-escaping="yes"> AC_OUTPUT([ Makefile ]) echo "===" echo "" echo "Solution configuration summary" echo "" echo " * Solution Name: $SOLUTION_NAME" echo " * Version: $SOLUTION_VERSION" echo " * Packages:"</xsl:text> <xsl:for-each select="/dnpb:Prebuild/dnpb:Solution[@name=$solutionName]/dnpb:Project">echo " - <xsl:value-of select="@name" />" </xsl:for-each><xsl:text disable-output-escaping="yes">echo "" echo "===" </xsl:text> </xsl:template> </xsl:stylesheet> </SolutionConfigureAc> <SolutionMakefileAm> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:dnpb="http://dnpb.sourceforge.net/schemas/prebuild-1.7.xsd" exclude-result-prefixes="dnpb" xml:space="preserve" > <xsl:param name="solutionName" /> <xsl:template match="/">SUBDIRS =<xsl:for-each select="//dnpb:Solution[@name=$solutionName]/dnpb:Project"><xsl:text disable-output-escaping="yes"> </xsl:text><xsl:value-of select="@name" /></xsl:for-each> </xsl:template> </xsl:stylesheet> </SolutionMakefileAm> <ProjectWrapperScriptIn> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:dnpb="http://dnpb.sourceforge.net/schemas/prebuild-1.7.xsd" exclude-result-prefixes="dnpb" xml:space="preserve" > <!-- Removes the xml version header in the generated file --> <xsl:output method="text"/> <xsl:param name="projectName" /> <xsl:param name="assemblyName" /> <xsl:param name="solutionName" /> <xsl:param name="monoPath" /> <xsl:variable name="lcProjectName"><xsl:value-of select="translate($projectName, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz')"/></xsl:variable> <xsl:template match="/"><xsl:for-each select="//dnpb:Solution[@name=$solutionName]/dnpb:Project[@name=$projectName]">#! /bin/sh PACKAGE=<xsl:value-of select="$assemblyName" /> prefix=@prefix@ exec_prefix=@exec_prefix@ # %%$@%$# why oh why isn't it $sharedir/<xsl:value-of select="$lcProjectName" /> # Day changed to 30 Mar 2007 # ... # 07:50 < cj> why are we installing .exe assemblies to $prefix/lib/$package/ and # not $prefix/share/$package ? # 07:50 < jonp> momentum. # 07:50 < jonp> and it's hard to say that a .exe isn't platform specific # 07:50 < jonp> as it can still contain DllImport's which make platform # assumptions packagedir=$prefix/lib/<xsl:value-of select="$lcProjectName" /> export MONO_PATH=$MONO_PATH<xsl:value-of select="$monoPath" /> exec @RUNTIME@ $packagedir/$PACKAGE.exe "$@" </xsl:for-each> </xsl:template> </xsl:stylesheet> </ProjectWrapperScriptIn> </Autotools>