make man page on NeXTSTEP

Man page or keyword search:  
man Server   1419 pages
apropos Keyword Search (all sections)
Output format
NeXTSTEP logo
[printable version]


MAKE(1)								       MAKE(1)

NAME
       make - maintain program groups

SYNOPSIS
       make [ -f makefile ] [ option ] ...  file ...

DESCRIPTION
       The  make  utility  executes commands in makefile to update one or more
       targets (see below).  If	 no  -f	 option	 is  present,  `makefile'  and
       `Makefile'  are	tried in order.	 If makefile is `-', standard input is
       taken.  More than one -f option may appear.

       The make utility updates a target if it depends on  prerequisite	 files
       that  have  been modified since the target was last modified, or if the
       target does not exist.

       A makefile contains a sequence of entries  that	specify	 dependencies.
       The first line of an entry is a blank-separated list of targets, then a
       colon, then a list of prerequisite files.  Text following a  semicolon,
       and all following lines that begin with a tab, are shell commands to be
       executed to update the target.  If a name appears on the left  of  more
       than one `colon' line, then it depends on all of the names on the right
       of the colon on those lines, but	 only  one  command  sequence  may  be
       specified  for  it.  If a name appears on a line with a double colon ::
       then the command sequence following that line is performed only if  the
       name  is	 out  of  date	with  respect to the names to the right of the
       double colon, and is not affected by other double colon lines on	 which
       that name may appear.

       Two special forms of a name are recognized.  A name like a(b) means the
       file named b stored in the archive named a.  A name like	 a((b))	 means
       the file stored in archive a containing the entry point b.

       Sharp and newline surround comments.

       The  following  makefile says that `pgm' depends on two files `a.o' and
       `b.o', and that they in turn depend on `.c' files  and  a  common  file
       `incl'.

		     pgm: a.o b.o
		     cc a.o b.o -lm -o pgm
	      a.o: incl a.c
		     cc -c a.c
	      b.o: incl b.c
		     cc -c b.c

       Makefile entries of the form

	      string1 = string2

       are   macro  definitions.   Subsequent  appearances  of	$(string1)  or
       ${string1} are replaced by string2.  If string1 is a single  character,
       the parentheses or braces are optional.

       The  make  utility  infers  prerequisites  for files for which makefile
       gives no construction commands.	 For  example,	a  `.c'	 file  may  be
       inferred as prerequisite for a `.o' file and be compiled to produce the
       `.o' file.  Thus the preceding example can be done more briefly:

		     pgm: a.o b.o
		     cc a.o b.o -lm -o pgm
	      a.o b.o: incl

       Prerequisites are inferred according to selected suffixes listed as the
       `prerequisites'	for  the  special  name	 `.SUFFIXES';  multiple	 lists
       accumulate;  an	empty  list  clears  what  came	 before.    Order   is
       significant;  the  first possible name for which both a file and a rule
       as described in the next paragraph exist is inferred.  The default list
       is

	      .SUFFIXES: .out .o .c .e .r .f .y .l .s .p

       The  rule  to  create a file with suffix s2 that depends on a similarly
       named file with suffix s1 is specified as an  entry  for	 the  `target'
       s1s2.   In  such	 an  entry, the special macro $* stands for the target
       name with suffix deleted, $@ for the full target name, $< for the  name
       of  the	file  that  the	 target	 depends  upon, and $? for the list of
       prerequisites that are out of date.  For example,  a  rule  for	making
       optimized `.o' files from `.c' files is

	      .c.o: ; cc -c -O -o $@ $*.c

       Certain	macros	are used by the default inference rules to communicate
       optional arguments  to  any  resulting  compilations.   In  particular,
       `CFLAGS'	 is  used for cc(1) options, and `LFLAGS' and `YFLAGS' for lex
       and yacc(1) options.  In addition, the macro `MFLAGS' is filled in with
       the  initial  command  line  options supplied to make.  This simplifies
       maintaining a hierarchy of makefiles as one may	then  invoke  make  on
       makefiles  in  subdirectories and pass along useful options such as -k,
       explained below.

       Another special macro is `VPATH'.  The `VPATH' macro should be set to a
       list of directories separated by colons.	 When make searches for a file
       as a result of a dependency relation, it will first search the  current
       directory and then each of the directories on the `VPATH' list.	If the
       file is found, the actual path to the file will be  used,  rather  than
       just  the  filename.   If `VPATH' is not defined, then only the current
       directory is searched.

       One use for `VPATH' is when one has several programs that compile  from
       the  same source.  The source can be kept in one directory and each set
       of object files (along with a separate makefile) would be in a separate
       subdirectory.  The `VPATH' macro would point to the source directory in
       this case.

       Command lines are executed one at a time, each by  its  own  shell.   A
       line is printed when it is executed unless the special target `.SILENT'
       is in makefile, or the first character of the command is `@'.

       Commands	 returning  nonzero  status  (see  intro(1))  cause  make   to
       terminate  unless  the  special	target `.IGNORE' is in makefile or the
       command begins with <tab><hyphen>.

       Interrupt and quit cause the target to be deleted unless the target  is
       a directory or depends on the special name `.PRECIOUS'.

       Other options:

       -d     Debug  mode.   Print  detailed  information  on  files and times
	      examined.

       -i     Equivalent to the special entry `.IGNORE:'.

       -k     When a command returns  nonzero  status,	abandon	 work  on  the
	      current  entry,  but  continue on branches that do not depend on
	      the current entry.

       -n     Trace and print, but do  not  execute  the  commands  needed  to
	      update the targets.

       -p     Print   the   complete  set  of  macro  definitions  and	target
	      descriptions.

       -q     Question.	 The make command returns a zero  or  non-zero	status
	      code  depending  upon whether the target file is or is not up to
	      date, without executing any commands on the action lines.

       -t     Touch,  i.e.  update  the	 modified  date	 of  targets,  without
	      executing any commands on the action lines.

       -r     Equivalent  to  an  initial  special  entry `.SUFFIXES:' with no
	      list.

       -s     Equivalent to the special entry `.SILENT:'.

FILES
       makefile, Makefile

SEE ALSO
       sh(1), touch(1)
       S. I. Feldman Make - A Program for Maintaining Computer Programs

BUGS
       Some  commands  return  nonzero	status	inappropriately.   Use	-i  to
       overcome the difficulty.

       Commands	 that  are  directly executed by the shell, notably cd(1), are
       ineffectual across newlines in make.

       `VPATH' is intended to act like the System V `VPATH' support, but there
       is no guarantee that it functions identically.

4th Berkeley Distribution	  May 9, 1986			       MAKE(1)
[top]

List of man pages available for NeXTSTEP

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net