-M
Pragma equivalent
None.
Purpose
Produces the dependency files that are used by the make tool for each source file.
The dependency output file is named with a .u suffix.
Syntax
Defaults
Not applicable.
Usage
For each source file with a .c, .C, .cpp, or .i suffix that is named on the command line, a dependency output file is generated with the same name as the object file but with a .u suffix. Dependency output files are not created for any other types of input files. If you use the -o option to rename the object file, the name of the dependency output file is based on the name specified in the -o option. For more information, see the Examples section.
The dependency output file specifies a separate rule for each of the main source file's dependencies. The dependency output files generated by these options are not make description files; they must be linked before they can be used with the make command. For more information about this command, see your operating system documentation.
file_name.o:include_file_name
file_name.o:file_name.suffix
You can also use -M with the following option:
- -MF file_path
- Sets the name of the dependency output file, where file_path is the full or partial path or file name for the dependency output file. For more information, see -MF.
Include files are listed according to the search order rules for the
#include preprocessor directive, described in Directory search sequence for included files. If the include file is not found, it is not
added to the .u file.
Files with no include statements produce dependency output files that contain one line listing only the input file name.
Predefined macros
None.
Examples
mysource.c and create a dependency output file named mysource.u, enter:
ibm-clang -c -M mysource.c
foo_src.c and create a dependency output file named mysource.u, enter:
ibm-clang -c foo_src.c -MF mysource.u
foo_src.c and create a dependency output file named mysource.u in the deps/ directory, enter:
ibm-clang -c -M foo_src.c -MF deps/mysource.u
foo_src.c and create an object file
named foo_obj.o and a
dependency output file named foo_obj.u, enter:
ibm-clang -c -M foo_src.c -o foo_obj.o
foo_src.c and create an object file named foo_obj.o and a
dependency output file named mysource.u, enter:
ibm-clang -c -M foo_src.c -o foo_obj.o -MF mysource.u
foo_src1.c and foo_src2.c to create two dependency output files, named foo_src1.u and foo_src2.u respectively, in the /tmp/ directory, enter:
ibm-clang -c -M foo_src1.c foo_src2.c -MF /tmp/
Related information
- -MF
- -o
- Directory search sequence for included files
- For details about the -M, -MD, -MF, -MG, -MM, -MMD, -MP, -MQ, and -MT options, see the GCC online documentation at http://gcc.gnu.org/onlinedocs/.
