From 5ca9388a4d22a68439a04b0735c34bdcac553e48 Mon Sep 17 00:00:00 2001 From: Gerd Hoffmann <kraxel@redhat.com> Date: Wed, 7 Nov 2012 11:06:23 +0100 Subject: [PATCH 1/7] pixman: add output dir to include path Needed to make sure the (generated) pixman-version.h file is found. Based on a patch from Blue Swirl. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> --- configure | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/configure b/configure index 7290f50e11..e6fe4f8fe3 100755 --- a/configure +++ b/configure @@ -2121,11 +2121,10 @@ else echo " git submodule update --init pixman" exit 1 fi - pixman_cflags="-I${source_path}/pixman/pixman" - pixman_libs="-Lpixman/pixman/.libs -lpixman-1" + mkdir -p pixman/pixman + pixman_cflags="-I\$(SRC_PATH)/pixman/pixman -I\$(BUILD_DIR)/pixman/pixman" + pixman_libs="-L\$(BUILD_DIR)/pixman/pixman/.libs -lpixman-1" fi -QEMU_CFLAGS="$QEMU_CFLAGS $pixman_cflags" -libs_softmmu="$libs_softmmu $pixman_libs" ########################################## # libcap probe @@ -3137,6 +3136,10 @@ if test "$cpu" = "ppc64" -a "$targetos" != "Darwin" ; then roms="$roms spapr-rtas" fi +# add pixman flags after all config tests are done +QEMU_CFLAGS="$QEMU_CFLAGS $pixman_cflags" +libs_softmmu="$libs_softmmu $pixman_libs" + echo "Install prefix $prefix" echo "BIOS directory `eval echo $qemu_datadir`" echo "binary directory `eval echo $bindir`" @@ -4154,7 +4157,6 @@ DIRS="$DIRS pc-bios/optionrom pc-bios/spapr-rtas" DIRS="$DIRS roms/seabios roms/vgabios" DIRS="$DIRS qapi-generated" DIRS="$DIRS libcacard libcacard/libcacard libcacard/trace" -DIRS="$DIRS pixman" FILES="Makefile tests/tcg/Makefile qdict-test-data.txt" FILES="$FILES tests/tcg/cris/Makefile tests/tcg/cris/.gdbinit" FILES="$FILES tests/tcg/lm32/Makefile libcacard/Makefile" From 42da6041d5e30fcf49ba639477a05e781594a7a5 Mon Sep 17 00:00:00 2001 From: Gerd Hoffmann <kraxel@redhat.com> Date: Wed, 7 Nov 2012 11:09:52 +0100 Subject: [PATCH 2/7] pixman: set --host for cross builds Set --host when calling pixman configure while doing cross builds so pixman's autoconf picks up the cross build tools correctly. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> --- Makefile | 2 +- configure | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index ca14a215ce..ff2c16d026 100644 --- a/Makefile +++ b/Makefile @@ -122,7 +122,7 @@ subdir-pixman: pixman/Makefile $(call quiet-command,$(MAKE) $(SUBDIR_MAKEFLAGS) -C pixman V="$(V)" all,) pixman/Makefile: $(SRC_PATH)/pixman/configure - (cd pixman; $(SRC_PATH)/pixman/configure --disable-shared --enable-static) + (cd pixman; $(SRC_PATH)/pixman/configure $(AUTOCONF_HOST) --disable-shared --enable-static) $(SRC_PATH)/pixman/configure: (cd $(SRC_PATH)/pixman; autoreconf -v --install) diff --git a/configure b/configure index e6fe4f8fe3..0a241ebac6 100755 --- a/configure +++ b/configure @@ -3649,6 +3649,11 @@ if test "$sparse" = "yes" ; then echo "HOST_CC := REAL_CC=\"\$(HOST_CC)\" cgcc" >> $config_host_mak echo "QEMU_CFLAGS += -Wbitwise -Wno-transparent-union -Wno-old-initializer -Wno-non-pointer-null" >> $config_host_mak fi +if test "$cross_prefix" != ""; then + echo "AUTOCONF_HOST := --host=${cross_prefix%-}" >> $config_host_mak +else + echo "AUTOCONF_HOST := " >> $config_host_mak +fi echo "LDFLAGS=$LDFLAGS" >> $config_host_mak echo "ARLIBS_BEGIN=$arlibs_begin" >> $config_host_mak echo "ARLIBS_END=$arlibs_end" >> $config_host_mak From 4d5bdd0b460ee2ff8989b0f83fa38a3af052b343 Mon Sep 17 00:00:00 2001 From: Gerd Hoffmann <kraxel@redhat.com> Date: Wed, 7 Nov 2012 11:41:01 +0100 Subject: [PATCH 3/7] pixman: disable gtk gtk is only needed to build test cases. Disable it to simplify the build. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index ff2c16d026..e68bb8fae4 100644 --- a/Makefile +++ b/Makefile @@ -122,7 +122,7 @@ subdir-pixman: pixman/Makefile $(call quiet-command,$(MAKE) $(SUBDIR_MAKEFLAGS) -C pixman V="$(V)" all,) pixman/Makefile: $(SRC_PATH)/pixman/configure - (cd pixman; $(SRC_PATH)/pixman/configure $(AUTOCONF_HOST) --disable-shared --enable-static) + (cd pixman; $(SRC_PATH)/pixman/configure $(AUTOCONF_HOST) --disable-gtk --disable-shared --enable-static) $(SRC_PATH)/pixman/configure: (cd $(SRC_PATH)/pixman; autoreconf -v --install) From c28fa5a0b3566b133b5e3336d04f1333970ac179 Mon Sep 17 00:00:00 2001 From: Gerd Hoffmann <kraxel@redhat.com> Date: Wed, 14 Nov 2012 13:26:54 +0100 Subject: [PATCH 4/7] pixman: pass cflags, add -fPIC Pass on CFLAGS to the pixman configure script. Add -fPIC to the cflags, needed to make the final link succeed. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index e68bb8fae4..4538b87e36 100644 --- a/Makefile +++ b/Makefile @@ -122,7 +122,7 @@ subdir-pixman: pixman/Makefile $(call quiet-command,$(MAKE) $(SUBDIR_MAKEFLAGS) -C pixman V="$(V)" all,) pixman/Makefile: $(SRC_PATH)/pixman/configure - (cd pixman; $(SRC_PATH)/pixman/configure $(AUTOCONF_HOST) --disable-gtk --disable-shared --enable-static) + (cd pixman; CFLAGS="$(CFLAGS) -fPIC" $(SRC_PATH)/pixman/configure $(AUTOCONF_HOST) --disable-gtk --disable-shared --enable-static) $(SRC_PATH)/pixman/configure: (cd $(SRC_PATH)/pixman; autoreconf -v --install) From b776eca138b641a0234a957a9ff5c2ca4c6772d5 Mon Sep 17 00:00:00 2001 From: Gerd Hoffmann <kraxel@redhat.com> Date: Mon, 12 Nov 2012 12:18:38 +0100 Subject: [PATCH 5/7] pixman: build internal version early Signed-off-by: Eric Johnson <ericj@mips.com> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> --- configure | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/configure b/configure index 0a241ebac6..f847ee264e 100755 --- a/configure +++ b/configure @@ -3956,9 +3956,6 @@ if test "$target_softmmu" = "yes" ; then if test "$smartcard_nss" = "yes" ; then echo "subdir-$target: subdir-libcacard" >> $config_host_mak fi - if test "$pixman" = "internal" ; then - echo "subdir-$target: subdir-pixman" >> $config_host_mak - fi case "$target_arch2" in i386|x86_64) echo "CONFIG_HAVE_CORE_DUMP=y" >> $config_target_mak @@ -4156,6 +4153,10 @@ echo "QEMU_INCLUDES+=$includes" >> $config_target_mak done # for target in $targets +if [ "$pixman" = "internal" ]; then + echo "config-host.h: subdir-pixman" >> $config_host_mak +fi + # build tree in object directory in case the source is not in the current directory DIRS="tests tests/tcg tests/tcg/cris tests/tcg/lm32" DIRS="$DIRS pc-bios/optionrom pc-bios/spapr-rtas" From daa8e5a077e9d8ca2615f5590fa98b3fcc4c9f47 Mon Sep 17 00:00:00 2001 From: Gerd Hoffmann <kraxel@redhat.com> Date: Tue, 13 Nov 2012 09:38:06 +0100 Subject: [PATCH 6/7] pixman: add licensing info Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> --- qemu-pixman.c | 5 +++++ qemu-pixman.h | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/qemu-pixman.c b/qemu-pixman.c index 7547ed74c1..063b52dbb1 100644 --- a/qemu-pixman.c +++ b/qemu-pixman.c @@ -1,3 +1,8 @@ +/* + * This work is licensed under the terms of the GNU GPL, version 2 or later. + * See the COPYING file in the top-level directory. + */ + #include "qemu-pixman.h" int qemu_pixman_get_type(int rshift, int gshift, int bshift) diff --git a/qemu-pixman.h b/qemu-pixman.h index 7652c41277..783a39252e 100644 --- a/qemu-pixman.h +++ b/qemu-pixman.h @@ -1,3 +1,8 @@ +/* + * This work is licensed under the terms of the GNU GPL, version 2 or later. + * See the COPYING file in the top-level directory. + */ + #ifndef QEMU_PIXMAN_H #define QEMU_PIXMAN_H From feb33ea728a72730389bc5d4bf52d33f09c7868b Mon Sep 17 00:00:00 2001 From: Gerd Hoffmann <kraxel@redhat.com> Date: Wed, 14 Nov 2012 13:45:55 +0100 Subject: [PATCH 7/7] pixman: cleanup properly on make distclean Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> --- Makefile | 1 + 1 file changed, 1 insertion(+) diff --git a/Makefile b/Makefile index 4538b87e36..81c660f9f4 100644 --- a/Makefile +++ b/Makefile @@ -278,6 +278,7 @@ distclean: clean for d in $(TARGET_DIRS) $(QEMULIBS); do \ rm -rf $$d || exit 1 ; \ done + test -f pixman/config.log && make -C pixman distclean KEYMAPS=da en-gb et fr fr-ch is lt modifiers no pt-br sv \ ar de en-us fi fr-be hr it lv nl pl ru th \