magic/ext2spice/Makefile.in

52 lines
1.8 KiB
Makefile
Raw Normal View History

#
# rcsid "$Header: /usr/cvsroot/magic-8.0/ext2spice/Makefile,v 1.2 2010/08/10 00:18:45 tim Exp $"
#
MODULE = ext2spice
# Provided by configure: the module's source dir + the build top.
# defs.mak sees `srcdir` already set and skips its own srcdir derivation.
srcdir = @srcdir@
VPATH = @srcdir@
MAGICDIR = @top_builddir@
SRCS = ext2spice.c ext2hier.c
EXTRA_LIBS = ${MAGICDIR}/extflat/libextflat.o ${MAGICDIR}/utils/libutils.a
include ${MAGICDIR}/defs.mak
LIBS += -lm ${LD_EXTRA_LIBS} ${SUB_EXTRA_LIBS}
CLEANS += exttospice${SHDLIB_EXT} ext2spice_main.o spicewrap.o spicehier.o
main: ext2spice
tcl-main: exttospice${SHDLIB_EXT}
spicewrap.o: ext2spice.c ext2spice.h
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-22 15:39:35 +02:00
${CC} ${CFLAGS} ${CPPFLAGS} ${DFLAGS} -c $< -o $@
spicehier.o: ext2hier.c ext2spice.h
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-22 15:39:35 +02:00
${CC} ${CFLAGS} ${CPPFLAGS} ${DFLAGS} -c $< -o $@
ext2spice_main.o: ext2spice.c
${CC} ${CFLAGS} ${CPPFLAGS} ${DFLAGS} -DEXT2SPICE_MAIN -c -o $@ $^
exttospice${SHDLIB_EXT}: spicewrap.o spicehier.o ${MAGICDIR}/extflat/libextflat.o
@echo --- making exttospice Tcl library \(exttospice${SHDLIB_EXT}\)
${RM} exttospice${SHDLIB_EXT}
${CC} ${CFLAGS} ${CPPFLAGS} -o $@ ${LDFLAGS} ${LDDL_FLAGS} spicewrap.o spicehier.o \
${MAGICDIR}/extflat/libextflat.o ${LD_SHARED} -lc ${LIBS}
install: $(DESTDIR)${INSTALL_BINDIR}/${MODULE}${EXEEXT} $(DESTDIR)${INSTALL_BINDIR}/spice2sim
install-tcl: $(DESTDIR)${INSTALL_TCLDIR}/exttospice${SHDLIB_EXT} $(DESTDIR)${INSTALL_BINDIR}/spice2sim
$(DESTDIR)${INSTALL_TCLDIR}/exttospice${SHDLIB_EXT}: exttospice${SHDLIB_EXT}
${RM} $(DESTDIR)${INSTALL_TCLDIR}/exttospice${SHDLIB_EXT}
${CP} exttospice${SHDLIB_EXT} $(DESTDIR)${INSTALL_TCLDIR}/exttospice${SHDLIB_EXT}
$(DESTDIR)${INSTALL_BINDIR}/spice2sim: spice2sim
${RM} $(DESTDIR)${INSTALL_BINDIR}/spice2sim
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-22 15:39:35 +02:00
${CP} $< $(DESTDIR)${INSTALL_BINDIR}/spice2sim
include ${MAGICDIR}/rules.mak