INSTALLATION for GNU bc version 1.03 (Including GNU dc.) --------------------------------------------------------- a) Make sure you have a working vsprintf and vfprintf in your library. (If your system does not have them in your library, you can get one of several stdio packages that are freely copyable. The GNU libc has a complete stdio package. For Minix 1.5 systems, a vsprintf.c is included.) b) run "configure" with the "standard" options for a configure of gnu products. The major parameter for bc is the "--prefix=path" option to find the executable and manual directories. For more help, give the command "configure --help". c) "make derived" (If you need it.) The distribution contains the files bc.c.dist y.tab.h.dist and scan.c.dist. These are provided so that you do not need a working yacc and flex (lex). This program was designed to work with the free programs byacc (berkeley yacc) and flex. It should work with other versions of yacc and lex, but it is not guaranteed to work. If you do not have yacc or flex, give the command "make derived" to get the *.dist files to their proper place. This insures that make will not try to make these derived files from their original source. Use the "make derived" before trying to compile bc and dc. e) "make" compiles bc and dc. f) "make install" installs bc, dc, libmath.b (if needed), bc.1, dc.1 and dc.info in their proper directories. g) Use bc and dc! DEFINES ------- The following defines you may or may not want. To delete one standardly on, edit the Makefile.in. If you want add their definitions, put their definition in an environment variable "CFLAGS" for the configure script. -DOLD_EQ_OP Causes bc to recognize = as the same as =. The = is the old style. It makes "a =- 1" ambiguous. With OLD_EQ_OP defined it is equivalent to "a -= 1" and with OLD_EQ_OP undefined it is equivalent to "a = -1". -DDOT_IS_LAST Causes bc to recognize a single period (".") as a shorthand notation for the standard variable "last". (This is standardly defined.) -DSMALL_BUF Use this IF you are using flex AND you have a systems with limited memory space. -DSHORTNAMES If your compiler keeps a limited number of characters from names, you should include this define. It is needed for the K&R compiler on MINIX. -DDEBUG=n Compile the debugging code. The higher the number, the more debugging code. The degugging code is not very good. POSSIBLE PROBLEMS ----------------- There might be some possible problems compiling due to different versions of the header files. scan.c may require to edit out some definitions of malloc and free. Others should compile with the correct set of defines. Hopefully, the autoconf/configure system should remove all problems. If you do a "make realclean", it removes all files that can be derived from some other files. This also removes the file "libmath.h" that is used by the configure script. Without it there, the configure script makes wrong assumptions about the abilities of your compiler. To get things back to the point where configure works well you will need to "make libmath.h", "make distclean" and then run configure again.