%define _libdir64 %{_prefix}/lib64 Name: libcdio Version: 0.82 Release: 1 Summary: CD-ROM input and control library Group: System Environment/Libraries License: GPLv3+ URL: http://www.gnu.org/software/libcdio/ Source0: http://ftp.gnu.org/gnu/libcdio/%{name}-%{version}.tar.gz Source1: http://ftp.gnu.org/gnu/libcdio/%{name}-%{version}.tar.gz.sig Source2: %{name}-no_date_footer.hml Patch0: %{name}-%{version}-aix.patch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root BuildRequires: pkg-config BuildRequires: doxygen, sed BuildRequires: gcc >= 4.2.3-2 BuildRequires: gettext BuildRequires: libcddb-devel >= 1.3.2 Requires: libcddb >= 1.3.2 Requires: libgcc >= 4.2.3-2 %description This library provides an interface for CD-ROM access. It can be used by applications that need OS- and device-independent access to CD-ROM devices. The library is available as 32-bit and 64-bit. %package devel Summary: Header files and libraries for %{name} Group: Development/Libraries Requires: %{name} = %{version}-%{release} %description devel This package contains header files and libraries for %{name}. If you are compiling a 32-bit program, no special compiler options are needed. If you are compiling a 64-bit program, you have to compile and link your application with "xlc_r -q64" or "gcc -maix64". %prep %setup -q %patch0 mkdir ../32bit mv * ../32bit mv ../32bit . mkdir 64bit cd 32bit && tar cf - . | (cd ../64bit ; tar xpf -) %build export CFLAGS="-DSYSV -D_AIX -D_AIX32 -D_AIX41 -D_AIX43 -D_AIX51 -D_ALL_SOURCE -DFUNCPROTO=15 -O -I/opt/freeware/include" cd 64bit # first build the 64-bit version export OBJECT_MODE=64 export CC="gcc -maix64 -D_LARGE_FILES" 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} \ --infodir=%{_infodir} \ --enable-shared --disable-static \ --enable-rock \ --enable-cddb \ --disable-vcd-info make %{?_smp_mflags} cd ../32bit # now build the 32-bit version export OBJECT_MODE=32 export CC="gcc -maix32 -D_LARGE_FILES" export LDFLAGS="-L/opt/freeware/lib -Wl,-blibpath:/opt/freeware/lib:/usr/lib:/lib -Wl,-bmaxdata:0x80000000" ./configure \ --prefix=%{_prefix} \ --mandir=%{_mandir} \ --infodir=%{_infodir} \ --enable-shared --disable-static \ --enable-rock \ --enable-cddb \ --disable-vcd-info make %{?_smp_mflags} export PATH=/opt/freeware/bin:$PATH cd doc/doxygen sed -i -e "s,HTML_FOOTER.*$,HTML_FOOTER = libcdio-no_date_footer.hml,g" Doxyfile cp %{SOURCE2} . ./run_doxygen %install [ "${RPM_BUILD_ROOT}" != "/" ] && rm -rf ${RPM_BUILD_ROOT} cd 64bit export OBJECT_MODE=64 gmake DESTDIR=${RPM_BUILD_ROOT} install ( 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}/* || : gzip --best ${RPM_BUILD_ROOT}%{_infodir}/*.info rm -f ${RPM_BUILD_ROOT}%{_infodir}/dir ( 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 cdio cdio++ cdio_cdda cdio_paranoia iso9660++ iso9660 udf ; do /usr/bin/ar -X64 -q ${RPM_BUILD_ROOT}%{_libdir}/lib${f}.a ${RPM_BUILD_ROOT}%{_libdir64}/lib${f}.so* done # fix some more issues... export PATH=/opt/freeware/bin:$PATH rm -rf examples mkdir -p examples/C++ cp -a example/*.c examples cp -a example/README examples cp -a example/C++/*.cpp examples/C++ cp -a example/C++/README examples/C++ # fix timestamps of generated man-pages for i in cd-info iso-read iso-info cd-read cd-drive; do # remove build architecture information from man pages sed -i -e 's, version.*linux-gnu,,g' $RPM_BUILD_ROOT%{_mandir}/man1/$i.1 # remove libtool leftover from man pages sed -i -e 's,lt-,,g;s,LT-,,g' $RPM_BUILD_ROOT%{_mandir}/man1/$i.1 # fix timestamps to be the same in all packages touch -r src/$i.help2man $RPM_BUILD_ROOT%{_mandir}/man1/$i.1 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 ) %post /sbin/install-info %{_infodir}/%{name}.info.gz %{_infodir}/dir 2>/dev/null || : %preun if [ $1 = 0 ]; then /sbin/install-info --delete %{_infodir}/%{name}.info.gz \ %{_infodir}/dir 2>/dev/null || : fi %clean [ "${RPM_BUILD_ROOT}" != "/" ] && rm -rf ${RPM_BUILD_ROOT} %files %defattr(-,root,system,-) %doc 32bit/AUTHORS 32bit/COPYING 32bit/NEWS 32bit/README 32bit/README.libcdio %doc 32bit/THANKS 32bit/TODO %{_bindir}/* %{_libdir}/*.a %{_libdir}/*.so* %{_libdir64}/*.so* %{_infodir}/* %{_mandir}/man1/* /usr/bin/* /usr/lib/*.a /usr/lib/*.so* /usr/lib64/*.so* %files devel %defattr(-,root,system,-) %doc 32bit/doc/doxygen/html 32bit/examples %{_includedir}/* %{_libdir}/*.la %{_libdir64}/*.la %{_libdir}/pkgconfig/*.pc %{_libdir64}/pkgconfig/*.pc /usr/include/* /usr/lib/*.la /usr/lib64/*.la %changelog * Mon May 02 2011 Michael Perzl - 0.82-1 - first version for AIX V5.1 and higher