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]