summaryrefslogtreecommitdiff
path: root/libre/antlr2
diff options
context:
space:
mode:
Diffstat (limited to 'libre/antlr2')
-rw-r--r--libre/antlr2/PKGBUILD100
-rw-r--r--libre/antlr2/gcc4.4.patch12
-rw-r--r--libre/antlr2/mono.patch31
-rw-r--r--libre/antlr2/runantlr2.sh5
4 files changed, 148 insertions, 0 deletions
diff --git a/libre/antlr2/PKGBUILD b/libre/antlr2/PKGBUILD
new file mode 100644
index 000000000..a17f070ae
--- /dev/null
+++ b/libre/antlr2/PKGBUILD
@@ -0,0 +1,100 @@
+# Maintainer: Luke Shumaker <lukeshu@sbcglobal.net>
+# Maintainer (Arch): Andrea Scarpino <andrea@archlinux.org>
+# Contributor: George Giorgidze <giorgidze (at) gmail.com>
+# Contributor: Stefan Husmann <stefan-husmann@t-online.de>
+
+pkgbase=antlr2
+pkgname=(antlr2 antlr2-{java,python2,cxx,sharp})
+pkgver=2.7.7
+pkgdesc="ANother Tool for Language Recognition"
+url="http://www.antlr2.org/"
+license=('custom:Public Domain')
+
+pkgrel=5.1 # newer than Arch's 2.7.7-5
+arch=('i686' 'x86_64')
+options=('staticlibs')
+makedepends=('java-environment' 'python2' 'sh' 'nant' 'jh')
+
+source=("http://www.antlr2.org/download/antlr-${pkgver}.tar.gz"
+ "http://repo.maven.apache.org/maven2/antlr/antlr/$pkgver/antlr-$pkgver.pom"
+ 'runantlr2.sh' 'gcc4.4.patch' 'mono.patch')
+md5sums=('01cc9a2a454dd33dcd8c856ec89af090'
+ '78af3de823003f6d8dded39c70bc30ae'
+ '78e9bf86bd44722f232f80bc7b04dcfe'
+ '158677e4c0f357afbb56656231a54815'
+ '0d1960d27ff81f2fea0dd35a8290216f')
+
+build() {
+ cd "${srcdir}/antlr-${pkgver}"
+
+ patch -Np1 -i "${srcdir}"/gcc4.4.patch
+ patch -Np1 -i "${srcdir}"/mono.patch
+
+ ./configure --prefix=/usr --disable-examples
+ make -j1
+
+ cd lib/csharp
+ nant release
+}
+
+_install_license() {
+ install -Dm644 "$srcdir"/antlr-${pkgver}/LICENSE.txt \
+ "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
+
+package_antlr2() {
+ depends=('sh' 'antlr2-java')
+
+ install -Dm755 "$srcdir"/runantlr2.sh "$pkgdir"/usr/bin/runantlr2
+ _install_license
+}
+
+package_antlr2-java() {
+ pkgdesc+=" (Java version)"
+ depends=('java-runtime')
+
+ provides=("java-antlr2=$pkgver")
+ conflicts=("java-antlr2")
+ replaces=("java-antlr2")
+
+ DESTDIR="$pkgdir" jh mvn-install antlr antlr $pkgver \
+ "$srcdir"/antlr-${pkgver}.pom \
+ "$srcdir"/antlr-${pkgver}/antlr/antlr.jar \
+ antlr2.jar
+
+ _install_license
+}
+
+package_antlr2-python2() {
+ pkgdesc+=" (Python version)"
+ depends=('python2')
+
+ provides=("python2-antlr2=$pkgver")
+ conflicts=("python2-antlr2")
+ replaces=("python2-antlr2")
+
+ cd "$srcdir"/antlr-${pkgver}/lib/python
+ python2 setup.py install --root="${pkgdir}" --optimize=1
+
+ _install_license
+}
+
+package_antlr2-cxx() {
+ pkgdesc+=" (C++ version)"
+
+ cd "$srcdir"/antlr-${pkgver}/lib/cpp
+ make -j1 prefix="${pkgdir}/usr" install
+
+ _install_license
+}
+
+package_antlr2-sharp() {
+ pkgdesc+=" (C Sharp version)"
+ depends=('mono')
+
+ cd "$srcdir"/antlr-${pkgver}/lib/csharp
+ install -d "$pkgdir"/usr/share
+ make -j1 prefix="${pkgdir}/usr" install
+
+ _install_license
+}
diff --git a/libre/antlr2/gcc4.4.patch b/libre/antlr2/gcc4.4.patch
new file mode 100644
index 000000000..15e25fb00
--- /dev/null
+++ b/libre/antlr2/gcc4.4.patch
@@ -0,0 +1,12 @@
+diff -Nur antlr-2.7.7.orig/lib/cpp/antlr/CharScanner.hpp antlr-2.7.7/lib/cpp/antlr/CharScanner.hpp
+--- antlr-2.7.7.orig/lib/cpp/antlr/CharScanner.hpp
++++ antlr-2.7.7/lib/cpp/antlr/CharScanner.hpp
+@@ -10,6 +10,8 @@
+
+ #include <antlr/config.hpp>
+
++#include <cstdio>
++#include <cstring>
+ #include <map>
+
+ #ifdef HAS_NOT_CCTYPE_H
diff --git a/libre/antlr2/mono.patch b/libre/antlr2/mono.patch
new file mode 100644
index 000000000..59c78d811
--- /dev/null
+++ b/libre/antlr2/mono.patch
@@ -0,0 +1,31 @@
+diff -ruN antlr-2.7.7.orig/lib/csharp/antlr.runtime.build antlr-2.7.7/lib/csharp/antlr.runtime.build
+--- antlr-2.7.7.orig/lib/csharp/antlr.runtime.build 2006-11-01 16:37:17.000000000 -0500
++++ antlr-2.7.7/lib/csharp/antlr.runtime.build 2013-05-14 20:07:32.000000000 -0400
+@@ -25,6 +25,9 @@
+
+ <!-- Use script task to get this from AssemblyInfo.cs using a regular expression -->
+ <script language="C#">
++ <imports>
++ <import namespace="System.Text.RegularExpressions" />
++ </imports>
+ <code><![CDATA[
+ public static void ScriptMain(Project project) {
+ string assemblyInfoFileName = Path.Combine(project.BaseDirectory, "antlr.runtime/AssemblyInfo.cs");
+@@ -122,7 +125,7 @@
+ </csc>
+
+ <!-- copy the antlr.runtime assembly to the astframe build folder -->
+- <copy file="${compile.dir}\${project.FileName}.dll" tofile="${astframe.compile.dir}\${project.FileName}.dll" />
++ <copy file="${compile.dir}/${project.FileName}.dll" tofile="${astframe.compile.dir}/${project.FileName}.dll" />
+
+ <!-- compile antlr.astframe.dll -->
+ <csc target="library" output="${astframe.compile.dir}/${astframe.FileName}.dll" debug="${debug}" doc="${astframe.build.dir}/${astframe.FileName}.xml">
+@@ -134,7 +137,7 @@
+ <include name="System.dll" />
+ <include name="System.Drawing.dll" />
+ <include name="System.Windows.Forms.dll" />
+- <include name="${astframe.compile.dir}\${project.FileName}.dll" />
++ <include name="${astframe.compile.dir}/${project.FileName}.dll" />
+ </references>
+ <arg value="/nowarn:1591"/>
+ </csc>
diff --git a/libre/antlr2/runantlr2.sh b/libre/antlr2/runantlr2.sh
new file mode 100644
index 000000000..aebc9dfa7
--- /dev/null
+++ b/libre/antlr2/runantlr2.sh
@@ -0,0 +1,5 @@
+#!/bin/sh
+echo Running 'java antlr.Tool $*' with /usr/share/java/antlr2.jar appended to the CLASSPATH variable
+export CLASSPATH
+CLASSPATH=$CLASSPATH:/usr/share/java/antlr2.jar
+java antlr.Tool "$@"