qemu-devel
[Top][All Lists]
Advanced

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

[Qemu-devel] [PATCH 04/27] build: support linking with libtool objects/l


From: Paolo Bonzini
Subject: [Qemu-devel] [PATCH 04/27] build: support linking with libtool objects/libraries
Date: Fri, 21 Dec 2012 17:05:25 +0100

This patch moves the complication of using libtool to the generic
rules.mak file.

Signed-off-by: Paolo Bonzini <address@hidden>
---
 configure          |    8 +++++++-
 libcacard/Makefile |   11 +++++++----
 rules.mak          |   10 ++++++++--
 3 files changed, 22 insertions(+), 7 deletions(-)

diff --git a/configure b/configure
index b101d5c..a984b26 100755
--- a/configure
+++ b/configure
@@ -3651,7 +3651,13 @@ echo "MAKE=$make" >> $config_host_mak
 echo "INSTALL=$install" >> $config_host_mak
 echo "INSTALL_DIR=$install -d -m 0755" >> $config_host_mak
 echo "INSTALL_DATA=$install -c -m 0644" >> $config_host_mak
-echo "INSTALL_PROG=$install -c -m 0755" >> $config_host_mak
+if test -n "$libtool"; then
+  echo "INSTALL_PROG=\$(LIBTOOL) --mode=install $install -c -m 0755" >> 
$config_host_mak
+  echo "INSTALL_LIB=\$(LIBTOOL) --mode=install $install -c -m 0644" >> 
$config_host_mak
+else
+  echo "INSTALL_PROG=$install -c -m 0755" >> $config_host_mak
+  echo "INSTALL_LIB=$install -c -m 0644" >> $config_host_mak
+fi
 echo "PYTHON=$python" >> $config_host_mak
 echo "CC=$cc" >> $config_host_mak
 echo "CC_I386=$cc_i386" >> $config_host_mak
diff --git a/libcacard/Makefile b/libcacard/Makefile
index 9fa109f..34d503b 100644
--- a/libcacard/Makefile
+++ b/libcacard/Makefile
@@ -10,6 +10,9 @@ $(call set-vpath, $(SRC_PATH))
 QEMU_OBJS=$(oslib-obj-y) qemu-timer-common.o $(trace-obj-y) $(stub-obj-y)
 QEMU_OBJS_LIB=$(patsubst %.o,%.lo,$(QEMU_OBJS))
 
+# libtool will build the .o files, too
+$(libcacard-obj-y): | $(libcacard-lobj-y)
+
 QEMU_CFLAGS+=-I../
 
 libcacard.lib-y=$(patsubst %.o,%.lo,$(libcacard-y))
@@ -54,10 +57,10 @@ install-libcacard: libcacard.pc libcacard.la vscclient
        $(INSTALL_DIR) "$(DESTDIR)$(libdir)/pkgconfig"
        $(INSTALL_DIR) "$(DESTDIR)$(libcacard_includedir)"
        $(INSTALL_DIR) "$(DESTDIR)$(bindir)"
-       $(LIBTOOL) --mode=install $(INSTALL_PROG) vscclient 
"$(DESTDIR)$(bindir)"
-       $(LIBTOOL) --mode=install $(INSTALL_DATA) libcacard.la 
"$(DESTDIR)$(libdir)"
-       $(LIBTOOL) --mode=install $(INSTALL_DATA) libcacard.pc 
"$(DESTDIR)$(libdir)/pkgconfig"
+       $(INSTALL_PROG) vscclient "$(DESTDIR)$(bindir)"
+       $(INSTALL_LIB) libcacard.la "$(DESTDIR)$(libdir)"
+       $(INSTALL_DATA) libcacard.pc "$(DESTDIR)$(libdir)/pkgconfig"
        for inc in *.h; do \
-               $(LIBTOOL) --mode=install $(INSTALL_DATA) 
$(libcacard_srcpath)/$$inc "$(DESTDIR)$(libcacard_includedir)"; \
+               $(INSTALL_DATA) $(libcacard_srcpath)/$$inc 
"$(DESTDIR)$(libcacard_includedir)"; \
        done
 endif
diff --git a/rules.mak b/rules.mak
index 2f2d10d..6a7af8a 100644
--- a/rules.mak
+++ b/rules.mak
@@ -23,10 +23,18 @@ QEMU_CFLAGS += -I$(<D) -I$(@D)
 ifeq ($(LIBTOOL),)
 %.lo: %.c
        @echo "missing libtool. please install and rerun configure"; exit 1
+LINK = $(call quiet-command,$(CC) $(QEMU_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ \
+       $(sort $(filter %.o, $1)) $(filter-out %.o, $1) \
+       $(LIBS),"  LINK  $(TARGET_DIR)$@")
 else
 LIBTOOL += $(if $(V),,--quiet)
 %.lo: %.c
        $(call quiet-command,$(LIBTOOL) --mode=compile --tag=CC $(CC) 
$(QEMU_INCLUDES) $(QEMU_CFLAGS) $(QEMU_DGFLAGS) $(CFLAGS) -c -o $@ $<,"  lt CC 
$@")
+LINK = $(call quiet-command,\
+       $(if $(filter %.lo %.la,$^),$(LIBTOOL) --mode=link --tag=CC \
+       )$(CC) $(QEMU_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ \
+       $(sort $(filter %.o, $1)) $(filter-out %.o, $1) \
+       $(LIBS),$(if $(filter %.lo %.la,$^),"lt LINK ", "  LINK  
")"$(TARGET_DIR)$@")
 endif
 
 %.o: %.S
@@ -35,8 +43,6 @@ endif
 %.o: %.m
        $(call quiet-command,$(OBJCC) $(QEMU_INCLUDES) $(QEMU_CFLAGS) 
$(QEMU_DGFLAGS) $(CFLAGS) -c -o $@ $<,"  OBJC  $(TARGET_DIR)$@")
 
-LINK = $(call quiet-command,$(CC) $(QEMU_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ 
$(sort $(filter %.o, $1)) $(filter-out %.o, $1) $(LIBS),"  LINK  
$(TARGET_DIR)$@")
-
 %$(EXESUF): %.o
        $(call LINK,$^)
 
-- 
1.7.1





reply via email to

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