coreutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: non-recursive make: is there a performance gain?


From: Jim Meyering
Subject: Re: non-recursive make: is there a performance gain?
Date: Sat, 08 Sep 2012 20:52:37 +0200

Jim Meyering wrote:
...
> On the subject of converting to non-recursive make in lib/,
> I have at least one problem so far: how can I select different
> CFLAGS depending on the directory containing the file I'm compiling?
>
> As you know, we currently have three different sets of warnings:
>   - strict, for src/
>   - less strict, for lib/
>   - even less strict, for gnulib-tests/
>
> I could certainly do that with GNU make by defining
>
>   src_CFLAGS = ...
>   lib_CFLAGS = ...
>   gnulib-tests_CFLAGS = ...
>
> and then including $($(@D)_CFLAGS) in the generic compilation rule.
>
> Hmm... maybe override that default rule in cfg.mk, where only GNU make
> will see it.  Hah!  So the act of writing this question has provided me
> with the solution:  add these lines to cfg.mk:
>
>     COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
>             $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) $($(@D)_CFLAGS)
>
>     src_CFLAGS = -WBOGUS
>
> That -WBOGUS is just to test, and I confirm that it does what I expect.

Better than that, simply append to $(COMPILE).
Here's what I'm considering, now:

diff --git a/cfg.mk b/cfg.mk
index 489f946..039c6ff 100644
--- a/cfg.mk
+++ b/cfg.mk
@@ -558,3 +558,11 @@ exclude_file_name_regexp--sc_prohibit_test_backticks = \
 # Exempt test.c, since it's nominally shared, and relatively static.
 exclude_file_name_regexp--sc_prohibit_operator_at_end_of_line = \
   ^src/(ptx|test|head)\.c$$
+
+# Augment GNU make's compilation command to include our per-directory
+# CFLAGS options:
+COMPILE += $($(@D)_CFLAGS)
+
+src_CFLAGS = $(WARN_CFLAGS)
+lib_CFLAGS = $(GNULIB_WARN_CFLAGS)
+gnulib-tests_CFLAGS = $(GNULIB_TEST_WARN_CFLAGS)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]