# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4

PortSystem          1.0
PortGroup           muniversal 1.1

name                bmake
version             20250125
revision            0
checksums           rmd160  57349b329627b1933b75b50cff4937849ff65920 \
                    sha256  4c7db7d04dbbfad00e57adc750cdd183095cc494bbeaf9daf338415cb5a599b2 \
                    size    881309

categories          devel
maintainers         {ryandesign @ryandesign} openmaintainer
license             BSD

homepage            http://www.crufty.net/help/sjg/bmake.html
master_sites        http://www.crufty.net/ftp/pub/sjg/

description         Portable NetBSD make
long_description    bmake is the portable version of NetBSD make.

worksrcdir          ${name}

patchfiles          boot-strap.patch

# https://trac.macports.org/wiki/WimplicitFunctionDeclaration#strchr
configure.checks.implicit_function_declaration.whitelist-append strchr

# No idea what the legal values are or how these are used. These values should
# more or less match the defaults except that I haven't checked ppc64.
configure.args.arm64    --with-machine=arm64    --with-machine_arch=arm
configure.args.i386     --with-machine=i386     --with-machine_arch=i386
configure.args.ppc      --with-machine=powerpc  --with-machine_arch=powerpc
configure.args.ppc64    --with-machine=powerpc  --with-machine_arch=powerpc
configure.args.x86_64   --with-machine=x86_64   --with-machine_arch=i386

configure.cmd       ./boot-strap
configure.post_args op=configure
configure.args      --objdir build \
                    --without-makefile

build.cmd           ${configure.cmd}
build.target        op=build
build.args          {*}${configure.pre_args} \
                    {*}${configure.args}

destroot.target     op=install
destroot.args       {*}${configure.pre_args} \
                    {*}${configure.args}

if {[variant_isset universal]} {
    destroot.args-append \
                    BMAKE=[muniversal::get_arch_dir ${build.dir} ${configure.build_arch}]/build/bmake
}

# Tests are already run after the build but you can also run them separately.
test.target         op=test
test.args           {*}${configure.pre_args} \
                    {*}${configure.args}

livecheck.type      regex
livecheck.url       ${master_sites}
livecheck.regex     "${name}-(\[\\d\]+)${extract.suffix}"
