#!/bin/sh

# SPDX-FileCopyrightText: 2021-22 Samuel Tyler <samuel@samuelt.me>
#
# SPDX-License-Identifier: GPL-3.0-or-later

set -ex

# Check tarball checksums
checksum-transcriber sources
sha256sum -c sources.SHA256SUM

mkdir build
cd build 

# Extract
unbz2 --file ${DISTFILES}/${pkg}.tar.bz2 --output ${pkg}.tar
untar --file ${pkg}.tar
rm ${pkg}.tar
cd ${pkg}

# Create .h files
catm config.h

# Compile
tcc -c getopt.c
tcc -c getopt1.c
tcc -c -I. -Iglob -DHAVE_INTTYPES_H -DHAVE_SA_RESTART -DHAVE_STDINT_H ar.c
tcc -c -I. -DHAVE_INTTYPES_H -DHAVE_SA_RESTART -DHAVE_FCNTL_H arscan.c
tcc -c -I. -DHAVE_INTTYPES_H -DHAVE_SA_RESTART -DFILE_TIMESTAMP_HI_RES=0 commands.c
tcc -c -I. -DHAVE_INTTYPES_H -DHAVE_SA_RESTART -DSCCS_GET=\"/nullop\" default.c
tcc -c -I. -Iglob -DHAVE_INTTYPES_H -DHAVE_SA_RESTART -DHAVE_DIRENT_H dir.c
tcc -c -I. -DHAVE_INTTYPES_H -DHAVE_SA_RESTART expand.c
tcc -c -I. -DHAVE_INTTYPES_H -DHAVE_SA_RESTART -DFILE_TIMESTAMP_HI_RES=0 file.c
tcc -c -I. -DHAVE_INTTYPES_H -DHAVE_SA_RESTART -Dvfork=fork function.c
tcc -c -I. -DHAVE_INTTYPES_H -DHAVE_SA_RESTART implicit.c
tcc -c -I. -DHAVE_INTTYPES_H -DHAVE_SA_RESTART -DHAVE_DUP2 -DHAVE_STRCHR -Dvfork=fork job.c
tcc -c -I. -DHAVE_INTTYPES_H -DHAVE_SA_RESTART -DLOCALEDIR=\"/fake-locale\" -DPACKAGE=\"fake-make\" -DHAVE_MKTEMP -DHAVE_GETCWD main.c
tcc -c -I. -DHAVE_INTTYPES_H -DHAVE_SA_RESTART -DHAVE_STRERROR -DHAVE_VPRINTF -DHAVE_ANSI_COMPILER -DHAVE_STDARG_H misc.c
tcc -c -I. -Iglob -DHAVE_INTTYPES_H -DHAVE_SA_RESTART -DINCLUDEDIR=\"${PREFIX}/include\" read.c
tcc -c -I. -DHAVE_INTTYPES_H -DHAVE_SA_RESTART -DFILE_TIMESTAMP_HI_RES=0 -DHAVE_FCNTL_H -DLIBDIR=\"${PREFIX}/lib\" remake.c
tcc -c -I. -DHAVE_INTTYPES_H -DHAVE_SA_RESTART rule.c
tcc -c -I. -DHAVE_INTTYPES_H -DHAVE_SA_RESTART signame.c
tcc -c -I. -DHAVE_INTTYPES_H -DHAVE_SA_RESTART strcache.c
tcc -c -I. -DHAVE_INTTYPES_H -DHAVE_SA_RESTART variable.c
tcc -c -I. -DVERSION=\"3.82\" version.c
tcc -c -I. -DHAVE_INTTYPES_H -DHAVE_SA_RESTART vpath.c
tcc -c -I. -DHAVE_INTTYPES_H -DHAVE_SA_RESTART hash.c
tcc -c -I. -DHAVE_INTTYPES_H -DHAVE_SA_RESTART remote-stub.c
tcc -c -DHAVE_FCNTL_H getloadavg.c
tcc -c -Iglob -DSTDC_HEADERS glob/fnmatch.c
tcc -c -Iglob -DHAVE_STRDUP -DHAVE_DIRENT_H glob/glob.c

# Link
tcc -static -o ${BINDIR}/make getopt.o getopt1.o ar.o arscan.o commands.o default.o dir.o expand.o file.o function.o implicit.o job.o main.o misc.o read.o remake.o rule.o signame.o strcache.o variable.o version.o vpath.o hash.o remote-stub.o getloadavg.o fnmatch.o glob.o

# Test
make --version

cd ../..

# Checksums
if match x${UPDATE_CHECKSUMS} xTrue; then
    sha256sum -o ${pkg}.checksums \
        /usr/bin/make

    cp ${pkg}.checksums ${SRCDIR}
else
    sha256sum -c ${pkg}.checksums
fi
