Lines Matching +full:dc +full:- +full:current +full:- +full:limit
4 POSIX-compliant system.
6 To accomplish that, a POSIX-compatible, custom `configure.sh` script is used to
22 ./configure.sh -h
23 ./configure.sh --help
42 For releases, Windows builds of `bc`, `dc`, and `bcl` are available for download
51 `{BC,DC}_SIGINT_RESET=0`, `{BC,DC}_TTY_MODE=1`, `{BC,DC}_PROMPT=1`.
68 msbuild -property:Configuration=<config> vs/bc.sln
76 msbuild -property:Configuration=<config> vs/bcl.sln
81 ## POSIX-Compatible Systems
83 Building `bc`, `dc`, and `bcl` (the library) is more complex than on Windows
86 ### Out-of-Source Builds
88 Out-of-source builds are done by calling `configure.sh` from the directory where
105 To cross-compile this `bc`, an appropriate compiler must be present and assigned
168 Command-line flags that will be passed verbatim to `CC`.
174 Command-line flags that will be passed verbatim to `HOSTCC` or `HOST_CC`.
180 Command-line flags for the C preprocessor. These are also passed verbatim to
187 Command-line flags for the linker. These are also passed verbatim to both
204 Can be overridden by passing the `--prefix` option to `configure.sh`.
226 Can be overridden by passing the `--bindir` option to `configure.sh`.
234 Can be overridden by passing the `--includedir` option to `configure.sh`.
242 Can be overridden by passing the `--libdir` option to `configure.sh`.
250 Can be overridden by passing the `--datarootdir` option to `configure.sh`.
258 Can be overridden by passing the `--datadir` option to `configure.sh`.
266 Can be overridden by passing the `--mandir` option to `configure.sh`.
272 The directory to install Section 1 manpages in. Because both `bc` and `dc` are
275 Can be overridden by passing the `--man1dir` option to `configure.sh`.
283 Can be overridden by passing the `--man3dir` option to `configure.sh`.
308 required to be 32 bits. For this reason, on 8-bit and 16-bit microcontrollers,
311 For most normal desktop systems, setting this is unnecessary, except that 32-bit
312 platforms with 64-bit longs may want to set it to `32`.
330 production-ready compilers, this limit probably is not enforced, but it could
333 If you are sure your compiler does not have the limit and do not want to compile
335 or a non-existent value, will cause the build system to compile and run
358 --option arg
359 --option=arg
364 To quickly get a release build of a `bc` and `dc` that is (by default)
365 compatible with the BSD `bc` and `dc`, use the `-p` or `--predefined-build-type`
369 ./configure.sh -pBSD
370 ./configure.sh --predefined-build-type=BSD
375 To quickly get a release build of a `bc` and `dc` that is (by default)
376 compatible with the GNU `bc` and `dc`, use the `-p` or `--predefined-build-type`
380 ./configure.sh -pGNU
381 ./configure.sh --predefined-build-type=GNU
391 ./configure.sh -a
392 ./configure.sh --library
398 functionality for `bc` and `dc` are both enabled, though the executables are
411 To build `bc` only (no `dc`), use any one of the following commands for the
415 ./configure.sh -b
416 ./configure.sh --bc-only
417 ./configure.sh -D
418 ./configure.sh --disable-dc
426 #### `dc` Only
428 To build `dc` only (no `bc`), use either one of the following commands for the
432 ./configure.sh -d
433 ./configure.sh --dc-only
434 ./configure.sh -B
435 ./configure.sh --disable-bc
440 ***Warning***: It is an error to use those options if `dc` has also been
445 To disable hisory, pass either the `-H` flag or the `--disable-history` option
449 ./configure.sh -H
450 ./configure.sh --disable-history
463 History support can be provided by editline, in order to implement `vi`-like
466 To enable editline support, pass either the `-e` flag or the `--enable-editline`
470 ./configure.sh -e
471 ./configure.sh --enable-editline
478 This option is only used if it is after any other `-e`/`--enable-editline`
479 options, any `-r`/`--enable-readline` options, and any
480 `-i`/`--enable-internal-history` options.
484 History support can be provided by readline, in order to implement `vi`-like
487 To enable readline support, pass either the `-r` flag or the `--enable-readline`
491 ./configure.sh -r
492 ./configure.sh --enable-readline
499 This option is only used if it is after any other `-r`/`--enable-readline`
500 options, any `-e`/`--enable-editline` options, and any
501 `-i`/`--enable-internal-history` options.
508 However, if `-p` option is used, then this option can be useful for selecting
511 To enable the internal history, pass either the `-i` flag or the
512 `--enable-internal-history` option to `configure.sh` as follows:
515 ./configure.sh -i
516 ./configure.sh --enable-internal-history
520 `-i`/`--enable-internal-history` options, any `-e`/`--enable-editline` options,
521 and any `-r`/`--enable-readline` options.
525 To disable locale support (use only English), pass either the `-N` flag or the
526 `--disable-nls` option to `configure.sh`, as follows:
529 ./configure.sh -N
530 ./configure.sh --disable-nls
558 The assignment versions of the above operators are not available in `dc`, but
563 notation. On top of that, it has a pseudo-random number generator. (See the
567 pseudo-random number generator can be disabled by passing either the `-E` flag
568 or the `--disable-extra-math` option to `configure.sh`, as follows:
571 ./configure.sh -E
572 ./configure.sh --disable-extra-math
578 the pseudo-random number generator are. More information about the functions can
585 The Karatsuba length is the point at which `bc` and `dc` switch from Karatsuba
587 the `-k` flag or the `--karatsuba-len` option to `configure.sh` as follows:
590 ./configure.sh -k32
591 ./configure.sh --karatsuba-len 32
604 This `bc` and `dc` have a few settings to override default behavior.
609 To set a default to **on**, use the `-s` or `--set-default-on` option to
613 ./configure.sh -s bc.banner
614 ./configure.sh --set-default-on=bc.banner
619 To set a default to **off**, use the `-S` or `--set-default-off` option to
623 ./configure.sh -S bc.banner
624 ./configure.sh --set-default-off=bc.banner
631 turned **on** for a non-zero integer, and **off** for zero.
643 | --------------- | -------------------- | ------------ | -------------------- |
648 | --------------- | -------------------- | ------------ | -------------------- |
649 | dc.sigint_reset | Whether SIGINT will | 1 | DC_SIGINT_RESET |
650 | | reset dc, instead of | | |
653 | --------------- | -------------------- | ------------ | -------------------- |
657 | --------------- | -------------------- | ------------ | -------------------- |
658 | dc.tty_mode | Whether TTY mode for | 0 | BC_TTY_MODE |
659 | | dc should be on when | | |
661 | --------------- | -------------------- | ------------ | -------------------- |
665 | --------------- | -------------------- | ------------ | -------------------- |
666 | dc.prompt | Whether the prompt | $DC_TTY_MODE | DC_PROMPT |
667 | | for dc should be on | | |
669 | --------------- | -------------------- | ------------ | -------------------- |
673 | | given with the -e or | | |
674 | | -f options. | | |
675 | --------------- | -------------------- | ------------ | -------------------- |
676 | dc.expr_exit | Whether to exit dc | 1 | DC_EXPR_EXIT |
679 | | given with the -e or | | |
680 | | -f options. | | |
681 | --------------- | -------------------- | ------------ | -------------------- |
685 | | equal to the current | | |
688 | --------------- | -------------------- | ------------ | -------------------- |
689 | dc.digit_clamp | Whether to have dc | 0 | DC_DIGIT_CLAMP |
692 | | equal to the current | | |
695 | --------------- | -------------------- | ------------ | -------------------- |
699 that this bc and dc will conform to the expectations of the user on each
704 The relevant `autotools`-style install options are supported in `configure.sh`:
706 * `--prefix`
707 * `--bindir`
708 * `--datarootdir`
709 * `--datadir`
710 * `--mandir`
711 * `--man1dir`
712 * `--man3dir`
717 ./configure.sh --prefix=/usr
732 ***WARNING***: If any long command-line options are used, the long form of all
733 other command-line options must be used. Mixing long and short options is not
738 To disable installing manpages, pass either the `-M` flag or the
739 `--disable-man-pages` option to `configure.sh` as follows:
742 ./configure.sh -M
743 ./configure.sh --disable-man-pages
750 By default, `bc` and `dc` do not install all locales, but only the enabled
752 the locales that exist on the system. The `-l` flag or `--install-all-locales`
753 option skips all of that and just installs all of the locales that `bc` and `dc`
754 have, regardless. To enable that behavior, you can pass the `-l` flag or the
755 `--install-all-locales` option to `configure.sh`, as follows:
758 ./configure.sh -l
759 ./configure.sh --install-all-locales
773 optimization level available in `CC` to `configure.sh` with the `-O` flag or
774 `--opt` option, as follows:
777 ./configure.sh -O3
778 ./configure.sh --opt 3
794 CFLAGS="-march=native -msse4" ./configure.sh -O3
799 Building with link-time optimization (`-flto` in clang) can further increase the
802 I do ***NOT*** recommend building with `-march=native`; doing so reduces this
805 Manual stripping is not necessary; non-debug builds are automatically stripped
811 and if no extra `CFLAGS` are given) can be enabled with either the `-g` flag or
812 the `--debug` option, as follows:
815 ./configure.sh -g
816 ./configure.sh --debug
830 By default, when `bc` and `dc` are not built in debug mode, the binaries are
831 stripped. Stripping can be disabled with either the `-T` or the
832 `--disable-strip` option, as follows:
835 ./configure.sh -T
836 ./configure.sh --disable-strip
850 `bc` and `dc` have 8 build types, affected by the [History][8], [NLS (Locale
865 `manuals/dc`.
869 When built with both calculators, all available features, and `-Os` using
874 The single largest user of space is the `bc` calculator. If just `dc` is needed,
880 There are several reasons that history is a bigger user of space than `dc`
883 * `dc`'s lexer and parser are *tiny* compared to `bc`'s because `dc` code is
887 * `dc` does not have much extra code in the interpreter.
888 * History has a lot of const data for supporting `UTF-8` terminals.
895 The reasons why extra math support is bigger than `dc`, besides the fact that
896 `dc` is small already, are:
900 * Extra math support includes support for a pseudo-random number generator,
901 including the code to convert a series of pseudo-random numbers into a number
905 The next biggest user is `dc`, so if just `bc` is needed, the size can be
912 `musl-clang` using `clang` `9.0.1`) as the compiler and using `-Os`
930 To test `dc` only, run the following command:
936 This `bc`, if built, assumes a working, GNU-compatible `bc`, installed on the
937 system and in the `PATH`, to generate some tests, unless the `-G` flag or
938 `--disable-generated-tests` option is given to `configure.sh`, as follows:
941 ./configure.sh -G
942 ./configure.sh --disable-generated-tests
952 This `dc` also assumes a working, GNU-compatible `dc`, installed on the system
956 To generate test coverage, pass the `-c` flag or the `--coverage` option to
960 ./configure.sh -c
961 ./configure.sh --coverage
966 ***WARNING***: Both `bc` and `dc` must be built for test coverage. Otherwise,
975 To disable problematic tests, pass the `-P` flag or the
976 `--disable-problematic-tests` option to `configure.sh` as follows:
979 ./configure.sh -P
980 ./configure.sh --disable-problematic-tests
987 [3]: https://www.musl-libc.org/
988 [4]: #build-environment-variables
989 [5]: #build-options
990 [6]: #cross-compiling
991 [7]: #build-type
993 [9]: #nls-locale-support
994 [10]: #extra-math