1# 2# SPDX-License-Identifier: BSD-2-Clause 3# 4# Copyright (c) 2018-2025 Gavin D. Howard and contributors. 5# 6# Redistribution and use in source and binary forms, with or without 7# modification, are permitted provided that the following conditions are met: 8# 9# * Redistributions of source code must retain the above copyright notice, this 10# list of conditions and the following disclaimer. 11# 12# * Redistributions in binary form must reproduce the above copyright notice, 13# this list of conditions and the following disclaimer in the documentation 14# and/or other materials provided with the distribution. 15# 16# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 17# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 18# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 19# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE 20# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 21# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 22# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 23# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 24# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 25# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 26# POSSIBILITY OF SUCH DAMAGE. 27# 28# %%WARNING%% 29# 30.POSIX: 31 32ROOTDIR = %%ROOTDIR%% 33INCDIR = $(ROOTDIR)/include 34SRCDIR = $(ROOTDIR)/src 35TESTSDIR = $(ROOTDIR)/tests 36SCRIPTSDIR = $(ROOTDIR)/scripts 37GENDIR = $(ROOTDIR)/gen 38 39BUILDDIR = %%BUILDDIR%% 40 41VERSION = %%VERSION%% 42 43SRC = %%SRC%% 44OBJ = %%OBJ%% 45GCDA = %%GCDA%% 46GCNO = %%GCNO%% 47 48BC_ENABLED_NAME = BC_ENABLED 49BC_ENABLED = %%BC_ENABLED%% 50DC_ENABLED_NAME = DC_ENABLED 51DC_ENABLED = %%DC_ENABLED%% 52 53HEADERS = $(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 54BC_HEADERS = $(INCDIR)/bc.h 55DC_HEADERS = $(INCDIR)/dc.h 56HISTORY_HEADERS = $(INCDIR)/history.h 57EXTRA_MATH_HEADERS = $(INCDIR)/rand.h 58LIBRARY_HEADERS = $(INCDIR)/bcl.h $(INCDIR)/library.h 59 60GEN_DIR = %%GEN_DIR%% 61GEN = %%GEN%% 62GEN_EXEC = $(GEN_DIR)/$(GEN) 63GEN_C = $(GENDIR)/$(GEN).c 64 65GEN_EMU = %%GEN_EMU%% 66 67BC_LIB = $(GENDIR)/lib.bc 68BC_LIB_C = $(GEN_DIR)/lib.c 69BC_LIB_O = %%BC_LIB_O%% 70BC_LIB_GCDA = $(GEN_DIR)/lib.gcda 71BC_LIB_GCNO = $(GEN_DIR)/lib.gcno 72 73BC_LIB2 = $(GENDIR)/lib2.bc 74BC_LIB2_C = $(GEN_DIR)/lib2.c 75BC_LIB2_O = %%BC_LIB2_O%% 76BC_LIB2_GCDA = $(GEN_DIR)/lib2.gcda 77BC_LIB2_GCNO = $(GEN_DIR)/lib2.gcno 78 79BC_HELP = $(GENDIR)/bc_help.txt 80BC_HELP_C = $(GEN_DIR)/bc_help.c 81BC_HELP_O = %%BC_HELP_O%% 82BC_HELP_GCDA = $(GEN_DIR)/bc_help.gcda 83BC_HELP_GCNO = $(GEN_DIR)/bc_help.gcno 84 85DC_HELP = $(GENDIR)/dc_help.txt 86DC_HELP_C = $(GEN_DIR)/dc_help.c 87DC_HELP_O = %%DC_HELP_O%% 88DC_HELP_GCDA = $(GEN_DIR)/dc_help.gcda 89DC_HELP_GCNO = $(GEN_DIR)/dc_help.gcno 90 91BIN = bin 92EXEC_SUFFIX = %%EXECSUFFIX%% 93EXEC_PREFIX = %%EXECPREFIX%% 94 95BC = bc 96DC = dc 97BC_EXEC = $(BIN)/$(EXEC_PREFIX)$(BC) 98DC_EXEC = $(BIN)/$(EXEC_PREFIX)$(DC) 99BC_FUZZER = $(BIN)/$(BC)_fuzzer_c 100BC_FUZZER_C = $(BIN)/$(BC)_fuzzer_C 101DC_FUZZER = $(BIN)/$(DC)_fuzzer_c 102DC_FUZZER_C = $(BIN)/$(DC)_fuzzer_C 103 104BC_FUZZ_OUTPUTS = tests/fuzzing/bc_outputs1 tests/fuzzing/bc_outputs2 tests/fuzzing/bc_outputs3 105DC_FUZZ_OUTPUTS = tests/fuzzing/dc_outputs 106 107LIB = libbcl 108LIB_NAME = $(LIB).a 109LIBBC = $(BIN)/$(LIB_NAME) 110BCL = bcl 111 112GENERATE_TESTS = %%GENERATE_TESTS%% 113PROBLEMATIC_TESTS = %%PROBLEMATIC_TESTS%% 114 115MANUALS = manuals 116BC_MANPAGE_NAME = $(EXEC_PREFIX)$(BC)$(EXEC_SUFFIX).1 117BC_MANPAGE = $(MANUALS)/$(BC).1 118BC_MD = $(BC_MANPAGE).md 119DC_MANPAGE_NAME = $(EXEC_PREFIX)$(DC)$(EXEC_SUFFIX).1 120DC_MANPAGE = $(MANUALS)/$(DC).1 121DC_MD = $(DC_MANPAGE).md 122BCL_MANPAGE_NAME = bcl.3 123BCL_MANPAGE = $(MANUALS)/$(BCL_MANPAGE_NAME) 124BCL_MD = $(BCL_MANPAGE).md 125 126MANPAGE_INSTALL_ARGS = -Dm644 127BINARY_INSTALL_ARGS = -Dm755 128PC_INSTALL_ARGS = $(MANPAGE_INSTALL_ARGS) 129 130BCL_PC = $(BCL).pc 131PC_PATH = %%PC_PATH%% 132 133BCL_HEADER_NAME = bcl.h 134BCL_HEADER = $(INCDIR)/$(BCL_HEADER_NAME) 135 136%%DESTDIR%% 137BINDIR = %%BINDIR%% 138INCLUDEDIR = %%INCLUDEDIR%% 139LIBDIR = %%LIBDIR%% 140MAN1DIR = %%MAN1DIR%% 141MAN3DIR = %%MAN3DIR%% 142MAIN_EXEC = $(EXEC_PREFIX)$(%%MAIN_EXEC%%)$(EXEC_SUFFIX) 143EXEC = $(%%EXEC%%) 144NLSPATH = %%NLSPATH%% 145 146BC_BUILD_TYPE = %%BUILD_TYPE%% 147 148BC_ENABLE_LIBRARY = %%LIBRARY%% 149 150BC_ENABLE_HISTORY = %%HISTORY%% 151BC_ENABLE_EXTRA_MATH_NAME = BC_ENABLE_EXTRA_MATH 152BC_ENABLE_EXTRA_MATH = %%EXTRA_MATH%% 153BC_ENABLE_NLS = %%NLS%% 154BC_EXCLUDE_EXTRA_MATH = %%EXCLUDE_EXTRA_MATH%% 155 156BC_ENABLE_AFL = 0 157BC_ENABLE_OSSFUZZ = 0 158BC_ENABLE_MEMCHECK = 0 159 160LIB_FUZZING_ENGINE = 0 161 162BC_DEFAULT_BANNER = %%BC_DEFAULT_BANNER%% 163BC_DEFAULT_SIGINT_RESET = %%BC_DEFAULT_SIGINT_RESET%% 164DC_DEFAULT_SIGINT_RESET = %%DC_DEFAULT_SIGINT_RESET%% 165BC_DEFAULT_TTY_MODE = %%BC_DEFAULT_TTY_MODE%% 166DC_DEFAULT_TTY_MODE = %%DC_DEFAULT_TTY_MODE%% 167BC_DEFAULT_PROMPT = %%BC_DEFAULT_PROMPT%% 168DC_DEFAULT_PROMPT = %%DC_DEFAULT_PROMPT%% 169BC_DEFAULT_EXPR_EXIT = %%BC_DEFAULT_EXPR_EXIT%% 170DC_DEFAULT_EXPR_EXIT = %%DC_DEFAULT_EXPR_EXIT%% 171BC_DEFAULT_DIGIT_CLAMP = %%BC_DEFAULT_DIGIT_CLAMP%% 172DC_DEFAULT_DIGIT_CLAMP = %%DC_DEFAULT_DIGIT_CLAMP%% 173 174RM = rm 175MKDIR = mkdir 176 177SCRIPTS = ./scripts 178 179MINISTAT = ministat 180MINISTAT_EXEC = $(SCRIPTS)/$(MINISTAT) 181 182BITFUNCGEN = bitfuncgen 183BITFUNCGEN_EXEC = $(SCRIPTS)/$(BITFUNCGEN) 184 185INSTALL = $(SCRIPTSDIR)/exec-install.sh 186SAFE_INSTALL = $(SCRIPTSDIR)/safe-install.sh 187LINK = $(SCRIPTSDIR)/link.sh 188MANPAGE = $(SCRIPTSDIR)/manpage.sh 189KARATSUBA = $(SCRIPTSDIR)/karatsuba.py 190LOCALE_INSTALL = $(SCRIPTSDIR)/locale_install.sh 191LOCALE_UNINSTALL = $(SCRIPTSDIR)/locale_uninstall.sh 192 193BC_NUM_KARATSUBA_LEN = %%KARATSUBA_LEN%% 194 195BC_DEFS0 = -DBC_DEFAULT_BANNER=$(BC_DEFAULT_BANNER) 196BC_DEFS1 = -DBC_DEFAULT_SIGINT_RESET=$(BC_DEFAULT_SIGINT_RESET) 197BC_DEFS2 = -DBC_DEFAULT_TTY_MODE=$(BC_DEFAULT_TTY_MODE) 198BC_DEFS3 = -DBC_DEFAULT_PROMPT=$(BC_DEFAULT_PROMPT) 199BC_DEFS4 = -DBC_DEFAULT_EXPR_EXIT=$(BC_DEFAULT_EXPR_EXIT) 200BC_DEFS5 = -DBC_DEFAULT_DIGIT_CLAMP=$(BC_DEFAULT_DIGIT_CLAMP) 201BC_DEFS = $(BC_DEFS0) $(BC_DEFS1) $(BC_DEFS2) $(BC_DEFS3) $(BC_DEFS4) $(BC_DEFS5) 202DC_DEFS1 = -DDC_DEFAULT_SIGINT_RESET=$(DC_DEFAULT_SIGINT_RESET) 203DC_DEFS2 = -DDC_DEFAULT_TTY_MODE=$(DC_DEFAULT_TTY_MODE) 204DC_DEFS3 = -DDC_DEFAULT_PROMPT=$(DC_DEFAULT_PROMPT) 205DC_DEFS4 = -DDC_DEFAULT_EXPR_EXIT=$(DC_DEFAULT_EXPR_EXIT) 206DC_DEFS5 = -DDC_DEFAULT_DIGIT_CLAMP=$(DC_DEFAULT_DIGIT_CLAMP) 207DC_DEFS = $(DC_DEFS1) $(DC_DEFS2) $(DC_DEFS3) $(DC_DEFS4) $(DC_DEFS5) 208 209CPPFLAGS1 = -D$(BC_ENABLED_NAME)=$(BC_ENABLED) -D$(DC_ENABLED_NAME)=$(DC_ENABLED) 210CPPFLAGS2 = $(CPPFLAGS1) -I$(INCDIR)/ -DBUILD_TYPE=$(BC_BUILD_TYPE) %%LONG_BIT_DEFINE%% 211CPPFLAGS3 = $(CPPFLAGS2) -DEXECPREFIX=$(EXEC_PREFIX) -DMAINEXEC=$(MAIN_EXEC) 212CPPFLAGS4 = $(CPPFLAGS3) %%BSD%% %%APPLE%% 213CPPFLAGS5 = $(CPPFLAGS4) -DBC_NUM_KARATSUBA_LEN=$(BC_NUM_KARATSUBA_LEN) 214CPPFLAGS6 = $(CPPFLAGS5) -DBC_ENABLE_NLS=$(BC_ENABLE_NLS) 215CPPFLAGS7 = $(CPPFLAGS6) -D$(BC_ENABLE_EXTRA_MATH_NAME)=$(BC_ENABLE_EXTRA_MATH) 216CPPFLAGS8 = $(CPPFLAGS7) -DBC_ENABLE_HISTORY=$(BC_ENABLE_HISTORY) -DBC_ENABLE_LIBRARY=$(BC_ENABLE_LIBRARY) 217CPPFLAGS9 = $(CPPFLAGS8) -DBC_ENABLE_MEMCHECK=$(BC_ENABLE_MEMCHECK) -DBC_ENABLE_AFL=$(BC_ENABLE_AFL) 218CPPFLAGS = -DVERSION=$(VERSION) $(CPPFLAGS9) -DBC_ENABLE_OSSFUZZ=$(BC_ENABLE_OSSFUZZ) 219CFLAGS = $(CPPFLAGS) $(BC_DEFS) $(DC_DEFS) %%CPPFLAGS%% %%CFLAGS%% 220LDFLAGS = %%LDFLAGS%% 221 222HOSTCFLAGS = %%HOSTCFLAGS%% 223 224CC = %%CC%% 225HOSTCC = %%HOSTCC%% 226 227BC_LIB_C_ARGS = bc_lib bc_lib_name $(BC_ENABLED_NAME) 1 228BC_LIB2_C_ARGS = bc_lib2 bc_lib2_name "$(BC_ENABLED_NAME) && $(BC_ENABLE_EXTRA_MATH_NAME)" 1 229 230OBJS = $(DC_HELP_O) $(BC_HELP_O) $(BC_LIB_O) $(BC_LIB2_O) $(OBJ) 231 232all: %%DEFAULT_TARGET%% 233 234%%DEFAULT_TARGET%%: %%DEFAULT_TARGET_PREREQS%% 235 %%DEFAULT_TARGET_CMD%% 236 237%%SECOND_TARGET%%: %%SECOND_TARGET_PREREQS%% 238 %%SECOND_TARGET_CMD%% 239 240$(GEN_DIR): 241 mkdir -p $(GEN_DIR) 242 243$(GEN_EXEC): $(GEN_DIR) 244 %%GEN_EXEC_TARGET%% 245 246$(BC_LIB_C): $(GEN_EXEC) $(BC_LIB) 247 $(GEN_EMU) $(GEN_EXEC) $(BC_LIB) $(BC_LIB_C) $(BC_EXCLUDE_EXTRA_MATH) $(BC_LIB_C_ARGS) "" "" 1 248 249$(BC_LIB_O): $(BC_LIB_C) 250 $(CC) $(CFLAGS) -o $@ -c $< 251 252$(BC_LIB2_C): $(GEN_EXEC) $(BC_LIB2) 253 $(GEN_EMU) $(GEN_EXEC) $(BC_LIB2) $(BC_LIB2_C) $(BC_EXCLUDE_EXTRA_MATH) $(BC_LIB2_C_ARGS) "" "" 1 254 255$(BC_LIB2_O): $(BC_LIB2_C) 256 $(CC) $(CFLAGS) -o $@ -c $< 257 258$(BC_HELP_C): $(GEN_EXEC) $(BC_HELP) 259 $(GEN_EMU) $(GEN_EXEC) $(BC_HELP) $(BC_HELP_C) $(BC_EXCLUDE_EXTRA_MATH) bc_help "" $(BC_ENABLED_NAME) 0 260 261$(BC_HELP_O): $(BC_HELP_C) 262 $(CC) $(CFLAGS) -o $@ -c $< 263 264$(DC_HELP_C): $(GEN_EXEC) $(DC_HELP) 265 $(GEN_EMU) $(GEN_EXEC) $(DC_HELP) $(DC_HELP_C) $(BC_EXCLUDE_EXTRA_MATH) dc_help "" $(DC_ENABLED_NAME) 0 266 267$(DC_HELP_O): $(DC_HELP_C) 268 $(CC) $(CFLAGS) -o $@ -c $< 269 270$(BIN): 271 $(MKDIR) -p $(BIN) 272 273src: 274 $(MKDIR) -p src 275 276headers: %%HEADERS%% 277 278$(MINISTAT): 279 mkdir -p $(SCRIPTS) 280 $(HOSTCC) $(HOSTCFLAGS) -lm -o $(MINISTAT_EXEC) $(ROOTDIR)/scripts/ministat.c 281 282$(BITFUNCGEN): 283 mkdir -p $(SCRIPTS) 284 $(HOSTCC) $(HOSTCFLAGS) -lm -o $(BITFUNCGEN_EXEC) $(ROOTDIR)/scripts/bitfuncgen.c 285 286help: 287 @printf 'available targets:\n' 288 @printf '\n' 289 @printf ' all (default) builds %%EXECUTABLES%%\n' 290 @printf ' check alias for `make test`\n' 291 @printf ' clean removes all build files\n' 292 @printf ' clean_config removes all build files as well as the generated Makefile\n' 293 @printf ' install installs binaries to "%s%s"\n' "$(DESTDIR)" "$(BINDIR)" 294 @printf ' and (if enabled) manpages to "%s%s"\n' "$(DESTDIR)" "$(MAN1DIR)" 295 @printf ' uninstall uninstalls binaries from "%s%s"\n' "$(DESTDIR)" "$(BINDIR)" 296 @printf ' and (if enabled) manpages from "%s%s"\n' "$(DESTDIR)" "$(MAN1DIR)" 297 298manpages: 299 $(MANPAGE) bc 300 $(MANPAGE) dc 301 $(MANPAGE) bcl 302 303clean_gen: 304 @$(RM) -f $(GEN_EXEC) 305 306clean:%%CLEAN_PREREQS%% 307 @printf 'Cleaning files...\n' 308 @$(RM) -f src/*.tmp gen/*.tmp 309 @$(RM) -f $(OBJ) 310 @$(RM) -f $(BC_EXEC) 311 @$(RM) -f $(DC_EXEC) 312 @$(RM) -fr $(BIN) 313 @$(RM) -f $(BC_LIB_C) $(BC_LIB_O) 314 @$(RM) -f $(BC_LIB2_C) $(BC_LIB2_O) 315 @$(RM) -f $(BC_HELP_C) $(BC_HELP_O) 316 @$(RM) -f $(DC_HELP_C) $(DC_HELP_O) 317 @$(RM) -fr vs/bin/ vs/lib/ 318 319clean_benchmarks: 320 @printf 'Cleaning benchmarks...\n' 321 @$(RM) -f $(MINISTAT_EXEC) 322 @$(RM) -f $(ROOTDIR)/benchmarks/bc/*.txt 323 @$(RM) -f $(ROOTDIR)/benchmarks/dc/*.txt 324 325clean_config: clean clean_benchmarks 326 @printf 'Cleaning config...\n' 327 @$(RM) -f Makefile 328 @$(RM) -f $(BC_MD) $(BC_MANPAGE) 329 @$(RM) -f $(DC_MD) $(DC_MANPAGE) 330 @$(RM) -f compile_commands.json 331 @$(RM) -f $(BCL_PC) 332 333test: 334 @if [ $(BC_ENABLED) -ne 0 ]; then $(TESTSDIR)/all.sh -n bc $(BC_ENABLE_EXTRA_MATH) 1 $(GENERATE_TESTS) $(PROBLEMATIC_TESTS) $(BC_EXEC); fi 335 @if [ $(DC_ENABLED) -ne 0 ]; then $(TESTSDIR)/all.sh -n dc $(BC_ENABLE_EXTRA_MATH) 1 $(GENERATE_TESTS) $(PROBLEMATIC_TESTS) $(DC_EXEC); fi 336 337clean_tests: clean clean_config 338 @printf 'Cleaning test files...\n' 339 @$(RM) -fr $(BC_TEST_OUTPUTS) $(DC_TEST_OUTPUTS) 340 @$(RM) -fr $(BC_FUZZ_OUTPUTS) $(DC_FUZZ_OUTPUTS) 341 @$(RM) -f $(TESTSDIR)/bc/parse_*.txt $(TESTSDIR)/bc/parse_*_results.txt 342 @$(RM) -f $(TESTSDIR)/bc/print_*.txt $(TESTSDIR)/bc/print_*_results.txt 343 @$(RM) -f $(TESTSDIR)/bc/bessel.txt $(TESTSDIR)/bc/bessel_results.txt 344 @$(RM) -f $(TESTSDIR)/bc/strings2.txt $(TESTSDIR)/bc/strings2_results.txt 345 @$(RM) -f $(TESTSDIR)/bc/scripts/bessel.txt 346 @$(RM) -f $(TESTSDIR)/bc/scripts/parse.txt 347 @$(RM) -f $(TESTSDIR)/bc/scripts/print.txt 348 @$(RM) -f $(TESTSDIR)/bc/scripts/add_*.txt 349 @$(RM) -f $(TESTSDIR)/bc/scripts/divide_*.txt 350 @$(RM) -f $(TESTSDIR)/bc/scripts/multiply_*.txt 351 @$(RM) -f $(TESTSDIR)/bc/scripts/subtract_*.txt 352 @$(RM) -f $(TESTSDIR)/bc/scripts/strings2.txt 353 @$(RM) -f $(TESTSDIR)/dc/scripts/prime.txt 354 @$(RM) -f .log_*.txt 355 @$(RM) -f .math.txt .results.txt .ops.txt 356 @$(RM) -f .test.txt 357 @$(RM) -f tags .gdbbreakpoints .gdb_history .gdbsetup 358 @$(RM) -f cscope.* 359 @$(RM) -f bc.old 360 @$(RM) -f $(BITFUNCGEN_EXEC) 361 362install_locales: 363 %%INSTALL_LOCALES%% 364 365install_bc_manpage: 366 $(SAFE_INSTALL) $(MANPAGE_INSTALL_ARGS) $(BC_MANPAGE) $(DESTDIR)$(MAN1DIR)/$(BC_MANPAGE_NAME) 367 368install_dc_manpage: 369 $(SAFE_INSTALL) $(MANPAGE_INSTALL_ARGS) $(DC_MANPAGE) $(DESTDIR)$(MAN1DIR)/$(DC_MANPAGE_NAME) 370 371install_bcl_manpage: 372 $(SAFE_INSTALL) $(MANPAGE_INSTALL_ARGS) $(BCL_MANPAGE) $(DESTDIR)$(MAN3DIR)/$(BCL_MANPAGE_NAME) 373 374install_bcl_header: 375 $(SAFE_INSTALL) $(MANPAGE_INSTALL_ARGS) $(BCL_HEADER) $(DESTDIR)$(INCLUDEDIR)/$(BCL_HEADER_NAME) 376 377install_execs: 378 $(INSTALL) $(DESTDIR)$(BINDIR) "$(EXEC_SUFFIX)" "$(BUILDDIR)/bin" 379 380install_library: install_bcl_header 381 $(SAFE_INSTALL) $(BINARY_INSTALL_ARGS) $(LIBBC) $(DESTDIR)$(LIBDIR)/$(LIB_NAME) 382 %%PKG_CONFIG_INSTALL%% 383 384install:%%INSTALL_LOCALES_PREREQS%%%%INSTALL_MAN_PREREQS%%%%INSTALL_PREREQS%% 385 386uninstall_locales: 387 $(LOCALE_UNINSTALL) $(NLSPATH) $(MAIN_EXEC) $(DESTDIR) 388 389uninstall_bc_manpage: 390 $(RM) -f $(DESTDIR)$(MAN1DIR)/$(BC_MANPAGE_NAME) 391 392uninstall_bc: 393 $(RM) -f $(DESTDIR)$(BINDIR)/$(EXEC_PREFIX)$(BC)$(EXEC_SUFFIX) 394 395uninstall_dc_manpage: 396 $(RM) -f $(DESTDIR)$(MAN1DIR)/$(DC_MANPAGE_NAME) 397 398uninstall_dc: 399 $(RM) -f $(DESTDIR)$(BINDIR)/$(EXEC_PREFIX)$(DC)$(EXEC_SUFFIX) 400 401uninstall_library: uninstall_bcl_header 402 $(RM) -f $(DESTDIR)$(LIBDIR)/$(LIB_NAME) 403 %%PKG_CONFIG_UNINSTALL%% 404 405uninstall_bcl_header: 406 $(RM) -f $(DESTDIR)$(INCLUDEDIR)/$(BCL_HEADER_NAME) 407 408uninstall_bcl_manpage: 409 $(RM) -f $(DESTDIR)$(MAN3DIR)/$(BCL_MANPAGE_NAME) 410 411uninstall:%%UNINSTALL_LOCALES_PREREQS%%%%UNINSTALL_MAN_PREREQS%%%%UNINSTALL_PREREQS%% 412