[Qemu-devel] [RFC PATCH v2 2/6] rule.mak: allow per object cflags and libs

2013-09-06 Thread Fam Zheng
Adds extract-libs in LINK to expand any per object libs, the syntax to define
such a libs options is like:

$(obj)/curl.o-libs = $(CURL_LIBS)

in block/Makefile.objs.

Similarly,

$(obj)foo.o-cflags = $(FOO_CFLAGS)

is also supported.

Signed-off-by: Fam Zheng f...@redhat.com
---
 rules.mak | 8 +---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/rules.mak b/rules.mak
index eef1b71..e581d55 100644
--- a/rules.mak
+++ b/rules.mak
@@ -17,15 +17,17 @@ QEMU_DGFLAGS += -MMD -MP -MT $@ -MF $(*D)/$(*F).d
 # Same as -I$(SRC_PATH) -I., but for the nested source/object directories
 QEMU_INCLUDES += -I$(D) -I$(@D)
 
+extract-libs = $(strip $(foreach o,$1,$($(obj-base)$o-libs)))
+
 %.o: %.c
-   $(call quiet-command,$(CC) $(QEMU_INCLUDES) $(QEMU_CFLAGS) 
$(QEMU_DGFLAGS) $(CFLAGS) -c -o $@ $,  CC$(TARGET_DIR)$@)
+   $(call quiet-command,$(CC) $(QEMU_INCLUDES) $(QEMU_CFLAGS) 
$(QEMU_DGFLAGS) $(CFLAGS) $($@-cflags) -c -o $@ $,  CC$(TARGET_DIR)$@)
 %.o: %.rc
$(call quiet-command,$(WINDRES) -I. -o $@ $,  RC$(TARGET_DIR)$@)
 
 ifeq ($(LIBTOOL),)
 LINK = $(call quiet-command,$(CC) $(QEMU_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ \
$(sort $(filter %.o, $1)) $(filter-out %.o, $1) $(version-obj-y) \
-   $(LIBS),  LINK  $(TARGET_DIR)$@)
+   $(call extract-libs,$^) $(LIBS),  LINK  $(TARGET_DIR)$@)
 else
 LIBTOOL += $(if $(V),,--quiet)
 %.lo: %.c
@@ -41,7 +43,7 @@ LINK = $(call quiet-command,\
$(sort $(filter %.o, $1)) $(filter-out %.o, $1) \
$(if $(filter %.lo %.la,$^),$(version-lobj-y),$(version-obj-y)) \
$(if $(filter %.lo %.la,$^),$(LIBTOOLFLAGS)) \
-   $(LIBS),$(if $(filter %.lo %.la,$^),lt LINK ,   LINK  
)$(TARGET_DIR)$@)
+   $(call extract-libs,$^) $(LIBS),$(if $(filter %.lo %.la,$^),lt LINK , 
  LINK  )$(TARGET_DIR)$@)
 endif
 
 %.asm: %.S
-- 
1.8.3.1




Re: [Qemu-devel] [RFC PATCH v2 2/6] rule.mak: allow per object cflags and libs

2013-09-06 Thread Michael Tokarev
06.09.2013 11:28, Fam Zheng wrote:
 Adds extract-libs in LINK to expand any per object libs, the syntax to 
 define
 such a libs options is like:
 
 $(obj)/curl.o-libs = $(CURL_LIBS)
 
 in block/Makefile.objs.
 
 Similarly,
 
 $(obj)foo.o-cflags = $(FOO_CFLAGS)
 
 is also supported.

Please note the UNsimilarity of -libs and -cflags --
one is with slash and another is without.  Is it just
the patch comment?

Thanks,

/mjt




Re: [Qemu-devel] [RFC PATCH v2 2/6] rule.mak: allow per object cflags and libs

2013-09-06 Thread Fam Zheng
On Fri, 09/06 14:42, Michael Tokarev wrote:
 06.09.2013 11:28, Fam Zheng wrote:
  Adds extract-libs in LINK to expand any per object libs, the syntax to 
  define
  such a libs options is like:
  
  $(obj)/curl.o-libs = $(CURL_LIBS)
  
  in block/Makefile.objs.
  
  Similarly,
  
  $(obj)foo.o-cflags = $(FOO_CFLAGS)
  
  is also supported.
 
 Please note the UNsimilarity of -libs and -cflags --
 one is with slash and another is without.  Is it just
 the patch comment?
 
It's a typo in the commit message. I will fix it.

Thanks,

Fam