#!/bin/sh
# autopkgtest check based on upstream cmake test ($ make test)
set -ue

mkdir -p $AUTOPKGTEST_TMP/include
mkdir -p $AUTOPKGTEST_TMP/tests
mkdir -p $AUTOPKGTEST_TMP/tests/api

for h in include/*.h include/*.hpp ; do
	case ${h#include/} in
		primecount.h|primecount.hpp)
			;;
		*)
			cp -vpd -t $AUTOPKGTEST_TMP/include ${h}
			;;
	esac
done

cp -vpd -t $AUTOPKGTEST_TMP/include src/print.hpp
cp -vpd -t $AUTOPKGTEST_TMP/include src/nth_prime_sieve.hpp
cp -vpd -t $AUTOPKGTEST_TMP/include src/generate_primes.hpp
cp -vpd -t $AUTOPKGTEST_TMP/include src/phi_vector.hpp
cp -vpd -t $AUTOPKGTEST_TMP/include src/PiTable.hpp
cp -vpd -t $AUTOPKGTEST_TMP/include src/BitSieve240.hpp
cp -vpd -t $AUTOPKGTEST_TMP/include src/PhiTiny.hpp
cp -vpd -t $AUTOPKGTEST_TMP/include src/Sieve.hpp
cp -vpd -t $AUTOPKGTEST_TMP/include src/Sieve_count_stop.hpp

##cp -vpd -t $AUTOPKGTEST_TMP/tests test/*.c
cp -vpd -t $AUTOPKGTEST_TMP/tests test/*.cpp
cp -vpd -t $AUTOPKGTEST_TMP/tests/api test/api/*.cpp

cd $AUTOPKGTEST_TMP

cat > $AUTOPKGTEST_TMP/tests/GNUmakefile << EOF
#!/usr/bin/make -f

PROGRAMS = \
	\$(patsubst %.c,%,\$(wildcard *.c)) \
	\$(patsubst %.cpp,%,\$(wildcard *.cpp) )

default: all

##CFLAGS = \$(shell pkg-config primecount --cflags)
CXXFLAGS = -I$AUTOPKGTEST_TMP/include \$(shell pkg-config primecount --cflags)
LDLIBS = \$(shell pkg-config primecount primesieve --libs) ##-pthread

all: build

build: \$(PROGRAMS)

check: build
	\$(foreach tst, \$(PROGRAMS), echo "+-+-+-+ \$(tst) +-+-+-+" ; ./\$(tst) ; )

clean:
	\$(RM) \$(PROGRAMS)

EOF

cp -vp -t $AUTOPKGTEST_TMP/tests/api $AUTOPKGTEST_TMP/tests/GNUmakefile

make -C $AUTOPKGTEST_TMP/tests check
make -C $AUTOPKGTEST_TMP/tests/api check

exit 0
