##
##  mcpp.spec -- OpenPKG RPM Package Specification
##  Copyright (c) 2000-2025 OpenPKG Project <http://openpkg.org/>
##
##  Permission to use, copy, modify, and distribute this software for
##  any purpose with or without fee is hereby granted, provided that
##  the above copyright notice and this permission notice appear in all
##  copies.
##
##  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
##  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
##  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
##  IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
##  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
##  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
##  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
##  USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
##  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
##  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
##  OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
##  SUCH DAMAGE.
##

#   package information
Name:         mcpp
Summary:      Portable C/C++ Pre-Processor
URL:          http://mcpp.sourceforge.net/
Vendor:       Kiyoshi MATSUI
Packager:     OpenPKG Project
Distribution: OpenPKG Community
Class:        EVAL
Group:        Language
License:      MIT-style
Version:      2.7.2
Release:      20081130

#   list of sources
Source0:      http://download.sourceforge.net/mcpp/mcpp-%{version}.tar.gz

#   build information
BuildPreReq:  OpenPKG, openpkg >= 20160101
PreReq:       OpenPKG, openpkg >= 20160101

%description
    mcpp(1) is a C/C++ preprocessor with the following features:
    implements all of C90, C99 and C++98 specifications; provides a
    validation suite to test C/C++ preprocessor's conformance and
    quality comprehensively. When this validation suite is applied,
    mcpp distinguishes itself among many existing preprocessors; has
    plentiful and on-target diagnostics to check all the preprocessing
    problems such as latent bug or lack of portability in source code;
    has #pragma directives to output debugging information; is portable
    and has been ported to many compliler-systems, including GCC;
    preprocessors of various behavior modes are able to be generated
    from the source code; can be built either as a compiler-specific
    preprocessor to replace the resident preprocessor of a particular
    compiler system, or as a compiler-independent command, or even as a
    subroutine called from some other main program.

%track
    prog mcpp = {
        version   = %{version}
        url       = http://mcpp.sourceforge.net/download.html
        regex     = mcpp-(__VER__)\.tar\.gz
    }

%prep
    %setup -q

%build
    CC="%{l_cc}" \
    CFLAGS="%{l_cflags -O}" \
    ./configure \
        --prefix=%{l_prefix}
    %{l_make} %{l_mflags -O}

%install
    %{l_make} %{l_mflags} install AM_MAKEFLAGS="DESTDIR=$RPM_BUILD_ROOT"
    strip $RPM_BUILD_ROOT%{l_prefix}/bin/* >/dev/null 2>&1 || true
    %{l_shtool} mkdir -f -p -m 755 \
        $RPM_BUILD_ROOT%{l_prefix}/share/mcpp
    mv  $RPM_BUILD_ROOT%{l_prefix}/share/doc/mcpp/mcpp-manual.html \
        $RPM_BUILD_ROOT%{l_prefix}/share/mcpp/mcpp-manual.html
    rm -rf $RPM_BUILD_ROOT%{l_prefix}/share/doc
    %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT %{l_files_std}

%files -f files

%clean

