m

make(1)

make(1)

be used in target rules in the make®le. They can also be rede®ned in the make®le.

$$@

The $$@ macro has meaning only on dependency lines. Macros of this form are called

 

dynamic dependencies because they are evaluated at the time the dependency is

 

actually processed. $$@ evaluates to exactly the same thing as $@ does on a com-

 

mand line; i.e., the current target name. This macro is useful for building large

 

numbers of executable ®les, each of which has only one source ®le. For instance, the

 

following HP-UX commands could all be built using the same rule:

CMDS = cat echo cmp chown $(CMDS) : $$@.c

$(CC) -O $? -o $@

If this make®le is invoked with make cat echo cmp chown, make builds each target in turn using the generic rule, with $$@ evaluating to cat while cat is the target, to echo when the target is echo, and so forth.

The dynamic dependency macro can also take the F form, $$(@F) which represents the ®lename part of $$@. This is useful if the targets contain pathnames. For exam- ple:

INCDIR = /usr/include

INCLUDES = $(INCDIR)/stdio.h \ $(INCDIR)/pwd.h \ $(INCDIR)/dir.h \ $(INCDIR)/a.out.h

$(INCLUDES) : $$(@F) cp $? $@

chmod 0444 $@

Special Macros

The VPATH macro allows make to search a colon separated list of directories for dependents. Lines of the form VPATH= path1:path2 ... causes make to ®rst search the current directory for a dependent and if the dependent is not found, make searches path1 and continues until the directories speci®ed in the VPATH macro are exhausted.

EXTERNAL INFLUENCES

Environment Variables

LANG provides a default value for the internationalization variables that are unset or null. If LANG is unset or null, the default value of "C" (see lang(5)) is used. If any of the internationalization variables contains an invalid setting, make will behave as if all internationalization variables are set to "C". See environ(5).

LC_ALL If set to a non-empty string value, overrides the values of all the other internationalization vari- ables.

LC_CTYPE determines the interpretation of text as single and/or multi-byte characters, the classi®cation of characters as printable, and the characters matched by character class expressions in regular expres- sions.

LC_MESSAGES determines the locale that should be used to affect the format and contents of diagnostic messages written to standard error and informative messages written to standard output.

NLSPATH determines the location of message catalogues for the processing of LC_MESSAGES .

PROJECTDIR provides a directory to be used to search for SCCS ®les not found in the current directory. In all of the following cases, the search for SCCS ®les will be made in the directory SCCS in the identi®ed directory. If the value of PROJECTDIR begins with a slash, it is considered an absolute pathname; other- wise, the home directory of a user of that name is examined for a subdirectory src or source. If such a directory is found, it is used. Otherwise, the value is used as a relative pathname.

If PROJECTDIR is not set or has a null value, the current directory is searched ®rst, followed by a search in the SCCS directory in the current directory.

The setting of PROJECTDIR affects all ®les listed in the remainder of this utility description for ®les with a component named SCCS.

Section 1516

− 9 −

HP-UX Release 11i: December 2000