Blob Blame History Raw
Epoch: 1
ExclusiveArch: i386 x86_64 ppc

%define gcj_support 		1
%define pkg_summary		C/C++ Development Tools (CDT) plugin for Eclipse
%define section			free
%define eclipse_name		eclipse
%define major   		3
%define minor   		0	
%define majmin  		%{major}.%{minor}
%define micro   		0
%define eclipse_base   		%{_datadir}/%{eclipse_name}
%define eclipse_lib_base 	%{_libdir}/%{eclipse_name}

# All arches line up except i386 -> x86
%ifarch %{ix86}
%define eclipse_arch    x86
%else
%define eclipse_arch   %{_arch}
%endif

Summary: 	%{pkg_summary}
Name: 		%{eclipse_name}-cdt
Version: 	%{majmin}.%{micro}_fc
Release: 	0.M6.5
License:	Eclipse Public License - v 1.0 (EPL) <http://www.eclipse.org/legal/epl-v10.html>
Group: 		Text Editors/Integrated Development Environments (IDE)
URL:		http://www.eclipse.org/cdt
Requires:	eclipse-platform


Source0: %{name}-fetched-src-3.0M6.tar.gz
Patch1: %{name}-no-cvs2-patch
Patch2: %{name}-platform-build-linux.patch
Patch3: %{name}-sdk-build-linux.patch
Patch4: %{name}-no-tests.patch
Patch5: %{name}-no-sdkbuild.patch
Patch6: %{name}-libhover.patch

BuildRequires: eclipse-pde
%if %{gcj_support}
BuildRequires:  gcc-java >= 4.0.0-1
BuildRequires:  java-1.4.2-gcj-compat-devel >= 1.4.2.0-40jpp_18rh
Requires(post,postun): java-1.4.2-gcj-compat >= 1.4.2.0-40jpp_18rh
%else
BuildRequires:	java-devel >= 1.4.2
%endif

Requires: 	ctags gdb make eclipse-platform

BuildRoot: 	%{_tmppath}/%{name}-buildroot

%description
The eclipse-cdt package contains Eclipse features and plugins that are
useful for C and C++ development.


%prep
%setup -q -c 
pushd "org.eclipse.cdt.releng"
%patch1 -p0
%patch2 -p0
%patch3 -p0
%patch4 -p0
%patch5 -p0
%patch6 -p0
popd

# Upstream CVS includes random .so files.  Let's remove them now.
# We actually remove the entire "os" directory since otherwise
# we wind up with some empty directories that we don't want.
#rm -r org.eclipse.cdt.releng/results/plugins/org.eclipse.cdt.core.linux/os

%build
export JAVA_HOME=%{java_home}
export PATH=%{java_bin}:/usr/bin:$PATH

# See comments in the script to understand this.
/bin/sh -x %{eclipse_base}/buildscripts/copy-platform SDK %{eclipse_base}
SDK=$(cd SDK >/dev/null && pwd)

# Eclipse may try to write to the home directory.
mkdir home

homedir=$(cd home > /dev/null && pwd)

pushd `pwd`
cd org.eclipse.cdt.releng

pushd results/plugins/org.eclipse.cdt.core.linux/library
make JAVA_HOME="%{java_home}" ARCH=%{eclipse_arch} CC='gcc -D_GNU_SOURCE'
popd

# Call eclipse headless to process changelong releng build scripts
# need -Dosgi.install.area for http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20198
java -cp  $SDK/startup.jar \
    -Duser.home=$homedir \
    -Dosgi.install.area=%{eclipse_base} \
    -Dorg.eclipse.core.runtime.ignoreLockFile=true \
     org.eclipse.core.launcher.Main \
    -application org.eclipse.ant.core.antRunner \
    -DjavacFailOnError=true \
    -DdontUnzip=true \
    -DbaseLocation=$SDK \
    -Dpde.build.scripts=$SDK/plugins/org.eclipse.pde.build_3.1.0/scripts \
    -DdontFetchAnything=true

if ! [ -e $(pwd)/org.eclipse.cdt.releng/results/org.eclipse.cdt-*-linux.%{eclipse_arch}* ]; then
     buildArch="x86"
else
     buildArch=%{eclipse_arch}
fi

%if %{gcj_support}
  mkdir native
  for file in $(pwd)/results/I.*/*.tar.gz; do
    case $file in
      */org.eclipse.cdt-*-linux.$buildArch.*)
  	 tar -zx -C native -f $file *.jar 
           cd native
           %ifarch %{ix86} ppc
             find-and-aot-compile %{name}-native "-fPIC -fjni -O2"
           %else
             find-and-aot-compile %{name}-native "-fPIC -fjni -O1"
           %endif
           mv %{name}-native.tar.gz ..
     ;;
    esac
  done	
%endif
popd

%install
rm -rf ${RPM_BUILD_ROOT}

install -d -m755 ${RPM_BUILD_ROOT}/%{eclipse_base}

if ! [ -e $(pwd)/org.eclipse.cdt.releng/results/org.eclipse.cdt-*-linux.%{eclipse_arch}* ]; then
     buildArch="x86"
else
     buildArch=%{eclipse_arch}
fi

for file in $(pwd)/org.eclipse.cdt.releng/results/I.*/*.tar.gz; do
  case $file in
    */org.eclipse.cdt-*-linux.$buildArch.*)
      # The ".." is needed since the zip files contain "eclipse/foo".
      (cd $RPM_BUILD_ROOT/%{eclipse_base}/.. && tar zxvf $file)
      ;;
  esac
done

%if %{gcj_support}

  # Create plugins directory in eclipse lib base
  install -d -m755 $RPM_BUILD_ROOT/%{eclipse_lib_base}/plugins

  cd org.eclipse.cdt.releng/native
  tar zxf ../%{name}-native.tar.gz
  mv %{name}-native/eclipse/plugins/* $RPM_BUILD_ROOT/%{eclipse_lib_base}/plugins

  # Directory to hold all the .jar->.so mapping dbs
  install -d -m 755 $RPM_BUILD_ROOT`gcj-dbtool -p %{_libdir}`
  install -d -m 755 $RPM_BUILD_ROOT`gcj-dbtool -p %{_libdir}`.d

  # Create the cdt database
  gcjdbdir=$RPM_BUILD_ROOT`gcj-dbtool -p %{_libdir}`.d
  mkdir -p $gcjdbdir
  gcj-dbtool -n $gcjdbdir/%{name}.db 8000

  # Populate it
  for j in `find $RPM_BUILD_ROOT/%{eclipse_base} -name \*.jar`; do
	lib=`echo $j | sed "s:%{_datadir}:%{_libdir}:"`.so;
	lib=`dirname $lib`/lib`basename $lib`;
	ls -l $lib;
	if [ -f $lib ]; then
	  gcj-dbtool -f $gcjdbdir/%{name}.db \
	    $j `echo $lib | sed "s:$RPM_BUILD_ROOT/::"`;
	fi;
  done;

%endif


# We move the libraries to libdir, leaving symlinks behind.  And since
# zip doesn't preserve file permissions, we must also mark all the .so
# files as executable.

(
cd $RPM_BUILD_ROOT
find ./%{eclipse_base} -name '*.so' -print |
while read sofile; do
  newname=$(echo "$sofile" | sed -e 's,^./%{eclipse_base},%{_libdir}/eclipse,')
  echo $newname
  mkdir -p ./$(dirname "$newname")
  mv $sofile ./$newname
  ln -s $newname $sofile
done
)

%clean 
rm -rf ${RPM_BUILD_ROOT}

%if %{gcj_support}
%post
/usr/bin/rebuild-gcj-db %{_libdir}

%postun
/usr/bin/rebuild-gcj-db %{_libdir}
%endif


%files
%defattr(-,root,root)
%if %{gcj_support}
%{eclipse_lib_base}/plugins/org.eclipse.cdt*
%{_libdir}/gcj-4.0.0/classmap.db.d/%{name}.db
%endif
%{eclipse_base}/features/org.eclipse.cdt*
%{eclipse_base}/plugins/org.eclipse.cdt*


# Cannot get dir name org.eclipse.cdt.source.linux.*.x86_2.0.2 to glob
# properly. Will fix later  
#%{eclipse_base}/features/org.eclipse.cdt.sdk_%{majmin}.%{micro}
#%{eclipse_base}/features/org.eclipse.cdt_%{majmin}.%{micro}
#%{eclipse_base}/features/org.eclipse.cdt.source_%{majmin}.%{micro}
#%{eclipse_base}/plugins/org.eclipse.cdt_%{majmin}.%{micro}
#%{eclipse_base}/plugins/org.eclipse.cdt.core_%{majmin}.%{micro}
#%{eclipse_base}/plugins/org.eclipse.cdt.core.linux_%{majmin}.%{micro}
#%{eclipse_base}/plugins/org.eclipse.cdt.debug.core_%{majmin}.%{micro}
#%{eclipse_base}/plugins/org.eclipse.cdt.debug.mi.core_%{majmin}.%{micro}
#%{eclipse_base}/plugins/org.eclipse.cdt.debug.mi.ui_%{majmin}.%{micro}
#%{eclipse_base}/plugins/org.eclipse.cdt.debug.ui_%{majmin}.%{micro}
#%{eclipse_base}/plugins/org.eclipse.cdt.doc.user_%{majmin}.%{micro}
#%{eclipse_base}/plugins/org.eclipse.cdt.launch_%{majmin}.%{micro}
#%{eclipse_base}/plugins/org.eclipse.cdt.make.core_%{majmin}.%{micro}
#%{eclipse_base}/plugins/org.eclipse.cdt.make.ui_%{majmin}.%{micro}
#%{eclipse_base}/plugins/org.eclipse.cdt.managedbuilder.core_%{majmin}.%{micro}
#%{eclipse_base}/plugins/org.eclipse.cdt.managedbuilder.ui_%{majmin}.%{micro}
#%{eclipse_base}/plugins/org.eclipse.cdt.sdk_%{majmin}.%{micro}
#%{eclipse_base}/plugins/org.eclipse.cdt.ui_%{majmin}.%{micro}
#%{eclipse_base}/plugins/org.eclipse.cdt.source_%{majmin}.%{micro}
#%{eclipse_base}/plugins/org.eclipse.cdt.source.linux*
#%{eclipse_base}/plugins/org.eclipse.cdt.ui.libhover_1.0.0
#%{eclipse_lib_base}/plugins/org.eclipse.cdt.core.linux_%{majmin}.%{micro}
#%{eclipse_lib_base}/plugins/org.eclipse.cdt.core_%{majmin}.%{micro}
#%{eclipse_lib_base}/plugins/org.eclipse.cdt.debug.core_%{majmin}.%{micro}
#%{eclipse_lib_base}/plugins/org.eclipse.cdt.debug.mi.core_%{majmin}.%{micro}
#%{eclipse_lib_base}/plugins/org.eclipse.cdt.debug.mi.ui_%{majmin}.%{micro}
#%{eclipse_lib_base}/plugins/org.eclipse.cdt.debug.ui_%{majmin}.%{micro}
#%{eclipse_lib_base}/plugins/org.eclipse.cdt.launch_%{majmin}.%{micro}
#%{eclipse_lib_base}/plugins/org.eclipse.cdt.make.core_%{majmin}.%{micro}
#%{eclipse_lib_base}/plugins/org.eclipse.cdt.make.ui_%{majmin}.%{micro}
#%{eclipse_lib_base}/plugins/org.eclipse.cdt.managedbuilder.core_%{majmin}.%{micro}
#%{eclipse_lib_base}/plugins/org.eclipse.cdt.managedbuilder.ui_%{majmin}.%{micro}
#%{eclipse_lib_base}/plugins/org.eclipse.cdt.ui.libhover_1.0.0
#%{eclipse_lib_base}/plugins/org.eclipse.cdt.ui_%{majmin}.%{micro}


%changelog
* Wed Apr 27 2005 Phil Muldoon <pmuldoon@redhat.com> 3.0.0_fc-0.M6.5
- Changed to find-and-aot-compile build usage
- Added "if gcj_support" toggle
- Fixed installing all arch fragments (now only installs one (correct) arch)
- Redid BuildRequires and Requires to remove old/unneeded dependencies
- Cleaned %eclipse_arch declares.

* Thu Apr 21 2005 Phil Muldoon <pmuldoon@redhat.com> 3.0.0_fc-0.M6.4
- Added Chris Moller's libhover patch

* Sat Apr 16 2005 Ben Konrath <bkonrath@redhat.com> 3.0.0_fc-0.M6.3
- Clean up spec file (remove references to old patches and rh docs).

* Fri Apr 15 2005 Phil Muldoon <pmuldoon@redhat.com> 3.0.0_fc-0.M6.2
- Generated tarball from official final tagged M6 build

* Mon Apr 11 2005 Phil Muldoon <pmuldoon@redhat.com> 3.0.0_fc-0.M6.1
- Fixed db path in java -cp
- Regenerated tarball from M6 canditate build
- Reworked patches for M6 canditate Build

* Thu Apr 07 2005 Phil Muldoon <pmuldoon@redhat.com> 3.0.0_fc-0.M5.4
- Changed Requires eclipse-ui to eclipse-platform
- Added Requires java-1.4.2-gcj-compat >= 1.4.2.0-40jpp_14rh
- Added Requires gcc-java >= 4.0.0-0.35

* Mon Apr 04 2005 Phil Muldoon <pmuldoon@redhat.com> 3.0.0_fc-0.M5.3
- Added eclipse-cdt-no-sdkbuild.patch to build for platform only (fc4 space crunch)

* Sun Apr 03 2005 Andrew Overholt <overholt@redhat.com> 3.0.0_fc-0.M5.2
- Make use of rebuild-gcj-db.
- Use system-wide classmap.db.

* Wed Mar 23 2005 Phil Muldoon <pmuldoon@redhat.com> 3.0.0-1
- Updated to upstream CDT 3.0.0 M5 sources
- Removed Source1 (rhdocs) for now
- Removed libhover patch until updated
- Added eclipse-cdt-platform-build-linux.patch
- Added eclipse-cdt-sdk-build-linux.patch
- Stopped tests build for now (Added eclipse-cdt-no-tests.patch)
- Added Requires gcc-java (bz# 151866)
- Added new central db logic

* Fri Mar 4 2005 Phil Muldoon <pmuldoon@redhat.com> 2.0.2-3
- Added x86_64 to ExclusiveArch

* Thu Mar 3 2005 Phil Muldoon <pmuldoon@redhat.com> 2.0.2-2
- Moved upstream sources back to 2.0.2
- Revered back to releng build
- Added native build sections to spec file

* Tue Jan 11 2005 Ben Konrath <bkonrath@redhat.com> 2.1.0-1
- add devel rpm and use the patched sources for it
- update sources to 2.1.0
- new build method that does not require pre-fetched sources

* Sun Nov 07 2004 Ben Konrath <bkonrath@redhat.com> 2.0.2-1
- Update sources to 2.0.2
- Change which files are unzipped in the install phase - this changed in 2.0.2
- Update Red Hat documentation sources
- Remove no-cvs-patch as it is no longer needed (no-cvs2-patch is still needed)
- Update ui-libhover-patch 
- Add how-to document for doc and source tarball generation
- Add fetch-tests-patch for tarball generation

* Mon Jul 26 2004 Jeremy Handcock <handcock@redhat.com> 2.0-11
- Update Red Hat documentation sources

* Fri Jul 23 2004 Tom Tromey <tromey@redhat.com> 2.0-10
- Set user.home on all java invocations

* Fri Jul 23 2004 Tom Tromey <tromey@redhat.com> 2.0-9
- Pass dontFetchAnything to the build

* Fri Jul 23 2004 Tom Tromey <tromey@redhat.com> 2.0-8
- Patch from Phil Muldoon to avoid cvs operations

* Fri Jul 23 2004 Jeremy Handcock <handcock@redhat.com> 2.0-7
- Don't build on ppc64
- Require eclipse-ui, not eclipse-platform

* Fri Jul 23 2004 Tom Tromey <tromey@redhat.com> 2.0-6
- Set user.home when building

* Wed Jul 21 2004 Tom Tromey <tromey@redhat.com> 2.0-5
- Make .so files executable

* Wed Jul 21 2004 Chris Moller <cmoller@redhat.com> 2.0-4
- Add texthover

* Tue Jul 20 2004 Jeremy Handcock <handcock@redhat.com> 2.0-4
- Update Red Hat documentation sources

* Fri Jul 16 2004 Tom Tromey <tromey@redhat.com> 2.0-3
- Make platform symlink tree before building

* Fri Jul 16 2004 Jeremy Handcock <handcock@redhat.com> 2.0-3
- Add Red Hat-specific documentation
- Use `name' macro in source and patch names
- Correct BuildRequires to eclipse-platform

* Tue Jul 13 2004 Jeremy Handcock <handcock@redhat.com> 2.0-2
- Don't require ant
- Prevent possible `build' section overload

* Mon Jul 12 2004 Tom Tromey <tromey@redhat.com> 2.0-2
- Document source fetching process
- Update to CDT 2.0 final
- Set -D_GNU_SOURCE when building

* Fri Jul  9 2004 Tom Tromey <tromey@redhat.com> 2.0-2
- Don't define prefix
- Don't require pango

* Fri Jul  9 2004 Jeremy Handcock <handcock@redhat.com> 2.0-2
- Update sources to include tests from upstream
- Add new build patch for CDT tests
- Build CDT tests, but don't install them

* Thu Jul  8 2004 Tom Tromey <tromey@redhat.com> 2.0-1
- Removed unused patch

* Thu Jul  8 2004 Jeremy Handcock <handcock@redhat.com> 2.0-1
- Revert previous patch; don't unset javacVerbose

* Thu Jul  8 2004 Jeremy Handcock <handcock@redhat.com> 2.0-1
- Unset javacVerbose

* Tue Jun 15 2004 Tom Tromey <tromey@redhat.com> 2.0-1
- Updated to 2.0 M8

* Mon Jan 19 2004 Tom Tromey <tromey@redhat.com> 1.2.1-1
- Initial version