# -*- 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             20250804
revision            0
checksums           rmd160  51579ed7fa632b9af317a7f2c284f0896ce48235 \
                    sha256  0b49037644b253206d2e710d46e32859e62dfe2c6c8e7218ae439f2ef50de8ad \
                    size    894313

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}"
