/*
 * fstrcmp - fuzzy string compare library
 * Copyright (C) 2009 Peter Miller
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License along
 * with this program. If not, see <http://www.gnu.org/licenses/>.
 */

integration-build-targets +=
    web-site/[project_minus].tar.gz
    ;

/* Need gnu style tar to build the tarball - so try different names */
if [find_command gnutar] then
    tar-cmd = gnutar;
else if [find_command gtar] then
    tar-cmd = gtar;
else
    tar-cmd = tar;


check-tarball: etc/check-tarball.sh web-site/[project_minus].tar.gz
{
    sh [resolve etc/check-tarball.sh web-site/[project_minus].tar.gz];
}

source_file_order =
    README
    BUILDING
    LICENSE
    [source_files]

    /*
     * Generated by autoconf
     */
    Makefile.in
    install-sh
    config.guess
    config.sub
    configure
    lib/config.h.in

    /*
     * version stamps
     */
    lib/patchlevel.h
    etc/version.so

    /*
     * for the reference manual
     */
    etc/ref-parts.so
    etc/new.so

    /*
     * For pkg-config
     */
    libdir/pkgconfig/[project_short].pc.in

    /*
     * for message translators
     */
    po/fstrcmp.pot
    ;

web-site/%.tar.gz: [source_file_order] debian/control
    set shallow ingredients-fingerprint
{
    if [exists web-site/%.tar] then
        rm web-site/%.tar
            set clearstat;
    [tar-cmd] --create --file - --dereference
            [resolve [sort [source_file_order]]]
	    debian/changelog
	    debian/compat
	    debian/control
	    debian/rules
	    'debian/*.install'
        | tardy -unu 0 -gnu 0 -una Peter -gna Miller
            -p % -ms 0644 -mc 07022 -now
            [prepost "-rp=" "" [search_list]]
        > web-site/%.tar;
    gzip -9 -v web-site/%.tar;
}


/*
 * The version stamp is to be updated for every
 * integration and development build.
 */
vs_file = lib/patchlevel.h;

[vs_file]:
    set shallow
{
    echo "'#define PATCHLEVEL \""[version]"\"'"
        > [target];
    aesub -p [project] -c [change]
            "'#define COPYRIGHT_YEARS \"${copyright_years}\"'"
        >> [target];
}

cascade lib/version.c = [vs_file];

aemakegen = aemakegen;

Makefile.in: [source_files]
{
    [aemakegen] -p [project] -c [change] -o [target]
        libdir/pkgconfig/[project_short].pc.in
        ;
    cat [resolve etc/makefile-tail] >> [target];
}

etc/version.so:
    set shallow
{
    aesub "'.ds v) ${project version}'" > [target];
    aesub "'.ds V) ${version}'" >> [target];
    aesub "'.ds Y) ${copyright_years}'" >> [target];
}

debian/control
debian/fstrcmp.install
debian/libfstrcmp-dev.install
debian/changelog: [source_files]
    set shallow
{
    /* This actually makes more files than just debian/control */
    [aemakegen] -p [project] -c [change] --target\=debian
        libdir/pkgconfig/[project_short].pc.in
        ;
    ls -l debian;
}


/*
 * if [or
 *     [in [fromto %1D%2 %2 [version]] 001 002 003 004]
 *     [collect "set +e; on_ac_power; expr 1 - $?; exit 0" ]
 * ] then
 */
if [in [fromto %1D%2 %2 [version]] 001 002 003 004] then
{
    integration-build-targets += debian-package;
}

debian-package: web-site/[project_minus].tar.gz bin/test_user
    debian/changelog etc/debian-package.sh
{
    local vsn = [collect head -1 [resolve debian/changelog]
                         | sed "'s|.*(\\([^()]*\\).*|\\1|'" ];
    vsn = [fromto %-1 % [vsn]];
    function print "vsn = '"[vsn]"'";
    if [not [in [count [vsn]] 1]] then
        fail "debian version not right";
    local tarball = [project_short]_[vsn].orig.tar.gz;

    local user = [collect [resolve bin/test_user]];
    local key = ;
    if [in [user] archives] then
        key = -k19CEC7D5;
    else
        key = -us -uc;

    sh [resolve etc/debian-package.sh]
        [key]
        web-site/[project_minus].tar.gz
        [tarball]
        ;
}

libdir/pkgconfig/[project_short].pc.in: [source_files]
{
    [aemakegen] -p\=[project] -c\=[change] --target\=pkg-config
            > [target];
}

cascade etc/reference.man = etc/version.so;
cascade etc/readme.man = etc/version.so;
cascade etc/building.man = etc/version.so;
