Commit Graph

5 Commits

Author SHA1 Message Date
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
Darryl L. Miles dc31c1f6f6 Makefile: LDFLAGS autoconf propagation
Also fixed up CC/CXX/CXXFLAGS in the same way.

Main notable concern the tclmagic.so now has reordered position of
$LDFLAGS (was start AND end of list, now start of list only),
$LDDL_FLAGS would have already provided it start of list, so it
would be duplicated set of options.

@LDDL_FLAGS@ no longer prepend $LDFLAGS which is now explicit in the
Makefile to allow specific target control.

The purpose of all this is the toplevel ./configure now has LDFLAGS
control passed down to linker command lines as configure --help
indicates.
2026-07-23 16:09:35 -04:00
Darryl L. Miles 659ec36d2d ext2spice: Makefile use EXT2SPICE_MAIN for deprecated standalone 2025-07-27 12:52:12 -04:00
Tim Edwards bc00b5578b Implemented a new configuration variable "dist_prefix" for
distributed installations, where the immediate installation location
is different from the final installation location, but in the case
where it is not desirable to put the entire install hierarchy as a
subdirectory of DESTDIR.
2020-01-28 10:40:01 -05:00
Tim Edwards 231a299b16 Initial commit at Tue Apr 25 08:41:48 EDT 2017 by tim on stravinsky 2017-04-25 08:41:48 -04:00