Copyright (C) 2000-2012 |
GNU Info (make.info)Implicit VariablesVariables Used by Implicit Rules ================================ The commands in built-in implicit rules make liberal use of certain predefined variables. You can alter these variables in the makefile, with arguments to `make', or in the environment to alter how the implicit rules work without redefining the rules themselves. You can cancel all variables used by implicit rules with the `-R' or `--no-builtin-variables' option. For example, the command used to compile a C source file actually says `$(CC) -c $(CFLAGS) $(CPPFLAGS)'. The default values of the variables used are `cc' and nothing, resulting in the command `cc -c'. By redefining `CC' to `ncc', you could cause `ncc' to be used for all C compilations performed by the implicit rule. By redefining `CFLAGS' to be `-g', you could pass the `-g' option to each compilation. _All_ implicit rules that do C compilation use `$(CC)' to get the program name for the compiler and _all_ include `$(CFLAGS)' among the arguments given to the compiler. The variables used in implicit rules fall into two classes: those that are names of programs (like `CC') and those that contain arguments for the programs (like `CFLAGS'). (The "name of a program" may also contain some command arguments, but it must start with an actual executable program name.) If a variable value contains more than one argument, separate them with spaces. Here is a table of variables used as names of programs in built-in rules: `AR' Archive-maintaining program; default `ar'. `AS' Program for doing assembly; default `as'. `CC' Program for compiling C programs; default `cc'. `CXX' Program for compiling C++ programs; default `g++'. `CO' Program for extracting a file from RCS; default `co'. `CPP' Program for running the C preprocessor, with results to standard output; default `$(CC) -E'. `FC' Program for compiling or preprocessing Fortran and Ratfor programs; default `f77'. `GET' Program for extracting a file from SCCS; default `get'. `LEX' Program to use to turn Lex grammars into C programs or Ratfor programs; default `lex'. `PC' Program for compiling Pascal programs; default `pc'. `YACC' Program to use to turn Yacc grammars into C programs; default `yacc'. `YACCR' Program to use to turn Yacc grammars into Ratfor programs; default `yacc -r'. `MAKEINFO' Program to convert a Texinfo source file into an Info file; default `makeinfo'. `TEX' Program to make TeX DVI files from TeX source; default `tex'. `TEXI2DVI' Program to make TeX DVI files from Texinfo source; default `texi2dvi'. `WEAVE' Program to translate Web into TeX; default `weave'. `CWEAVE' Program to translate C Web into TeX; default `cweave'. `TANGLE' Program to translate Web into Pascal; default `tangle'. `CTANGLE' Program to translate C Web into C; default `ctangle'. `RM' Command to remove a file; default `rm -f'. Here is a table of variables whose values are additional arguments for the programs above. The default values for all of these is the empty string, unless otherwise noted. `ARFLAGS' Flags to give the archive-maintaining program; default `rv'. `ASFLAGS' Extra flags to give to the assembler (when explicitly invoked on a `.s' or `.S' file). `CFLAGS' Extra flags to give to the C compiler. `CXXFLAGS' Extra flags to give to the C++ compiler. `COFLAGS' Extra flags to give to the RCS `co' program. `CPPFLAGS' Extra flags to give to the C preprocessor and programs that use it (the C and Fortran compilers). `FFLAGS' Extra flags to give to the Fortran compiler. `GFLAGS' Extra flags to give to the SCCS `get' program. `LDFLAGS' Extra flags to give to compilers when they are supposed to invoke the linker, `ld'. `LFLAGS' Extra flags to give to Lex. `PFLAGS' Extra flags to give to the Pascal compiler. `RFLAGS' Extra flags to give to the Fortran compiler for Ratfor programs. `YFLAGS' Extra flags to give to Yacc. automatically generated by info2www version 1.2.2.9 |