These *.d
files usually (and just conventionally) are make
dependencies (but perhaps, and unlikely, D-language source code).
The GCC compiler knows about -M
(and related) preprocessor option, which asks make
to ….
Instead of outputting the result of preprocessing, output a rule suitable for make describing the dependencies of the main source file.
With the help of a few good Makefile
tricks, you could write a Makefile
automatically dealing with dependencies, e.g. with things like
## dependencies of foo.c
foo.d: foo.c
$(COMPILE.c) -M $^ -o $@
## include them
-include foo.d
About $(wildcard *.c)
, read the GNU make documentation, section on file name functions. So $(wildcard *.c)
is globbing the *.c
by make
expanding it into the list of files ending with .c
; you could use it e.g. to define a make
variable: SOURCE_FILES= $(wildcard *.c)
, etc.
See also this, that and that examples.
Don’t forget to try make -p
to understand all the good builtin rules known by GNU make
…. Use make --trace
or remake
-x
for debugging your Makefile
-s.
0
solved In Makefiles GCC C programs, What are .d files and also what is a wildcard.? [closed]