# spec file for mcpp / stand-alone-and-compiler-independent-build on fedora Summary: Alternative C/C++ preprocessor Name: mcpp Version: 2.7 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 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 subroutine called from some other main program, 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 %doc doc/mcpp-manual.html %lang(ja) %doc doc-jp/mcpp-manual-jp.html %{_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. * Wed Aug 29 2007 Fedora Release Engineering - 2.6.4-2 - Rebuild for selinux ppc32 issue. * Thu May 19 2007 Kiyoshi Matsui 2.6.4-1 - Upstream new release. * Fri Apr 27 2007 Kiyoshi Matsui 2.6.3-5 - Apply the new patch (patch1) for mcpp. * Wed Apr 25 2007 Kiyoshi Matsui 2.6.3-4 - Change installation of doc/mcpp-manual.html and doc-jp/mcpp-manual.html. * Tue Apr 24 2007 Kiyoshi Matsui 2.6.3-3 - Revise many points to adapt to the guideline of Fedora (thanks to the review by Mamoru Tasaka): use %%dist, %%configure, %%optflags, %%{_datadir}, %%lang(ja), convert encoding of mcpp-manual.html to utf-8, and others. * Sat Apr 21 2007 Kiyoshi Matsui 2.6.3-2 - Replace some variables with macros. - Rename this spec file. * Sat Apr 07 2007 Kiyoshi Matsui 2.6.3-1 - First release for V.2.6.3 on sourceforge.