Index: INSTALL =================================================================== --- INSTALL (nonexistent) +++ INSTALL (revision 2) @@ -0,0 +1,260 @@ +PCB uses a standard GNU autoconf/automake based build +system which should make compilation go smoothly on most unix-like +systems. Please do read this first section however. + +If there is no "configure" script, e.g. because you pulled sources +from the Git repository, make sure you have autopoint and autoconf +installed, then run: + + ./autogen.sh + +This will set up and run autoconf to create configure. + +PCB is organized into a core program that deals with all of the +internal database procedures and a collection of Human Interface +Devices (HID's). The HID's provide exporting/printing capability +as well as a graphical user interface. At the time of writing +this document PCB includes the following HIDs: + +GUI HID's: + gtk -- GTK based GUI. This is the default GUI. You will + need gtk-2.4 or newer installed (both the runtime + files as well as the developer headers). You only + need gtk if you want the gtk HID. + + lesstif -- motif/lesstif based GUI. To use the lesstif HID + you will need Motif, OpenMotif, or Lesstif installed. + Again you need both libraries and headers. + + The choice of which gui to use (if you want something other than + the default of GTK) is indicated with the --with-gui configure + option. Examples are: + --with-gui=lesstif = picks the lesstif HID + --with-gui=gtk = picks the GTK HID + --without-gui = specifies that no GUI will be built. This + option is primarily intended for use in a + web server environment where you may wish + to export .pcb files to graphical files on + the fly but you do not want to install + X11 or any GUI tooliks on the server. + +Export HID's: + ps -- Postscript and Encapsulated Postscript output. No + additional libraries are needed for this. + + gcode -- CNC G-CODE output (experimental). The gdlib library + is used by this HID. gdlib may be found at + http://www.libgd.org + + gerber -- RS-274-X (Gerber) and Excellon drill output. No + additional libraries are needed for this. + + bom -- Bill of materials (BOM) and Centroid (X-Y) output. + No additional libraries are needed for this. + + png -- png/gif/jpeg output. This HID uses gdlib to do + the majority of the work. gdlib may be obtained + from http://www.libgd.org. At the time of + writing this document, I have tested with + gd-2.0.23 and gd-2.0.33. Other versions may + work as well. + + Since some installations of gdlib may not support + all three of the formats mentioned here (png, gif, + and jpeg), PCB provides configure options to individually + turn off each of these output formats. These options + are: + --disable-gif, --disable-jpeg, and --disable-png + By having you, the user, explicitly turn off the different + formats hopefully it will avoid suprises when the + disabled formats are not available at runtime. + + The choice of which export HID's to compile is indicated with: + + --with-exporters="ps gerber bom png" + + By default all available exporters will be configured in if --with-exporters + is not given. + +Printer HID's: + lpr -- Unix line printer support. No additional libraries are + needed for this. + + The choice of which printer HID's to compile is indicated with: + + --with-printers="lpr" + + By default all available printers will be configured in if --with-printers + is not given. + +In addition to the libraries listed above, there is a graphical QFP footprint +creator which uses TCL/TK. If you do not wish to use this feature, and you +do not have TCL/TK installed on your system, you may simply set WISH to +/usr/bin/true in your configure environment. For example: + + env WISH=/usr/bin/true ./configure + + +Please refer to the output of + + ./configure --help + +for the most up to date details on the options. + +After running ./configure with your selected options, run + + make + +to build PCB. You can try out the program by running + + cd src + ./pcbtest.sh + +prior to installation. + +To install PCB after it has been built run: + + make install + +from the top level directory. + +-------- Summary of dependencies -------------------- + +- GNU m4. In particular your m4 must support -F for frozen files. + +- wish (part of tcl/tk). If not installed, set WISH=/bin/false in + your configure environment and you just won't get the graphical + QFP footprint builder + +- gtk if you are using the gtk frontend + +- motif or lesstif if you are using the lesstif frontend + +- gdlib if you are using the png HID + +- GNU make for building + +- flex + +- bison + +-------- Standard GNU INSTALL Instructions Follow -------------------- + +This is a generic INSTALL file for utilities distributions. +If this package does not come with, e.g., installable documentation or +data files, please ignore the references to them below. + +To compile this package: + +1. Configure the package for your system. In the directory that this +file is in, type `./configure'. If you're using `csh' on an old +version of System V, you might need to type `sh configure' instead to +prevent `csh' from trying to execute `configure' itself. + +The `configure' shell script attempts to guess correct values for +various system-dependent variables used during compilation, and +creates the Makefile(s) (one in each subdirectory of the source +directory). In some packages it creates a C header file containing +system-dependent definitions. It also creates a file `config.status' +that you can run in the future to recreate the current configuration. + +Running `configure' takes a minute or two. While it is running, it +prints some messages that tell what it is doing. If you don't want to +see the messages, run `configure' with its standard output redirected +to `/dev/null'; for example, `./configure >/dev/null'. + +To compile the package in a different directory from the one +containing the source code, you must use a version of `make' that +supports the VPATH variable, such as GNU `make'. `cd' to the directory +where you want the object files and executables to go and run +`configure'. `configure' automatically checks for the source code in +the directory that `configure' is in and in `..'. If for some reason +`configure' is not in the source code directory that you are +configuring, then it will report that it can't find the source code. +In that case, run `configure' with the option `--srcdir=DIR', where +DIR is the directory that contains the source code. + +By default, `make install' will install the package's files in +/usr/local/bin, /usr/local/lib, /usr/local/man, etc. You can specify an +installation prefix other than /usr/local by giving `configure' the option +`--prefix=PATH'. Alternately, you can do so by consistently giving a value +for the `prefix' variable when you run `make', e.g., + make prefix=/usr/gnu + make prefix=/usr/gnu install + +You can specify separate installation prefixes for +architecture-specific files and architecture-independent files. If +you give `configure' the option `--exec-prefix=PATH' or set the +`make' variable `exec_prefix' to PATH, the package will use PATH as +the prefix for installing programs and libraries. Data files and +documentation will still use the regular prefix. Normally, all files +are installed using the regular prefix. + +Another `configure' option is useful mainly in `Makefile' rules for +updating `config.status' and `Makefile'. The `--no-create' option +figures out the configuration for your system and records it in +`config.status', without actually configuring the package (creating +`Makefile's and perhaps a configuration header file). Later, you can +run `./config.status' to actually configure the package. You can also +give `config.status' the `--recheck' option, which makes it re-run +`configure' with the same arguments you used before. This option is +useful if you change `configure'. + +Some packages pay attention to `--with-PACKAGE' options to `configure', +where PACKAGE is something like `gnu-libc' or `x' (for the X Window System). +The README should mention any --with- options that the package recognizes. + +`configure' ignores any other arguments that you give it. + +If your system requires unusual options for compilation or linking +that `configure' doesn't know about, you can give `configure' initial +values for some variables by setting them in the environment. In +Bourne-compatible shells, you can do that on the command line like +this: + CC='gcc -traditional' DEFS=-D_POSIX_SOURCE ./configure + +The `make' variables that you might want to override with environment +variables when running `configure' are: + +(For these variables, any value given in the environment overrides the +value that `configure' would choose:) +CC C compiler program. + Default is `cc', or `gcc' if `gcc' is in your PATH. +INSTALL Program to use to install files. + Default is `install' if you have it, `cp' otherwise. + +(For these variables, any value given in the environment is added to +the value that `configure' chooses:) +DEFS Configuration options, in the form `-Dfoo -Dbar ...' + Do not use this variable in packages that create a + configuration header file. +LIBS Libraries to link with, in the form `-lfoo -lbar ...' + +If you need to do unusual things to compile the package, we encourage +you to figure out how `configure' could check whether to do them, and +mail diffs or instructions to the address given in the README so we +can include them in the next release. + +2. Type `make' to compile the package. If you want, you can override +the `make' variables CFLAGS and LDFLAGS like this: + + make CFLAGS=-O2 LDFLAGS=-s + +3. If the package comes with self-tests and you want to run them, +type `make check'. If you're not sure whether there are any, try it; +if `make' responds with something like + make: *** No way to make target `check'. Stop. +then the package does not come with self-tests. + +4. Type `make install' to install programs, data files, and +documentation. + +5. You can remove the program binaries and object files from the +source directory by typing `make clean'. To also remove the +Makefile(s), the header file containing system-dependent definitions +(if the package uses one), and `config.status' (all the files that +`configure' created), type `make distclean'. + +The file `configure.in' is used as a template to create `configure' by +a program called `autoconf'. You will only need it if you want to +regenerate `configure' using a newer version of `autoconf'.