Using a file as a target in more than one description block causes the Make utility to end. You can overcome this limitation by using two colons (::) as the target/dependent separator instead of one colon.
Examples of Targets in Several Description Blocks
| Permissible format: | X :: A command X :: B command |
Target and dependent are separated by two colons |
| or: | X : A X : B command |
Single colons
can be used if the target/dependent lines are grouped
above the same commands. |
| Not
Permissible format: Make utility will end |
X : A command X : B command |
Target and dependent separated by single colons |
Example of Using a Double Colon (::) Target/Dependent Separator
target.lib :: a.asm b.asm c.asm ml a.asm b.asm c.asm lib target a.obj b.obj c.obj
target.lib :: d.c e.c icc /c d.c e.c lib target d.obj e.obj
These two description blocks update the library named TARGET.LIB. If any of the assembly-language files have changed more recently than the library file, the Make utility executes the commands in the first block to assemble the source files and update the library. Similarly, if any of the C-language files have changed, the Make utility executes the second group of commands to compile the C files and update the library.