build: convert nested children + rewire parent recursion to native

Convert the last nested children to Makefile.in and switch their parents
from the -f fallback to native recursion (they now have generated build
Makefiles).  Rename and rewire are one unit: a pure rename would break the
parent's -f path to the (now-.in) child.

Converted (5): scmos/cif_template, doc/man, doc/tutcells, doc/html,
doc/latexfiles.  Pure renames -- still build via the srcdir derivation;
@srcdir@ substitution follows.

Rewired to native `make -C <child>` (config.status now creates the child
build dirs + Makefiles):
* scmos/Makefile.in: cif_template build + clean.
* doc/Makefile.in: install/install-tcl over man/tutcells/html/latexfiles.
* Makefile.in: the docs: target -> `make -k -C doc/latexfiles all`.
The `mkdir -p` and `-f ${MAGICSRC}/.../Makefile` are dropped in each.

* configure.in: AC_CONFIG_FILES for the 5 children; regenerated configure.
* .gitignore: ignore each generated child Makefile, same commit.

Verified out-of-tree: full `make && make install` rc=0, 376 files --
scmos recurses natively into cif_template (8 objs), docs regenerate via
native doc/latexfiles (27/28), man pages install via native doc/man.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Darryl L. Miles 2026-07-22 18:38:15 +00:00 committed by R. Timothy Edwards
parent 162db537d8
commit d2650e4833
11 changed files with 31 additions and 8 deletions

5
.gitignore vendored
View File

@ -60,6 +60,11 @@ tcltk/Makefile
scmos/Makefile
doc/Makefile
lisp/Makefile
scmos/cif_template/Makefile
doc/man/Makefile
doc/tutcells/Makefile
doc/html/Makefile
doc/latexfiles/Makefile
# Compiled objects / libraries
*.o

View File

@ -131,8 +131,7 @@ techs: depend
.PHONY: docs
docs:
@echo --- making documentation
@mkdir -p doc/latexfiles
@${MAKE} -k -C doc/latexfiles -f ${MAGICSRC}/doc/latexfiles/Makefile all || \
@${MAKE} -k -C doc/latexfiles all || \
echo "--- WARNING: some documents did not regenerate; the pre-built PostScript will be used for those at 'make install'"
install: $(INSTALL_TARGET)

View File

@ -23,11 +23,11 @@ DOC_SUBDIRS = latexfiles man tutcells html
install-tcl:
for dir in ${DOC_SUBDIRS}; do \
mkdir -p $$dir && ${MAKE} -C $$dir -f ${MAGICSRC}/doc/$$dir/Makefile install; done
${MAKE} -C $$dir install; done
install:
for dir in ${DOC_SUBDIRS}; do \
mkdir -p $$dir && ${MAKE} -C $$dir -f ${MAGICSRC}/doc/$$dir/Makefile install; done
${MAKE} -C $$dir install; done
print_only: force
lpr -h ${PSDIR}/copyright.ps

View File

@ -103,13 +103,12 @@ $(HCIFin):
$(HCIFout):
$(SCIFin):
$(SCIFout):
mkdir -p cif_template
${MAKE} -C cif_template -f ${MAGICSRC}/scmos/cif_template/Makefile clean
${MAKE} -C cif_template -f ${MAGICSRC}/scmos/cif_template/Makefile
${MAKE} -C cif_template clean
${MAKE} -C cif_template
$(DESTDIR)${INSTALL_SYSDIR}/%: %
cp $< $(DESTDIR)${INSTALL_SYSDIR}/$*
clean:;
-$(RM) *.tech *.tech27
test -d cif_template && ${MAKE} -C cif_template -f ${MAGICSRC}/scmos/cif_template/Makefile clean || true
test -d cif_template && ${MAKE} -C cif_template clean || true

15
scripts/configure vendored
View File

@ -9479,6 +9479,16 @@ ac_config_files="$ac_config_files doc/Makefile:doc/Makefile.in"
ac_config_files="$ac_config_files lisp/Makefile:lisp/Makefile.in"
ac_config_files="$ac_config_files scmos/cif_template/Makefile:scmos/cif_template/Makefile.in"
ac_config_files="$ac_config_files doc/man/Makefile:doc/man/Makefile.in"
ac_config_files="$ac_config_files doc/tutcells/Makefile:doc/tutcells/Makefile.in"
ac_config_files="$ac_config_files doc/html/Makefile:doc/html/Makefile.in"
ac_config_files="$ac_config_files doc/latexfiles/Makefile:doc/latexfiles/Makefile.in"
if test "`cd $srcdir && pwd`" = "`pwd`" ; then
magic_config_header=magic/autoconf/config.h
@ -10248,6 +10258,11 @@ do
"scmos/Makefile") CONFIG_FILES="$CONFIG_FILES scmos/Makefile:scmos/Makefile.in" ;;
"doc/Makefile") CONFIG_FILES="$CONFIG_FILES doc/Makefile:doc/Makefile.in" ;;
"lisp/Makefile") CONFIG_FILES="$CONFIG_FILES lisp/Makefile:lisp/Makefile.in" ;;
"scmos/cif_template/Makefile") CONFIG_FILES="$CONFIG_FILES scmos/cif_template/Makefile:scmos/cif_template/Makefile.in" ;;
"doc/man/Makefile") CONFIG_FILES="$CONFIG_FILES doc/man/Makefile:doc/man/Makefile.in" ;;
"doc/tutcells/Makefile") CONFIG_FILES="$CONFIG_FILES doc/tutcells/Makefile:doc/tutcells/Makefile.in" ;;
"doc/html/Makefile") CONFIG_FILES="$CONFIG_FILES doc/html/Makefile:doc/html/Makefile.in" ;;
"doc/latexfiles/Makefile") CONFIG_FILES="$CONFIG_FILES doc/latexfiles/Makefile:doc/latexfiles/Makefile.in" ;;
*) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
esac

View File

@ -2045,6 +2045,11 @@ AC_CONFIG_FILES([tcltk/Makefile:tcltk/Makefile.in])
AC_CONFIG_FILES([scmos/Makefile:scmos/Makefile.in])
AC_CONFIG_FILES([doc/Makefile:doc/Makefile.in])
AC_CONFIG_FILES([lisp/Makefile:lisp/Makefile.in])
AC_CONFIG_FILES([scmos/cif_template/Makefile:scmos/cif_template/Makefile.in])
AC_CONFIG_FILES([doc/man/Makefile:doc/man/Makefile.in])
AC_CONFIG_FILES([doc/tutcells/Makefile:doc/tutcells/Makefile.in])
AC_CONFIG_FILES([doc/html/Makefile:doc/html/Makefile.in])
AC_CONFIG_FILES([doc/latexfiles/Makefile:doc/latexfiles/Makefile.in])
dnl Emit an autoconf config header, available to the tree as
dnl #include <magic/autoconf/config.h>