# # spec file for package jflex (Version 1.4.3) # # Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed # upon. The license for this file, and modifications and additions to the # file, is the same license as for the pristine package itself (unless the # license for the pristine package is not an Open Source License, in which # case the license is the MIT License). An "Open Source License" is a # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. # Please submit bugfixes or comments via http://bugs.opensuse.org/ # %define with() %{expand:%%{?with_%{1}:1}%%{!?with_%{1}:0}} %define without() %{expand:%%{?with_%{1}:0}%%{!?with_%{1}:1}} %define bcond_with() %{expand:%%{?_with_%{1}:%%global with_%{1} 1}} %define bcond_without() %{expand:%%{!?_without_%{1}:%%global with_%{1} 1}} %define _without_bootstrap 1 %bcond_with bootstrap %define section free Name: jflex # This line is not a comment, please do not remove it! #%(sh %{_sourcedir}/jpackage-bootstrap-prepare.sh %{_sourcedir} %{name}) Version: 1.4.3 Release: 2 Summary: Lexical Analyzer Generator for Java License: GPL v2 only Group: Development/Libraries/Java Url: http://www.jflex.de/ Source0: http://www.jflex.de/jflex-%{version}.tar.bz2 Source1: jflex.script Patch0: jflex-javac-no-target.patch Patch1: jflex-no-cup-no-jflex.patch Patch2: jflex-classpath.patch Patch3: jflex-lex-scan.patch Patch4: jflex-byaccj-utl.patch Requires: java_cup Requires: jpackage-utils BuildRequires: ant BuildRequires: java-cup-bootstrap %if %without bootstrap BuildRequires: jflex-bootstrap %endif BuildRequires: java-1_5_0-gcj-compat-devel BuildRequires: junit BuildArch: noarch BuildRoot: %{_tmppath}/%{name}-%{version}-build %description JFlex is a lexical analyzer generator for Java written in Java. It is also a rewrite of the very useful tool JLex which was developed by Elliot Berk at Princeton University. As Vern Paxson states for his C/C++ tool flex: they do not share any code though. Design goals The main design goals of JFlex are: * Full unicode support * Fast generated scanners * Fast scanner generation * Convenient specification syntax * Platform independence * JLex compatibility %if %without bootstrap %package javadoc License: GPL v2 only Group: Development/Libraries/Java Summary: Lexical Analyzer Generator for Java %description javadoc JFlex is a lexical analyzer generator for Java written in Java. It is also a rewrite of the very useful tool JLex which was developed by Elliot Berk at Princeton University. As Vern Paxson states for his C/C++ tool flex: they do not share any code though. Design goals The main design goals of JFlex are: * Full unicode support * Fast generated scanners * Fast scanner generation * Convenient specification syntax * Platform independence * JLex compatibility %package doc License: GPL v2 only Group: Development/Libraries/Java Summary: Lexical Analyzer Generator for Java %description doc JFlex is a lexical analyzer generator for Java written in Java. It is also a rewrite of the very useful tool JLex which was developed by Elliot Berk at Princeton University. As Vern Paxson states for his C/C++ tool flex: they do not share any code though. Design goals The main design goals of JFlex are: * Full unicode support * Fast generated scanners * Fast scanner generation * Convenient specification syntax * Platform independence * JLex compatibility %endif %prep %setup -q -n jflex-%{version} %{__perl} -pi -e 's/\r$//g' examples/standalone/sample.inp %{__rm} -rf src/java_cup find . -name '*.jar' | xargs -t %{__rm} %if %without bootstrap export CLASSPATH=$(build-classpath java-cup java-cup-runtime junit jflex) export OPT_JAR_LIST=: pushd src %ant realclean %ant jflex popd %endif %patch0 -p1 %if %with bootstrap %patch1 -p1 %else # You must use Re jflex.spec and have a java-cup and jflex installed %patch2 -p1 %patch3 -p1 %patch4 -p1 %endif %build pushd src %if %without bootstrap export CLASSPATH=$(build-classpath java-cup java-cup-runtime junit jflex) %else export CLASSPATH=$(build-classpath java-cup java-cup-runtime junit) %endif export OPT_JAR_LIST=: %ant -Dant.build.javac.source=1.5 -Dant.build.javac.target=1.5 jar %if %without bootstrap %{__mkdir_p} ../dist/docs/api %{javadoc} -d ../dist/docs/api `find . -type f -name "*.java"` %endif popd %install # jar %{__mkdir_p} %{buildroot}%{_javadir} %{__cp} -a lib/JFlex.jar %{buildroot}%{_javadir}/jflex-%{version}.jar (cd %{buildroot}%{_javadir} && for jar in *-%{version}*; do %{__ln_s} ${jar} `echo $jar| sed "s|-%{version}||g"`; done) # compatibility symlink (cd %{buildroot}%{_javadir} && %{__ln_s} jflex.jar JFlex.jar) %if %without bootstrap # javadoc %{__mkdir_p} 755 %{buildroot}%{_javadocdir}/%{name}-%{version} %{__cp} -a dist/docs/api/* %{buildroot}%{_javadocdir}/%{name}-%{version} %{__ln_s} %{name}-%{version} %{buildroot}%{_javadocdir}/%{name} %endif %{__mkdir_p} %{buildroot}%{_bindir} %{__install} -p -m 0755 %{SOURCE1} %{buildroot}%{_bindir}/jflex %clean %{__rm} -rf %{buildroot} %{__rm} -rf %{_builddir}/jflex %files %defattr(0644,root,root,0755) %doc COPYRIGHT src/README src/changelog %attr(0755,root,root) %{_bindir}/jflex %{_javadir}/jflex.jar %{_javadir}/jflex-%{version}.jar %{_javadir}/JFlex.jar %if %without bootstrap %files javadoc %defattr(0644,root,root,0755) %{_javadocdir}/%{name}-%{version} %{_javadocdir}/%{name} %files doc %defattr(0644,root,root,0755) %doc examples doc %endif %changelog * Tue May 05 2009 mvyskocil@suse.cz - Update to 1.4.3 (bugfix release) - Build using java-1_5_0-gcj to allow openjdk bootstrap - Recreated jflex-lex-scan.patch * Wed Apr 29 2009 mvyskocil@suse.cz - Initial packaging of jflex-bootstrap 1.4.2 in SUSE (from jpp5)