[java-sig-commits] [relaxngcc/f16] Initial import for f16.
gil
gil at fedoraproject.org
Sat Feb 25 00:32:16 UTC 2012
commit 36ae8b21c760b3ad14b1f18a69526cf08aa43029
Author: gil <puntogil at libero.it>
Date: Sat Feb 25 00:34:10 2012 +0100
Initial import for f16.
relaxngcc-build.xml | 233 +++++++++++++++++++++++++++++++++++++++++----------
relaxngcc.spec | 186 ++++++++++++++++++++++-------------------
2 files changed, 290 insertions(+), 129 deletions(-)
---
diff --git a/relaxngcc-build.xml b/relaxngcc-build.xml
index 905bd36..96c53fc 100644
--- a/relaxngcc-build.xml
+++ b/relaxngcc-build.xml
@@ -1,44 +1,191 @@
<?xml version="1.0"?>
-
-<project name="relaxngcc" default="jar">
-
- <!-- Compile Java source files: -->
- <target name="compile">
- <mkdir dir="bin"/>
- <javacc target="src/relaxngcc/javabody/JavaBodyParser.jj" outputdirectory="src/relaxngcc/javabody" javacchome="lib" static="false"/>
- <javac srcdir="src" destdir="bin" debug="on" optimize="off" classpath="lib">
- <classpath>
- <fileset dir="lib" includes="**/*.jar"/>
- </classpath>
- </javac>
- </target>
-
- <!-- Generate javadoc documentation: -->
- <target name="javadoc" depends="compile">
- <mkdir dir="javadoc"/>
- <javadoc locale="en_US" sourcepath="src" destdir="javadoc" windowtitle="RelaxNGCC" public="yes">
- <package name="relaxngcc.*"/>
- <classpath>
- <fileset dir="lib" includes="*.jar"/>
- </classpath>
- </javadoc>
- </target>
-
- <!-- Create the jar file: -->
- <target name="jar" depends="compile">
- <tstamp/>
- <jar jarfile="relaxngcc.jar">
- <manifest>
- <attribute name="Version" value="${DSTAMP}"/>
- <attribute name="Main-Class" value="relaxngcc.RelaxNGCC"/>
- </manifest>
- <fileset dir="src" includes="**/*.properties"/>
- <fileset dir="src" includes="**/*.xsl"/>
- <fileset dir="src" includes="**/*.jelly"/>
- <fileset dir="src" includes="relaxngcc/runtime/*.java"/>
- <fileset dir="bin" includes="**/*.class"/>
- <fileset dir="." includes="project.xml"/>
- </jar>
- </target>
-
-</project>
+<project name="RELAXNGCC" basedir="." default="jar">
+
+ <taskdef name="relaxngcc" classname="relaxngcc.ant.RelaxNGCCTask">
+ <classpath path="lib/bootstrap-relaxngcc.jar"/>
+ </taskdef>
+
+ <!-- use bootstrap RelaxNGCC to compile the parser -->
+ <target name="ngcc">
+
+ <mkdir dir="src/relaxngcc/parser/automata"/>
+
+ <relaxngcc source="src/relaxngcc/parser/relaxng.rng"
+ targetdir="src/relaxngcc/parser/state"
+ automata="src/relaxngcc/parser/automata">
+
+ <!-- up-to-date check parameters -->
+ <depends dir="src/relaxngcc/parser" includes="relaxng.rng"/>
+ <produces dir="src/relaxngcc/parser/automata" includes="*.gif"/>
+ <produces dir="src/relaxngcc/parser/state" includes="*.java"/>
+ </relaxngcc>
+
+ <mkdir dir="src/relaxngcc/datatype/parser" />
+
+ <relaxngcc source="src/relaxngcc/datatype/datatype.rng"
+ targetdir="src/relaxngcc/datatype/parser">
+
+ <!-- up-to-date check parameters -->
+ <depends dir="src/relaxngcc/datatype" includes="datatype.rng"/>
+ <produces dir="src/relaxngcc/datatype/parser" includes="*.java"/>
+ </relaxngcc>
+ </target>
+
+ <!-- compile Java source files -->
+ <target name="compile" depends="ngcc">
+ <mkdir dir="bin"/>
+ <javacc target="src/relaxngcc/javabody/JavaBodyParser.jj"
+ outputdirectory="src/relaxngcc/javabody"
+ javacchome="/usr/share/java"
+ static="false"/>
+ <javac
+ srcdir="src"
+ destdir="bin"
+ debug="on"
+ optimize="off"
+ classpath="bin">
+
+ <classpath>
+ <fileset dir="/usr/share/java" includes="msv-msv.jar"/>
+ <fileset dir="/usr/share/java" includes="msv-xsdlib.jar"/>
+ <fileset dir="/usr/share/java" includes="relaxngDatatype.jar"/>
+ <fileset dir="/usr/share/java" includes="xerces-j2.jar"/>
+ <fileset dir="/usr/share/java" includes="javacc.jar"/>
+ <!--fileset dir="/usr/share/java" includes="common-jelly.jar"/-->
+ <fileset dir="/usr/share/java" includes="relaxngcc.jar"/>
+ <fileset dir="lib" includes="bootstrap-relaxngcc.jar"/>
+ </classpath>
+ </javac>
+ </target>
+
+ <!-- generate javadoc documentation from the working copy -->
+ <target name="javadoc" depends="compile">
+ <mkdir dir="javadoc"/>
+ <javadoc locale="en_US"
+ sourcepath="src"
+ destdir="javadoc"
+ windowtitle="RelaxNGCC"
+ public="yes"
+ >
+
+ <package name="relaxngcc.*"/>
+ <classpath>
+ <fileset dir="/usr/share/java" includes="msv-msv.jar"/>
+ <fileset dir="/usr/share/java" includes="msv-xsdlib.jar"/>
+ <fileset dir="/usr/share/java" includes="relaxngDatatype.jar"/>
+ <fileset dir="/usr/share/java" includes="xerces-j2.jar"/>
+ <!--fileset dir="/usr/share/java" includes="common-jelly.jar"/-->
+ <fileset dir="/usr/share/java" includes="relaxngcc.jar"/>
+ <fileset dir="lib" includes="bootstrap-relaxngcc.jar"/>
+ </classpath>
+ </javadoc>
+ </target>
+
+ <!-- document generation -->
+ <target name="doc">
+ <javac srcdir="docgen" destdir="docgen" />
+
+ <mkdir dir="htdocs/en"/>
+ <mkdir dir="htdocs/ja"/>
+ <copy todir="htdocs/ja">
+ <fileset dir="htdocs">
+ <include name="*.*"/>
+ </fileset>
+ </copy>
+ <copy todir="htdocs/en">
+ <fileset dir="htdocs">
+ <include name="*.*"/>
+ </fileset>
+ </copy>
+
+ <taskdef name="docgen" classname="DocGenTask">
+ <classpath>
+ <pathelement path="docgen"/>
+ </classpath>
+ </taskdef>
+
+ <docgen language="ja">
+ <src dir="htdocs" includes="*.htm"/>
+ </docgen>
+ <docgen language="en">
+ <src dir="htdocs" includes="*.htm"/>
+ </docgen>
+ </target>
+
+ <target name="jar" depends="compile">
+ <tstamp/>
+
+<echo file="bin/METAINF.MF"
+>Version: ${DSTAMP}
+Main-Class: relaxngcc.RelaxNGCC
+Class-Path: relaxngDatatype.jar msv-xsdlib.jar msv-msv.jar xml-commons-apis.jar xerces-j2.jar
+</echo>
+ <jar jarfile="relaxngcc.jar" compress="false" manifest="bin/METAINF.MF">
+ <fileset dir="src" includes="**/*.properties"/>
+ <fileset dir="src" includes="**/*.xsl"/>
+ <!--fileset dir="src" includes="**/*.jelly"/-->
+ <fileset dir="src" includes="relaxngcc/runtime/*.java"/>
+ <fileset dir="bin" includes="**/*.class"/>
+ <fileset dir="." includes="project.xml"/>
+ </jar>
+ <delete file="bin/METAINF.MF"/>
+ </target>
+
+ <!-- create a distribution package -->
+ <target name="release" depends="jar,javadoc,doc">
+ <tstamp />
+ <property name="stage" value="relaxngcc-${DSTAMP}"/>
+
+ <!-- creates distribution package -->
+ <mkdir dir="package" />
+ <zip zipfile="package/${stage}.zip">
+ <zipfileset dir="." includes="relaxngcc.jar" fullpath="${stage}/relaxngcc.jar" />
+ <zipfileset dir="src" includes="**/*.*" prefix="${stage}/src" />
+ <zipfileset dir="sample" includes="**/*.*" prefix="${stage}/sample" />
+ <zipfileset dir="htdocs" includes="ja/*.*,en/*.*" prefix="${stage}/doc">
+ <exclude name="**/.cvsignore"/>
+ </zipfileset>
+ <zipfileset dir="doc" includes="**/*.*" prefix="${stage}"/>
+ <zipfileset dir="lib" prefix="${stage}">
+ <!--include name="relaxngDatatype.jar" />
+ <include name="xerces.jar" />
+ <include name="msv.jar" />
+ <include name="xsdlib.jar" /-->
+ </zipfileset>
+ </zip>
+ </target>
+
+
+ <!-- use working copy of RelaxNGCC to compile the parser. useful for test -->
+ <target name="self-ngcc">
+ <taskdef name="self-relaxngcc" classname="relaxngcc.ant.RelaxNGCCTask">
+ <classpath path="bin"/>
+ <classpath path="src"/>
+ <classpath path="./lib/bootstrap-relaxngcc.jar:/usr/share/java/relaxngDatatype.jar"/>
+ </taskdef>
+
+ <mkdir dir="src/relaxngcc/parser/automata"/>
+ <delete dir="src/relaxngcc/parser/automata" includes="*.gif" />
+ <delete dir="src/relaxngcc/parser/state" includes="*.java" />
+
+ <self-relaxngcc source="src/relaxngcc/parser/relaxng.rng"
+ targetdir="src/relaxngcc/parser/state"
+ automata="src/relaxngcc/parser/automata">
+ </self-relaxngcc>
+
+
+ <mkdir dir="src/relaxngcc/datatype/parser" />
+
+ <self-relaxngcc source="src/relaxngcc/datatype/datatype.rng"
+ targetdir="src/relaxngcc/datatype/parser" />
+ </target>
+
+
+ <target name="clean">
+ <delete dir="javadoc"/>
+ <delete dir="bin"/>
+ <delete dir="src/relaxngcc/parser/state" includes="*.java" />
+ <delete dir="src/relaxngcc/parser/automata" includes="*.gif" />
+ <delete dir="testCases" includes="**/*.java, **/*.class, **/*.gif"/>
+ </target>
+</project>
\ No newline at end of file
diff --git a/relaxngcc.spec b/relaxngcc.spec
index 24181b2..3a15012 100644
--- a/relaxngcc.spec
+++ b/relaxngcc.spec
@@ -1,129 +1,143 @@
-Name: relaxngcc
-Version: 1.12
-Release: 3%{?dist}
-Summary: RELAX NG Compiler Compiler
-Group: Development/Libraries
-
-License: ASL 1.1
-
-Url: http://relaxngcc.sourceforge.net/en/index.htm
-
-Source0: http://prdownloads.sourceforge.net/relaxngcc/relaxngcc-20031218.zip
-Source1: %{name}-build.xml
+%define with_bootstrap 1
+%define src_date 20031218
+
+Name: relaxngcc
+Version: 1.12
+Release: 2%{?dist}
+Summary: RELAX NG Compiler Compiler
+Group: Development/Libraries
+License: ASL 1.1
+Url: http://relaxngcc.sourceforge.net/en/index.htm
+Source0: http://prdownloads.sourceforge.net/relaxngcc/relaxngcc-%{src_date}.zip
+Source1: relaxngcc-build.xml
+
+BuildRequires: java-devel >= 1:1.6.0
+BuildRequires: jpackage-utils
+BuildRequires: dos2unix
BuildRequires: ant
+BuildRequires: graphviz
BuildRequires: javacc
-BuildRequires: jpackage-utils
BuildRequires: msv-msv
BuildRequires: msv-xsdlib
BuildRequires: relaxngDatatype
BuildRequires: xerces-j2
BuildRequires: xml-commons-apis
-BuildRequires: dos2unix
-
-Requires: msv-msv
-Requires: msv-xsdlib
-Requires: relaxngDatatype
-Requires: xerces-j2
-Requires: xml-commons-apis
-
-BuildArch: noarch
-
+%if !%with_bootstrap
+BuildRequires: %{name} = %{version}
+%endif
+
+Requires: ant
+Requires: msv-msv
+Requires: msv-xsdlib
+Requires: relaxngDatatype
+Requires: xerces-j2
+Requires: xml-commons-apis
+Requires: java >= 1:1.6.0
+Requires: jpackage-utils
+BuildArch: noarch
%description
-RelaxNGCC is a tool for generating Java source code from a given RELAX NG
-grammar. By embedding code fragments in the grammar like yacc or JavaCC, you can
-take appropriate actions while parsing valid XML documents against the grammar.
-
+RelaxNGCC is a tool for generating Java source code from a
+given RELAX NG grammar. By embedding code fragments in the
+grammar like yacc or JavaCC, you can take appropriate
+actions while parsing valid XML documents against the
+grammar.
%package javadoc
-Group: Development/Libraries
-Summary: Javadoc for %{name}
-Requires: jpackage-utils
-
+Group: Documentation
+Summary: Javadoc for %{name}
+Requires: %{name} = %{version}-%{release}
+Requires: jpackage-utils
%description javadoc
+RELAX NG Compiler Compiler.
+
This package contains javadoc for %{name}.
+%package manual
+Group: Documentation
+Summary: Documents for %{name}
-%prep
+%description manual
+RELAX NG Compiler Compiler.
-# Prepare the original sources:
-%setup -q -n relaxngcc-20031218
+This package contains documents for %{name}.
-# Remove all the binary files:
-find . -name '*.class' -delete
-find . -name '*.jar' -delete
+%prep
+%setup -q -n %{name}-%{src_date}
-# Remove the sources that will be generated with JavaCC:
-rm src/relaxngcc/javabody/*.java
+cp %{SOURCE1} build.xml
-# Remove to avoid dependency on commons-jelly:
-rm src/relaxngcc/maven/ChildAntProjectTag.java
+find -name '*.class' -exec rm -f '{}' \;
-# Some of the sources don't use the correct end of line encoding, so to be
-# conservative fix all of them:
+mkdir lib
+%if %with_bootstrap
+ find -name '*.jar' ! -iname "%{name}.jar" -exec rm -f '{}' \;
+ mv %{name}.jar lib/bootstrap-%{name}.jar
+%else
+ find -name '*.jar' -exec rm -f '{}' \;
+ ln -sf $(build-classpath relaxngcc) bootstrap-relaxngcc.jar
+%endif
+
+# javacc regenerated source code
+rm -rf src/relaxngcc/javabody/ParseException.java
+rm -rf src/relaxngcc/javabody/SimpleCharStream.java
+rm -rf src/relaxngcc/javabody/Token.java
+rm -rf src/relaxngcc/javabody/TokenMgrError.java
+rm -rf src/relaxngcc/javabody/JavaBodyParser.java
+
+# require common-jelly in classpath
+rm -rf src/relaxngcc/maven/ChildAntProjectTag.java
+
+# fix the correct end of line encoding
find . -type f -exec dos2unix {} \;
-# Some of the source files contain characters outside of the ASCII set that
-# cause problems when compiling, so make sure that they are translated to
-# ASCCI:
-sources='
-src/relaxngcc/builder/SwitchBlockInfo.java
-'
-for source in ${sources}
-do
- native2ascii -encoding UTF8 ${source} ${source}
-done
+# fix the source files contain characters outside of the ASCII set
+(
+ cd src/relaxngcc/builder
+ native2ascii -encoding UTF8 SwitchBlockInfo.java SwitchBlockInfo.java
+)
+# remove the sources that will be generated with relaxngcc itself
+rm -rf src/relaxngcc/parser/automata/*.gif
+rm -rf src/relaxngcc/parser/state/*.java
%build
-
-# Populate the lib directory with references to the jar files required for the
-# build:
-mkdir lib
-pushd lib
- ln -sf $(build-classpath msv-msv) .
- ln -sf $(build-classpath relaxngDatatype) .
- ln -sf $(build-classpath xerces-j2) .
- ln -sf $(build-classpath msv-xsdlib) .
- ln -sf $(build-classpath javacc) .
-popd
-
-# Put the ant build files in place:
-cp %{SOURCE1} build.xml
-
-# Run the ant build:
-ant jar javadoc
-
+# bootstrap
+ant -Dant.build.javac.source=1.5 -Dant.build.javac.target=1.5 clean jar
+rm -rf bin/relaxngcc lib/bootstrap-%{name}.jar
+mv %{name}.jar lib/bootstrap-%{name}.jar
+# relaxngcc rebuild itself
+ant -Dant.build.javac.source=1.5 -Dant.build.javac.target=1.5 clean jar javadoc
%install
-# Jar files:
mkdir -p %{buildroot}%{_javadir}
-install -pm 644 relaxngcc.jar %{buildroot}%{_javadir}/%{name}.jar
+install -pm 644 %{name}.jar %{buildroot}%{_javadir}/%{name}.jar
-# Javadoc files:
mkdir -p %{buildroot}%{_javadocdir}/%{name}
-cp -pr javadoc/* %{buildroot}%{_javadocdir}/%{name}/.
-
+cp -pr javadoc/* %{buildroot}%{_javadocdir}/%{name}
%files
-%{_javadir}/*
+%{_javadir}/%{name}.jar
%doc src/HOWTO-readAutomata.txt LICENSE.txt readme.txt
-%doc doc/*
+%pre javadoc
+[ $1 -gt 1 ] && [ -L %{_javadocdir}/%{name} ] && \
+rm -rf $(readlink -f %{_javadocdir}/%{name}) %{_javadocdir}/%{name} || :
%files javadoc
-%{_javadocdir}/*
+%{_javadocdir}/%{name}
%doc LICENSE.txt
-%changelog
-* Tue Feb 14 2012 Juan Hernandez <juan.hernandez at redhat.com> 1.12-3
-- Changed license to ASL 1.1
+%files manual
+%doc doc/* LICENSE.txt
-* Tue Feb 14 2012 Juan Hernandez <juan.hernandez at redhat.com> 1.12-2
-- Cleanups of the spec file
+%changelog
+* Wed Feb 22 2012 gil cattaneo <puntogil at libero.it> 1.12-2
+- fix wrong file end of line encoding
+- fix license field
-* Sat Jan 21 2012 Marek Goldmann <mgoldman at redhat.com> 1.12-1
-- Initial packaging
+* Mon Jul 27 2009 gil cattaneo <puntogil at libero.it> 1.12-1
+- initial rpm
\ No newline at end of file
More information about the java-sig-commits
mailing list