--- mcpp.spec.orig 2008-03-24 14:52:36.000000000 +0000 +++ mcpp.spec 2008-04-21 15:48:55.000000000 +0100 @@ -3,12 +3,14 @@ Summary: Alternative C/C++ preprocessor Name: mcpp Version: 2.7 -Release: 2%{?dist} +Release: 3%{?dist} License: BSD Group: Development/Languages Source: http://downloads.sourceforge.net/%{name}/%{name}-%{version}.tar.gz URL: http://mcpp.sourceforge.net/ Patch0: mcpp-manual.html.patch +Patch1: mcpp-2.7-stpcpy.patch +Patch2: mcpp-2.7-freopen.patch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root %description @@ -26,20 +28,79 @@ this package installs only a stand-alone program named 'mcpp' which behaves independent from GCC. +%package devel +Summary: A C/C++ preprocessor as a library for linking +Group: Development/Tools +%description devel +C/C++ preprocessor expands macros and processes '#if', '#include' and +some other directives. + +MCPP is an alternative C/C++ preprocessor with the highest conformance, +implementated by Kiyoshi Matsui. It supports multiple standards: K&R, +ISO C90, ISO C99, and ISO C++98. MCPP is especially useful for +debugging the source program which use complicated macros and also +useful for checking portability of the source. + +Though mcpp could be built as a replacement of GCC's resident proprocessor +or as a stand-alone program, this package installs only a shared library +providing subroutines that can be called from other programs. + +%package static +Summary: mcpp as a library for linking (static) +Group: Development/Tools +%description static +C/C++ preprocessor expands macros and processes '#if', '#include' and +some other directives. + +MCPP is an alternative C/C++ preprocessor with the highest conformance, +implementated by Kiyoshi Matsui. It supports multiple standards: K&R, +ISO C90, ISO C99, and ISO C++98. MCPP is especially useful for +debugging the source program which use complicated macros and also +useful for checking portability of the source. + +Though mcpp could be built as a replacement of GCC's resident proprocessor +or as a stand-alone program, this package installs only a static library +providing subroutines that can be called from other programs. + %prep +# Uncompress the tree twice so that we can "configure" differently +# This will be the library +%setup -q +%patch1 -p1 +%patch2 -p1 +cd .. +rm -rf %{name}-%{version}-lib +mv %{name}-%{version} %{name}-%{version}-lib + +# This will be the main "mcpp" executable %setup -q %patch0 -p0 -b -z.euc-jp +%patch1 -p1 +%patch2 -p1 + %build +# Build the executable version (we'll be in this directory already) %configure make CFLAGS="%{optflags}" %{?_smp_mflags} +# Build the "library" version +cd ../%{name}-%{version}-lib +%configure --enable-mcpplib --disable-static +make CFLAGS="%{optflags}" %{?_smp_mflags} + + %install iconv -f euc-jp -t utf-8 doc-jp/mcpp-manual.html > doc-jp/mcpp-manual-jp.html rm -rf $RPM_BUILD_ROOT make DESTDIR=$RPM_BUILD_ROOT install rm -rf $RPM_BUILD_ROOT%{_docdir}/%{name} +# Install the "lib" version too (but not the static one) +cd ../%{name}-%{version}-lib +make DESTDIR=$RPM_BUILD_ROOT install +rm $RPM_BUILD_ROOT%{_libdir}/*.la + %files %defattr(-,root,root,-) %doc ChangeLog ChangeLog.old LICENSE NEWS README @@ -48,10 +109,21 @@ %{_datadir}/man/man1/%{name}.1.gz %{_bindir}/%{name} +%files devel +%defattr(-,root,root,-) +%{_libdir}/lib%{name}.so* + +%post devel -p /sbin/ldconfig +%postun devel -p /sbin/ldconfig + %clean rm -rf $RPM_BUILD_ROOT %changelog +* Mon Apr 21 2008 Mary Ellen Foster 2.7-3 +- Include development library +- Include recent patches from Sourceforge forum + * Sun Mar 24 2008 Kiyoshi Matsui 2.7-2 - Upstream new release.