-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 Am Thu, 26 Nov 2020 17:39:51 +0000 (UTC) Stefan Eßer <s...@freebsd.org> schrieb:
> Author: se > Date: Thu Nov 26 17:39:51 2020 > New Revision: 368072 > URL: https://svnweb.freebsd.org/changeset/base/368072 > > Log: > Update to version 3.2.0 > > Added: > head/contrib/bc/exec-install.sh > - copied unchanged from r368069, vendor/bc/dist/exec-install.sh > head/contrib/bc/include/bcl.h > - copied unchanged from r368069, vendor/bc/dist/include/bcl.h > head/contrib/bc/include/library.h > - copied unchanged from r368069, vendor/bc/dist/include/library.h > head/contrib/bc/manuals/bcl.3 > - copied unchanged from r368069, vendor/bc/dist/manuals/bcl.3 > head/contrib/bc/manuals/bcl.3.md > - copied unchanged from r368069, vendor/bc/dist/manuals/bcl.3.md > head/contrib/bc/manuals/header.txt > - copied unchanged from r368069, vendor/bc/dist/manuals/header.txt > head/contrib/bc/manuals/header_bc.txt > - copied unchanged from r368069, vendor/bc/dist/manuals/header_bc.txt > head/contrib/bc/manuals/header_bcl.txt > - copied unchanged from r368069, vendor/bc/dist/manuals/header_bcl.txt > head/contrib/bc/manuals/header_dc.txt > - copied unchanged from r368069, vendor/bc/dist/manuals/header_dc.txt > head/contrib/bc/src/bc.c > - copied unchanged from r368069, vendor/bc/dist/src/bc.c > head/contrib/bc/src/bc_lex.c > - copied unchanged from r368069, vendor/bc/dist/src/bc_lex.c > head/contrib/bc/src/bc_parse.c > - copied unchanged from r368069, vendor/bc/dist/src/bc_parse.c > head/contrib/bc/src/dc.c > - copied unchanged from r368069, vendor/bc/dist/src/dc.c > head/contrib/bc/src/dc_lex.c > - copied unchanged from r368069, vendor/bc/dist/src/dc_lex.c > head/contrib/bc/src/dc_parse.c > - copied unchanged from r368069, vendor/bc/dist/src/dc_parse.c > head/contrib/bc/src/history.c > - copied unchanged from r368069, vendor/bc/dist/src/history.c > head/contrib/bc/src/library.c > - copied unchanged from r368069, vendor/bc/dist/src/library.c > head/contrib/bc/src/rand.c > - copied unchanged from r368069, vendor/bc/dist/src/rand.c > head/contrib/bc/tests/bcl.c > - copied unchanged from r368069, vendor/bc/dist/tests/bcl.c > Deleted: > head/contrib/bc/install.sh > head/contrib/bc/src/bc/ > head/contrib/bc/src/dc/ > head/contrib/bc/src/history/ > head/contrib/bc/src/rand/ > Modified: > head/contrib/bc/.gitignore > head/contrib/bc/Makefile.in > head/contrib/bc/NEWS.md > head/contrib/bc/README.md > head/contrib/bc/configure.sh > head/contrib/bc/gen/lib.bc > head/contrib/bc/gen/strgen.c > head/contrib/bc/gen/strgen.sh > head/contrib/bc/include/file.h > head/contrib/bc/include/lex.h > head/contrib/bc/include/num.h > head/contrib/bc/include/parse.h > head/contrib/bc/include/rand.h > head/contrib/bc/include/status.h > head/contrib/bc/include/vector.h > head/contrib/bc/include/vm.h > head/contrib/bc/manpage.sh > head/contrib/bc/manuals/bc.1.md.in > head/contrib/bc/manuals/bc/A.1 > head/contrib/bc/manuals/bc/A.1.md > head/contrib/bc/manuals/bc/E.1 > head/contrib/bc/manuals/bc/E.1.md > head/contrib/bc/manuals/bc/EH.1 > head/contrib/bc/manuals/bc/EH.1.md > head/contrib/bc/manuals/bc/EHN.1 > head/contrib/bc/manuals/bc/EHN.1.md > head/contrib/bc/manuals/bc/EHNP.1 > head/contrib/bc/manuals/bc/EHNP.1.md > head/contrib/bc/manuals/bc/EHP.1 > head/contrib/bc/manuals/bc/EHP.1.md > head/contrib/bc/manuals/bc/EN.1 > head/contrib/bc/manuals/bc/EN.1.md > head/contrib/bc/manuals/bc/ENP.1 > head/contrib/bc/manuals/bc/ENP.1.md > head/contrib/bc/manuals/bc/EP.1 > head/contrib/bc/manuals/bc/EP.1.md > head/contrib/bc/manuals/bc/H.1 > head/contrib/bc/manuals/bc/H.1.md > head/contrib/bc/manuals/bc/HN.1 > head/contrib/bc/manuals/bc/HN.1.md > head/contrib/bc/manuals/bc/HNP.1 > head/contrib/bc/manuals/bc/HNP.1.md > head/contrib/bc/manuals/bc/HP.1 > head/contrib/bc/manuals/bc/HP.1.md > head/contrib/bc/manuals/bc/N.1 > head/contrib/bc/manuals/bc/N.1.md > head/contrib/bc/manuals/bc/NP.1 > head/contrib/bc/manuals/bc/NP.1.md > head/contrib/bc/manuals/bc/P.1 > head/contrib/bc/manuals/bc/P.1.md > head/contrib/bc/manuals/build.md > head/contrib/bc/manuals/dc.1.md.in > head/contrib/bc/manuals/dc/A.1 > head/contrib/bc/manuals/dc/A.1.md > head/contrib/bc/manuals/dc/E.1 > head/contrib/bc/manuals/dc/E.1.md > head/contrib/bc/manuals/dc/EH.1 > head/contrib/bc/manuals/dc/EH.1.md > head/contrib/bc/manuals/dc/EHN.1 > head/contrib/bc/manuals/dc/EHN.1.md > head/contrib/bc/manuals/dc/EHNP.1 > head/contrib/bc/manuals/dc/EHNP.1.md > head/contrib/bc/manuals/dc/EHP.1 > head/contrib/bc/manuals/dc/EHP.1.md > head/contrib/bc/manuals/dc/EN.1 > head/contrib/bc/manuals/dc/EN.1.md > head/contrib/bc/manuals/dc/ENP.1 > head/contrib/bc/manuals/dc/ENP.1.md > head/contrib/bc/manuals/dc/EP.1 > head/contrib/bc/manuals/dc/EP.1.md > head/contrib/bc/manuals/dc/H.1 > head/contrib/bc/manuals/dc/H.1.md > head/contrib/bc/manuals/dc/HN.1 > head/contrib/bc/manuals/dc/HN.1.md > head/contrib/bc/manuals/dc/HNP.1 > head/contrib/bc/manuals/dc/HNP.1.md > head/contrib/bc/manuals/dc/HP.1 > head/contrib/bc/manuals/dc/HP.1.md > head/contrib/bc/manuals/dc/N.1 > head/contrib/bc/manuals/dc/N.1.md > head/contrib/bc/manuals/dc/NP.1 > head/contrib/bc/manuals/dc/NP.1.md > head/contrib/bc/manuals/dc/P.1 > head/contrib/bc/manuals/dc/P.1.md > head/contrib/bc/release.sh > head/contrib/bc/src/args.c > head/contrib/bc/src/data.c > head/contrib/bc/src/file.c > head/contrib/bc/src/lang.c > head/contrib/bc/src/lex.c > head/contrib/bc/src/main.c > head/contrib/bc/src/num.c > head/contrib/bc/src/opt.c > head/contrib/bc/src/parse.c > head/contrib/bc/src/program.c > head/contrib/bc/src/read.c > head/contrib/bc/src/vector.c > head/contrib/bc/src/vm.c > Directory Properties: > head/contrib/bc/ (props changed) > > Modified: head/contrib/bc/.gitignore > ============================================================================== > --- head/contrib/bc/.gitignore Thu Nov 26 17:37:27 2020 > (r368071) > +++ head/contrib/bc/.gitignore Thu Nov 26 17:39:51 2020 > (r368072) > @@ -9,6 +9,7 @@ bin/*bc > bin/*bc.exe > bin/*dc > bin/*dc.exe > +bin/bcl > bc.old > *.o > *.a > > Modified: head/contrib/bc/Makefile.in > ============================================================================== > --- head/contrib/bc/Makefile.in Thu Nov 26 17:37:27 2020 > (r368071) > +++ head/contrib/bc/Makefile.in Thu Nov 26 17:39:51 2020 > (r368072) > @@ -29,33 +29,13 @@ > # > .POSIX: > > -VERSION = 3.1.6 > +VERSION = 3.2.0 > > SRC = %%SRC%% > OBJ = %%OBJ%% > GCDA = %%GCDA%% > GCNO = %%GCNO%% > > -BC_SRC = %%BC_SRC%% > -BC_OBJ = %%BC_OBJ%% > -BC_GCDA = %%BC_GCDA%% > -BC_GCNO = %%BC_GCNO%% > - > -DC_SRC = %%DC_SRC%% > -DC_OBJ = %%DC_OBJ%% > -DC_GCDA = %%DC_GCDA%% > -DC_GCNO = %%DC_GCNO%% > - > -HISTORY_SRC = %%HISTORY_SRC%% > -HISTORY_OBJ = %%HISTORY_OBJ%% > -HISTORY_GCDA = %%HISTORY_GCDA%% > -HISTORY_GCNO = %%HISTORY_GCNO%% > - > -RAND_SRC = %%RAND_SRC%% > -RAND_OBJ = %%RAND_OBJ%% > -RAND_GCDA = %%RAND_GCDA%% > -RAND_GCNO = %%RAND_GCNO%% > - > BC_ENABLED_NAME = BC_ENABLED > BC_ENABLED = %%BC_ENABLED%% > DC_ENABLED_NAME = DC_ENABLED > @@ -102,6 +82,13 @@ DC = dc > BC_EXEC = $(BIN)/$(EXEC_PREFIX)$(BC) > DC_EXEC = $(BIN)/$(EXEC_PREFIX)$(DC) > > +LIB = libbcl > +LIB_NAME = $(LIB).a > +LIBBC = $(BIN)/$(LIB_NAME) > +BCL = bcl > +BCL_TEST = $(BIN)/$(BCL) > +BCL_TEST_C = tests/$(BCL).c > + > MANUALS = manuals > BC_MANPAGE_NAME = $(EXEC_PREFIX)$(BC)$(EXEC_SUFFIX).1 > BC_MANPAGE = $(MANUALS)/$(BC).1 > @@ -109,16 +96,28 @@ 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 > > +BCL_HEADER_NAME = bcl.h > +BCL_HEADER = include/$(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_ENABLE_LIBRARY = %%LIBRARY%% > + > BC_ENABLE_HISTORY = %%HISTORY%% > BC_ENABLE_EXTRA_MATH_NAME = BC_ENABLE_EXTRA_MATH > BC_ENABLE_EXTRA_MATH = %%EXTRA_MATH%% > @@ -129,7 +128,7 @@ BC_LONG_BIT = %%LONG_BIT%% > RM = rm > MKDIR = mkdir > > -INSTALL = ./install.sh > +INSTALL = ./exec-install.sh > SAFE_INSTALL = ./safe-install.sh > LINK = ./link.sh > MANPAGE = ./manpage.sh > @@ -148,7 +147,7 @@ CPPFLAGS4 = $(CPPFLAGS3) -D_POSIX_C_SOURCE=200809L -D_ > CPPFLAGS5 = $(CPPFLAGS4) -DBC_NUM_KARATSUBA_LEN=$(BC_NUM_KARATSUBA_LEN) > CPPFLAGS6 = $(CPPFLAGS5) -DBC_ENABLE_NLS=$(BC_ENABLE_NLS) > -DBC_ENABLE_PROMPT=$(BC_ENABLE_PROMPT) CPPFLAGS7 = $(CPPFLAGS6) > -D$(BC_ENABLE_EXTRA_MATH_NAME)=$(BC_ENABLE_EXTRA_MATH) -CPPFLAGS = > $(CPPFLAGS7) > -DBC_ENABLE_HISTORY=$(BC_ENABLE_HISTORY) +CPPFLAGS = $(CPPFLAGS7) > -DBC_ENABLE_HISTORY=$(BC_ENABLE_HISTORY) > -DBC_ENABLE_LIBRARY=$(BC_ENABLE_LIBRARY) CFLAGS = > $(CPPFLAGS) %%CPPFLAGS%% %%CFLAGS%% LDFLAGS = %%LDFLAGS%% > > @@ -157,21 +156,24 @@ HOSTCFLAGS = %%HOSTCFLAGS%% > CC = %%CC%% > HOSTCC = %%HOSTCC%% > > -BC_LIB_C_ARGS = bc_lib bc.h bc_lib_name $(BC_ENABLED_NAME) 1 > -BC_LIB2_C_ARGS = bc_lib2 bc.h bc_lib2_name "$(BC_ENABLED_NAME) && > $(BC_ENABLE_EXTRA_MATH_NAME)" 1 +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 > > -OBJS1 = $(OBJ) $(DC_OBJ) $(BC_OBJ) $(HISTORY_OBJ) $(RAND_OBJ) $(BC_HELP_O) > $(DC_HELP_O) > -OBJS = $(OBJS1) $(BC_LIB_O) $(BC_LIB2_O) $(BC_LIB3_O) > -OBJ_TARGETS1 = $(DC_HELP_O) $(BC_HELP_O) $(BC_LIB_O) $(BC_LIB2_O) > $(BC_LIB3_O) > -OBJ_TARGETS = $(OBJ_TARGETS1) $(BC_OBJ) $(DC_OBJ) $(HISTORY_OBJ) $(RAND_OBJ) > $(OBJ) > +OBJS = $(BC_HELP_O) $(DC_HELP_O) $(BC_LIB_O) $(BC_LIB2_O) $(OBJ) > +OBJ_TARGETS = $(DC_HELP_O) $(BC_HELP_O) $(BC_LIB_O) $(BC_LIB2_O) $(OBJ) > > .c.o: > $(CC) $(CFLAGS) -o $@ -c $< > > -all: make_bin $(OBJ_TARGETS) > +all: %%ALL_PREREQ%% > + > +execs: make_bin $(OBJ_TARGETS) > $(CC) $(CFLAGS) $(OBJS) $(LDFLAGS) -o $(EXEC) > %%LINK%% > > +library: make_bin $(OBJ) $(BC_LIB_O) $(BC_LIB2_O) > + ar -r -cu $(LIBBC) $(BC_LIB_O) $(BC_LIB2_O) $(OBJ) > + > $(GEN_EXEC): > %%GEN_EXEC_TARGET%% > > @@ -182,10 +184,10 @@ $(BC_LIB2_C): $(GEN_EXEC) $(BC_LIB2) > $(GEN_EMU) $(GEN_EXEC) $(BC_LIB2) $(BC_LIB2_C) $(BC_LIB2_C_ARGS) > > $(BC_HELP_C): $(GEN_EXEC) $(BC_HELP) > - $(GEN_EMU) $(GEN_EXEC) $(BC_HELP) $(BC_HELP_C) bc_help bc.h "" > $(BC_ENABLED_NAME) > + $(GEN_EMU) $(GEN_EXEC) $(BC_HELP) $(BC_HELP_C) bc_help "" > $(BC_ENABLED_NAME) > > $(DC_HELP_C): $(GEN_EXEC) $(DC_HELP) > - $(GEN_EMU) $(GEN_EXEC) $(DC_HELP) $(DC_HELP_C) dc_help dc.h "" > $(DC_ENABLED_NAME) > + $(GEN_EMU) $(GEN_EXEC) $(DC_HELP) $(DC_HELP_C) dc_help "" > $(DC_ENABLED_NAME) > > make_bin: > $(MKDIR) -p $(BIN) > @@ -222,7 +224,7 @@ help: > > check: test > > -test: test_bc timeconst test_dc > +test: %%TESTS%% > > test_bc: > %%BC_TEST%% > @@ -241,6 +243,12 @@ time_test_dc: > timeconst: > %%TIMECONST%% > > +library_test: library > + $(CC) $(CFLAGS) $(BCL_TEST_C) $(LIBBC) -o $(BCL_TEST) > + > +test_library: library_test > + $(BCL_TEST) > + > valgrind: valgrind_bc valgrind_dc > > valgrind_bc: > @@ -272,6 +280,7 @@ extra_math: > manpages: > $(MANPAGE) bc > $(MANPAGE) dc > + $(MANPAGE) bcl > > clean_gen: > @$(RM) -f $(GEN_EXEC) > @@ -279,10 +288,6 @@ clean_gen: > clean:%%CLEAN_PREREQS%% > @printf 'Cleaning files...\n' > @$(RM) -f $(OBJ) > - @$(RM) -f $(BC_OBJ) > - @$(RM) -f $(DC_OBJ) > - @$(RM) -f $(HISTORY_OBJ) > - @$(RM) -f $(RAND_OBJ) > @$(RM) -f $(BC_EXEC) > @$(RM) -f $(DC_EXEC) > @$(RM) -fr $(BIN) > @@ -343,9 +348,20 @@ install_bc_manpage: > install_dc_manpage: > $(SAFE_INSTALL) $(MANPAGE_INSTALL_ARGS) $(DC_MANPAGE) > $(DESTDIR)$(MAN1DIR)/$(DC_MANPAGE_NAME) > -install:%%INSTALL_LOCALES_PREREQS%%%%INSTALL_PREREQS%% > +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)" > > +install_library: > + $(SAFE_INSTALL) $(BINARY_INSTALL_ARGS) $(LIBBC) > $(DESTDIR)$(LIBDIR)/$(LIB_NAME) > + > +install:%%INSTALL_LOCALES_PREREQS%%%%INSTALL_MAN_PREREQS%%%%INSTALL_PREREQS%% > + > uninstall_locales: > $(LOCALE_UNINSTALL) $(NLSPATH) $(MAIN_EXEC) $(DESTDIR) > > @@ -360,5 +376,14 @@ uninstall_dc_manpage: > > uninstall_dc: > $(RM) -f $(DESTDIR)$(BINDIR)/$(EXEC_PREFIX)$(DC)$(EXEC_SUFFIX) > + > +uninstall_library: > + $(RM) -f $(DESTDIR)$(LIBDIR)/$(LIB_NAME) > + > +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%% > > Modified: head/contrib/bc/NEWS.md > ============================================================================== > --- head/contrib/bc/NEWS.md Thu Nov 26 17:37:27 2020 (r368071) > +++ head/contrib/bc/NEWS.md Thu Nov 26 17:39:51 2020 (r368072) > @@ -1,5 +1,23 @@ > # News > > +## 3.2.0 > + > +This is a production release that has one bug fix and a major addition. > + > +The bug fix was a missing `auto` variable in the bessel `j()` function in the > +math library. > + > +The major addition is a way to build a version of `bc`'s math code as a > library. > +This is done with the `-a` option to `configure.sh`. The API for the library > can > +be read in `./manuals/bcl.3.md` or `man bcl` once the library is installed > with > +`make install`. > + > +This library was requested by developers before I even finished version 1.0, > but > +I could not figure out how to do it until now. > + > +If the library has API breaking changes, the major version of `bc` will be > +incremented. > + > ## 3.1.6 > > This is a production release that fixes a new warning from Clang 12 for > FreeBSD > > Modified: head/contrib/bc/README.md > ============================================================================== > --- head/contrib/bc/README.md Thu Nov 26 17:37:27 2020 (r368071) > +++ head/contrib/bc/README.md Thu Nov 26 17:39:51 2020 (r368072) > @@ -107,6 +107,23 @@ other locations, use the `PREFIX` environment variable > `configure.sh` or pass the `--prefix=<prefix>` option to `configure.sh`. See > the > [build manual][5], or run `./configure.sh --help`, for more details. > > +### Library > + > +This `bc` does provide a way to build a math library with C bindings. This is > +done by the `-a` or `--library` options to `configure.sh`: > + > +``` > +./configure.sh -a > +``` > + > +When building the library, the executables are not built. For more > information, > +see the [build manual][5]. > + > +The library API can be found in [`manuals/bcl.3.md`][26] or `man bcl` once > the > +library is installed. > + > +The library is built as `bin/libbcl.a`. > + > ### Package and Distro Maintainers > > #### Recommended Compiler > @@ -335,3 +352,4 @@ Folders: > [23]: https://svnweb.freebsd.org/base/head/contrib/bc/ > [24]: https://bugs.freebsd.org/ > [25]: https://reviews.freebsd.org/ > +[26]: ./manuals/bcl.3.md > > Modified: head/contrib/bc/configure.sh > ============================================================================== > --- head/contrib/bc/configure.sh Thu Nov 26 17:37:27 2020 > (r368071) > +++ head/contrib/bc/configure.sh Thu Nov 26 17:39:51 2020 > (r368072) > @@ -45,22 +45,27 @@ usage() { > _usage_val=0 > fi > > - printf 'usage: %s -h\n' "$script" > - printf ' %s --help\n' "$script" > - printf ' %s [-bD|-dB|-c] [-EfgGHlMNPT] [-O OPT_LEVEL] [-k > KARATSUBA_LEN]\n' > "$script" > - printf ' %s \\\n' "$script" > - printf ' [--bc-only --disable-dc|--dc-only > --disable-bc|--coverage] > \\\n' > - printf ' [--debug --disable-extra-math > --disable-generated-tests] > \\\n' > - printf ' [--disable-history --disable-man-pages --disable-nls] > \\\n' > - printf ' [--disable-prompt --disable-strip] > [--install-all-locales] > \\\n' > - printf ' [--opt=OPT_LEVEL] [--karatsuba-len=KARATSUBA_LEN] > \\\n' > - printf ' [--prefix=PREFIX] [--bindir=BINDIR] > [--datarootdir=DATAROOTDIR] > \\\n' > - printf ' [--datadir=DATADIR] [--mandir=MANDIR] > [--man1dir=MAN1DIR] > \\\n' > - printf ' [--force] > \\\n' > + printf 'usage:\n' > + printf ' %s -h\n' "$script" > + printf ' %s --help\n' "$script" > + printf ' %s [-a|-bD|-dB|-c] [-EfgGHlMNPT] [-O OPT_LEVEL] [-k > KARATSUBA_LEN]\n' > "$script" > + printf ' %s \\\n' "$script" > + printf ' [--library|--bc-only --disable-dc|--dc-only > --disable-bc|--coverage]\\\n' > + printf ' [--force --debug --disable-extra-math > --disable-generated-tests] > \\\n' > + printf ' [--disable-history --disable-man-pages --disable-nls] > \\\n' > + printf ' [--disable-prompt --disable-strip] > [--install-all-locales] > \\\n' > + printf ' [--opt=OPT_LEVEL] [--karatsuba-len=KARATSUBA_LEN] > \\\n' > + printf ' [--prefix=PREFIX] [--bindir=BINDIR] > [--datarootdir=DATAROOTDIR] > \\\n' > + printf ' [--datadir=DATADIR] [--mandir=MANDIR] [--man1dir=MAN1DIR] > \\\n' printf '\n' > + printf ' -a, --library\n' > + printf ' Build the libbc instead of the programs. This is meant > to be used > with\n' > + printf ' Other software like programming languages that want to > make use of > the\n' > + printf ' parsing and math capabilities. This option will install > headers > using\n' > + printf ' `make install`.\n' > printf ' -b, --bc-only\n' > - printf ' Build bc only. It is an error if "-d", "--dc-only", > "-B", or > "--disable-bc"\n' > - printf ' are specified too.\n' > + printf ' Build bc only. It is an error if "-d", "--dc-only", > "-B", or\n' > + printf ' "--disable-bc" are specified too.\n' > printf ' -B, --disable-bc\n' > printf ' Disable bc. It is an error if "-b", "--bc-only", "-D", > or > "--disable-dc"\n' printf ' are specified too.\n' > @@ -69,10 +74,10 @@ usage() { > printf ' It is an error if either "-b" ("-D") or "-d" ("-B") is > specified.\n' > printf ' Requires a compiler that use gcc-compatible coverage > options\n' > printf ' -d, --dc-only\n' > - printf ' Build dc only. It is an error if "-b", "--bc-only", > "-D", or > "--disable-dc"\n' > - printf ' are specified too.\n' > + printf ' Build dc only. It is an error if "-b", "--bc-only", > "-D", or\n' > + printf ' "--disable-dc" are specified too.\n' > printf ' -D, --disable-dc\n' > - printf ' Disable dc. It is an error if "-d", "--dc-only" "-B", or > "--disable-bc"\n' > + printf ' Disable dc. It is an error if "-d", "--dc-only", "-B", > or > "--disable-bc"\n' printf ' are specified too.\n' > printf ' -E, --disable-extra-math\n' > printf ' Disable extra math. This includes: "$" operator > (truncate to > integer),\n' @@ -122,8 +127,14 @@ usage() { > printf ' If PREFIX is "/usr", install path will be "/usr/bin".\n' > printf ' Default is "/usr/local".\n' > printf ' --bindir BINDIR\n' > - printf ' The directory to install binaries. Overrides "$BINDIR" > if it > exists.\n' > + printf ' The directory to install binaries in. Overrides > "$BINDIR" if it > exists.\n' printf ' Default is "$PREFIX/bin".\n' > + printf ' --includedir INCLUDEDIR\n' > + printf ' The directory to install headers in. Overrides > "$INCLUDEDIR" if > it\n' > + printf ' exists. Default is "$PREFIX/include".\n' > + printf ' --libdir LIBDIR\n' > + printf ' The directory to install libraries in. Overrides > "$LIBDIR" if it > exists.\n' > + printf ' Default is "$PREFIX/lib".\n' > printf ' --datarootdir DATAROOTDIR\n' > printf ' The root location for data files. Overrides > "$DATAROOTDIR" if it > exists.\n' printf ' Default is "$PREFIX/share".\n' > @@ -136,6 +147,9 @@ usage() { > printf ' --man1dir MAN1DIR\n' > printf ' The location to install Section 1 manpages to. > Overrides "$MAN1DIR" > if\n' printf ' it exists. Default is "$MANDIR/man1".\n' > + printf ' --man3dir MAN3DIR\n' > + printf ' The location to install Section 3 manpages to. > Overrides "$MAN3DIR" > if\n' > + printf ' it exists. Default is "$MANDIR/man3".\n' > printf '\n' > printf 'In addition, the following environment variables are used:\n' > printf '\n' > @@ -157,12 +171,18 @@ usage() { > printf ' LDFLAGS Linker flags. Default is "".\n' > printf ' PREFIX The prefix to install to. Default is > "/usr/local".\n' > printf ' If PREFIX is "/usr", install path will be > "/usr/bin".\n' > - printf ' BINDIR The directory to install binaries. Default is > "$PREFIX/bin".\n' > + printf ' BINDIR The directory to install binaries in. Default > is > "$PREFIX/bin".\n' > + printf ' INCLUDEDIR The directory to install header files in. > Default is\n' > + printf ' "$PREFIX/include".\n' > + printf ' LIBDIR The directory to install libraries in. Default > is\n' > + printf ' "$PREFIX/lib".\n' > printf ' DATAROOTDIR The root location for data files. Default is > "$PREFIX/share".\n' printf ' DATADIR The location for data files. > Default is > "$DATAROOTDIR".\n' printf ' MANDIR The location to install manpages > to. Default is > "$DATADIR/man".\n' printf ' MAN1DIR The location to install Section 1 > manpages to. > Default is\n' printf ' "$MANDIR/man1".\n' > + printf ' MAN3DIR The location to install Section 3 manpages to. > Default > is\n' > + printf ' "$MANDIR/man3".\n' > printf ' NLSPATH The location to install locale catalogs to. > Must be an > absolute\n' printf ' path (or contain one). This is treated > the same as the > POSIX\n' printf ' definition of $NLSPATH (see POSIX > environment variables > for\n' @@ -257,56 +277,55 @@ replace() { > substring_replace "$_replace_str" "%%$_replace_needle%%" > "$_replace_replacement" > } > > -gen_file_lists() { > +gen_file_list() { > > - if [ "$#" -lt 3 ]; then > + if [ "$#" -lt 1 ]; then > err_exit "Invalid number of args to $0" > fi > > - _gen_file_lists_contents="$1" > + _gen_file_list_contents="$1" > shift > > - _gen_file_lists_filedir="$1" > - shift > + p=$(pwd) > > - _gen_file_lists_typ="$1" > - shift > + cd "$scriptdir" > > - # If there is an extra argument, and it > - # is zero, we keep the file lists empty. > - if [ "$#" -gt 0 ]; then > - _gen_file_lists_use="$1" > + if [ "$#" -ge 1 ]; then > + > + while [ "$#" -ge 1 ]; do > + a="$1" > + shift > + args="$args ! -wholename src/${a}" > + done > + > else > - _gen_file_lists_use="1" > + args="-print" > fi > > - _gen_file_lists_needle_src="${_gen_file_lists_typ}SRC" > - _gen_file_lists_needle_obj="${_gen_file_lists_typ}OBJ" > - _gen_file_lists_needle_gcda="${_gen_file_lists_typ}GCDA" > - _gen_file_lists_needle_gcno="${_gen_file_lists_typ}GCNO" > + _gen_file_list_needle_src="SRC" > + _gen_file_list_needle_obj="OBJ" > + _gen_file_list_needle_gcda="GCDA" > + _gen_file_list_needle_gcno="GCNO" > > - if [ "$_gen_file_lists_use" -ne 0 ]; then > + _gen_file_list_replacement=$(find src/ -depth -name "*.c" $args | tr > '\n' ' ') > + _gen_file_list_contents=$(replace "$_gen_file_list_contents" \ > + "$_gen_file_list_needle_src" "$_gen_file_list_replacement") > > - _gen_file_lists_replacement=$(cd "$_gen_file_lists_filedir" && > find . ! > -name . -prune -name "*.c" | cut -d/ -f2 | sed > "s@^@$_gen_file_lists_filedir/@g" | tr '\n' ' > ') > - _gen_file_lists_contents=$(replace "$_gen_file_lists_contents" > "$_gen_file_lists_needle_src" "$_gen_file_lists_replacement") > + _gen_file_list_replacement=$(replace_exts "$_gen_file_list_replacement" > "c" "o") > + _gen_file_list_contents=$(replace "$_gen_file_list_contents" \ > + "$_gen_file_list_needle_obj" "$_gen_file_list_replacement") > > - _gen_file_lists_replacement=$(replace_exts > "$_gen_file_lists_replacement" > "c" "o") > - _gen_file_lists_contents=$(replace "$_gen_file_lists_contents" > "$_gen_file_lists_needle_obj" "$_gen_file_lists_replacement") > + _gen_file_list_replacement=$(replace_exts "$_gen_file_list_replacement" > "o" "gcda") > + _gen_file_list_contents=$(replace "$_gen_file_list_contents" \ > + "$_gen_file_list_needle_gcda" "$_gen_file_list_replacement") > > - _gen_file_lists_replacement=$(replace_exts > "$_gen_file_lists_replacement" > "o" "gcda") > - _gen_file_lists_contents=$(replace "$_gen_file_lists_contents" > "$_gen_file_lists_needle_gcda" "$_gen_file_lists_replacement") > + _gen_file_list_replacement=$(replace_exts "$_gen_file_list_replacement" > "gcda" > "gcno") > + _gen_file_list_contents=$(replace "$_gen_file_list_contents" \ > + "$_gen_file_list_needle_gcno" "$_gen_file_list_replacement") > > - _gen_file_lists_replacement=$(replace_exts > "$_gen_file_lists_replacement" > "gcda" "gcno") > - _gen_file_lists_contents=$(replace "$_gen_file_lists_contents" > "$_gen_file_lists_needle_gcno" "$_gen_file_lists_replacement") > + cd "$p" > > - else > - _gen_file_lists_contents=$(replace "$_gen_file_lists_contents" > "$_gen_file_lists_needle_src" "") > - _gen_file_lists_contents=$(replace "$_gen_file_lists_contents" > "$_gen_file_lists_needle_obj" "") > - _gen_file_lists_contents=$(replace "$_gen_file_lists_contents" > "$_gen_file_lists_needle_gcda" "") > - _gen_file_lists_contents=$(replace "$_gen_file_lists_contents" > "$_gen_file_lists_needle_gcno" "") > - fi > - > - printf '%s\n' "$_gen_file_lists_contents" > + printf '%s\n' "$_gen_file_list_contents" > } > > bc_only=0 > @@ -324,10 +343,12 @@ prompt=1 > force=0 > strip_bin=1 > all_locales=0 > +library=0 > > -while getopts "bBcdDEfgGhHk:lMNO:PST-" opt; do > +while getopts "abBcdDEfgGhHk:lMNO:PST-" opt; do > > case "$opt" in > + a) library=1 ;; > b) bc_only=1 ;; > B) dc_only=1 ;; > c) coverage=1 ;; > @@ -352,6 +373,7 @@ while getopts "bBcdDEfgGhHk:lMNO:PST-" opt; do > LONG_OPTARG="${arg#*=}" > case $arg in > help) usage ;; > + library) library=1 ;; > bc-only) bc_only=1 ;; > dc-only) dc_only=1 ;; > coverage) coverage=1 ;; > @@ -371,6 +393,20 @@ while getopts "bBcdDEfgGhHk:lMNO:PST-" opt; do > fi > BINDIR="$2" > shift ;; > + includedir=?*) INCLUDEDIR="$LONG_OPTARG" ;; > + includedir) > + if [ "$#" -lt 2 ]; then > + usage "No argument given for > '--$arg' > option" > + fi > + INCLUDEDIR="$2" > + shift ;; > + libdir=?*) LIBDIR="$LONG_OPTARG" ;; > + libdir) > + if [ "$#" -lt 2 ]; then > + usage "No argument given for > '--$arg' > option" > + fi > + LIBDIR="$2" > + shift ;; > datarootdir=?*) DATAROOTDIR="$LONG_OPTARG" ;; > datarootdir) > if [ "$#" -lt 2 ]; then > @@ -399,6 +435,13 @@ while getopts "bBcdDEfgGhHk:lMNO:PST-" opt; do > fi > MAN1DIR="$2" > shift ;; > + man3dir=?*) MAN3DIR="$LONG_OPTARG" ;; > + man3dir) > + if [ "$#" -lt 2 ]; then > + usage "No argument given for > '--$arg' > option" > + fi > + MAN3DIR="$2" > + shift ;; > localedir=?*) LOCALEDIR="$LONG_OPTARG" ;; > localedir) > if [ "$#" -lt 2 ]; then > @@ -454,6 +497,12 @@ if [ "$bc_only" -eq 1 ] && [ "$dc_only" -eq 1 ]; then > usage "Can only specify one of -b(-D) or -d(-B)" > fi > > +if [ "$library" -ne 0 ]; then > + if [ "$bc_only" -eq 1 ] || [ "$dc_only" -eq 1 ]; then > + usage "Must not specify -b(-D) or -d(-B) when building the > library" > + fi > +fi > + > case $karatsuba_len in > (*[!0-9]*|'') usage "KARATSUBA_LEN is not a number" ;; > (*) ;; > @@ -529,6 +578,8 @@ link="@printf 'No link necessary\\\\n'" > main_exec="BC" > executable="BC_EXEC" > > +tests="test_bc timeconst test_dc" > + > bc_test="@tests/all.sh bc $extra_math 1 $generate_tests 0 \$(BC_EXEC)" > bc_time_test="@tests/all.sh bc $extra_math 1 $generate_tests 1 \$(BC_EXEC)" > > @@ -567,7 +618,8 @@ if [ "$bc_only" -eq 1 ]; then > dc_time_test="@printf 'No dc tests to run\\\\n'" > vg_dc_test="@printf 'No dc tests to run\\\\n'" > > - install_prereqs=" install_bc_manpage" > + install_prereqs=" install_execs" > + install_man_prereqs=" install_bc_manpage" > uninstall_prereqs=" uninstall_bc" > uninstall_man_prereqs=" uninstall_bc_manpage" > > @@ -590,7 +642,8 @@ elif [ "$dc_only" -eq 1 ]; then > > timeconst="@printf 'timeconst cannot be run because bc is not > built\\\\n'" > > - install_prereqs=" install_dc_manpage" > + install_prereqs=" install_execs" > + install_man_prereqs=" install_dc_manpage" > uninstall_prereqs=" uninstall_dc" > uninstall_man_prereqs=" uninstall_dc_manpage" > > @@ -606,9 +659,18 @@ else > karatsuba="@\$(KARATSUBA) 30 0 \$(BC_EXEC)" > karatsuba_test="@\$(KARATSUBA) 1 100 \$(BC_EXEC)" > > - install_prereqs=" install_bc_manpage install_dc_manpage" > - uninstall_prereqs=" uninstall_bc uninstall_dc" > - uninstall_man_prereqs=" uninstall_bc_manpage uninstall_dc_manpage" > + if [ "$library" -eq 0 ]; then > + install_prereqs=" install_execs" > + install_man_prereqs=" install_bc_manpage install_dc_manpage" > + uninstall_prereqs=" uninstall_bc uninstall_dc" > + uninstall_man_prereqs=" uninstall_bc_manpage > uninstall_dc_manpage" > + else > + install_prereqs=" install_library install_bcl_header" > + install_man_prereqs=" install_bcl_manpage" > + uninstall_prereqs=" uninstall_library uninstall_bcl_header" > + uninstall_man_prereqs=" uninstall_bcl_manpage" > + tests="test_library" > + fi > > fi > > @@ -664,6 +726,14 @@ if [ -z "${BINDIR+set}" ]; then > BINDIR="$PREFIX/bin" > fi > > +if [ -z "${INCLUDEDIR+set}" ]; then > + INCLUDEDIR="$PREFIX/include" > +fi > + > +if [ -z "${LIBDIR+set}" ]; then > + LIBDIR="$PREFIX/lib" > +fi > + > if [ "$install_manpages" -ne 0 ] || [ "$nls" -ne 0 ]; then > if [ -z "${DATAROOTDIR+set}" ]; then > DATAROOTDIR="$PREFIX/share" > @@ -684,11 +754,25 @@ if [ "$install_manpages" -ne 0 ]; then > MAN1DIR="$MANDIR/man1" > fi > > + if [ -z "${MAN3DIR+set}" ]; then > + MAN3DIR="$MANDIR/man3" > + fi > + > else > - install_prereqs="" > + install_man_prereqs="" > uninstall_man_prereqs="" > fi > > +if [ "$library" -ne 0 ]; then > + extra_math=1 > + nls=0 > + hist=0 > + prompt=0 > + ALL_PREREQ="library" > +else > + ALL_PREREQ="execs" > +fi > + > if [ "$nls" -ne 0 ]; then > > set +e > @@ -776,11 +860,11 @@ if [ "$hist" -eq 1 ]; then > printf 'Testing history...\n' > > flags="-DBC_ENABLE_HISTORY=1 -DBC_ENABLED=$bc -DDC_ENABLED=$dc" > - flags="$flags -DBC_ENABLE_NLS=$nls" > + flags="$flags -DBC_ENABLE_NLS=$nls -DBC_ENABLE_LIBRARY=0" > flags="$flags -DBC_ENABLE_EXTRA_MATH=$extra_math -I./include/" > flags="$flags -D_POSIX_C_SOURCE=200809L -D_XOPEN_SOURCE=700" > > - "$CC" $CPPFLAGS $CFLAGS $flags -c "src/history/history.c" -o > "$scriptdir/history.o" > > /dev/null 2>&1 > + "$CC" $CPPFLAGS $CFLAGS $flags -c "src/history.c" -o > "$scriptdir/history.o" > > /dev/null 2>&1 > err="$?" > > @@ -804,7 +888,11 @@ if [ "$hist" -eq 1 ]; then > > fi > > -if [ "$extra_math" -eq 1 ] && [ "$bc" -ne 0 ]; then > +if [ "$library" -eq 1 ]; then > + bc_lib="" > +fi > + > +if [ "$extra_math" -eq 1 ] && [ "$bc" -ne 0 ] && [ "$library" -eq 0 ]; then > BC_LIB2_O="\$(GEN_DIR)/lib2.o" > else > BC_LIB2_O="" > @@ -846,6 +934,33 @@ if [ "$manpage_args" = "" ]; then > manpage_args="A" > fi > > +unneeded="" > + > +if [ "$hist" -eq 0 ]; then > + unneeded="$unneeded history.c" > +fi > + > +if [ "$bc" -eq 0 ]; then > + unneeded="$unneeded bc.c bc_lex.c bc_parse.c" > +fi > + > +if [ "$dc" -eq 0 ]; then > + unneeded="$unneeded dc.c dc_lex.c dc_parse.c" > +fi > + > +if [ "$extra_math" -eq 0 ]; then > + unneeded="$unneeded rand.c" > +fi > + > +if [ "$library" -ne 0 ]; then > + unneeded="$unneeded args.c opt.c read.c file.c main.c" > + unneeded="$unneeded lang.c lex.c parse.c program.c" > + unneeded="$unneeded bc.c bc_lex.c bc_parse.c" > + unneeded="$unneeded dc.c dc_lex.c dc_parse.c" > +else > + unneeded="$unneeded library.c" > +fi > + > # Print out the values; this is for debugging. > if [ "$bc" -ne 0 ]; then > printf 'Building bc\n' > @@ -858,6 +973,7 @@ else > printf 'Not building dc\n' > fi > printf '\n' > +printf 'BC_ENABLE_LIBRARY=%s\n\n' "$library" > printf 'BC_ENABLE_HISTORY=%s\n' "$hist" > printf 'BC_ENABLE_EXTRA_MATH=%s\n' "$extra_math" > printf 'BC_ENABLE_NLS=%s\n' "$nls" > @@ -873,10 +989,13 @@ printf 'CPPFLAGS=%s\n' "$CPPFLAGS" > printf 'LDFLAGS=%s\n' "$LDFLAGS" > printf 'PREFIX=%s\n' "$PREFIX" > printf 'BINDIR=%s\n' "$BINDIR" > +printf 'INCLUDEDIR=%s\n' "$INCLUDEDIR" > +printf 'LIBDIR=%s\n' "$LIBDIR" > printf 'DATAROOTDIR=%s\n' "$DATAROOTDIR" > printf 'DATADIR=%s\n' "$DATADIR" > printf 'MANDIR=%s\n' "$MANDIR" > printf 'MAN1DIR=%s\n' "$MAN1DIR" > +printf 'MAN3DIR=%s\n' "$MAN3DIR" > printf 'NLSPATH=%s\n' "$NLSPATH" > printf 'EXECSUFFIX=%s\n' "$EXECSUFFIX" > printf 'EXECPREFIX=%s\n' "$EXECPREFIX" > @@ -892,16 +1011,17 @@ replacement='*** WARNING: Autogenerated from Makefile. > > contents=$(replace "$contents" "$needle" "$replacement") > > -contents=$(gen_file_lists "$contents" "$scriptdir/src" "") > -contents=$(gen_file_lists "$contents" "$scriptdir/src/bc" "BC_" "$bc") > -contents=$(gen_file_lists "$contents" "$scriptdir/src/dc" "DC_" "$dc") > -contents=$(gen_file_lists "$contents" "$scriptdir/src/history" "HISTORY_" > "$hist") > -contents=$(gen_file_lists "$contents" "$scriptdir/src/rand" "RAND_" > "$extra_math") > +if [ "$unneeded" = "" ]; then > + contents=$(gen_file_list "$contents" "library.c") > +else > + contents=$(gen_file_list "$contents" $unneeded) > +fi > > contents=$(replace "$contents" "BC_ENABLED" "$bc") > contents=$(replace "$contents" "DC_ENABLED" "$dc") > contents=$(replace "$contents" "LINK" "$link") > > +contents=$(replace "$contents" "LIBRARY" "$library") > contents=$(replace "$contents" "HISTORY" "$hist") > contents=$(replace "$contents" "EXTRA_MATH" "$extra_math") > contents=$(replace "$contents" "NLS" "$nls") > @@ -917,7 +1037,10 @@ contents=$(replace "$contents" "DESTDIR" "$destdir") > contents=$(replace "$contents" "EXECSUFFIX" "$EXECSUFFIX") > contents=$(replace "$contents" "EXECPREFIX" "$EXECPREFIX") > contents=$(replace "$contents" "BINDIR" "$BINDIR") > +contents=$(replace "$contents" "INCLUDEDIR" "$INCLUDEDIR") > +contents=$(replace "$contents" "LIBDIR" "$LIBDIR") > contents=$(replace "$contents" "MAN1DIR" "$MAN1DIR") > +contents=$(replace "$contents" "MAN3DIR" "$MAN3DIR") > contents=$(replace "$contents" "CFLAGS" "$CFLAGS") > contents=$(replace "$contents" "HOSTCFLAGS" "$HOSTCFLAGS") > contents=$(replace "$contents" "CPPFLAGS" "$CPPFLAGS") > @@ -927,15 +1050,19 @@ contents=$(replace "$contents" "HOSTCC" "$HOSTCC") > contents=$(replace "$contents" "COVERAGE_OUTPUT" "$COVERAGE_OUTPUT") > contents=$(replace "$contents" "COVERAGE_PREREQS" "$COVERAGE_PREREQS") > contents=$(replace "$contents" "INSTALL_PREREQS" "$install_prereqs") > +contents=$(replace "$contents" "INSTALL_MAN_PREREQS" "$install_man_prereqs") > contents=$(replace "$contents" "INSTALL_LOCALES" "$install_locales") > contents=$(replace "$contents" "INSTALL_LOCALES_PREREQS" > "$install_locales_prereqs") > contents=$(replace "$contents" "UNINSTALL_MAN_PREREQS" > "$uninstall_man_prereqs") > contents=$(replace "$contents" "UNINSTALL_PREREQS" "$uninstall_prereqs") > contents=$(replace "$contents" "UNINSTALL_LOCALES_PREREQS" > "$uninstall_locales_prereqs") > > +contents=$(replace "$contents" "ALL_PREREQ" "$ALL_PREREQ") > + > contents=$(replace "$contents" "EXECUTABLES" "$executables") > contents=$(replace "$contents" "MAIN_EXEC" "$main_exec") > contents=$(replace "$contents" "EXEC" "$executable") > +contents=$(replace "$contents" "TESTS" "$tests") > > contents=$(replace "$contents" "BC_TEST" "$bc_test") > contents=$(replace "$contents" "BC_TIME_TEST" "$bc_time_test") > > Copied: head/contrib/bc/exec-install.sh (from r368069, > vendor/bc/dist/exec-install.sh) > ============================================================================== > --- /dev/null 00:00:00 1970 (empty, because file is newly added) > +++ head/contrib/bc/exec-install.sh Thu Nov 26 17:39:51 2020 > (r368072, copy of > r368069, vendor/bc/dist/exec-install.sh) @@ -0,0 +1,63 @@ > +#! /bin/sh > +# > +# SPDX-License-Identifier: BSD-2-Clause > +# > +# Copyright (c) 2018-2020 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. > +# > + > +usage() { > + printf "usage: %s install_dir exec_suffix\n" "$0" 1>&2 > + exit 1 > +} > + > +script="$0" > +scriptdir=$(dirname "$script") > + > +. "$scriptdir/functions.sh" > + > +INSTALL="$scriptdir/safe-install.sh" > + > +test "$#" -ge 2 || usage > + > +installdir="$1" > +shift > + > +exec_suffix="$1" > +shift > + > +bindir="$scriptdir/bin" > + > +for exe in $bindir/*; do > + > + base=$(basename "$exe") > + > + if [ -L "$exe" ]; then > + link=$(readlink "$exe") > + "$INSTALL" -Dlm 755 "$link$exec_suffix" > "$installdir/$base$exec_suffix" > + else > + "$INSTALL" -Dm 755 "$exe" "$installdir/$base$exec_suffix" > + fi > + > +done > > Modified: head/contrib/bc/gen/lib.bc > ============================================================================== > --- head/contrib/bc/gen/lib.bc Thu Nov 26 17:37:27 2020 > (r368071) > +++ head/contrib/bc/gen/lib.bc Thu Nov 26 17:39:51 2020 > (r368072) > @@ -173,7 +173,7 @@ define a(x){ > return((m*a+r)/n) > } > define j(n,x){ > - auto b,s,o,a,i,v,f > + auto b,s,o,a,i,r,v,f > b=ibase > ibase=A > s=scale > > Modified: head/contrib/bc/gen/strgen.c > ============================================================================== > --- head/contrib/bc/gen/strgen.c Thu Nov 26 17:37:27 2020 > (r368071) > +++ head/contrib/bc/gen/strgen.c Thu Nov 26 17:39:51 2020 > (r368072) > @@ -45,13 +45,14 @@ > static const char* const bc_gen_header = > "// Copyright (c) 2018-2020 Gavin D. Howard and contributors.\n" > "// Licensed under the 2-clause BSD license.\n" > - "// *** AUTOMATICALLY GENERATED FROM %s. DO NOT MODIFY. ***\n"; > + "// *** AUTOMATICALLY GENERATED FROM %s. DO NOT MODIFY. ***\n\n"; > > -static const char* const bc_gen_include = "#include <%s>\n\n"; > static const char* const bc_gen_label = "const char *%s = \"%s\";\n\n"; > +static const char* const bc_gen_label_extern = "extern const char *%s;\n\n"; > static const char* const bc_gen_ifdef = "#if %s\n"; > static const char* const bc_gen_endif = "#endif // %s\n"; > static const char* const bc_gen_name = "const char %s[] = {\n"; > +static const char* const bc_gen_name_extern = "extern const char %s[];\n\n"; > > #define IO_ERR (1) > #define INVALID_INPUT_FILE (2) > @@ -62,7 +63,7 @@ static const char* const bc_gen_name = "const char %s[ > int main(int argc, char *argv[]) { > > FILE *in, *out; > - char *label, *define, *name, *include; > + char *label, *define, *name; > int c, count, slashes, err = IO_ERR; > bool has_label, has_define, remove_tabs; > > @@ -72,15 +73,14 @@ int main(int argc, char *argv[]) { > } > > name = argv[3]; > - include = argv[4]; > > - has_label = (argc > 5 && strcmp("", argv[5]) != 0); > - label = has_label ? argv[5] : ""; > + has_label = (argc > 4 && strcmp("", argv[4]) != 0); > + label = has_label ? argv[4] : ""; > > - has_define = (argc > 6 && strcmp("", argv[6]) != 0); > - define = has_define ? argv[6] : ""; > + has_define = (argc > 5 && strcmp("", argv[5]) != 0); > + define = has_define ? argv[5] : ""; > > - remove_tabs = (argc > 7); > + remove_tabs = (argc > 6); > > in = fopen(argv[1], "r"); > if (!in) return INVALID_INPUT_FILE; > @@ -89,8 +89,9 @@ int main(int argc, char *argv[]) { > if (!out) goto out_err; > > if (fprintf(out, bc_gen_header, argv[1]) < 0) goto err; > + if (has_label && fprintf(out, bc_gen_label_extern, label) < 0) goto err; > + if (fprintf(out, bc_gen_name_extern, name) < 0) goto err; > if (has_define && fprintf(out, bc_gen_ifdef, define) < 0) goto err; > - if (fprintf(out, bc_gen_include, include) < 0) goto err; > if (has_label && fprintf(out, bc_gen_label, label, argv[1]) < 0) goto > err; > if (fprintf(out, bc_gen_name, name) < 0) goto err; > > > Modified: head/contrib/bc/gen/strgen.sh > ============================================================================== > --- head/contrib/bc/gen/strgen.sh Thu Nov 26 17:37:27 2020 > (r368071) > +++ head/contrib/bc/gen/strgen.sh Thu Nov 26 17:39:51 2020 > (r368072) > @@ -32,7 +32,7 @@ export LC_CTYPE=C > > progname=${0##*/} > > -if [ $# -lt 4 ]; then > +if [ $# -lt 3 ]; then > echo "usage: $progname input output name header [label [define > [remove_tabs]]]" > exit 1 > fi > @@ -40,16 +40,16 @@ fi > input="$1" > output="$2" > name="$3" > -header="$4" > -label="$5" > -define="$6" > -remove_tabs="$7" > +label="$4" > +define="$5" > +remove_tabs="$6" > > exec < "$input" > exec > "$output" > > if [ -n "$label" ]; then > nameline="const char *${label} = \"${input}\";" > + labelexternline="extern const char *${label};" > fi > > if [ -n "$define" ]; then > @@ -64,11 +64,14 @@ if [ -n "$remove_tabs" ]; then > fi > > cat<<EOF > +// Copyright (c) 2018-2020 Gavin D. Howard and contributors. > // Licensed under the 2-clause BSD license. > // *** AUTOMATICALLY GENERATED FROM ${input}. DO NOT MODIFY. *** > > ${condstart} > -#include <${header}> > +$labelexternline > + > +extern const char $name[]; > > $nameline > > > Copied: head/contrib/bc/include/bcl.h (from r368069, > vendor/bc/dist/include/bcl.h) > ============================================================================== > --- /dev/null 00:00:00 1970 (empty, because file is newly added) > +++ head/contrib/bc/include/bcl.h Thu Nov 26 17:39:51 2020 > (r368072, copy of > r368069, vendor/bc/dist/include/bcl.h) @@ -0,0 +1,184 @@ > +/* > + * > ***************************************************************************** > + * > + * SPDX-License-Identifier: BSD-2-Clause > + * > + * Copyright (c) 2018-2020 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. > + * > + * > ***************************************************************************** > + * > > *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** > _______________________________________________ > svn-src-head@freebsd.org mailing list > https://lists.freebsd.org/mailman/listinfo/svn-src-head > To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org" Buildworld fails with "don't know how to make bc/bc.c": ===> usr.sbin/ndp (all) - --- all_subdir_usr.bin --- make[4]: make[4]: don't know how to make bc/bc.c. Stop make[4]: stopped in /usr/src/usr.bin/gh-bc - --- all_subdir_usr.sbin --- - --- all_subdir_usr.sbin/bsdconfig --- - --- all_subdir_lib --- - --- all_subdir_usr.sbin --- - --- all_subdir_usr.sbin/ndp --- Regards oh - -- O. Hartmann Ich widerspreche der Nutzung oder Übermittlung meiner Daten für Werbezwecke oder für die Markt- oder Meinungsforschung (§ 28 Abs. 4 BDSG). -----BEGIN PGP SIGNATURE----- iHQEARYIAB0WIQSy8IBxAPDkqVBaTJ44N1ZZPba5RwUCX7/xxQAKCRA4N1ZZPba5 RztoAQCYIBubn02soCf+tSbSm0HRIlQW/lgOD0Ve+pghJkH1KAD3cmqAdlPJvBdz SxgkDJy/vI455Z+xUAuUNEyLmGMaCA== =OusT -----END PGP SIGNATURE----- _______________________________________________ svn-src-head@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"