2017-04-25 14:41:48 +02:00
|
|
|
# defs.mak.in --
|
|
|
|
|
# source file for autoconf-generated "defs.mak" for magic
|
|
|
|
|
|
|
|
|
|
# @configure_input@
|
|
|
|
|
# Feel free to change the values in here to suit your needs.
|
|
|
|
|
# Be aware that running scripts/configure again will overwrite
|
|
|
|
|
# any changes!
|
|
|
|
|
|
|
|
|
|
SHELL = @SHELL@
|
|
|
|
|
|
2026-07-22 14:33:37 +02:00
|
|
|
# --- out-of-tree (VPATH) support ------------------------------------------
|
|
|
|
|
# MAGICDIR is set by each subdir Makefile to the relative path back to the
|
|
|
|
|
# *build* top (that is where the generated defs.mak / rules.mak live, and where
|
|
|
|
|
# the generated database/database.h is written). MAGICSRC is the absolute path
|
|
|
|
|
# to the *source* top. For an in-tree build the two trees coincide.
|
|
|
|
|
MAGICSRC = @abs_top_srcdir@
|
|
|
|
|
|
2026-07-22 21:07:50 +02:00
|
|
|
# BUILD_TOP is the absolute build top; GENINC (below) needs it either way.
|
2026-07-22 14:33:37 +02:00
|
|
|
BUILD_TOP := $(abspath $(MAGICDIR))
|
2026-07-22 21:07:50 +02:00
|
|
|
# Minimal srcdir fallback. Every module converted to Makefile.in sets
|
|
|
|
|
# `srcdir` (and VPATH) from @srcdir@ *before* including this file. The only
|
2026-07-23 18:45:12 +02:00
|
|
|
# Makefile that does NOT is the top-level Makefile, which does not compile magic
|
|
|
|
|
# sources through the pattern rules and so needs no VPATH. We only default
|
|
|
|
|
# `srcdir` -- derived from where make is running (CURDIR, a build dir) relative to
|
|
|
|
|
# BUILD_TOP -- so that CPPFLAGS, which lists -I${srcdir}, stays well-formed. The
|
|
|
|
|
# patsubst is an anchored prefix strip: "" at the build top.
|
2026-07-22 18:48:24 +02:00
|
|
|
ifeq ($(origin srcdir),undefined)
|
2026-07-22 21:07:50 +02:00
|
|
|
srcdir := $(MAGICSRC)$(patsubst $(BUILD_TOP)%,%,$(CURDIR))
|
2026-07-22 18:48:24 +02:00
|
|
|
endif
|
2026-07-22 17:49:58 +02:00
|
|
|
|
|
|
|
|
# Generated headers (currently just database/database.h) are exposed through a
|
|
|
|
|
# single include directory, ${GENINC}:
|
|
|
|
|
# * in-tree (build top == source top): the top itself, so the header stays at
|
|
|
|
|
# $(builddir)/database/database.h and -I${GENINC} == the old -I${MAGICDIR}.
|
|
|
|
|
# * relocated (out-of-tree): a clean $(builddir)/include, so #include
|
|
|
|
|
# <database/database.h> resolves under include/ and the raw build top is
|
|
|
|
|
# never on the compiler search path.
|
|
|
|
|
ifeq ($(BUILD_TOP),$(MAGICSRC))
|
|
|
|
|
GENINC := ${MAGICDIR}
|
|
|
|
|
else
|
|
|
|
|
GENINC := ${MAGICDIR}/include
|
|
|
|
|
endif
|
|
|
|
|
DATABASE_H := ${GENINC}/database/database.h
|
2026-07-22 14:33:37 +02:00
|
|
|
# --------------------------------------------------------------------------
|
|
|
|
|
|
2017-04-25 14:41:48 +02:00
|
|
|
prefix = @prefix@
|
|
|
|
|
exec_prefix = @exec_prefix@
|
|
|
|
|
bindir = @bindir@
|
|
|
|
|
libdir = @libdir@
|
|
|
|
|
mandir = @mandir@
|
|
|
|
|
|
build: top Makefile.in + build-dir orchestration (out-of-tree)
Make a plain `make` in a build directory build every module into the
build tree. The top Makefile becomes a configure-generated Makefile.in,
and each recursion drives a build subdirectory (created on demand) using
the module Makefile from the source tree.
Makefile -> Makefile.in (config.status generates Makefile in the build
top via AC_CONFIG_FILES([Makefile:Makefile.in])):
* Add MAGICSRC = @abs_top_srcdir@; read VERSION and re-run configure from
${MAGICSRC}.
* Every descent `(cd $$dir && ${MAKE} <goal>)` and `${MAKE} -C $(dir $@)
<goal>` becomes:
mkdir -p <builddir> && ${MAKE} -C <builddir> \
-f ${MAGICSRC}/<dir>/Makefile <goal>
so the build subdir need not pre-exist and the source Makefile is used.
Applied to modules/libs/depend pattern rules and the
tcllibrary/mains/techs/install/clean loops.
* database/database.h: generate from ${MAGICSRC}/.../database.h.in into
the build tree (mkdir -p database), via the generated build-tree
${MAGICDIR}/scripts/makedbh.
* install-dirs/install-tcl-dirs use ${SCRIPTS}/mkdirs (now source-tree);
clean skips absent build subdirs; distclean/dist/tags updated for the
split source/build layout.
scripts/defs.mak.in:
* SCRIPTS now points at the source tree (${MAGICSRC}/scripts) for the
static helpers (mkdirs, printmans, ...); the one generated helper,
makedbh, is referenced directly at ${MAGICDIR}/scripts (build tree).
* Guard VPATH so it is set only inside module subdirectories, never at
the build top -- a top-level VPATH into the source tree could let a
stale source database/database.h shadow the build-tree copy.
scripts/configure.in: AC_CONFIG_FILES([Makefile:Makefile.in]); regenerated
scripts/configure.
Verified out-of-tree: `../configure && make modules && make libs` builds
all 33 module libraries (lib*.o and lib*.a) plus the generated
database/database.h into the build tree, with no errors and the source
tree left clean. A full `make` (link the magic program, build techs)
still needs the later outlier fixes (magic/, scmos/, ...).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-22 14:42:35 +02:00
|
|
|
# Source-tree helper scripts (mkdirs, printmans, preproc.py, ...). The one
|
|
|
|
|
# generated script, makedbh, lives in the *build* tree at ${MAGICDIR}/scripts.
|
|
|
|
|
SCRIPTS = ${MAGICSRC}/scripts
|
2017-04-25 14:41:48 +02:00
|
|
|
|
|
|
|
|
INSTALL = @INSTALL@
|
|
|
|
|
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
|
|
|
|
INSTALL_DATA = @INSTALL_DATA@
|
|
|
|
|
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
|
|
|
|
|
|
|
|
|
# Override standard "make" target when compiling under TCL
|
|
|
|
|
ALL_TARGET = @ALL_TARGET@
|
|
|
|
|
INSTALL_TARGET = @INSTALL_TARGET@
|
|
|
|
|
|
|
|
|
|
# Change libdir to install in a different place
|
|
|
|
|
BINDIR = ${bindir}
|
|
|
|
|
MANDIR = ${mandir}
|
|
|
|
|
LIBDIR = ${libdir}
|
|
|
|
|
SYSDIR = ${libdir}/magic/sys
|
|
|
|
|
SCMDIR = ${libdir}/magic/scm
|
|
|
|
|
TCLDIR = ${libdir}/magic/tcl
|
|
|
|
|
|
2020-01-28 16:40:01 +01:00
|
|
|
# Install targets may be different if dist_prefix is set by configure
|
2020-01-28 18:29:44 +01:00
|
|
|
INSTALL_BINDIR = @DIST_DIR@/bin
|
|
|
|
|
INSTALL_MANDIR = @DIST_DIR@/share/man
|
|
|
|
|
INSTALL_LIBDIR = @DIST_DIR@/lib
|
2020-01-28 16:40:01 +01:00
|
|
|
INSTALL_SYSDIR = ${INSTALL_LIBDIR}/magic/sys
|
|
|
|
|
INSTALL_SCMDIR = ${INSTALL_LIBDIR}/magic/scm
|
|
|
|
|
INSTALL_TCLDIR = ${INSTALL_LIBDIR}/magic/tcl
|
|
|
|
|
|
2017-04-25 14:41:48 +02:00
|
|
|
MAIN_EXTRA_LIBS = @extra_libs@
|
2026-07-20 13:03:14 +02:00
|
|
|
LD_FIRST_LIBS = @ld_first_libs@
|
2017-04-25 14:41:48 +02:00
|
|
|
LD_EXTRA_LIBS = @ld_extra_libs@
|
|
|
|
|
LD_SHARED = @ld_extra_objs@
|
|
|
|
|
TOP_EXTRA_LIBS = @top_extra_libs@
|
|
|
|
|
SUB_EXTRA_LIBS = @sub_extra_libs@
|
2024-10-17 22:15:30 +02:00
|
|
|
LIBS = @LIBS@
|
2017-04-25 14:41:48 +02:00
|
|
|
|
|
|
|
|
MODULES += @modules@
|
|
|
|
|
UNUSED_MODULES += @unused@
|
|
|
|
|
PROGRAMS += @programs@
|
|
|
|
|
INSTALL_CAD_DIRS += @cadinstall@
|
|
|
|
|
|
|
|
|
|
RM = rm -f
|
2024-10-21 15:31:50 +02:00
|
|
|
RMDIR = rmdir
|
2017-04-25 14:41:48 +02:00
|
|
|
CP = cp
|
2024-10-21 15:31:50 +02:00
|
|
|
MV = mv
|
|
|
|
|
LN = ln
|
2017-04-25 14:41:48 +02:00
|
|
|
AR = ar
|
2024-10-16 16:56:25 +02:00
|
|
|
ARFLAGS = cr
|
2020-06-29 17:07:43 +02:00
|
|
|
LINK = @LD@ -r
|
2017-04-25 14:41:48 +02:00
|
|
|
LD = @LD@
|
2024-10-21 15:31:50 +02:00
|
|
|
MKDIR = mkdir
|
2025-03-21 12:39:21 +01:00
|
|
|
PERL = @PERL@
|
2024-10-17 22:15:30 +02:00
|
|
|
SED = @SED@
|
2026-07-22 17:02:51 +02:00
|
|
|
LATEX = @LATEX@
|
|
|
|
|
DVIPS = @DVIPS@
|
2017-08-25 20:13:30 +02:00
|
|
|
MCPP = @MCPP@
|
2020-02-19 20:25:58 +01:00
|
|
|
MSED = @MSED@
|
2017-04-25 14:41:48 +02:00
|
|
|
RANLIB = @RANLIB@
|
|
|
|
|
SHDLIB_EXT = @SHDLIB_EXT@
|
2022-05-28 23:51:20 +02:00
|
|
|
ZLIB_FLAG = @ZLIB_FLAG@
|
2026-07-20 16:21:56 +02:00
|
|
|
LDDL_FLAGS = @LDDL_FLAGS@
|
2017-04-25 14:41:48 +02:00
|
|
|
LD_RUN_PATH = @LD_RUN_PATH@
|
|
|
|
|
LIB_SPECS = @LIB_SPECS@
|
2017-10-13 16:28:07 +02:00
|
|
|
LIB_SPECS_NOSTUB = @LIB_SPECS_NOSTUB@
|
2022-03-30 16:55:08 +02:00
|
|
|
LIB_SPECS_GRNULL = @LIB_SPECS_GRNULL@
|
2017-04-25 14:41:48 +02:00
|
|
|
WISH_EXE = @WISH_EXE@
|
|
|
|
|
TCL_LIB_DIR = @TCL_LIB_DIR@
|
2024-10-16 19:08:50 +02:00
|
|
|
|
2026-07-23 17:42:19 +02:00
|
|
|
# Computed once, simply-expanded (:=), and exported below. Sub-makes inherit the
|
|
|
|
|
# resulting strings and the `ifndef` guards skip recomputation -- so git/date/cat
|
|
|
|
|
# run once at the top instead of being re-spawned every time make rebuilds the
|
|
|
|
|
# recursively-expanded export for a child (a no-op recursive make otherwise spawns
|
|
|
|
|
# each of them hundreds of times).
|
|
|
|
|
ifndef MAGIC_VERSION
|
|
|
|
|
MAGIC_VERSION := $(shell cat ${MAGICSRC}/VERSION | cut -d. -f1-2)
|
|
|
|
|
endif
|
|
|
|
|
ifndef MAGIC_REVISION
|
|
|
|
|
MAGIC_REVISION := $(shell cat ${MAGICSRC}/VERSION | cut -d. -f3)
|
|
|
|
|
endif
|
2026-07-23 15:57:01 +02:00
|
|
|
# git may be absent (source tarball) or ${MAGICSRC} not a work-tree: fall back to
|
|
|
|
|
# empty rather than emitting an error.
|
2026-07-23 17:42:19 +02:00
|
|
|
ifndef MAGIC_COMMIT
|
|
|
|
|
MAGIC_COMMIT := $(shell git -C ${MAGICSRC} rev-parse HEAD 2>/dev/null)
|
|
|
|
|
endif
|
2026-07-23 16:00:13 +02:00
|
|
|
# "-DMAGIC_NO_BUILDDATE" when configured with --disable-magic-builddate, else
|
|
|
|
|
# empty. buildinfo.c reports an empty MagicCompileTime under that define.
|
|
|
|
|
MAGIC_BUILDDATE_DEFS = @MAGIC_BUILDDATE_DEFS@
|
|
|
|
|
# Only compute the (volatile) build date when it will actually be baked in --
|
2026-07-23 17:42:19 +02:00
|
|
|
# skipping it under --disable-magic-builddate avoids the date spawn entirely.
|
2026-07-23 16:00:13 +02:00
|
|
|
ifeq (${MAGIC_BUILDDATE_DEFS},)
|
2026-07-23 17:42:19 +02:00
|
|
|
ifndef MAGIC_BUILDDATE
|
2026-07-23 15:57:01 +02:00
|
|
|
# Honor SOURCE_DATE_EPOCH (reproducible builds -- appimage/npm tarballs) when set,
|
2026-07-23 17:31:18 +02:00
|
|
|
# else the current time. @SOURCE_DATE_CMD@ is the platform's epoch->UTC-date
|
|
|
|
|
# invocation, chosen by configure (GNU `date -u -d @` / `gdate` vs BSD
|
|
|
|
|
# `date -u -r `); the epoch is appended here. The SOURCE_DATE_EPOCH branch is
|
|
|
|
|
# UTC so a reproducible stamp does not depend on the builder's zone; the plain
|
|
|
|
|
# `date` fallback is local.
|
2026-07-23 17:42:19 +02:00
|
|
|
MAGIC_BUILDDATE := $(shell if [ -n "$$SOURCE_DATE_EPOCH" ]; then \
|
2026-07-23 17:31:18 +02:00
|
|
|
@SOURCE_DATE_CMD@$$SOURCE_DATE_EPOCH; \
|
2026-07-23 15:57:01 +02:00
|
|
|
else date; fi | tr -d '\r\n')
|
2026-07-23 16:00:13 +02:00
|
|
|
endif
|
2026-07-23 17:42:19 +02:00
|
|
|
endif
|
2024-10-16 19:08:50 +02:00
|
|
|
|
|
|
|
|
# This allow inheritence of the values from toplevel Makefile
|
|
|
|
|
export MAGIC_VERSION
|
|
|
|
|
export MAGIC_REVISION
|
|
|
|
|
export MAGIC_COMMIT
|
|
|
|
|
export MAGIC_BUILDDATE
|
2017-04-25 14:41:48 +02:00
|
|
|
|
|
|
|
|
CC = @CC@
|
|
|
|
|
CPP = @CPP@
|
|
|
|
|
CXX = @CXX@
|
|
|
|
|
|
2025-02-13 09:19:42 +01:00
|
|
|
###
|
|
|
|
|
### Feature flags (to enable uncomment these from ./defs.mak after your ./configure)
|
|
|
|
|
###
|
|
|
|
|
### SUPPORT_DIRECT_MALLOC: this removes the legacy malloc/free APIs that are
|
|
|
|
|
### not thread-safe and have a defer-free-by-1 quirk that maybe covering
|
|
|
|
|
### up unknown problems. See utils/malloc.[ch] for more info.
|
|
|
|
|
###
|
|
|
|
|
### Status: EXPERIMENTAL (this is expected to uncover issues we don't know about yet)
|
|
|
|
|
#FEATURE_FLAGS += -DSUPPORT_DIRECT_MALLOC
|
|
|
|
|
###
|
|
|
|
|
### SUPPORT_REMOVE_MALLOC_LEGACY this completely removes the older non-threadsafe API
|
|
|
|
|
### from the output binaries.
|
|
|
|
|
### This option is dependent on SUPPORT_DIRECT_MALLOC
|
|
|
|
|
###
|
|
|
|
|
### Status: NOT-STABILITY-AFFECTING (if your binary links you are good to continue)
|
|
|
|
|
#FEATURE_FLAGS += -DSUPPORT_REMOVE_MALLOC_LEGACY
|
|
|
|
|
|
2026-07-22 17:49:58 +02:00
|
|
|
# -I${GENINC}: generated headers (build top in-tree, build/include relocated)
|
2026-07-22 14:33:37 +02:00
|
|
|
# -I${MAGICSRC}: source top, for "<module>/<header>.h" includes
|
|
|
|
|
# -I${srcdir}: this module's source dir, for same-directory headers
|
2026-07-22 17:49:58 +02:00
|
|
|
CPPFLAGS = -I${GENINC} -I${MAGICSRC} -I${srcdir} @CPPFLAGS@
|
2026-07-20 16:21:56 +02:00
|
|
|
CXXFLAGS = @CXXFLAGS@
|
2026-07-23 16:00:13 +02:00
|
|
|
DFLAGS_MAGICVERSION = -DMAGIC_VERSION=\"${MAGIC_VERSION}\" -DMAGIC_REVISION=\"${MAGIC_REVISION}\" -DMAGIC_COMMIT=\"${MAGIC_COMMIT}\" ${MAGIC_BUILDDATE_DEFS}
|
|
|
|
|
ifeq (${MAGIC_BUILDDATE_DEFS},)
|
|
|
|
|
DFLAGS_MAGICVERSION += "-DMAGIC_BUILDDATE=\"${MAGIC_BUILDDATE}\""
|
|
|
|
|
endif
|
2026-07-23 15:55:20 +02:00
|
|
|
DFLAGS = @extra_defs@ @stub_defs@ @DEFS@ -DGCORE=\"@GCORE@\"
|
2025-02-13 09:19:42 +01:00
|
|
|
DFLAGS += -DSHDLIB_EXT=\"@SHDLIB_EXT@\" @NDEBUG_defs@ @DEBUG_defs@ ${FEATURE_FLAGS}
|
2026-07-23 15:55:20 +02:00
|
|
|
DFLAGS_NOSTUB = @extra_defs@ @DEFS@ -DGCORE=\"@GCORE@\"
|
2025-02-13 09:19:42 +01:00
|
|
|
DFLAGS_NOSTUB += -DSHDLIB_EXT=\"@SHDLIB_EXT@\" @NDEBUG_defs@ @DEBUG_defs@ ${FEATURE_FLAGS}
|
2017-04-25 14:41:48 +02:00
|
|
|
CFLAGS = @CFLAGS@ @SHLIB_CFLAGS@ @INC_SPECS@
|
|
|
|
|
|
2026-07-23 16:27:18 +02:00
|
|
|
# Set only by configure --enable-ccache-prefix-map (empty otherwise). Maps the
|
|
|
|
|
# absolute source root to "." in the compiled output so a cached object carries
|
|
|
|
|
# no tree-specific paths -- required for correct cross-tree ccache sharing (pair
|
|
|
|
|
# with CCACHE_BASEDIR=<build top> in the environment for cross-tree *hits*).
|
|
|
|
|
CCACHE_PREFIX_MAP_FLAG = @CCACHE_PREFIX_MAP_FLAG@
|
|
|
|
|
ifneq (${CCACHE_PREFIX_MAP_FLAG},)
|
|
|
|
|
CFLAGS += ${CCACHE_PREFIX_MAP_FLAG}=${MAGICSRC}=.
|
|
|
|
|
endif
|
|
|
|
|
|
2026-07-20 16:21:56 +02:00
|
|
|
LDFLAGS = @LDFLAGS@
|
|
|
|
|
|
2017-04-25 14:41:48 +02:00
|
|
|
READLINE_DEFS = @rl_defs@
|
|
|
|
|
READLINE_LIBS = @rl_libs@
|
|
|
|
|
|
build: per-file automatic dependencies (.deps), retire the Depend/sed machinery
Replace the monolithic per-directory `Depend` file -- generated by a separate,
serial `make depend` pass (one `gcc -MM` over all sources) and post-processed by
sed -- with automake-style per-file dependency fragments produced as a side
effect of each compile.
rules.mak's %.o rule now adds, when the compiler supports it,
-MMD -MP -MF .deps/<stem>.d
so every object records the (non-system) headers it used. Those fragments are
`-include`d best-effort: absent on a first build, present and correct after.
Benefits:
* self-maintaining -- no explicit depend step; deps refresh on every compile;
* parallel -- generated during the (already parallel) compile, no barrier;
* -MMD already drops system headers (what the sed did) and -MP tolerates a
removed/renamed header, so the sed post-processing is gone;
* fixes out-of-tree incremental header tracking: with an absolute srcdir the
old sed stripped the now-absolute *local* header paths too, silently losing
them; the .d files keep them.
configure probes `-MMD -MP` (AUTODEP_FLAGS; empty and best-effort-skipped if the
compiler cannot). clean/distclean remove .deps (rm -r); .gitignore replaces the
obsolete */Depend with .deps/. `make depend` is kept as a no-op for callers that
still invoke it (e.g. the WASM build script).
Verified out-of-tree (--disable-ccache): 324 .d files, 0 Depend files, a header
touch recompiles its dependents, no-op rebuild is idle, clean clears .deps. (The
top-level depend phase still runs here as a no-op; removed next.)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-23 16:47:29 +02:00
|
|
|
# Per-file dependency flags ("-MMD -MP" when the compiler supports it, else
|
|
|
|
|
# empty); used by the %.o rule in rules.mak to write .deps/<stem>.d as a compile
|
|
|
|
|
# side effect. Replaces the old serial "make depend" / Depend-file machinery.
|
|
|
|
|
AUTODEP_FLAGS = @AUTODEP_FLAGS@
|
2017-04-25 14:41:48 +02:00
|
|
|
EXEEXT = @EXEEXT@
|
|
|
|
|
|
|
|
|
|
GR_CFLAGS = @X_CFLAGS@ @gr_cflags@
|
2024-10-17 11:56:15 +02:00
|
|
|
GR_DFLAGS = @gr_dflags@
|
2024-10-16 11:23:21 +02:00
|
|
|
GR_LIBS = @X_LIBS@ @X_PRE_LIBS@ @gr_libs@ @X_EXTRA_LIBS@
|
2017-04-25 14:41:48 +02:00
|
|
|
GR_SRCS = @gr_srcs@
|
|
|
|
|
GR_HELPER_SRCS = @gr_hsrcs@
|
|
|
|
|
GR_HELPER_PROG = @gr_hprog@
|
|
|
|
|
|
|
|
|
|
OA = @OA@
|
|
|
|
|
OA_LIBS = @OA_LIBS@
|
|
|
|
|
|
2024-10-04 21:07:03 +02:00
|
|
|
C_OBJS = ${SRCS:.c=.o}
|
|
|
|
|
CXX_OBJS = ${CXXSRCS:.cpp=.o}
|
|
|
|
|
OBJS = ${CXX_OBJS} ${C_OBJS}
|
2017-04-25 14:41:48 +02:00
|
|
|
LIB_OBJS = ${LIB_SRCS:.c=.o}
|
build: per-file automatic dependencies (.deps), retire the Depend/sed machinery
Replace the monolithic per-directory `Depend` file -- generated by a separate,
serial `make depend` pass (one `gcc -MM` over all sources) and post-processed by
sed -- with automake-style per-file dependency fragments produced as a side
effect of each compile.
rules.mak's %.o rule now adds, when the compiler supports it,
-MMD -MP -MF .deps/<stem>.d
so every object records the (non-system) headers it used. Those fragments are
`-include`d best-effort: absent on a first build, present and correct after.
Benefits:
* self-maintaining -- no explicit depend step; deps refresh on every compile;
* parallel -- generated during the (already parallel) compile, no barrier;
* -MMD already drops system headers (what the sed did) and -MP tolerates a
removed/renamed header, so the sed post-processing is gone;
* fixes out-of-tree incremental header tracking: with an absolute srcdir the
old sed stripped the now-absolute *local* header paths too, silently losing
them; the .d files keep them.
configure probes `-MMD -MP` (AUTODEP_FLAGS; empty and best-effort-skipped if the
compiler cannot). clean/distclean remove .deps (rm -r); .gitignore replaces the
obsolete */Depend with .deps/. `make depend` is kept as a no-op for callers that
still invoke it (e.g. the WASM build script).
Verified out-of-tree (--disable-ccache): 324 .d files, 0 Depend files, a header
touch recompiles its dependents, no-op rebuild is idle, clean clears .deps. (The
top-level depend phase still runs here as a no-op; removed next.)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-23 16:47:29 +02:00
|
|
|
CLEANS = ${OBJS} ${LIB_OBJS} lib${MODULE}.a lib${MODULE}.o ${MODULE}
|
2024-10-08 09:08:25 +02:00
|
|
|
|
|
|
|
|
# allows Makefile to be selective
|
|
|
|
|
MAKE_TCL = @MAKE_TCL@
|
|
|
|
|
MAKE_X11 = @MAKE_X11@
|
|
|
|
|
MAKE_GL = @MAKE_GL@
|
|
|
|
|
MAKE_GLU = @MAKE_GLU@
|
|
|
|
|
MAKE_CAIRO = @MAKE_CAIRO@
|