Blob Blame History Raw
# Copyright (c) 2000-2005, JPackage Project
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
#
# 1. Redistributions of source code must retain the above copyright
#    notice, this list of conditions and the following disclaimer.
# 2. Redistributions in binary form must reproduce the above copyright
#    notice, this list of conditions and the following disclaimer in the
#    documentation and/or other materials provided with the
#    distribution.
# 3. Neither the name of the JPackage Project nor the names of its
#    contributors may be used to endorse or promote products derived
#    from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#

%define grname      plexus

Name:       plexus-compiler
Version:    1.5.2
Release:    2jpp.1%{?dist}
Epoch:      0
Summary:    Compiler call initiators for Plexus
License:    MIT
Group:      Development/Java
URL:        http://plexus.codehaus.org/
# svn export svn://svn.plexus.codehaus.org/plexus/tags/plexus-compiler-1.5.2
# tar czf plexus-compiler-1.5.2.tar.gz plexus-compiler-1.5.2
Source0:    plexus-compiler-1.5.2.tar.gz

Source1:    plexus-compiler-1.5.2-api-build.xml
Source2:    plexus-compiler-1.5.2-compilers-aspectj-build.xml
Source3:    plexus-compiler-1.5.2-compilers-csharp-build.xml
Source4:    plexus-compiler-1.5.2-compilers-eclipse-build.xml
Source5:    plexus-compiler-1.5.2-compilers-javac-build.xml
Source6:    plexus-compiler-1.5.2-compilers-jikes-build.xml
Source7:    plexus-compiler-1.5.2-compilers-parent-build.xml
Source8:    plexus-compiler-1.5.2-manager-build.xml
Source9:    plexus-compiler-1.5.2-parent-build.xml
Source10:   plexus-compiler-1.5.2-test-build.xml

Patch0:     plexus-compiler-1.5.2-JikesCompiler.patch

BuildRoot:  %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)

BuildArch:      noarch
BuildRequires:  jpackage-utils >= 0:1.6
BuildRequires:  ant >= 0:1.6
BuildRequires:  ant-nodeps >= 0:1.6
BuildRequires:  junit
BuildRequires:  classworlds
BuildRequires:  eclipse-ecj
BuildRequires:  plexus-container-default
BuildRequires:  plexus-utils
#BuildRequires:  aspectj >= 0:1.2
#BuildRequires:  junit
#Requires:       aspectj >= 0:1.2
Requires:       classworlds
Requires:       eclipse-ecj
Requires:       plexus-container-default
Requires:       plexus-utils

%description
Plexus Compiler adds support for using various compilers from a unified api.

%package javadoc
Summary:        Javadoc for %{name}
Group:          Documentation

%description javadoc
Javadoc for %{name}.

%prep
%setup -q -n plexus-compiler-1.5.2
cp %{SOURCE1} plexus-compiler-api/build.xml
cp %{SOURCE2} plexus-compilers/plexus-compiler-aspectj/build.xml
cp %{SOURCE3} plexus-compilers/plexus-compiler-csharp/build.xml
cp %{SOURCE4} plexus-compilers/plexus-compiler-eclipse/build.xml
cp %{SOURCE5} plexus-compilers/plexus-compiler-javac/build.xml
cp %{SOURCE6} plexus-compilers/plexus-compiler-jikes/build.xml
cp %{SOURCE7} plexus-compilers/build.xml
cp %{SOURCE8} plexus-compiler-manager/build.xml
cp %{SOURCE9} build.xml
cp %{SOURCE10} plexus-compiler-test/build.xml

%patch0 -b .sav

%build
pushd plexus-compiler-api
mkdir -p target/lib
build-jar-repository -s -p target/lib \
    plexus/utils \
    plexus/container-default \
    classworlds

ant jar javadoc
popd

pushd plexus-compiler-manager
mkdir -p target/lib
cp ../plexus-compiler-api/target/plexus-compiler-api-1.5.2.jar target/lib/
build-jar-repository -s -p target/lib \
    plexus/container-default \
    plexus/utils \
    classworlds
ant jar javadoc
popd

#pushd plexus-compiler-test
## requires maven2
#mkdir -p target/lib
#cp ../plexus-compiler-api/target/plexus-compiler-api-1.5.2.jar target/lib/
#build-jar-repository -s -p target/lib \
#    maven \
#    plexus/utils \
#    plexus/container-default \
#    classworlds \
#    junit
#ant jar javadoc
#popd

pushd plexus-compilers

# FIXME: aspectj compiler disabled until Fedora gets aspectj. 
# NOTE: Upstream does NOT build this by default anyways..

# requires aspectj-1.5.0
#pushd plexus-compiler-aspectj
# tests require plexus-compiler-test, which requires maven2 in turn
#rm -rf src/test/java/*
#
#mkdir -p target/lib
#cp ../../plexus-compiler-api/target/plexus-compiler-api-1.5.2.jar target/lib/
#build-jar-repository -s -p target/lib \
#    plexus/container-default \
#    plexus/utils \
#    classworlds \
#    aspectjtools \
#    aspectjrt
#ant jar javadoc
#popd

pushd plexus-compiler-csharp
mkdir -p target/lib
cp ../../plexus-compiler-api/target/plexus-compiler-api-1.5.2.jar target/lib/
build-jar-repository -s -p target/lib \
    plexus/utils \
    plexus/container-default \
    classworlds \
    ant \
    ant/ant-nodeps
ant jar javadoc
popd
pushd plexus-compiler-eclipse
# tests require plexus-compiler-test, which requires maven2 in turn
rm -rf src/test/java/*
#
mkdir -p target/lib
cp ../../plexus-compiler-api/target/plexus-compiler-api-1.5.2.jar target/lib/
build-jar-repository -s -p target/lib \
    plexus/utils \
    plexus/container-default \
    classworlds \
    jdtcore
ant jar javadoc
popd
pushd plexus-compiler-javac
# tests require plexus-compiler-test, which requires maven2 in turn
rm -rf src/test/java/*
#
mkdir -p target/lib
cp ../../plexus-compiler-api/target/plexus-compiler-api-1.5.2.jar target/lib/
build-jar-repository -s -p target/lib \
    plexus/utils \
    plexus/container-default \
    classworlds
ant jar javadoc
popd
pushd plexus-compiler-jikes
# tests require plexus-compiler-test, which requires maven2 in turn
rm -rf src/test/java/*
#
mkdir -p target/lib
cp ../../plexus-compiler-api/target/plexus-compiler-api-1.5.2.jar target/lib/
build-jar-repository -s -p target/lib \
    plexus/utils \
    plexus/container-default \
    classworlds
ant jar javadoc
popd
popd


%install
rm -rf $RPM_BUILD_ROOT
# jars
install -d -m 755 $RPM_BUILD_ROOT%{_javadir}/plexus
install -pm 644 %{name}-api/target/%{name}-api-%{version}.jar \
  $RPM_BUILD_ROOT%{_javadir}/%{grname}/compiler-api-%{version}.jar
#install -pm 644 %{name}-test/target/%{name}-test-%{version}.jar \
#  $RPM_BUILD_ROOT%{_javadir}/%{grname}/compiler-test-%{version}.jar
install -pm 644 %{name}-manager/target/%{name}-manager-%{version}.jar \
  $RPM_BUILD_ROOT%{_javadir}/%{grname}/compiler-manager-%{version}.jar
#install -pm 644 %{grname}-compilers/plexus-compiler-aspectj/target/%{name}-aspectj-%{version}.jar \
#  $RPM_BUILD_ROOT%{_javadir}/%{grname}/compiler-aspectj-%{version}.jar
install -pm 644 %{grname}-compilers/plexus-compiler-csharp/target/%{name}-csharp-%{version}.jar \
  $RPM_BUILD_ROOT%{_javadir}/%{grname}/compiler-csharp-%{version}.jar
install -pm 644 %{grname}-compilers/plexus-compiler-eclipse/target/%{name}-eclipse-%{version}.jar \
  $RPM_BUILD_ROOT%{_javadir}/%{grname}/compiler-eclipse-%{version}.jar
install -pm 644 %{grname}-compilers/plexus-compiler-javac/target/%{name}-javac-%{version}.jar \
  $RPM_BUILD_ROOT%{_javadir}/%{grname}/compiler-javac-%{version}.jar
install -pm 644 %{grname}-compilers/plexus-compiler-jikes/target/%{name}-jikes-%{version}.jar \
  $RPM_BUILD_ROOT%{_javadir}/%{grname}/compiler-jikes-%{version}.jar
(cd 
    $RPM_BUILD_ROOT%{_javadir}/%{grname} && \
    for jar in *-%{version}*; do 
        ln -sf ${jar} `echo $jar| sed  "s|-%{version}||g"`; 
    done
)

# javadoc
install -d -m 755 $RPM_BUILD_ROOT%{_javadocdir}/%{name}-%{version}
install -d -m 755 $RPM_BUILD_ROOT%{_javadocdir}/%{name}-%{version}/api
install -d -m 755 $RPM_BUILD_ROOT%{_javadocdir}/%{name}-%{version}/manager
install -d -m 755 $RPM_BUILD_ROOT%{_javadocdir}/%{name}-%{version}/test
install -d -m 755 $RPM_BUILD_ROOT%{_javadocdir}/%{name}-%{version}/compilers
#install -d -m 755 $RPM_BUILD_ROOT%{_javadocdir}/%{name}-%{version}/compilers/aspectj
install -d -m 755 \
    $RPM_BUILD_ROOT%{_javadocdir}/%{name}-%{version}/compilers/csharp
install -d -m 755 \
    $RPM_BUILD_ROOT%{_javadocdir}/%{name}-%{version}/compilers/eclipse
install -d -m 755 \
    $RPM_BUILD_ROOT%{_javadocdir}/%{name}-%{version}/compilers/javac
install -d -m 755 \
    $RPM_BUILD_ROOT%{_javadocdir}/%{name}-%{version}/compilers/jikes
cp -pr %{name}-api/target/docs/apidocs/* \
    $RPM_BUILD_ROOT%{_javadocdir}/%{name}-%{version}/api
cp -pr %{name}-manager/target/docs/apidocs/* \
    $RPM_BUILD_ROOT%{_javadocdir}/%{name}-%{version}/manager
#cp -pr %{name}-test/target/docs/apidocs/* \
#    $RPM_BUILD_ROOT%{_javadocdir}/%{name}-%{version}/test
#cp -pr %{grname}-compilers/%{name}-aspectj/target/docs/apidocs/* $RPM_BUILD_ROOT%{_javadocdir}/%{name}-%{version}/compilers/aspectj
cp -pr %{grname}-compilers/%{name}-csharp/target/docs/apidocs/* \
    $RPM_BUILD_ROOT%{_javadocdir}/%{name}-%{version}/compilers/csharp
cp -pr %{grname}-compilers/%{name}-eclipse/target/docs/apidocs/* \
    $RPM_BUILD_ROOT%{_javadocdir}/%{name}-%{version}/compilers/eclipse
cp -pr %{grname}-compilers/%{name}-javac/target/docs/apidocs/* \
    $RPM_BUILD_ROOT%{_javadocdir}/%{name}-%{version}/compilers/javac
cp -pr %{grname}-compilers/%{name}-jikes/target/docs/apidocs/* \
    $RPM_BUILD_ROOT%{_javadocdir}/%{name}-%{version}/compilers/jikes
ln -s %{name}-%{version} $RPM_BUILD_ROOT%{_javadocdir}/%{name} # ghost symlink


%clean
rm -rf $RPM_BUILD_ROOT

%files
%defattr(-,root,root,-)
%{_javadir}/%{grname}/*

%files javadoc
%defattr(-,root,root,-)
%doc %{_javadocdir}/*

%changelog
* Thu Mar 08 2007 Deepak Bhole <dbhole@redhat.com> - 0:1.5.2-2jpp.1
- Fix license
- Disable aspectj compiler until we can put that into Fedora
- Remove vendor and distribution tags
- Removed javadoc post and postuns, with dirs being marked %%doc now
- Fix buildroot per Fedora spec

* Fri Jun 02 2006 Ralph Apel <r.apel at r-apel.de> - 0:1.5.2-2jpp
- Fix jar naming to previous plexus conventions

* Tue May 30 2006 Ralph Apel <r.apel at r-apel.de> - 0:1.5.2-1jpp
- First JPackage build