rpms/healpix/devel healpix.spec,1.1,1.2
Lubomir Rintel
lkundrak at fedoraproject.org
Tue Apr 7 08:45:07 UTC 2009
Author: lkundrak
Update of /cvs/pkgs/rpms/healpix/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv19607/devel
Modified Files:
healpix.spec
Log Message:
Import -5 revision that was actually reviewed
Index: healpix.spec
===================================================================
RCS file: /cvs/pkgs/rpms/healpix/devel/healpix.spec,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- healpix.spec 7 Apr 2009 07:04:19 -0000 1.1
+++ healpix.spec 7 Apr 2009 08:44:37 -0000 1.2
@@ -1,17 +1,20 @@
Name: healpix
Version: 2.11c
-Release: 3%{?dist}
+Release: 5%{?dist}
Summary: Hierarchical Equal Area isoLatitude Pixelization of a sphere
Group: Development/Libraries
License: GPLv2+
URL: http://healpix.jpl.nasa.gov/
Source0: http://download.sourceforge.net/healpix/Healpix_2.11c_2009Feb19.tar.gz
+Source1: healpix-f90test.sh
Patch0: healpix-2.11c-shlib.patch
+Patch1: healpix-2.11c-gcc44.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: cfitsio-devel
+BuildRequires: gcc-c++
BuildRequires: gcc-gfortran
%description
@@ -20,13 +23,63 @@
subdivision of a spherical surface in which each pixel covers the same
surface area as every other pixel.
+This package contains Fortran binaries and libraries.
+
+NB. Due to some generic names, the binaries have been renamed to start with
+hp_, e.g. anafast is now hp_anafast.
+
+
+%package devel
+Summary: Healpix Fortran headers
+Group: Development/Libraries
+Requires: %{name} = %{version}-%{release}
+
+%description devel
+This package contains the Fortran module files needed to compile against
+the HEALPix Fortran libraries.
+
+
+%package c++
+Summary: Healpix C++ binaries and libraries
+Group: System Environment/Libraries
+
+%description c++
+HEALPix is an acronym for Hierarchical Equal Area isoLatitude Pixelization
+of a sphere. As suggested in the name, this pixelization produces a
+subdivision of a spherical surface in which each pixel covers the same
+surface area as every other pixel.
+
+This package contains HEALPix binaries and libraries that are written in C++.
+
+NB. Due to some generic names, the binaries have been renamed to start with
+hp_, e.g. anafast is now hp_anafast.
+
+
+%package c++-devel
+Summary: Healpix C++ headers
+Group: System Environment/Libraries
+Requires: %{name}-c++ = %{version}-%{release}
+
+%description c++-devel
+HEALPix is an acronym for Hierarchical Equal Area isoLatitude Pixelization
+of a sphere. As suggested in the name, this pixelization produces a
+subdivision of a spherical surface in which each pixel covers the same
+surface area as every other pixel.
+
+This package contains development headers for the C++ part of HEALPix.
+
%package -n c%{name}
Summary: HEALPix C Bindings Library
Group: System Environment/Libraries
%description -n c%{name}
-Library for tools that use HEALPix C bindings.
+HEALPix is an acronym for Hierarchical Equal Area isoLatitude Pixelization
+of a sphere. As suggested in the name, this pixelization produces a
+subdivision of a spherical surface in which each pixel covers the same
+surface area as every other pixel.
+
+This package contains the library for tools that use HEALPix C bindings.
%package -n c%{name}-devel
@@ -35,36 +88,78 @@
Requires: c%{name} = %{version}
%description -n c%{name}-devel
-Include file for development with HEALPix.
-
-
-%package fortran
-Summary: HEALPix Fortran binaries
-Group: Applications/Engineering
-
-%description fortran
-Fortran HEALPix library and binaries.
-
-
-%package fortran-devel
-Summary: HEALPix Fortran headers and static libraries
-Group: Development/Libraries
+HEALPix is an acronym for Hierarchical Equal Area isoLatitude Pixelization
+of a sphere. As suggested in the name, this pixelization produces a
+subdivision of a spherical surface in which each pixel covers the same
+surface area as every other pixel.
-%description fortran-devel
-Fortran modules used for developing HEALPix applications.
+This package contains the C include file for development with HEALPix.
%prep
%setup -q -n Healpix_%{version}
%patch0 -p1 -b .shlib
+%patch1 -p1 -b .gcc44
+
+# Fortran tests:
+rm test/README
+install -p -m 755 %{SOURCE1} runtest.sh
+# Remove patch backup from doc
+rm src/cxx/test/*.shlib
%build
+# Generic stuff
+export CC="gcc"
+export CXX="g++"
+export CXXL="g++"
+export FC="gfortran"
+
+
### C bindings
+export CFITSIO_LIBDIR="%{_libdir}"
make %{?_smp_mflags} -C src/C/subs PIC="-fPIC" OPT="%{optflags}" \
CFITSIO_INCDIR=%{_includedir}/cfitsio shared
+make %{?_smp_mflags} -C src/C/subs PIC="-fPIC" OPT="%{optflags} " \
+ CFITSIO_INCDIR=%{_includedir}/cfitsio test_chealpix2
+
+make %{?_smp_mflags} -C src/C/subs PIC="-fPIC" OPT="%{optflags}" \
+ CFITSIO_INCDIR=%{_includedir}/cfitsio test_cio
+
+
+### C++ bindings
+
+# directories
+export DESTBIN=$PWD/cxxbin
+export DESTINC=$PWD/cxxinc
+export DESTLIB=$PWD/cxxlib
+export DESTDOC=$PWD/cxxdoc
+mkdir -p $DESTBIN $DESTINC $DESTLIB $DESTDOC
+
+export INCDIR="%{_includedir}/cfitsio"
+export LIBDIR=$DESTLIB
+
+# Make nonsense
+export TEMP1="."
+export PARAMFILE=$PWD/src/cxx/config/rules.common
+
+# Compiler flags
+export CCFLAGS_NO_C="%{optflags} -I%{_includedir}/cfitsio -I$PWD/src/cxx/cxxsupport -fPIC -I${DESTINC} -fopenmp"
+export CCFLAGS="$CCFLAGS_NO_C -c"
+export CXXFLAGS="$CCFLAGS"
+export CXXFLAGS_NO_C="$CCFLAGS_NO_C"
+export CXXCFLAGS="$CCFLAGS"
+export CXXLFLAGS="%{optflags} -L. -L$DESTLIB"
+export CXX_EXTRALIBS="-lcfitsio -lhealpix_cxx -lhealpix_cxxsupport -lhealpix_fft --as-needed"
+
+# SMP make doesn't work
+for dir in cxxsupport libfftpack Healpix_cxx alice docsrc; do
+ make -C src/cxx/$dir -f planck.make SRCROOT=$PWD/src/cxx/$dir
+done
+
+
### F90 bindings
# Make nonsense
@@ -72,13 +167,12 @@
export OS=Linux
# Directories for the created include, library and binary files
-export BINDIR=$PWD/bin
-export INCDIR=$PWD/include
-export LIBDIR=$PWD/lib
-mkdir $INCDIR $LIBDIR $BINDIR
+export BINDIR=$PWD/f90bin
+export INCDIR=$PWD/f90inc
+export LIBDIR=$PWD/f90lib
+mkdir -p $INCDIR $LIBDIR $BINDIR
# Compiler stuff
-export FC=gfortran
export CFLAGS="%{optflags} -fPIC"
export FFLAGS="%{optflags} -fPIC -DGFORTRAN -I$INCDIR -ffree-line-length-none"
@@ -91,6 +185,19 @@
make -C src/f90/$dir
done
+# Rename binaries
+cd f90bin
+for exec in *; do
+ mv $exec hp_$exec
+done
+cd ..
+
+cd cxxbin
+mv median_filter median_filter_cxx # Binary with same name exists in Fortran
+for exec in *; do
+ mv $exec hp_$exec
+done
+cd ..
%install
rm -rf $RPM_BUILD_ROOT
@@ -104,41 +211,119 @@
make install -C src/C/subs LIBDIR=$RPM_BUILD_ROOT%{_libdir} \
INCDIR=$RPM_BUILD_ROOT%{_includedir}
+# C test binaries
+install -p -m 0755 src/C/subs/test_chealpix2 $RPM_BUILD_ROOT%{_bindir}
+install -p -m 0755 src/C/subs/test_cio $RPM_BUILD_ROOT%{_bindir}
+
+# C++ stuff
+install -p cxxbin/* $RPM_BUILD_ROOT%{_bindir}
+install -p cxxlib/* $RPM_BUILD_ROOT%{_libdir}
+install -pm 0644 cxxinc/* $RPM_BUILD_ROOT%{_includedir}/healpix
+
# Fortran stuff
-install -p bin/* $RPM_BUILD_ROOT%{_bindir}
-install -p lib/* $RPM_BUILD_ROOT%{_libdir}
-install -pm 0644 include/* $RPM_BUILD_ROOT%{_includedir}/healpix
+install -p f90bin/* $RPM_BUILD_ROOT%{_bindir}
+install -p f90lib/* $RPM_BUILD_ROOT%{_libdir}
+install -pm 0644 f90inc/* $RPM_BUILD_ROOT%{_includedir}/healpix
%clean
rm -rf $RPM_BUILD_ROOT
-%files -n chealpix
+%post -p /sbin/ldconfig
+%postun -p /sbin/ldconfig
+
+
+%post c++ -p /sbin/ldconfig
+%postun c++ -p /sbin/ldconfig
+
+
+%post -n c%{name} -p /sbin/ldconfig
+%postun -n c%{name} -p /sbin/ldconfig
+
+
+%files
%defattr(-,root,root,-)
-%{_libdir}/libchealpix.so
-%doc COPYING READ_Copyrights_Licenses.txt
+%{_bindir}/hp_alteralm
+%{_bindir}/hp_anafast
+%{_bindir}/hp_hotspot
+%{_bindir}/hp_map2gif
+%{_bindir}/hp_median_filter
+%{_bindir}/hp_plmgen
+%{_bindir}/hp_sky_ng_sim
+%{_bindir}/hp_sky_ng_sim_bin
+%{_bindir}/hp_smoothing
+%{_bindir}/hp_synfast
+%{_bindir}/hp_ud_grade
+%{_libdir}/libhealpix.so
+%{_libdir}/libhealpix_gif.so
+%doc COPYING READ_Copyrights_Licenses.txt test
-%files -n chealpix-devel
+%files devel
%defattr(-,root,root,-)
-%{_includedir}/chealpix.h
+%dir %{_includedir}/healpix
+%{_includedir}/healpix/*.mod
-%files -n healpix-fortran
+%files c++
%defattr(-,root,root,-)
-%{_bindir}/*
-%{_libdir}/libhealpix.so
-%{_libdir}/libgif.so
+%{_bindir}/hp_alice2
+%{_bindir}/hp_alice_test
+%{_bindir}/hp_alm2map_cxx
+%{_bindir}/hp_anafast_cxx
+%{_bindir}/hp_calc_powspec
+%{_bindir}/hp_generateTexture
+%{_bindir}/hp_hotspots_cxx
+%{_bindir}/hp_hpxtest
+%{_bindir}/hp_map2tga
+%{_bindir}/hp_median_filter_cxx
+%{_bindir}/hp_mult_alm
+%{_bindir}/hp_rotalm_cxx
+%{_bindir}/hp_smoothing_cxx
+%{_bindir}/hp_syn_alm_cxx
+%{_bindir}/hp_testMollweideSkyMap
+%{_bindir}/hp_testOrthogonalSkyMap
+%{_bindir}/hp_testSoSSkyMap
+%{_bindir}/hp_udgrade_cxx
+%{_libdir}/libhealpix_cxx.so
+%{_libdir}/libhealpix_cxxsupport.so
+%{_libdir}/libhealpix_fft.so
+
+
+%files c++-devel
+%defattr(-,root,root,-)
+%dir %{_includedir}/healpix
+%{_includedir}/healpix/*.h
+%doc src/cxx/test
+
+
+%files -n chealpix
+%defattr(-,root,root,-)
+%{_libdir}/libchealpix.so
%doc COPYING READ_Copyrights_Licenses.txt
-%files -n healpix-fortran-devel
+%files -n chealpix-devel
%defattr(-,root,root,-)
-%{_includedir}/healpix
+%{_bindir}/test_chealpix2
+%{_bindir}/test_cio
+%{_includedir}/chealpix.h
%changelog
+* Sat Apr 04 2009 Lubomir Rintel (Fedora Astronomy) <lkundrak at v3.sk> - 2.11c-5
+- Minor style adjustments
+- Don't override sane gcc flags
+- Moved tests to -devel packages
+- C++ -devel doesn't depend on fortran ones anymore
+- mkdir with -p to allow short-circuit builds
+- Fix build with GCC 4.4
+
+* Sat Apr 04 2009 Jussi Lehtola <jussi.lehtola at iki.fi> - 2.11c-4
+- Review fixes.
+- Add C++ bindings, rename C++ and Fortran binaries (general names!).
+
* Fri Apr 03 2009 Lubomir Rintel (Fedora Astronomy) <lkundrak at v3.sk> - 2.11c-3
- Build Fortran library as DSO
More information about the scm-commits
mailing list