#
# SPDX-License-Identifier: BSD-2-Clause
#
# Copyright (c) 2018-2023 Gavin D. Howard and contributors.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
#
# * Redistributions of source code must retain the above copyright notice, this
#   list of conditions and the following disclaimer.
#
# * Redistributions in binary form must reproduce the above copyright notice,
#   this list of conditions and the following disclaimer in the documentation
#   and/or other materials provided with the distribution.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.
#
# %%WARNING%%
#
.POSIX:

ROOTDIR = %%ROOTDIR%%
INCDIR = $(ROOTDIR)/include
SRCDIR = $(ROOTDIR)/src
TESTSDIR = $(ROOTDIR)/tests
SCRIPTSDIR = $(ROOTDIR)/scripts
GENDIR = $(ROOTDIR)/gen

BUILDDIR = %%BUILDDIR%%

SRC = %%SRC%%
OBJ = %%OBJ%%
GCDA = %%GCDA%%
GCNO = %%GCNO%%

BC_ENABLED_NAME = BC_ENABLED
BC_ENABLED = %%BC_ENABLED%%
DC_ENABLED_NAME = DC_ENABLED
DC_ENABLED = %%DC_ENABLED%%

HEADERS = $(INCDIR)/args.h $(INCDIR)/file.h $(INCDIR)/lang.h $(INCDIR)/lex.h $(INCDIR)/num.h $(INCDIR)/opt.h $(INCDIR)/parse.h $(INCDIR)/program.h $(INCDIR)/read.h $(INCDIR)/status.h $(INCDIR)/vector.h $(INCDIR)/vm.h
BC_HEADERS = $(INCDIR)/bc.h
DC_HEADERS = $(INCDIR)/dc.h
HISTORY_HEADERS = $(INCDIR)/history.h
EXTRA_MATH_HEADERS = $(INCDIR)/rand.h
LIBRARY_HEADERS = $(INCDIR)/bcl.h $(INCDIR)/library.h

GEN_DIR = %%GEN_DIR%%
GEN = %%GEN%%
GEN_EXEC = $(GEN_DIR)/$(GEN)
GEN_C = $(GENDIR)/$(GEN).c

GEN_EMU = %%GEN_EMU%%

BC_LIB = $(GENDIR)/lib.bc
BC_LIB_C = $(GEN_DIR)/lib.c
BC_LIB_O = %%BC_LIB_O%%
BC_LIB_GCDA = $(GEN_DIR)/lib.gcda
BC_LIB_GCNO = $(GEN_DIR)/lib.gcno

BC_LIB2 = $(GENDIR)/lib2.bc
BC_LIB2_C = $(GEN_DIR)/lib2.c
BC_LIB2_O = %%BC_LIB2_O%%
BC_LIB2_GCDA = $(GEN_DIR)/lib2.gcda
BC_LIB2_GCNO = $(GEN_DIR)/lib2.gcno

BC_HELP = $(GENDIR)/bc_help.txt
BC_HELP_C = $(GEN_DIR)/bc_help.c
BC_HELP_O = %%BC_HELP_O%%
BC_HELP_GCDA = $(GEN_DIR)/bc_help.gcda
BC_HELP_GCNO = $(GEN_DIR)/bc_help.gcno

DC_HELP = $(GENDIR)/dc_help.txt
DC_HELP_C = $(GEN_DIR)/dc_help.c
DC_HELP_O = %%DC_HELP_O%%
DC_HELP_GCDA = $(GEN_DIR)/dc_help.gcda
DC_HELP_GCNO = $(GEN_DIR)/dc_help.gcno

BIN = bin
EXEC_SUFFIX = %%EXECSUFFIX%%
EXEC_PREFIX = %%EXECPREFIX%%

BC = bc
DC = dc
BC_EXEC = $(BIN)/$(EXEC_PREFIX)$(BC)
DC_EXEC = $(BIN)/$(EXEC_PREFIX)$(DC)

BC_TEST_OUTPUTS = tests/bc_outputs
BC_FUZZ_OUTPUTS = tests/fuzzing/bc_outputs1 tests/fuzzing/bc_outputs2 tests/fuzzing/bc_outputs3
DC_TEST_OUTPUTS = tests/dc_outputs
DC_FUZZ_OUTPUTS = tests/fuzzing/dc_outputs

LIB = libbcl
LIB_NAME = $(LIB).a
LIBBC = $(BIN)/$(LIB_NAME)
BCL = bcl
BCL_TEST = $(BIN)/$(BCL)
BCL_TEST_C = $(TESTSDIR)/$(BCL).c

MANUALS = manuals
BC_MANPAGE_NAME = $(EXEC_PREFIX)$(BC)$(EXEC_SUFFIX).1
BC_MANPAGE = $(MANUALS)/$(BC).1
BC_MD = $(BC_MANPAGE).md
DC_MANPAGE_NAME = $(EXEC_PREFIX)$(DC)$(EXEC_SUFFIX).1
DC_MANPAGE = $(MANUALS)/$(DC).1
DC_MD = $(DC_MANPAGE).md
BCL_MANPAGE_NAME = bcl.3
BCL_MANPAGE = $(MANUALS)/$(BCL_MANPAGE_NAME)
BCL_MD = $(BCL_MANPAGE).md

MANPAGE_INSTALL_ARGS = -Dm644
BINARY_INSTALL_ARGS = -Dm755
PC_INSTALL_ARGS = $(MANPAGE_INSTALL_ARGS)

BCL_PC = $(BCL).pc
PC_PATH = %%PC_PATH%%

BCL_HEADER_NAME = bcl.h
BCL_HEADER = $(INCDIR)/$(BCL_HEADER_NAME)

%%DESTDIR%%
BINDIR = %%BINDIR%%
INCLUDEDIR = %%INCLUDEDIR%%
LIBDIR = %%LIBDIR%%
MAN1DIR = %%MAN1DIR%%
MAN3DIR = %%MAN3DIR%%
MAIN_EXEC = $(EXEC_PREFIX)$(%%MAIN_EXEC%%)$(EXEC_SUFFIX)
EXEC = $(%%EXEC%%)
NLSPATH = %%NLSPATH%%

BC_BUILD_TYPE = %%BUILD_TYPE%%

BC_ENABLE_LIBRARY = %%LIBRARY%%

BC_ENABLE_HISTORY = %%HISTORY%%
BC_ENABLE_EXTRA_MATH_NAME = BC_ENABLE_EXTRA_MATH
BC_ENABLE_EXTRA_MATH = %%EXTRA_MATH%%
BC_ENABLE_NLS = %%NLS%%
BC_EXCLUDE_EXTRA_MATH = %%EXCLUDE_EXTRA_MATH%%

BC_ENABLE_AFL = %%FUZZ%%
BC_ENABLE_MEMCHECK = %%MEMCHECK%%

BC_DEFAULT_BANNER = %%BC_DEFAULT_BANNER%%
BC_DEFAULT_SIGINT_RESET = %%BC_DEFAULT_SIGINT_RESET%%
DC_DEFAULT_SIGINT_RESET = %%DC_DEFAULT_SIGINT_RESET%%
BC_DEFAULT_TTY_MODE = %%BC_DEFAULT_TTY_MODE%%
DC_DEFAULT_TTY_MODE = %%DC_DEFAULT_TTY_MODE%%
BC_DEFAULT_PROMPT = %%BC_DEFAULT_PROMPT%%
DC_DEFAULT_PROMPT = %%DC_DEFAULT_PROMPT%%
BC_DEFAULT_EXPR_EXIT = %%BC_DEFAULT_EXPR_EXIT%%
DC_DEFAULT_EXPR_EXIT = %%DC_DEFAULT_EXPR_EXIT%%
BC_DEFAULT_DIGIT_CLAMP = %%BC_DEFAULT_DIGIT_CLAMP%%
DC_DEFAULT_DIGIT_CLAMP = %%DC_DEFAULT_DIGIT_CLAMP%%

RM = rm
MKDIR = mkdir

SCRIPTS = ./scripts

MINISTAT = ministat
MINISTAT_EXEC = $(SCRIPTS)/$(MINISTAT)

BITFUNCGEN = bitfuncgen
BITFUNCGEN_EXEC = $(SCRIPTS)/$(BITFUNCGEN)

INSTALL = $(SCRIPTSDIR)/exec-install.sh
SAFE_INSTALL = $(SCRIPTSDIR)/safe-install.sh
LINK = $(SCRIPTSDIR)/link.sh
MANPAGE = $(SCRIPTSDIR)/manpage.sh
KARATSUBA = $(SCRIPTSDIR)/karatsuba.py
LOCALE_INSTALL = $(SCRIPTSDIR)/locale_install.sh
LOCALE_UNINSTALL = $(SCRIPTSDIR)/locale_uninstall.sh

VALGRIND_ARGS = --error-exitcode=100 --leak-check=full --show-leak-kinds=all --errors-for-leak-kinds=all

TEST_STARS = ***********************************************************************

BC_NUM_KARATSUBA_LEN = %%KARATSUBA_LEN%%

BC_DEFS0 = -DBC_DEFAULT_BANNER=$(BC_DEFAULT_BANNER)
BC_DEFS1 = -DBC_DEFAULT_SIGINT_RESET=$(BC_DEFAULT_SIGINT_RESET)
BC_DEFS2 = -DBC_DEFAULT_TTY_MODE=$(BC_DEFAULT_TTY_MODE)
BC_DEFS3 = -DBC_DEFAULT_PROMPT=$(BC_DEFAULT_PROMPT)
BC_DEFS4 = -DBC_DEFAULT_EXPR_EXIT=$(BC_DEFAULT_EXPR_EXIT)
BC_DEFS5 = -DBC_DEFAULT_DIGIT_CLAMP=$(BC_DEFAULT_DIGIT_CLAMP)
BC_DEFS = $(BC_DEFS0) $(BC_DEFS1) $(BC_DEFS2) $(BC_DEFS3) $(BC_DEFS4) $(BC_DEFS5)
DC_DEFS1 = -DDC_DEFAULT_SIGINT_RESET=$(DC_DEFAULT_SIGINT_RESET)
DC_DEFS2 = -DDC_DEFAULT_TTY_MODE=$(DC_DEFAULT_TTY_MODE)
DC_DEFS3 = -DDC_DEFAULT_PROMPT=$(DC_DEFAULT_PROMPT)
DC_DEFS4 = -DDC_DEFAULT_EXPR_EXIT=$(DC_DEFAULT_EXPR_EXIT)
DC_DEFS5 = -DDC_DEFAULT_DIGIT_CLAMP=$(DC_DEFAULT_DIGIT_CLAMP)
DC_DEFS = $(DC_DEFS1) $(DC_DEFS2) $(DC_DEFS3) $(DC_DEFS4) $(DC_DEFS5)

CPPFLAGS1 = -D$(BC_ENABLED_NAME)=$(BC_ENABLED) -D$(DC_ENABLED_NAME)=$(DC_ENABLED)
CPPFLAGS2 = $(CPPFLAGS1) -I$(INCDIR)/ -DBUILD_TYPE=$(BC_BUILD_TYPE) %%LONG_BIT_DEFINE%%
CPPFLAGS3 = $(CPPFLAGS2) -DEXECPREFIX=$(EXEC_PREFIX) -DMAINEXEC=$(MAIN_EXEC)
CPPFLAGS4 = $(CPPFLAGS3) %%BSD%% %%APPLE%%
CPPFLAGS5 = $(CPPFLAGS4) -DBC_NUM_KARATSUBA_LEN=$(BC_NUM_KARATSUBA_LEN)
CPPFLAGS6 = $(CPPFLAGS5) -DBC_ENABLE_NLS=$(BC_ENABLE_NLS)
CPPFLAGS7 = $(CPPFLAGS6) -D$(BC_ENABLE_EXTRA_MATH_NAME)=$(BC_ENABLE_EXTRA_MATH)
CPPFLAGS8 = $(CPPFLAGS7) -DBC_ENABLE_HISTORY=$(BC_ENABLE_HISTORY) -DBC_ENABLE_LIBRARY=$(BC_ENABLE_LIBRARY)
CPPFLAGS = $(CPPFLAGS8) -DBC_ENABLE_MEMCHECK=$(BC_ENABLE_MEMCHECK) -DBC_ENABLE_AFL=$(BC_ENABLE_AFL)
CFLAGS = $(CPPFLAGS) $(BC_DEFS) $(DC_DEFS) %%CPPFLAGS%% %%CFLAGS%%
LDFLAGS = %%LDFLAGS%%

HOSTCFLAGS = %%HOSTCFLAGS%%

CC = %%CC%%
HOSTCC = %%HOSTCC%%

BC_LIB_C_ARGS = bc_lib bc_lib_name $(BC_ENABLED_NAME) 1
BC_LIB2_C_ARGS = bc_lib2 bc_lib2_name "$(BC_ENABLED_NAME) && $(BC_ENABLE_EXTRA_MATH_NAME)" 1

OBJS = $(DC_HELP_O) $(BC_HELP_O) $(BC_LIB_O) $(BC_LIB2_O) $(OBJ)

all: %%DEFAULT_TARGET%%

%%DEFAULT_TARGET%%: %%DEFAULT_TARGET_PREREQS%%
	%%DEFAULT_TARGET_CMD%%

%%SECOND_TARGET%%: %%SECOND_TARGET_PREREQS%%
	%%SECOND_TARGET_CMD%%

$(GEN_DIR):
	mkdir -p $(GEN_DIR)

$(GEN_EXEC): $(GEN_DIR)
	%%GEN_EXEC_TARGET%%

$(BC_LIB_C): $(GEN_EXEC) $(BC_LIB)
	$(GEN_EMU) $(GEN_EXEC) $(BC_LIB) $(BC_LIB_C) $(BC_EXCLUDE_EXTRA_MATH) $(BC_LIB_C_ARGS) "" "" 1

$(BC_LIB_O): $(BC_LIB_C)
	$(CC) $(CFLAGS) -o $@ -c $<

$(BC_LIB2_C): $(GEN_EXEC) $(BC_LIB2)
	$(GEN_EMU) $(GEN_EXEC) $(BC_LIB2) $(BC_LIB2_C) $(BC_EXCLUDE_EXTRA_MATH) $(BC_LIB2_C_ARGS) "" "" 1

$(BC_LIB2_O): $(BC_LIB2_C)
	$(CC) $(CFLAGS) -o $@ -c $<

$(BC_HELP_C): $(GEN_EXEC) $(BC_HELP)
	$(GEN_EMU) $(GEN_EXEC) $(BC_HELP) $(BC_HELP_C) $(BC_EXCLUDE_EXTRA_MATH) bc_help "" $(BC_ENABLED_NAME) 0

$(BC_HELP_O): $(BC_HELP_C)
	$(CC) $(CFLAGS) -o $@ -c $<

$(DC_HELP_C): $(GEN_EXEC) $(DC_HELP)
	$(GEN_EMU) $(GEN_EXEC) $(DC_HELP) $(DC_HELP_C) $(BC_EXCLUDE_EXTRA_MATH) dc_help "" $(DC_ENABLED_NAME) 0

$(DC_HELP_O): $(DC_HELP_C)
	$(CC) $(CFLAGS) -o $@ -c $<

$(BIN):
	$(MKDIR) -p $(BIN)

src:
	$(MKDIR) -p src

headers: %%HEADERS%%

$(MINISTAT):
	mkdir -p $(SCRIPTS)
	$(HOSTCC) $(HOSTCFLAGS) -lm -o $(MINISTAT_EXEC) $(ROOTDIR)/scripts/ministat.c

$(BITFUNCGEN):
	mkdir -p $(SCRIPTS)
	$(HOSTCC) $(HOSTCFLAGS) -lm -o $(BITFUNCGEN_EXEC) $(ROOTDIR)/scripts/bitfuncgen.c

help:
	@printf 'available targets:\n'
	@printf '\n'
	@printf '    all (default)   builds %%EXECUTABLES%%\n'
	@printf '    check           alias for `make test`\n'
	@printf '    clean           removes all build files\n'
	@printf '    clean_config    removes all build files as well as the generated Makefile\n'
	@printf '    clean_tests     removes all build files, the generated Makefile,\n'
	@printf '                    and generated tests\n'
	@printf '    install         installs binaries to "%s%s"\n' "$(DESTDIR)" "$(BINDIR)"
	@printf '                    and (if enabled) manpages to "%s%s"\n' "$(DESTDIR)" "$(MAN1DIR)"
	@printf '    karatsuba       runs the karatsuba script (requires Python 3)\n'
	@printf '    karatsuba_test  runs the karatsuba script while running tests\n'
	@printf '                    (requires Python 3)\n'
	@printf '    uninstall       uninstalls binaries from "%s%s"\n' "$(DESTDIR)" "$(BINDIR)"
	@printf '                    and (if enabled) manpages from "%s%s"\n' "$(DESTDIR)" "$(MAN1DIR)"
	@printf '    test            runs the test suite\n'
	@printf '    test_bc         runs the bc test suite, if bc has been built\n'
	@printf '    test_dc         runs the dc test suite, if dc has been built\n'
	@printf '    time_test       runs the test suite, displaying times for some things\n'
	@printf '    time_test_bc    runs the bc test suite, displaying times for some things\n'
	@printf '    time_test_dc    runs the dc test suite, displaying times for some things\n'
	@printf '    timeconst       runs the test on the Linux timeconst.bc script,\n'
	@printf '                    if it exists and bc has been built\n'

run_all_tests: bc_all_tests timeconst_all_tests dc_all_tests

run_all_tests_np: bc_all_tests_np timeconst_all_tests dc_all_tests_np

bc_all_tests:
	%%BC_ALL_TESTS%%

bc_all_tests_np:
	%%BC_ALL_TESTS_NP%%

timeconst_all_tests:
	%%TIMECONST_ALL_TESTS%%

dc_all_tests:
	%%DC_ALL_TESTS%%

dc_all_tests_np:
	%%DC_ALL_TESTS_NP%%

history_all_tests:
	%%HISTORY_TESTS%%

check: test

test: %%TESTS%%

test_bc: test_bc_header test_bc_tests test_bc_scripts test_bc_errors test_bc_stdin test_bc_read test_bc_other
	@printf '\nAll bc tests passed.\n\n$(TEST_STARS)\n'

test_bc_tests:%%BC_TESTS%%

test_bc_scripts:%%BC_SCRIPT_TESTS%%

test_bc_stdin:
	@export BC_TEST_OUTPUT_DIR="$(BUILDDIR)/tests"; sh $(TESTSDIR)/stdin.sh bc %%BC_TEST_EXEC%%

test_bc_read:
	@export BC_TEST_OUTPUT_DIR="$(BUILDDIR)/tests"; sh $(TESTSDIR)/read.sh bc %%BC_TEST_EXEC%%

test_bc_errors: test_bc_error_lines%%BC_ERROR_TESTS%%

test_bc_error_lines:
	@export BC_TEST_OUTPUT_DIR="$(BUILDDIR)/tests"; sh $(TESTSDIR)/errors.sh bc %%BC_TEST_EXEC%%

test_bc_other:
	@export BC_TEST_OUTPUT_DIR="$(BUILDDIR)/tests"; sh $(TESTSDIR)/other.sh bc $(BC_ENABLE_EXTRA_MATH) %%BC_TEST_EXEC%%

test_bc_header:
	@printf '$(TEST_STARS)\n\nRunning bc tests...\n\n'

test_dc: test_dc_header test_dc_tests test_dc_scripts test_dc_errors test_dc_stdin test_dc_read test_dc_other
	@printf '\nAll dc tests passed.\n\n$(TEST_STARS)\n'

test_dc_tests:%%DC_TESTS%%

test_dc_scripts:%%DC_SCRIPT_TESTS%%

test_dc_stdin:
	@export BC_TEST_OUTPUT_DIR="$(BUILDDIR)/tests"; sh $(TESTSDIR)/stdin.sh dc %%DC_TEST_EXEC%%

test_dc_read:
	@export BC_TEST_OUTPUT_DIR="$(BUILDDIR)/tests"; sh $(TESTSDIR)/read.sh dc %%DC_TEST_EXEC%%

test_dc_errors: test_dc_error_lines%%DC_ERROR_TESTS%%

test_dc_error_lines:
	@export BC_TEST_OUTPUT_DIR="$(BUILDDIR)/tests"; sh $(TESTSDIR)/errors.sh dc %%DC_TEST_EXEC%%

test_dc_other:
	@export BC_TEST_OUTPUT_DIR="$(BUILDDIR)/tests"; sh $(TESTSDIR)/other.sh dc $(BC_ENABLE_EXTRA_MATH) %%DC_TEST_EXEC%%

test_dc_header:
	@printf '$(TEST_STARS)\n\nRunning dc tests...\n\n'

timeconst:
	%%TIMECONST%%

test_history: test_history_header test_bc_history test_dc_history
	@printf '\nAll history tests passed.\n\n$(TEST_STARS)\n'

test_bc_history:%%BC_HISTORY_TEST_PREREQS%%

test_bc_history_all: test_bc_history0 test_bc_history1 test_bc_history2 test_bc_history3 test_bc_history4 test_bc_history5 test_bc_history6 test_bc_history7 test_bc_history8 test_bc_history9 test_bc_history10 test_bc_history11 test_bc_history12 test_bc_history13 test_bc_history14 test_bc_history15 test_bc_history16 test_bc_history17 test_bc_history18 test_bc_history19 test_bc_history20 test_bc_history21

test_bc_history_skip:
	@printf 'No bc history tests to run\n'

test_bc_history0:
	@sh $(TESTSDIR)/history.sh bc 0 %%BC_TEST_EXEC%%

test_bc_history1:
	@sh $(TESTSDIR)/history.sh bc 1 %%BC_TEST_EXEC%%

test_bc_history2:
	@sh $(TESTSDIR)/history.sh bc 2 %%BC_TEST_EXEC%%

test_bc_history3:
	@sh $(TESTSDIR)/history.sh bc 3 %%BC_TEST_EXEC%%

test_bc_history4:
	@sh $(TESTSDIR)/history.sh bc 4 %%BC_TEST_EXEC%%

test_bc_history5:
	@sh $(TESTSDIR)/history.sh bc 5 %%BC_TEST_EXEC%%

test_bc_history6:
	@sh $(TESTSDIR)/history.sh bc 6 %%BC_TEST_EXEC%%

test_bc_history7:
	@sh $(TESTSDIR)/history.sh bc 7 %%BC_TEST_EXEC%%

test_bc_history8:
	@sh $(TESTSDIR)/history.sh bc 8 %%BC_TEST_EXEC%%

test_bc_history9:
	@sh $(TESTSDIR)/history.sh bc 9 %%BC_TEST_EXEC%%

test_bc_history10:
	@sh $(TESTSDIR)/history.sh bc 10 %%BC_TEST_EXEC%%

test_bc_history11:
	@sh $(TESTSDIR)/history.sh bc 11 %%BC_TEST_EXEC%%

test_bc_history12:
	@sh $(TESTSDIR)/history.sh bc 12 %%BC_TEST_EXEC%%

test_bc_history13:
	@sh $(TESTSDIR)/history.sh bc 13 %%BC_TEST_EXEC%%

test_bc_history14:
	@sh $(TESTSDIR)/history.sh bc 14 %%BC_TEST_EXEC%%

test_bc_history15:
	@sh $(TESTSDIR)/history.sh bc 15 %%BC_TEST_EXEC%%

test_bc_history16:
	@sh $(TESTSDIR)/history.sh bc 16 %%BC_TEST_EXEC%%

test_bc_history17:
	@sh $(TESTSDIR)/history.sh bc 17 %%BC_TEST_EXEC%%

test_bc_history18:
	@sh $(TESTSDIR)/history.sh bc 18 %%BC_TEST_EXEC%%

test_bc_history19:
	@sh $(TESTSDIR)/history.sh bc 19 %%BC_TEST_EXEC%%

test_bc_history20:
	@sh $(TESTSDIR)/history.sh bc 20 %%BC_TEST_EXEC%%

test_bc_history21:
	@sh $(TESTSDIR)/history.sh bc 21 %%BC_TEST_EXEC%%

test_dc_history:%%DC_HISTORY_TEST_PREREQS%%

test_dc_history_all: test_dc_history0 test_dc_history1 test_dc_history2 test_dc_history3 test_dc_history4 test_dc_history5 test_dc_history6 test_dc_history7 test_dc_history8 test_dc_history9 test_dc_history10

test_dc_history_skip:
	@printf 'No dc history tests to run\n'

test_dc_history0:
	@sh $(TESTSDIR)/history.sh dc 0 %%DC_TEST_EXEC%%

test_dc_history1:
	@sh $(TESTSDIR)/history.sh dc 1 %%DC_TEST_EXEC%%

test_dc_history2:
	@sh $(TESTSDIR)/history.sh dc 2 %%DC_TEST_EXEC%%

test_dc_history3:
	@sh $(TESTSDIR)/history.sh dc 3 %%DC_TEST_EXEC%%

test_dc_history4:
	@sh $(TESTSDIR)/history.sh dc 4 %%DC_TEST_EXEC%%

test_dc_history5:
	@sh $(TESTSDIR)/history.sh dc 5 %%DC_TEST_EXEC%%

test_dc_history6:
	@sh $(TESTSDIR)/history.sh dc 6 %%DC_TEST_EXEC%%

test_dc_history7:
	@sh $(TESTSDIR)/history.sh dc 7 %%DC_TEST_EXEC%%

test_dc_history8:
	@sh $(TESTSDIR)/history.sh dc 8 %%DC_TEST_EXEC%%

test_dc_history9:
	@sh $(TESTSDIR)/history.sh dc 9 %%DC_TEST_EXEC%%

test_dc_history10:
	@sh $(TESTSDIR)/history.sh dc 10 %%DC_TEST_EXEC%%

test_history_header:
	@printf '$(TEST_STARS)\n\nRunning history tests...\n\n'

library_test: $(LIBBC)
	$(CC) $(CFLAGS) -lpthread $(BCL_TEST_C) $(LIBBC) -o $(BCL_TEST)

test_library: library_test
	%%BCL_TEST_EXEC%%

karatsuba:
	%%KARATSUBA%%

karatsuba_test:
	%%KARATSUBA_TEST%%

coverage_output:
	%%COVERAGE_OUTPUT%%

coverage:%%COVERAGE_PREREQS%%

manpages:
	$(MANPAGE) bc
	$(MANPAGE) dc
	$(MANPAGE) bcl

clean_gen:
	@$(RM) -f $(GEN_EXEC)

clean:%%CLEAN_PREREQS%%
	@printf 'Cleaning files...\n'
	@$(RM) -f src/*.tmp gen/*.tmp
	@$(RM) -f $(OBJ)
	@$(RM) -f $(BC_EXEC)
	@$(RM) -f $(DC_EXEC)
	@$(RM) -fr $(BIN)
	@$(RM) -f $(BC_LIB_C) $(BC_LIB_O)
	@$(RM) -f $(BC_LIB2_C) $(BC_LIB2_O)
	@$(RM) -f $(BC_HELP_C) $(BC_HELP_O)
	@$(RM) -f $(DC_HELP_C) $(DC_HELP_O)
	@$(RM) -fr vs/bin/ vs/lib/

clean_benchmarks:
	@printf 'Cleaning benchmarks...\n'
	@$(RM) -f $(MINISTAT_EXEC)
	@$(RM) -f $(ROOTDIR)/benchmarks/bc/*.txt
	@$(RM) -f $(ROOTDIR)/benchmarks/dc/*.txt

clean_config: clean clean_benchmarks
	@printf 'Cleaning config...\n'
	@$(RM) -f Makefile
	@$(RM) -f $(BC_MD) $(BC_MANPAGE)
	@$(RM) -f $(DC_MD) $(DC_MANPAGE)
	@$(RM) -f compile_commands.json
	@$(RM) -f $(BCL_PC)

clean_coverage:
	@printf 'Cleaning coverage files...\n'
	@$(RM) -f *.gcov
	@$(RM) -f *.html *.css
	@$(RM) -f *.gcda *.gcno
	@$(RM) -f *.profraw
	@$(RM) -f $(GCDA) $(GCNO)
	@$(RM) -f $(BC_GCDA) $(BC_GCNO)
	@$(RM) -f $(DC_GCDA) $(DC_GCNO)
	@$(RM) -f $(HISTORY_GCDA) $(HISTORY_GCNO)
	@$(RM) -f $(RAND_GCDA) $(RAND_GCNO)
	@$(RM) -f $(BC_LIB_GCDA) $(BC_LIB_GCNO)
	@$(RM) -f $(BC_LIB2_GCDA) $(BC_LIB2_GCNO)
	@$(RM) -f $(BC_HELP_GCDA) $(BC_HELP_GCNO)
	@$(RM) -f $(DC_HELP_GCDA) $(DC_HELP_GCNO)

clean_tests: clean clean_config clean_coverage
	@printf 'Cleaning test files...\n'
	@$(RM) -fr $(BC_TEST_OUTPUTS) $(DC_TEST_OUTPUTS)
	@$(RM) -fr $(BC_FUZZ_OUTPUTS) $(DC_FUZZ_OUTPUTS)
	@$(RM) -f $(TESTSDIR)/bc/parse.txt $(TESTSDIR)/bc/parse_results.txt
	@$(RM) -f $(TESTSDIR)/bc/print.txt $(TESTSDIR)/bc/print_results.txt
	@$(RM) -f $(TESTSDIR)/bc/bessel.txt $(TESTSDIR)/bc/bessel_results.txt
	@$(RM) -f $(TESTSDIR)/bc/strings2.txt $(TESTSDIR)/bc/strings2_results.txt
	@$(RM) -f $(TESTSDIR)/bc/scripts/bessel.txt
	@$(RM) -f $(TESTSDIR)/bc/scripts/parse.txt
	@$(RM) -f $(TESTSDIR)/bc/scripts/print.txt
	@$(RM) -f $(TESTSDIR)/bc/scripts/add.txt
	@$(RM) -f $(TESTSDIR)/bc/scripts/divide.txt
	@$(RM) -f $(TESTSDIR)/bc/scripts/multiply.txt
	@$(RM) -f $(TESTSDIR)/bc/scripts/subtract.txt
	@$(RM) -f $(TESTSDIR)/bc/scripts/strings2.txt
	@$(RM) -f $(TESTSDIR)/dc/scripts/prime.txt
	@$(RM) -f .log_*.txt
	@$(RM) -f .math.txt .results.txt .ops.txt
	@$(RM) -f .test.txt
	@$(RM) -f tags .gdbbreakpoints .gdb_history .gdbsetup
	@$(RM) -f cscope.*
	@$(RM) -f bc.old
	@$(RM) -f $(BITFUNCGEN_EXEC)

install_locales:
	%%INSTALL_LOCALES%%

install_bc_manpage:
	$(SAFE_INSTALL) $(MANPAGE_INSTALL_ARGS) $(BC_MANPAGE) $(DESTDIR)$(MAN1DIR)/$(BC_MANPAGE_NAME)

install_dc_manpage:
	$(SAFE_INSTALL) $(MANPAGE_INSTALL_ARGS) $(DC_MANPAGE) $(DESTDIR)$(MAN1DIR)/$(DC_MANPAGE_NAME)

install_bcl_manpage:
	$(SAFE_INSTALL) $(MANPAGE_INSTALL_ARGS) $(BCL_MANPAGE) $(DESTDIR)$(MAN3DIR)/$(BCL_MANPAGE_NAME)

install_bcl_header:
	$(SAFE_INSTALL) $(MANPAGE_INSTALL_ARGS) $(BCL_HEADER) $(DESTDIR)$(INCLUDEDIR)/$(BCL_HEADER_NAME)

install_execs:
	$(INSTALL) $(DESTDIR)$(BINDIR) "$(EXEC_SUFFIX)" "$(BUILDDIR)/bin"

install_library: install_bcl_header
	$(SAFE_INSTALL) $(BINARY_INSTALL_ARGS) $(LIBBC) $(DESTDIR)$(LIBDIR)/$(LIB_NAME)
	%%PKG_CONFIG_INSTALL%%

install:%%INSTALL_LOCALES_PREREQS%%%%INSTALL_MAN_PREREQS%%%%INSTALL_PREREQS%%

uninstall_locales:
	$(LOCALE_UNINSTALL) $(NLSPATH) $(MAIN_EXEC) $(DESTDIR)

uninstall_bc_manpage:
	$(RM) -f $(DESTDIR)$(MAN1DIR)/$(BC_MANPAGE_NAME)

uninstall_bc:
	$(RM) -f $(DESTDIR)$(BINDIR)/$(EXEC_PREFIX)$(BC)$(EXEC_SUFFIX)

uninstall_dc_manpage:
	$(RM) -f $(DESTDIR)$(MAN1DIR)/$(DC_MANPAGE_NAME)

uninstall_dc:
	$(RM) -f $(DESTDIR)$(BINDIR)/$(EXEC_PREFIX)$(DC)$(EXEC_SUFFIX)

uninstall_library: uninstall_bcl_header
	$(RM) -f $(DESTDIR)$(LIBDIR)/$(LIB_NAME)
	%%PKG_CONFIG_UNINSTALL%%

uninstall_bcl_header:
	$(RM) -f $(DESTDIR)$(INCLUDEDIR)/$(BCL_HEADER_NAME)

uninstall_bcl_manpage:
	$(RM) -f $(DESTDIR)$(MAN3DIR)/$(BCL_MANPAGE_NAME)

uninstall:%%UNINSTALL_LOCALES_PREREQS%%%%UNINSTALL_MAN_PREREQS%%%%UNINSTALL_PREREQS%%
