%define _libdir64 %{_prefix}/lib64 Name: netcdf-cxx4 Version: 4.2 Release: 1 Summary: NetCDF-4 C++ library Group: Applications/Engineering License: NetCDF URL: http://www.unidata.ucar.edu/software/netcdf/ Source0: http://www.unidata.ucar.edu/downloads/netcdf/ftp/%{name}-%{version}.tar.gz BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root BuildRequires: sed BuildRequires: netcdf-devel >= 4.1.3 Requires: netcdf >= 4.1.3 %description netCDF-4 C++ library. %package devel Summary: Development files for netCDF-4 C++ API Group: Development/Libraries Requires: %{name}%{?_isa} = %{version}-%{release} Requires: pkg-config Requires: netcdf-devel >= 4.1.3 %description devel Development files for netCDF-4 C++ API. %prep %setup -q # fix line endings /opt/freeware/bin/sed -i -e 's/\r//' examples/*.cpp mkdir ../32bit mv * ../32bit mv ../32bit . mkdir 64bit cd 32bit && tar cf - . | (cd ../64bit ; tar xpf -) %build export CONFIG_SHELL=/usr/bin/ksh export CONFIG_ENV_ARGS=/usr/bin/ksh export CC="xlc_r" export CXX="xlC_r" export CFLAGS="-qmaxmem=16384 -DSYSV -D_AIX -D_AIX32 -D_AIX41 -D_AIX43 -D_AIX51 -D_ALL_SOURCE -DFUNCPROTO=15 -O -I/opt/freeware/include -D_LARGE_FILES" export CXXFLAGS="$CFLAGS" cd 64bit # first build the 64-bit version export OBJECT_MODE=64 export LDFLAGS="-L/opt/freeware/lib64 -L/opt/freeware/lib -Wl,-blibpath:/opt/freeware/lib64:/opt/freeware/lib:/usr/lib:/lib -Wl,-bmaxdata:0x80000000" ./configure \ --prefix=%{_prefix} \ --libdir=%{_libdir64} \ --mandir=%{_mandir} \ --enable-shared --disable-static make %{?_smp_mflags} cd ../32bit # now build the 32-bit version export OBJECT_MODE=32 export LDFLAGS="-L/opt/freeware/lib -Wl,-blibpath:/opt/freeware/lib:/usr/lib:/lib -Wl,-bmaxdata:0x80000000" ./configure \ --prefix=%{_prefix} \ --mandir=%{_mandir} \ --enable-shared --disable-static make %{?_smp_mflags} %install [ "${RPM_BUILD_ROOT}" != "/" ] && rm -rf ${RPM_BUILD_ROOT} cd 64bit export OBJECT_MODE=64 make install DESTDIR=${RPM_BUILD_ROOT} ( cd ${RPM_BUILD_ROOT}%{_bindir} for f in * ; do mv -f ${f} ${f}_64 done ) cd ../32bit export OBJECT_MODE=32 gmake DESTDIR=${RPM_BUILD_ROOT} install /usr/bin/strip -X32_64 ${RPM_BUILD_ROOT}%{_bindir}/* || : ( cd ${RPM_BUILD_ROOT}%{_libdir64} for f in *.a ; do /usr/bin/ar -X64 -x ${f} done cd ${RPM_BUILD_ROOT}%{_libdir} for f in *.a ; do /usr/bin/ar -X32 -x ${f} done ) # add the 64-bit shared objects to the shared libraries containing already the # 32-bit shared objects for f in cdf_c++4 ; do /usr/bin/ar -X64 -q ${RPM_BUILD_ROOT}%{_libdir}/libnet${f}.a ${RPM_BUILD_ROOT}%{_libdir64}/libnet${f}.so* done ( cd ${RPM_BUILD_ROOT} for dir in bin include lib lib64 do mkdir -p usr/${dir} cd usr/${dir} ln -sf ../..%{_prefix}/${dir}/* . cd - done ) %clean [ "${RPM_BUILD_ROOT}" != "/" ] && rm -rf ${RPM_BUILD_ROOT} %files %doc 32bit/COPYRIGHT %{_libdir}/*.a %{_libdir}/*.so* %{_libdir64}/*.so* /usr/lib/*.a /usr/lib/*.so* /usr/lib64/*.so* %files devel %doc 32bit/examples %{_bindir}/ncxx4-config* %{_includedir}/* %{_libdir}/*.la %{_libdir64}/*.la %{_libdir}/pkgconfig/%{name}.pc %{_libdir64}/pkgconfig/%{name}.pc /usr/bin/ncxx4-config /usr/include/* /usr/lib/*.la /usr/lib64/*.la %changelog * Thu Jun 14 2012 Michael Perzl - 4.2-1 - first version for AIX V5.1 and higher