-qmakedep, -M

Category

Output control

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

Read syntax diagramSkip visual syntax diagram
>>-+- -M----------------------+--------------------------------><
   '- -q--makedep--+--------+-'   
                   '-=--gcc-'     

Defaults

Not applicable.

Parameters

gcc (-qmakedep option only)
The format of the generated make rule to match the GCC format: the dependency output file includes a single target that lists all of the main source file's dependencies.

If you specify -qmakedep with no suboption, or -M, the dependency output file specifies a separate rule for each of the main source file's dependencies.

Usage

For each source file with a .c 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 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.

The output file contains a line for the input file and an entry for each include file. It has the general form:
file_name.o:include_file_name
file_name.o:file_name.suffix

You can also use -qmakedep and -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 include 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

Example 1: To compile mysource.c and create a dependency output file named mysource.u, enter:
xlc -c -qmakedep mysource.c
Example 2: To compile foo_src.c and create a dependency output file named mysource.u, enter:
xlc -c -qmakedep foo_src.c -MF mysource.u 
Example 3: To compile foo_src.c and create a dependency output file named mysource.u in the deps/ directory, enter:
xlc -c -qmakedep foo_src.c -MF deps/mysource.u
Example 4: To compile foo_src.c and create an object file named foo_obj.o and a dependency output file named foo_obj.u, enter:
xlc -c -qmakedep foo_src.c -o foo_obj.o
Example 5: To compile foo_src.c and create an object file named foo_obj.o and a dependency output file named mysource.u, enter:
xlc -c -qmakedep foo_src.c -o foo_obj.o -MF mysource.u
Example 6: To compile foo_src1.c and foo_src2.c to create two dependency output files, named foo_src1.u and foo_src2.u, respectively, in the c:/tmp/ directory, enter:
xlc -c -qmakedep foo_src1.c foo_src2.c -MF c:/tmp/ 

Related information