diff --git a/.cvsignore b/.cvsignore index e69de29..b26bef2 100644 --- a/.cvsignore +++ b/.cvsignore @@ -0,0 +1 @@ +mcpp-2.6.3.tar.gz diff --git a/mcpp-manual.html.patch b/mcpp-manual.html.patch new file mode 100644 index 0000000..2900d52 --- /dev/null +++ b/mcpp-manual.html.patch @@ -0,0 +1,17 @@ +*** doc-jp/mcpp-manual.html 2007-04-02 00:20:16.000000000 +0900 +--- doc-jp/mcpp-manual.html.utf8 2007-04-24 18:12:39.000000000 +0900 +*************** +*** 1,6 **** + + +! + + + +--- 1,6 ---- + + +! + + + diff --git a/mcpp.spec b/mcpp.spec new file mode 100644 index 0000000..a491c54 --- /dev/null +++ b/mcpp.spec @@ -0,0 +1,76 @@ +# spec file for mcpp / stand-alone-and-compiler-independent-build + +Summary: Alternative C/C++ preprocessor +Name: mcpp +Version: 2.6.3 +Release: 5%{?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: support.c.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. + +%prep +%setup -q +%patch0 -p0 -b .euc-jp +%patch1 -p0 -b .orig + +%build +%configure +make CFLAGS="%{optflags}" %{?_smp_mflags} + +%install +rm -rf $RPM_BUILD_ROOT +make DESTDIR=$RPM_BUILD_ROOT +install -D src/%{name} $RPM_BUILD_ROOT%{_bindir}/%{name} +install -D -pm 644 %{name}.1 $RPM_BUILD_ROOT%{_datadir}/man/man1/%{name}.1 +iconv -f euc-jp -t utf-8 doc-jp/mcpp-manual.html > doc-jp/mcpp-manual-jp.html + +%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 +%{_bindir}/%{name} +%{_datadir}/man/man1/%{name}.1.gz + +%clean +rm -rf $RPM_BUILD_ROOT + +%changelog +* 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. diff --git a/sources b/sources index e69de29..58c7d68 100644 --- a/sources +++ b/sources @@ -0,0 +1 @@ +ae64027a2d474f31656ad44ef656ca21 mcpp-2.6.3.tar.gz diff --git a/support.c.patch b/support.c.patch new file mode 100644 index 0000000..a837929 --- /dev/null +++ b/support.c.patch @@ -0,0 +1,11 @@ +--- src/support.c.orig 2007-03-23 22:51:59.000000000 +0900 ++++ src/support.c 2007-04-25 22:56:48.000000000 +0900 +@@ -1801,7 +1801,7 @@ + } + if (*(ptr + len - 1) != '\n') /* Unterminated source line */ + break; +- if (*(ptr + len - 2) == '\r') { /* [CR+LF] */ ++ if (len >= 2 && *(ptr + len - 2) == '\r') { /* [CR+LF] */ + *(ptr + len - 2) = '\n'; + *(ptr + --len) = EOS; + if (! cr_converted && (warn_level & cr_warn_level)) {