On Fri, Mar 1, 2013 at 2:53 PM, Markos Chandras <[email protected]> wrote: > On 1 March 2013 19:42, Jeffrey Walton <[email protected]> wrote: >> On Fri, Mar 1, 2013 at 2:33 PM, Markos Chandras <[email protected]> wrote: >>> On 1 March 2013 19:01, Jeffrey Walton <[email protected]> wrote: >>>> >>>> ... > > It's called Kbuild. The same build system is also used in the Linux > kernel and other opensource projects. Look here[1] for some additional > information (also available in your local kernel sources) and the > extra/config/README.uClibc file in your uClibc tree. > > [1] https://www.kernel.org/doc/Documentation/kbuild/kconfig-language.txt Thanks again Markos. So it appears kconfig/kbuild is driving the `make menuconfig` process.
How/where is Rules.mak used? I've made some changes to base BUILD_CFLAGS, but I don't see the changes being picked up or propagated (even after a `make clean`). Is it even being used? I see a lot of hard coded GCC stuff (for example, check-gcc-var and check_gcc), but nothing for ICC. With ICC, I would expect to see, for example, -wd68, -wd186, -wd279, -wd327, and -wd1011. I also noticed the following (nd some others) are not producing expected results under Clang. Clang barfs out a warning about an ignored option: $(eval $(call check-gcc-var,-fno-tree-loop-optimize)) OPTIMIZATION += $(CFLAG_-fno-tree-loop-optimize) Perhaps that should be wrapped in a check that verifies the compiler, and only performs the `eval` after verifying $(CC) is GCC or ICC. In case you are interested, here are the checks I use for various the compilers my C++ code supports (I rarely do anything in C unless I have to): GCC_COMPILER = $(shell $(CXX) -v 2>&1 | $(EGREP) -i -c '^gcc version') INTEL_COMPILER = $(shell $(CXX) --version 2>&1 | $(EGREP) -i -c '\(icc\)') COMEAU_COMPILER = $(shell $(CXX) --version 2>&1 | $(EGREP) -i -c 'comeau') SUN_COMPILER = $(shell $(CXX) -V 2>&1 | $(EGREP) -i -c 'cc: sun') CLANG_COMPILER = $(shell $(CXX) --version 2>&1 | $(EGREP) -i -c "clang version") Later, you simply do one of these (no insult intended): ifeq ($(INTEL_COMPILER),1) MY_CFLAGS += -pipe -std=XXX -Wall -wd1011 MY_CXXFLAGS += -pipe -std=XXX -Wall -wd1011 endif Jeff _______________________________________________ uClibc mailing list [email protected] http://lists.busybox.net/mailman/listinfo/uclibc
