magic/tcltk
Darryl L. Miles 4e967a4766 build: out-of-tree outlier Makefiles — full make + install
Fix the remaining non-standard Makefiles so a full out-of-tree
`../configure && make && make install` builds and installs a complete
magic TCL tree, sources read from the source tree, all outputs in the
build tree.

Shared linker/preprocessor paths (scripts/configure.in, regenerated
scripts/configure):
* --version-script=${MAGICDIR}/magic/symbol.map -> ${MAGICSRC}/... so
  every shared-library link (tclmagic.so, ...) finds the source map.
* MCPP preproc.py path ${MAGICDIR}/scripts -> ${MAGICSRC}/scripts.

Programs (built via tcllibrary, PROGRAMS = magic tcltk):
* magic/Makefile: proto.magicrc, magicWasm.o and the bitmaps/.initrc/
  magicps.pro install copies use $< / $(srcdir) instead of bare names.
* tcltk/Makefile: magicexec/magicdnull compile $<; the sed'd launcher
  scripts (magic.tcl/.sh, ext2spice.sh, ext2sim.sh) read $<; VERSION dep
  -> ${MAGICSRC}; install-tcl copies each TCL file from the build dir if
  present else $(srcdir) (magic.tcl is generated, the rest are source).

Techs (scmos):
* scmos/Makefile: SC_PP template include -> $(srcdir)/extract_template;
  tech-file inputs (scmos.tech.in, *.tech.in) via $(srcdir)/$< ; recurse
  into cif_template with mkdir + -f ${MAGICSRC}/scmos/cif_template/Makefile;
  install copies from build-or-$(srcdir).
* scmos/cif_template/Makefile: MKDIR -> ${MAGICSRC}/scripts/mkdirs;
  SC_CPP gains -I$(srcdir); cpp reads $(srcdir)/cif{in,out}.c so the .gen
  includes resolve; objs/ generated in the build tree.

Data-file installs (source files copied from $(srcdir)):
* graphics/Makefile: glyphs, outline fonts, and the X11 helper build.
* windows/Makefile: glyphs and vector fonts.
* doc/Makefile: recurse into man/tutcells/html/latexfiles build-aware;
  doc/man, doc/tutcells install with $< ; doc/html tars $(srcdir);
  doc/latexfiles reads pre-built PostScript from ${MAGICSRC}/doc/psfiles.

Verified out-of-tree (mkdir _build; cd _build; ../configure): `make`
returns rc=0 (33 module libs, tclmagic.so, magicexec/magicdnull, scmos
tech files + cif_template objs, proto.magicrc), and
`make install DESTDIR=...` returns rc=0 installing 376 files
(bin/magic, tcl/tclmagic.so, sys/ glyphs+fonts+techs+dstyles), with the
source tree left completely clean.

Not exercised by the default TCL build/install and therefore not
converted here: the standalone .so/program variants of
lef/plot/router/ext2spice/ext2sim (their module libs do build), the
disabled oa module (-I. -> -I$(srcdir) still needed if enabled), the
WASM path, and doc/latexfiles PostScript *regeneration* (which still
writes into the source psfiles dir).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-26 14:54:11 -04:00
..
Makefile build: out-of-tree outlier Makefiles — full make + install 2026-07-26 14:54:11 -04:00
bsitools.tcl Updates from running the fix-ending-whitespace script. 2020-05-23 17:13:14 -04:00
cellmgr.tcl Modified the "tag" command to add an optional subcommand "add" or 2025-10-08 17:11:27 -04:00
console.tcl Updates from running the fix-ending-whitespace script. 2020-05-23 17:13:14 -04:00
drcmgr.tcl Quick fix to the script use of "units", which needs to expand the 2026-02-24 16:40:07 -05:00
ext2sim.sh.in Allow for bash in locations other than /bin 2023-04-22 14:13:57 -04:00
ext2spice.sh.in Allow for bash in locations other than /bin 2023-04-22 14:13:57 -04:00
libmgr.tcl Corrected the "Pick" button action in the "Library Manager" window; 2026-05-24 16:23:18 -04:00
magic.sh.in Allow for bash in locations other than /bin 2023-04-22 14:13:57 -04:00
magic.tcl.in A few minor changes to message reporting, plus some additional 2025-12-19 09:30:35 -05:00
magicdnull.c Rewrote the configuration scripts, makefiles, and some initialization 2017-10-13 10:28:07 -04:00
magicexec.c Removed the "macosx" definition from the configuration file, which 2017-10-14 18:42:24 -04:00
mazeroute.tcl Updates from running the fix-ending-whitespace script. 2020-05-23 17:13:14 -04:00
readspice.tcl Made a simple but important change to "readspice.tcl" to unexpand 2023-03-08 11:14:22 -05:00
reorderLayers.tcl EDIT: wrapper maketoolbar method refactored into a separate script, with changes to the toolbar. Reorder layers functionality added as well 2023-12-15 15:54:05 -05:00
socketcmd.tcl Updates from running the fix-ending-whitespace script. 2020-05-23 17:13:14 -04:00
strip_reflibs.tcl Updates from running the fix-ending-whitespace script. 2020-05-23 17:13:14 -04:00
tclmagic.c tcltk: don't discard piped stdin buffered before the stdin-channel swap 2026-07-24 14:57:28 +00:00
tclmagic.h I broke the CI again for the "wasm" build by adding a Tk routine 2026-06-24 09:20:06 -04:00
techbuilder.tcl Create techbuilder.tcl 2021-08-28 12:58:58 -04:00
texthelper.tcl Solved three issues: 2026-04-01 21:17:54 -04:00
tkcon.tcl Handled the case in which environment variable HOME is not set. 2026-05-13 08:51:16 -04:00
tkshell.tcl Initial commit at Tue Apr 25 08:41:48 EDT 2017 by tim on stravinsky 2017-04-25 08:41:48 -04:00
toolbar.tcl Finally got around to restoring the behavior of the toolbar with 2024-10-01 16:01:28 -04:00
toolkit.tcl Ensure all cells are loaded into memory in netlist_to_spice to avoid file corruption during save 2026-05-06 11:37:52 -04:00
toolkit_rev0.tcl Updates from running the fix-ending-whitespace script. 2020-05-23 17:13:14 -04:00
tools.tcl Corrected two errors with the crash backup mechanism, one minor, one 2026-06-22 21:52:06 -04:00
wrapper.tcl Added some support for the open PDKs in the technology manager GUI. 2026-06-08 15:10:14 -04:00