diff --git a/.cvsignore b/.cvsignore index e69de29..e7aa80b 100644 --- a/.cvsignore +++ b/.cvsignore @@ -0,0 +1 @@ +Healpix_2.11c_2009Feb19.tar.gz diff --git a/healpix-2.11c-shlib.patch b/healpix-2.11c-shlib.patch new file mode 100644 index 0000000..78f5b97 --- /dev/null +++ b/healpix-2.11c-shlib.patch @@ -0,0 +1,177 @@ +Compile the Fortran library into a shared object instead +of static library. + +Lubomir Rintel + +diff -up Healpix_2.11c/src/f90/alteralm/Makefile.shlib Healpix_2.11c/src/f90/alteralm/Makefile +--- Healpix_2.11c/src/f90/alteralm/Makefile.shlib 2005-02-24 11:22:59.000000000 +0100 ++++ Healpix_2.11c/src/f90/alteralm/Makefile 2009-04-03 13:00:43.000000000 +0200 +@@ -11,5 +11,5 @@ inc = alt_sub_inc.f90 + + default: $(exec) + +-$(exec): $(obj) $(LIBDIR)/libhealpix.a +- $(FC) $(FFLAGS) -o $(exec) $(obj) $(LDFLAGS) ++$(exec): $(obj) ++ $(FC) $(FFLAGS) -L$(LIBDIR) -lhealpix -o $(exec) $(obj) $(LDFLAGS) +diff -up Healpix_2.11c/src/f90/anafast/Makefile.shlib Healpix_2.11c/src/f90/anafast/Makefile +--- Healpix_2.11c/src/f90/anafast/Makefile.shlib 2005-02-16 05:55:38.000000000 +0100 ++++ Healpix_2.11c/src/f90/anafast/Makefile 2009-04-03 13:00:43.000000000 +0200 +@@ -11,5 +11,5 @@ inc = ana_sub_inc.f90 + + default: $(exec) + +-$(exec): $(obj) $(LIBDIR)/libhealpix.a +- $(FC) $(FFLAGS) -o $(exec) $(obj) $(LDFLAGS) ++$(exec): $(obj) ++ $(FC) $(FFLAGS) -L$(LIBDIR) -lhealpix -o $(exec) $(obj) $(LDFLAGS) +diff -up Healpix_2.11c/src/f90/hotspot/Makefile.shlib Healpix_2.11c/src/f90/hotspot/Makefile +--- Healpix_2.11c/src/f90/hotspot/Makefile.shlib 2009-04-03 13:01:12.000000000 +0200 ++++ Healpix_2.11c/src/f90/hotspot/Makefile 2009-04-03 13:01:27.000000000 +0200 +@@ -31,5 +31,5 @@ obj = maxima_tools.o HotSpots.o + + default: $(exec) + +-$(exec): $(obj) $(LIBDIR)/libhealpix.a +- $(FC) $(FFLAGS) -o $(exec) $(obj) $(LDFLAGS) ++$(exec): $(obj) ++ $(FC) $(FFLAGS) -L$(LIBDIR) -lhealpix -o $(exec) $(obj) $(LDFLAGS) +diff -up Healpix_2.11c/src/f90/lib/Makefile.shlib Healpix_2.11c/src/f90/lib/Makefile +--- Healpix_2.11c/src/f90/lib/Makefile.shlib 2005-01-28 08:33:25.000000000 +0100 ++++ Healpix_2.11c/src/f90/lib/Makefile 2009-04-03 13:00:43.000000000 +0200 +@@ -17,7 +17,7 @@ allobj = $(libobj) $(gifobj) $(modobj) + %.o: %.f90 + $(FC) $(FFLAGS) -c $< -o $@ + +-default: libgif.a ++default: libgif.so + + libgif.a: $(allobj) + $(AR) libgif.a $(allobj) +@@ -25,3 +25,16 @@ libgif.a: $(allobj) + @for p in *.$(MOD); do \ + cp $$p $(INCDIR)/; \ + done ++ ++# He's sick, he's sick, he's really really sick ++# he's sick, he's sick, he's really really sick ++# he's really really sick, he's really really sick ++# he's sick, he's sick. ++# -- Alice Cooper ++.PHONY: libgif.so ++libgif.so: $(allobj) ++ $(FC) $(FFLAGS) -o $@ -shared $(allobj) ++ cp -p $@ $(LIBDIR)/ ++ for p in *.$(MOD); do \ ++ cp $$p $(INCDIR)/; \ ++ done +diff -up Healpix_2.11c/src/f90/map2gif/Makefile.shlib Healpix_2.11c/src/f90/map2gif/Makefile +--- Healpix_2.11c/src/f90/map2gif/Makefile.shlib 2003-02-17 12:06:10.000000000 +0100 ++++ Healpix_2.11c/src/f90/map2gif/Makefile 2009-04-03 13:00:43.000000000 +0200 +@@ -31,5 +31,5 @@ obj = map2gif.o + + default: $(exec) + +-$(exec): $(obj) $(LIBDIR)/libhealpix.a $(LIBDIR)/libgif.a +- $(FC) $(FFLAGS) -o $(exec) $(obj) $(LDFLAGS) ++$(exec): $(obj) ++ $(FC) $(FFLAGS) -L$(LIBDIR) -lhealpix -lgif -o $(exec) $(obj) $(LDFLAGS) +diff -up Healpix_2.11c/src/f90/median_filter/Makefile.shlib Healpix_2.11c/src/f90/median_filter/Makefile +--- Healpix_2.11c/src/f90/median_filter/Makefile.shlib 2005-04-26 03:50:34.000000000 +0200 ++++ Healpix_2.11c/src/f90/median_filter/Makefile 2009-04-03 13:00:43.000000000 +0200 +@@ -11,5 +11,5 @@ inc = med_sub_inc.f90 + + default: $(exec) + +-$(exec): $(obj) $(LIBDIR)/libhealpix.a +- $(FC) $(FFLAGS) -o $(exec) $(obj) $(LDFLAGS) ++$(exec): $(obj) ++ $(FC) $(FFLAGS) -L$(LIBDIR) -lhealpix -o $(exec) $(obj) $(LDFLAGS) +diff -up Healpix_2.11c/src/f90/mod/Makefile.shlib Healpix_2.11c/src/f90/mod/Makefile +--- Healpix_2.11c/src/f90/mod/Makefile.shlib 2008-01-29 17:39:20.000000000 +0100 ++++ Healpix_2.11c/src/f90/mod/Makefile 2009-04-03 13:00:43.000000000 +0200 +@@ -65,7 +65,7 @@ obj = healpix_types.o extension.o misc_u + esac + + +-default: libhealpix.a healpix_fft.o ++default: libhealpix.so healpix_fft.o + + libhealpix.a: $(obj) $(incpix) $(incalm) $(incfits) $(incudgrade) + $(AR) libhealpix.a $(obj) +@@ -74,6 +74,15 @@ libhealpix.a: $(obj) $(incpix) $(incalm) + cp $$p $(INCDIR)/; \ + done + ++# Umm, well, the copying. Curse you, crazy-minded scientists! ++.PHONY: libhealpix.so ++libhealpix.so: $(obj) $(incpix) $(incalm) $(incfits) $(incudgrade) ++ $(FC) $(FFLAGS) -lcfitsio -o $@ -shared $(obj) ++ cp -p $@ $(LIBDIR)/ ++ for p in *.$(MOD); do \ ++ cp $$p $(INCDIR)/; \ ++ done ++ + alm_map_ss_inc.f90: alm_map_template.f90 gen_alm_code + ./gen_alm_code + +diff -up Healpix_2.11c/src/f90/ngsims_full_sky/Makefile.shlib Healpix_2.11c/src/f90/ngsims_full_sky/Makefile +--- Healpix_2.11c/src/f90/ngsims_full_sky/Makefile.shlib 2009-02-09 21:24:46.000000000 +0100 ++++ Healpix_2.11c/src/f90/ngsims_full_sky/Makefile 2009-04-03 13:00:43.000000000 +0200 +@@ -27,8 +27,8 @@ obj2 = sky_sub.o sub_ngpdf_powergauss. + + default: $(exec1) $(exec2) + +-$(exec1): $(obj1) $(LIBDIR)/libhealpix.a +- $(FC) $(FFLAGS) -o $(exec1) $(obj1) $(PGLIBS) $(LDFLAGS) ++$(exec1): $(obj1) ++ $(FC) $(FFLAGS) -L$(LIBDIR) -lhealpix -o $(exec1) $(obj1) $(PGLIBS) $(LDFLAGS) + +-$(exec2): $(obj2) $(LIBDIR)/libhealpix.a +- $(FC) $(FFLAGS) -o $(exec2) $(obj2) $(PGLIBS) $(LDFLAGS) ++$(exec2): $(obj2) ++ $(FC) $(FFLAGS) -L$(LIBDIR) -lhealpix -o $(exec2) $(obj2) $(PGLIBS) $(LDFLAGS) +diff -up Healpix_2.11c/src/f90/plmgen/Makefile.shlib Healpix_2.11c/src/f90/plmgen/Makefile +--- Healpix_2.11c/src/f90/plmgen/Makefile.shlib 2004-08-25 03:27:24.000000000 +0200 ++++ Healpix_2.11c/src/f90/plmgen/Makefile 2009-04-03 13:00:43.000000000 +0200 +@@ -10,5 +10,5 @@ obj = plmgen.o + + default: $(exec) + +-$(exec): $(obj) $(LIBDIR)/libhealpix.a +- $(FC) $(FFLAGS) -o $(exec) $(obj) $(LDFLAGS) ++$(exec): $(obj) ++ $(FC) $(FFLAGS) -L$(LIBDIR) -lhealpix -o $(exec) $(obj) $(LDFLAGS) +diff -up Healpix_2.11c/src/f90/smoothing/Makefile.shlib Healpix_2.11c/src/f90/smoothing/Makefile +--- Healpix_2.11c/src/f90/smoothing/Makefile.shlib 2005-02-24 11:22:59.000000000 +0100 ++++ Healpix_2.11c/src/f90/smoothing/Makefile 2009-04-03 13:00:43.000000000 +0200 +@@ -11,5 +11,5 @@ inc = smo_sub_inc.f90 + + default: $(exec) + +-$(exec): $(obj) $(LIBDIR)/libhealpix.a +- $(FC) $(FFLAGS) -o $(exec) $(obj) $(LDFLAGS) ++$(exec): $(obj) ++ $(FC) $(FFLAGS) -L$(LIBDIR) -lhealpix -o $(exec) $(obj) $(LDFLAGS) +diff -up Healpix_2.11c/src/f90/synfast/Makefile.shlib Healpix_2.11c/src/f90/synfast/Makefile +--- Healpix_2.11c/src/f90/synfast/Makefile.shlib 2005-02-16 05:55:38.000000000 +0100 ++++ Healpix_2.11c/src/f90/synfast/Makefile 2009-04-03 13:00:43.000000000 +0200 +@@ -11,5 +11,5 @@ inc = syn_sub_inc.f90 + + default: $(exec) + +-$(exec): $(obj) $(LIBDIR)/libhealpix.a +- $(FC) $(FFLAGS) -o $(exec) $(obj) $(LDFLAGS) ++$(exec): $(obj) ++ $(FC) $(FFLAGS) -L$(LIBDIR) -lhealpix -o $(exec) $(obj) $(LDFLAGS) +diff -up Healpix_2.11c/src/f90/ud_grade/Makefile.shlib Healpix_2.11c/src/f90/ud_grade/Makefile +--- Healpix_2.11c/src/f90/ud_grade/Makefile.shlib 2005-06-03 11:44:52.000000000 +0200 ++++ Healpix_2.11c/src/f90/ud_grade/Makefile 2009-04-03 13:00:43.000000000 +0200 +@@ -11,5 +11,5 @@ inc = udg_sub_inc.f90 + + default: $(exec) + +-$(exec): $(obj) $(LIBDIR)/libhealpix.a +- $(FC) $(FFLAGS) -o $(exec) $(obj) $(LDFLAGS) ++$(exec): $(obj) ++ $(FC) $(FFLAGS) -L$(LIBDIR) -lhealpix -o $(exec) $(obj) $(LDFLAGS) diff --git a/healpix.spec b/healpix.spec new file mode 100644 index 0000000..c2d6c39 --- /dev/null +++ b/healpix.spec @@ -0,0 +1,149 @@ +Name: healpix +Version: 2.11c +Release: 3%{?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 +Patch0: healpix-2.11c-shlib.patch + +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) + +BuildRequires: cfitsio-devel +BuildRequires: gcc-gfortran + +%description +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. + + +%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. + + +%package -n c%{name}-devel +Summary: HEALPix C Bindings Library development files +Group: Development/Libraries +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 + +%description fortran-devel +Fortran modules used for developing HEALPix applications. + + +%prep +%setup -q -n Healpix_%{version} +%patch0 -p1 -b .shlib + + +%build +### C bindings + +make %{?_smp_mflags} -C src/C/subs PIC="-fPIC" OPT="%{optflags}" \ + CFITSIO_INCDIR=%{_includedir}/cfitsio shared + +### F90 bindings + +# Make nonsense +export MOD=mod +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 + +# Compiler stuff +export FC=gfortran +export CFLAGS="%{optflags} -fPIC" +export FFLAGS="%{optflags} -fPIC -DGFORTRAN -I$INCDIR -ffree-line-length-none" + +# SMP make doesn't work +make -C src/f90/mod +make -C src/f90/lib +for dir in anafast map2gif hotspot smoothing synfast ud_grade plmgen \ + alteralm median_filter ngsims_full_sky +do + make -C src/f90/$dir +done + + +%install +rm -rf $RPM_BUILD_ROOT + +# Directory structure +install -d $RPM_BUILD_ROOT%{_bindir} +install -d $RPM_BUILD_ROOT%{_libdir} +install -d $RPM_BUILD_ROOT%{_includedir}/healpix + +# C bindings +make install -C src/C/subs LIBDIR=$RPM_BUILD_ROOT%{_libdir} \ + INCDIR=$RPM_BUILD_ROOT%{_includedir} + +# 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 + + +%clean +rm -rf $RPM_BUILD_ROOT + + +%files -n chealpix +%defattr(-,root,root,-) +%{_libdir}/libchealpix.so +%doc COPYING READ_Copyrights_Licenses.txt + + +%files -n chealpix-devel +%defattr(-,root,root,-) +%{_includedir}/chealpix.h + + +%files -n healpix-fortran +%defattr(-,root,root,-) +%{_bindir}/* +%{_libdir}/libhealpix.so +%{_libdir}/libgif.so +%doc COPYING READ_Copyrights_Licenses.txt + + +%files -n healpix-fortran-devel +%defattr(-,root,root,-) +%{_includedir}/healpix + + +%changelog +* Fri Apr 03 2009 Lubomir Rintel (Fedora Astronomy) - 2.11c-3 +- Build Fortran library as DSO + +* Thu Mar 26 2009 Jussi Lehtola - 2.11c-2 +- Add Fortran bindings. + +* Wed Mar 25 2009 Lubomir Rintel (Fedora Astronomy) - 2.11c-1 +- Initial packaging of the C bindings diff --git a/sources b/sources index e69de29..c8446f5 100644 --- a/sources +++ b/sources @@ -0,0 +1 @@ +df220b09bf71b746cee7fdd21c2968e5 Healpix_2.11c_2009Feb19.tar.gz