magic/doc/latexfiles
Darryl L. Miles c7bb0eeac8 build: out-of-tree .so variants, oa, and latexfiles PS regen
Extend the out-of-tree build to the outliers deferred earlier, and
audit install sourcing.  All are read-source / write-build now.

Tcl auto-load shared libraries (built via each module's `tcl-main`;
not part of the default TCL build, but now correct when invoked):
* lef/plot/router/ext2spice/ext2sim: the hand-written object rules
  (tcllef.o, tclplot.o, tclroute.o, spicewrap.o, spicehier.o, simwrap.o,
  ext2sim_main.o) compiled a bare-name source from the cwd; switch to
  `-c $< -o $@` so the source is found via VPATH and the object lands in
  the build tree.  ext2sim_main.o also swaps the hard-coded -I${MAGICDIR}
  for ${CPPFLAGS} (build + source include paths).  ext2spice spice2sim
  install copies $< (source script).  Sibling ${MAGICDIR}/<mod>/lib*.o
  refs already resolve into the build tree (MAGICDIR = build top).

oa (disabled by default; OpenAccess):
* CXX_INCLUDES -I. -> -I$(srcdir) -I${MAGICDIR} -I${MAGICSRC} so the C++
  sources, generated database/database.h, and cross-module headers all
  resolve out-of-tree; .deps and objects were already build-local.

doc/latexfiles PostScript regeneration:
* Split PS_SRCDIR (pre-built PS shipped in the source tree, read-only)
  from PS_GENDIR (= psfiles in the build tree).  `all` / the .tex.ps
  rule now regenerate into PS_GENDIR (mkdir -p; latex reads $(srcdir)
  via TEXINPUTS; dvips writes the build tree) instead of writing back
  into the source psfiles dir.  install takes each .ps from PS_GENDIR if
  regenerated there, else the pre-built PS_SRCDIR copy.

Verified out-of-tree (make modules; then per-module tcl-main):
* magiclef.so / tclplot.so / tclroute.so / exttospice.so / exttosim.so
  all build into the build tree (rc=0); oa.o builds into the build tree;
  source tree stays clean.
* install-tcl copies each .so from the build tree.
* Install-location audit on a full `make install DESTDIR=...`: generated
  data (scmos.tech, .magicrc, magic.tcl, tclmagic.so) matches the build
  tree; verbatim data (glyphs, fonts, magicps.pro, man pages, doc PS)
  matches the source tree.
* DESTDIR: two distinct prefixes install 376 files each, independent and
  fully contained (nothing written outside DESTDIR).

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 .so variants, oa, and latexfiles PS regen 2026-07-26 14:54:11 -04:00
addendum6_5.tex Initial commit at Tue Apr 25 08:41:48 EDT 2017 by tim on stravinsky 2017-04-25 08:41:48 -04:00
copyright.tex Initial commit at Tue Apr 25 08:41:48 EDT 2017 by tim on stravinsky 2017-04-25 08:41:48 -04:00
introduction.tex Initial commit at Tue Apr 25 08:41:48 EDT 2017 by tim on stravinsky 2017-04-25 08:41:48 -04:00
maint1.tex Initial commit at Tue Apr 25 08:41:48 EDT 2017 by tim on stravinsky 2017-04-25 08:41:48 -04:00
maint2.tex Initial commit at Tue Apr 25 08:41:48 EDT 2017 by tim on stravinsky 2017-04-25 08:41:48 -04:00
maint3.tex Initial commit at Tue Apr 25 08:41:48 EDT 2017 by tim on stravinsky 2017-04-25 08:41:48 -04:00
maint4.tex Initial commit at Tue Apr 25 08:41:48 EDT 2017 by tim on stravinsky 2017-04-25 08:41:48 -04:00
manual.tex Initial commit at Tue Apr 25 08:41:48 EDT 2017 by tim on stravinsky 2017-04-25 08:41:48 -04:00
tut1.tex Initial commit at Tue Apr 25 08:41:48 EDT 2017 by tim on stravinsky 2017-04-25 08:41:48 -04:00
tut2.tex Initial commit at Tue Apr 25 08:41:48 EDT 2017 by tim on stravinsky 2017-04-25 08:41:48 -04:00
tut3.tex Initial commit at Tue Apr 25 08:41:48 EDT 2017 by tim on stravinsky 2017-04-25 08:41:48 -04:00
tut4.tex Initial commit at Tue Apr 25 08:41:48 EDT 2017 by tim on stravinsky 2017-04-25 08:41:48 -04:00
tut5.tex Initial commit at Tue Apr 25 08:41:48 EDT 2017 by tim on stravinsky 2017-04-25 08:41:48 -04:00
tut6.tex Initial commit at Tue Apr 25 08:41:48 EDT 2017 by tim on stravinsky 2017-04-25 08:41:48 -04:00
tut7.tex Initial commit at Tue Apr 25 08:41:48 EDT 2017 by tim on stravinsky 2017-04-25 08:41:48 -04:00
tut8.tex Initial commit at Tue Apr 25 08:41:48 EDT 2017 by tim on stravinsky 2017-04-25 08:41:48 -04:00
tut9.tex Initial commit at Tue Apr 25 08:41:48 EDT 2017 by tim on stravinsky 2017-04-25 08:41:48 -04:00
tut10.tex Initial commit at Tue Apr 25 08:41:48 EDT 2017 by tim on stravinsky 2017-04-25 08:41:48 -04:00
tut11.tex Initial commit at Tue Apr 25 08:41:48 EDT 2017 by tim on stravinsky 2017-04-25 08:41:48 -04:00
tutscm1.tex Initial commit at Tue Apr 25 08:41:48 EDT 2017 by tim on stravinsky 2017-04-25 08:41:48 -04:00
tutscm2.tex Initial commit at Tue Apr 25 08:41:48 EDT 2017 by tim on stravinsky 2017-04-25 08:41:48 -04:00
tutscm3.tex Initial commit at Tue Apr 25 08:41:48 EDT 2017 by tim on stravinsky 2017-04-25 08:41:48 -04:00
tutscm4.tex Initial commit at Tue Apr 25 08:41:48 EDT 2017 by tim on stravinsky 2017-04-25 08:41:48 -04:00
tuttcl1.tex Initial commit at Tue Apr 25 08:41:48 EDT 2017 by tim on stravinsky 2017-04-25 08:41:48 -04:00
tuttcl2.tex Initial commit at Tue Apr 25 08:41:48 EDT 2017 by tim on stravinsky 2017-04-25 08:41:48 -04:00
tuttcl3.tex Initial commit at Tue Apr 25 08:41:48 EDT 2017 by tim on stravinsky 2017-04-25 08:41:48 -04:00
tuttcl4.tex Initial commit at Tue Apr 25 08:41:48 EDT 2017 by tim on stravinsky 2017-04-25 08:41:48 -04:00
tuttcl5.tex Initial commit at Tue Apr 25 08:41:48 EDT 2017 by tim on stravinsky 2017-04-25 08:41:48 -04:00
tutwrl1.tex Initial commit at Tue Apr 25 08:41:48 EDT 2017 by tim on stravinsky 2017-04-25 08:41:48 -04:00