In addition, compilation from source is always preferred to installation of a precompiled executable (such as an RPM file). Compilation from source allows GNU autoconf to tailor xcircuit to the abilities of your system, as described above.
gunzip xcircuit-version.tar.gz or bunzip2 xcircuit-version.tar.bz2
tar xf xcircuit-version.tar
cd xcircuit-version
For default configuration, the xcircuit install process must be run as root user, so the process can access the /usr/local/ directory tree for installation. GNU install puts the xcircuit executable into /usr/local/bin/ and files it needs on startup in /usr/local/share/xcircuit-version/../configure [options] make make install
for a list of configure options. For most users, the relevant options are the following:./configure --help
Note for HP users: The original HP "m4" processor cannot handle the man page translation. If available, use GNU m4 by changing the configure method above to the following:
- --prefix=PREFIX
- Location to install xcircuit. Defaults to /usr/local/. The executable goes to /usr/local/bin/, man pages to /usr/local/man/man1/, and everything else to /usr/local/share/xcircuit-VERSION/. Defaults can be separated by explicitly declaring --exec-prefix=DIR, --mandir=DIR, and --libdir=DIR.
- --disable-lgf
- Save space by not compiling the compatibility with "analog" and "diglog" .lgf-format files.
- --disable-schema
- Don't compile the schematic capture system. This is a major feature of xcircuit, so disabling it is not recommended. However, you may do so if you anticipate having no need for circuit netlists.
- --with-python=DIR
- If the configure step cannot find a Python interpreter, it can be explicitly referenced. Requires the Python library (libpythonVERSION.a or libpythonVERSION.so) and the python include file Python.h. The Python option uses the Python language as an interpreter for xcircuit.
- --with-xpm=DIR
- If the configure step cannot find the XPM package, it can be explicitly referenced. The XPM package enables the toolbar and an icon when xcircuit is iconified.
- --with-gs=DIR
- If the configure step cannot find ghostscript, it can be explicitly referenced. The Ghostscript option allows any PostScript file to be rendered on the xcircuit background and saved with the xcircuit file.
- --disable-double-buffer
- This option is almost wholly deprecated due to the speed of modern processors. However, if you have problems with slow rendering, you might find it useful.
- --disable-focus-fix
- Don't attempt to work around broken window managers. Normally this option should not be tampered with, but odd behavior regarding capture of key events in the xcircuit window may require it.
M4=path-to-GNU-m4 ./configure [options]
xmkmf make make install make install.man
in the Imakefile. PYTHON_LIB_DIR is the directory where the library file "libpython2.1.a" (or equivalent, depending on the version) has been installed. PYTHON_INCLUDE_DIR is the directory containing all of Python's .h files, but must at least contain "Python.h".PYTHON_VERSION=2.1 PYTHON_LIB_DIR=/usr/local/lib PYTHON_INCLUDE_DIR=/usr/local/include/python${PYTHON_VERSION}
The Python library preferably should be built as a shared (.so) library. See the section "Shared Python Library" below.
The makefile should also automatically install the man page in (depending on the Imake configuration) /usr/local/man/man1/xcircuit.1x.
If the program is extremely slow in rendering the screen or if the system tends to swap during program execution, you may need to undefine DO_BUFFER in the Imakefile. Clean, no-flicker rendering is made possible by drawing on a Pixmap and then doing a quick copy from the Pixmap to the screen. Depending on the default screen depth (usually 8 or 16 bits) and the window size, the Pixmap can take a MB of memory or more. Systems with too little memory or systems without a video card with Bit-BLT (block transfers) can erase all the gains of graphics buffering. Xcircuit will operate fine without buffering, but the screen will flicker every time there is a refresh; consequently, without buffering the system is designed not to refresh as often, and there will be more "pixel trash" on the screen. It is expected that under these conditions the user will simply use the space bar to refresh the screen as needed.
XCircuit compile, if using Python, requires Python source, not the executable. If you need/want to install or update Python on your system, be sure to download the source, not, for instance, an RPM package with executable only.
LDLIBRARY=libpython2.1.so
linux) \ $(LDSHARED) -o $@ $(LIBRARY_OBJS) \ ;; \
(or use the directory where you just put the shared library) and confirm that it found libpython2.1.so.ldconfig -v -n /usr/local/lib
(should run to normal completion).make
Back to the xcircuit home page. . .
email: tim@bach.ece.jhu.edu