[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