Tue 27 May 2003 11:13:46 PM UTC, original submission:
This patch provides a CPP-style include facility for GNU make. Consider the following example:
--------------- foo/config/g++.rules ----------------
#
# compiling code using g++
#
#...
---------------------- end --------------------------
--------------- foo/config/cxx.rules ----------------
#
# compiling code using Compaq C++
#
#...
--------------- end ----------------
--------------- foo/config/c++.rules ----------------
#
# include one of the compiler-specific .rules
#
ifeq($(CXX),g++)
include g++.rules
else
include cxx.rules
endif
------------------------ end ------------------------
------------------- foo/Makefile --------------------
include config/c++.rules
#...
----------------------- end -------------------------
This reasonable example would not work because vanilla gnu make does not look for included files in parent's make-file directory. In other words make won't be able to find g++.rules or cxx.rules. The proposed patch introduces new flavor or include facility with the name 'cinclude' and the following semantic:
(1) cinclud'ed file if searched in parent's make-file directory and in directories specified with -I option.
(2) if cinclud'ed file is not found make will not attempt to rebuild it but rather immediately exit with error.
Thus the cinclude mechanism resembles CPP-style include. The above example corrected using cinclude would look as follows:
--------------- foo/config/c++.rules ----------------
#
# include one of the compiler-specific .rules
#
ifeq($(CXX),g++)
cinclude g++.rules
else
cinclude cxx.rules
endif
------------------------ end ------------------------
|