
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 =<op> as the same as <op>=.  The =<op> 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.

