##
##  dwarf.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:         dwarf
Summary:      Object File Manipulation Tool
URL:          http://code.google.com/p/dwarf-ng/
Vendor:       Fernando Iazeolla
Packager:     OpenPKG Project
Distribution: OpenPKG Community
Class:        EVAL
Group:        Compiler
License:      GPL
Version:      0.3.0
Release:      20110123

#   list of sources
Source0:      http://dwarf-ng.googlecode.com/files/dwarf-%{version}.tar.gz
Patch0:       dwarf.patch

#   build information
BuildPreReq:  OpenPKG, openpkg >= 20160101, autoconf, automake, bison, flex, gcc, make
PreReq:       OpenPKG, openpkg >= 20160101
BuildPreReq:  readline, ncurses
PreReq:       readline, ncurses

%description
    dwarf(1) is a powerful object file manipulation tools in the spirit
    of gdb(1). With dwarf(1) you can read and edit all the file's
    section headers as well as the raw data. With dwarf you can create
    and customize new file's header and it can be used as a compiler
    back-end to create executables/object files. dwarf also permits to
    inject easily new headers and pieces of code/data into the file.
    dwarf(1) currently handles ELF, PE (Portable executables) and Mach-O
    files format.

%track
    prog dwarf = {
        version   = %{version}
        url       = http://code.google.com/p/dwarf-ng/downloads/list
        regex     = dwarf-(__VER__)\.tar\.gz
    }

%prep
    %setup -q
    %patch -p0

%build
    CC="%{l_cc}" \
    CFLAGS="%{l_cflags -O}" \
    CPPFLAGS="%{l_cppflags}" \
    LDFLAGS="%{l_ldflags}" \
    LIBS="`pkg-config readline --libs`" \
    ./configure \
        --prefix=%{l_prefix} \
        --mandir=%{l_prefix}/man
    %{l_make} %{l_mflags}

%install
    %{l_make} %{l_mflags} install AM_MAKEFLAGS="DESTDIR=$RPM_BUILD_ROOT"
    strip $RPM_BUILD_ROOT%{l_prefix}/bin/* >/dev/null 2>&1 || true
    rm -rf $RPM_BUILD_ROOT%{l_prefix}/share/doc >/dev/null 2>&1 || true
    %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT %{l_files_std}

%files -f files

%clean

