Autoconf Capsule Summary:
----------------------------------------

    Compile and install:

	./configure [options]
	make
	make install

    Autoconf options (use "./configure --help" for a complete list):

	--prefix=DIR	Takes the place of "CAD_HOME" in previous versions.
			Indicates the install directory.  Defaults to
			/usr/local/, with libraries in /usr/local/lib/magic/.

	--with-interpreter=ARG
			Enable one of the two interpreters.  ARG may be
			one of "tcl" or "scheme".

	--with-tcl	Equivalent to "--with-interpreter=tcl".
			Normally enabled, if available.

	--with-opengl	Enable OpenGL as a graphics option.  Normally
			enabled, if available.

	--without-x	Disable X11 as a graphics option.  Normally
			enabled.

	--enable-locking
			Enable file-locking.  Normally disabled.

	--disable-nonmanhattan
			Disable non-Manhattan extensions.  Normally
			enabled.

	--disable-readline
			Disable the GNU "readline" package.  Normally
			enabled.
	
	--disable-threads
			Disable threaded X11 and OpenGL graphics.
			Normally enabled.

Capsule Summary (standard):
---------------------------

        make config
        make
        make install

    Note:  CAD_HOME defaults to /usr/local, unless a user "cad" exists on
     the system with a home directory ~cad.  The use of user "cad" is
     deprecated.  The make process will generate CAD_HOME (if necessary)
     and install into subdirectories of this root, namely ${CAD_HOME}/bin
     for executables and ${CAD_HOME}/lib/magic for run-time stuff.

   Note:  The Tcl version does not compile standalone programs "ext2sim"
     and "ext2spice", but has built-in commands "ext2sim" and "ext2spice".

Notes to Magic maintainers:
--------------------------

This directory contains all the sources for the Magic system and related
programs.  The system runs on a number of machines.  You should read the
Magic Maintainer's manual as well as the introduction to Magic before
compiling the system.  These documents are in the "doc" subdirectory in
PostScript, as well as the original LaTeX source.
    
The "proper" way to profile the amount of CPU time spent in each procedure
is to edit "defs.mak" and add flag "-pg" to CFLAGS.  Then recompile, install,
and run.  Note that this doesn't work with the Tcl version; you have to
compile the standalone version.  After running, magic creates a file "gmon.out".
To view the contents, run "gprof /usr/local/bin/magic > gprof.out" (the output
can be very long). 

Memory tracing in Tcl requires that Tcl and Tk be compiled with the
TCL_MEM_DEBUG option.  Magic also must be compiled with TCL_MEM_DEBUG,
which can be done by adding the definition -DTCL_MEM_DEBUG to DFLAGS
in defs.mak, after running "configure".

Magic is compiled with -O2 set by default for increasing processing
speed.  It is also compiled with -g for debugging.  The combination
makes the program considerably more difficult to debug.  If you really
want to track down a problem, first remove "-O2" from the CFLAGS in
defs.mak, do "make clean", and recompile.

Updates on the Net:
-------------------
Use your World Wide Web browser to read:

    http://bach.ece.jhu.edu/~tim/programs/magic/magic7_3.html
    http://bach.ece.jhu.edu/~tim/programs/magic/magic7_2.html
    http://vlsi.csl.cornell.edu/magic/
    http://www.research.digital.com/wrl/magic/magic.html

What's new in 7.3:
-----------------
Provided by Tim Edwards (MultiGiG, Inc., and JHU Applied Physics lab):
       1) Stacked contact model allowing arbitrary stacking of
	  contact types.
       2) A separate "undo/redo" method for network selection, to
	  remove the memory overhead associated with selecting and
	  unselecting large networks.  Also removes some time overhead
	  as well, especially when unselecting networks.
       3) Much improved "plot pnm" function.
       4) Improved transistor and resistor extraction.
       5) "wire segment" drawing function
       6) Improved LEF/DEF input/output handling
       7) Improved CIF/GDS input/output handling
       8) Many technology file additions and enhancements

What's new in 7.2:
------------------
Provided by Tim Edwards (MultiGiG, Inc., and JHU Applied Physics Lab):
       1) Tcl interpreter extension option
       2) Cygwin compile option
       3) Memory resources cleaned up
       4) GUI interface to Tcl version of Magic
       5) Readline update to version 4.3
       6) OpenGL fixes and refinements
       7) Nonmanhattan geometry fixes and extensions
       8) Threaded graphics in non-Tcl environments
       9) Inductance extraction
      10) CIF and GDS input/output support for deep submicron technologies
      11) Different internal and lambda grids, including automatic or
	  induced ("scalegrid" command) grid subdivision and expansion.
	  "snap" and "grid" functions and extensions aid layout when
	  lambda and internal units differ.
      12) Removed commands "list", "listall", "parent", and "child",
	  replacing them with the more general-purpose "cellname"
	  and "instance" commands.
      13) Added command "tech", and re-loadable technologies.
      14) Revamped the "dstyle" files and updated the dstyle version
      15) Added "element" types for layout annotation.
      16) Extended extract section of techfile to include "device"
	  keyword and devices "mosfet", "bjt", "capacitor", and "resistor".
	  New model resistor and mosfet use width/length instead of area/
	  perimeter.
      17) Added 3D rendering window invoked by command "specialopen wind3d",
	  for the Tcl version compiled with OpenGL graphics.
      18) Added "height" keyword to tech file for height/thickness values
      19) Added "windowname" command for managing multiple wrapper windows
	  under Tcl.
      20) Added extraction extension for annular (ring) MOSFETs.
      21) Added "widespacing" DRC rule.
      22) Added GNU autoconf compile
      23) New command "property" for setting key:value pair properties
	  in cell definitions that can be interpreted by other routines
	  (such as LEF/DEF).
      24) General-purpose subcircuit method using the "port" command to
	  declare a cell to be a subcircuit and to mark the position and
	  orientation of connections into the subcell.  This replaces a
	  method previously built into version 7.2 using a "subcircuit"
	  layer; that method is now considered obsolete.
      25) LEF and DEF format readers, LEF format writer.
      26) Improved techfile format with asterisk-notation and DRC
	  "surround", "overhang", and "rect_only" statements.

What's new in 7.1:
------------------
Provided by Rajit Manohar (Cornell University) (formerly version 7.0):
       1) Implementation of "scheme" (a subset of lisp), a powerful method
	  of generating complex functions.
       2) Using CVS to facilitate source code development from multiple sites.
       3) New commands using scheme:  Too many to mention here;  see the
	  tutorials in doc/tutscm* for explanations.  Functions themselves
	  are defined in ${CAD_HOME}/lib/magic/scm/*.scm
       4) Overhauled the readline interface. See doc/textfiles/readline.txt for
          details.
       5) Changed tons of stuff about the build environment:
            - the include paths in all files is now canonical.
            - redid the make process and rewrote all Makefiles.
            - tons of other small things that hopefully make the build process
              nicer.

What's new in 6.5.2:
--------------------
Provided by R. Timothy Edwards (Johns Hopkins Applied Physics Laboratory):
        1) Support for OpenGL 
           Look at doc/open_gl.txt
        2) Minor update to :config for selection of multiple graphics
           interfaces.
        3) Updates to dstyle and cmap files
        4) Always do a check to see if there is only one active layout
           window:  There's no need to annoy the user with complaints
           of "Put the cursor in a layout window" when there is no  
           possibility of confusion about the matter.
    
Provided by Philippe Pouliquen (Johns Hopkins University):
        5) "readline" command line editing capability
        6) Macro extensions for X11 (see doc/macro_extension.txt)
        7) Better handling of filenames on the UNIX command-line (multiple
           filenames allowed, ".mag" extension not required).
        8) New commands:  "child", "parent", "down", "xload", "list", "listall",
           "listtop", "shell", "imacro".
        9) Command alterations: "box [+|-][dir]", "select visible", area of box
           included in "box" command.
       10) Updated .magic macro file (source in magic/proto.magic, install in
           ${CAD_HOME}/lib/magic/sys/.magic) (see doc/default_macros.txt).

What's new in 6.5.1:
--------------------
	1) Support for true-color displays (courtesy of Michael Godfrey)
	   Look into doc/hires-color.txt
	2) Minor updates in ext2sim, ext2spice

What's new in 6.5:
-----------------
        1) Bug fixes in the extractor propagation of attributes (SU)

        2) New version of ext2sim ext2spice with support for hspice, spice2, 
           and spice3 (SU)

        3) Integration of the port to SUN's Solaris OS (MIT)

        4) Port to FreeBSD2.x. Thanks to John Wehle (john@jwlab.feith.com)

	5) Integration of part of the DEC/WRL code fragments into the drc
	   code. Since the code is not completely trustworthy the fragments 
	   are ifdef'd so if need be the drc will behave exactly as the old one.
	   (you just need to change the #define DRC_EXTENSIONS in drc/drc.h
	    to do that).  For a description of the extensions look into 
	    doc/tutwrl1.ps (DEC/WRL)
	
	6) Integration of some patches in to the CIF code that introduce:
	    (i)  A new cif operation squares-grid which generates contacts 
		 on grid.
            (ii) A new cif layer command min-width is added so that generated
		 layers have the correct min drc width when magic expands
		 layers in the hierarchy (like it does with wells).
		 

Magic-6.5 crashes if compiled with gcc in Solaris2.x/SunOS5.x (curiously enough 
it does not have that problem if compiled with Sun's cc compiler). To get 
around that you need to set the flag -DUSE_SYSTEM_MALLOC flag in misc/DFLAGS 
after you run make :config. The error has to do with allignment of doubles 
and an alternative way to get rid of it is to change extract/extractInt.h 
so that CapValue is float instead of double.  Nevertheless the first method 
is recomended.

What's new in 6.4:
------------------
This release, magic 6.4, contains the following modifications:

	1) A number of bug fixes from the 6.3 notes.

	2) A version numbering facility for tech files.  Please add a new 
	   section to each tech file after the "tech" section, following 
	   this example:

		version
		    version 2.0.3
		    description "MOSIS CMOS 0.13u Nano-nano technology."
		end
		    
	   Older versions of magic will complain about the new section, but
	   no harm will be done.

	4) Various comments describing dates and versions, including the
	   above tech file information, are not written to the CIF file.

	3) Support for patches and versioning:  A new command called "version"
	   lists out the version number and patches that are installed.
	   A header file called patchlevel.h keeps track of a PATCHLEVEL 
	   integer and a string in patchlevel.c keeps track of the names of
	   each installed patch.  When posting patches to the net please be
	   sure your patch updates variables.  See the files for details.

	4) Ports to Alpha AXP OSF/1, SGI/IRIX (courtesy of Stefanos 
	   Sidiropoulos) and Linux (courtesy of Harold Levy).

	5) A change in the extractor algorithm to provide shielding for
	   perimeter capacitances. Also a change in ext2sim to maintain
	   information about the area and perimeter of diffusion and
	   the bulk connection of the fets (written by Stefanos
	   Sidiropoulos).


