qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Paolo Bonzini <pbonzini@redhat.com>
To: qemu-devel@nongnu.org
Cc: alevy@redhat.com, vilanova@ac.upc.edu, afaerber@suse.de
Subject: [Qemu-devel] [PATCH 04/27] build: support linking with libtool objects/libraries
Date: Fri, 21 Dec 2012 17:05:25 +0100	[thread overview]
Message-ID: <1356105948-13216-5-git-send-email-pbonzini@redhat.com> (raw)
In-Reply-To: <1356105948-13216-1-git-send-email-pbonzini@redhat.com>

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

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 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

  parent reply	other threads:[~2012-12-21 16:06 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-12-21 16:05 [Qemu-devel] [PATCH 00/27] More source reorganization and build system TLC Paolo Bonzini
2012-12-21 16:05 ` [Qemu-devel] [PATCH 01/27] qemu-option: move standard option definitions out of qemu-config.c Paolo Bonzini
2012-12-21 16:05 ` [Qemu-devel] [PATCH 02/27] stubs: fully replace qemu-tool.c and qemu-user.c Paolo Bonzini
2012-12-21 16:05 ` [Qemu-devel] [PATCH 03/27] build: make libtool verbose when making with V=1 Paolo Bonzini
2012-12-21 16:05 ` Paolo Bonzini [this message]
2012-12-21 16:05 ` [Qemu-devel] [PATCH 05/27] build: move dtrace rules to rules.mak Paolo Bonzini
2012-12-21 16:05 ` [Qemu-devel] [PATCH 06/27] build: remove CONFIG_SMARTCARD Paolo Bonzini
2012-12-21 16:05 ` [Qemu-devel] [PATCH 07/27] libcacard: fix missing symbol in libcacard.so Paolo Bonzini
2012-12-21 16:05 ` [Qemu-devel] [PATCH 08/27] libcacard: require libtool to build it Paolo Bonzini
2012-12-21 16:05 ` [Qemu-devel] [PATCH 09/27] libcacard: prepare to use -y trick in the Makefile Paolo Bonzini
2012-12-21 16:05 ` [Qemu-devel] [PATCH 10/27] libcacard: use per-target variable definitions Paolo Bonzini
2012-12-21 16:05 ` [Qemu-devel] [PATCH 11/27] libcacard: add list of exported symbols Paolo Bonzini
2012-12-21 16:05 ` [Qemu-devel] [PATCH 12/27] libcacard: rewrite Makefile in non-recursive style Paolo Bonzini
2012-12-21 16:05 ` [Qemu-devel] [PATCH 13/27] libcacard: link vscclient to dynamic library Paolo Bonzini
2012-12-21 16:05 ` [Qemu-devel] [PATCH 14/27] libcacard: list oslib-obj-y file explicitly Paolo Bonzini
2012-12-21 16:05 ` [Qemu-devel] [PATCH 15/27] build: rename oslib-obj-y to util-obj-y Paolo Bonzini
2012-12-21 16:05 ` [Qemu-devel] [PATCH 16/27] build: move util-obj-y to libqemuutil.a Paolo Bonzini
2012-12-21 16:05 ` [Qemu-devel] [PATCH 17/27] build: move files away from tools-obj-y, common-obj-y, user-obj-y Paolo Bonzini
2012-12-21 16:05 ` [Qemu-devel] [PATCH 18/27] build: move libqemuutil.a components to util/ Paolo Bonzini
2012-12-21 16:05 ` [Qemu-devel] [PATCH 19/27] build: move qobject files to qobject/ and libqemuutil.a Paolo Bonzini
2012-12-21 16:05 ` [Qemu-devel] [PATCH 20/27] build: consolidate multiple variables into universal-obj-y Paolo Bonzini
2012-12-21 16:05 ` [Qemu-devel] [PATCH 21/27] build: move QAPI definitions for QEMU out of qapi-obj-y Paolo Bonzini
2012-12-21 16:05 ` [Qemu-devel] [PATCH 22/27] build: move base QAPI files to libqemuutil.a Paolo Bonzini
2012-12-21 16:05 ` [Qemu-devel] [PATCH 23/27] build: move version-obj-y to the generic LINK rule Paolo Bonzini
2012-12-21 16:05 ` [Qemu-devel] [PATCH 24/27] build: remove coroutine-obj-y Paolo Bonzini
2012-12-21 16:05 ` [Qemu-devel] [PATCH 25/27] build: Use separate makefile for "trace/" Paolo Bonzini
2012-12-21 16:05 ` [Qemu-devel] [PATCH 26/27] build: fold trace-obj-y into libqemuutil.a Paolo Bonzini
2012-12-21 16:05 ` [Qemu-devel] [PATCH 27/27] build: improve quiet output for .stp rules Paolo Bonzini
2012-12-21 20:14 ` [Qemu-devel] [PATCH 00/27] More source reorganization and build system TLC Lluís Vilanova
2012-12-22 14:04   ` Paolo Bonzini
  -- strict thread matches above, loose matches on Subject: below --
2013-01-12 17:35 [Qemu-devel] [PULL " Paolo Bonzini
2013-01-12 17:35 ` [Qemu-devel] [PATCH 04/27] build: support linking with libtool objects/libraries Paolo Bonzini

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1356105948-13216-5-git-send-email-pbonzini@redhat.com \
    --to=pbonzini@redhat.com \
    --cc=afaerber@suse.de \
    --cc=alevy@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=vilanova@ac.upc.edu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).