[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v2 3/3] configure/Make: Build libfdt from submod
From: |
Peter Maydell |
Subject: |
Re: [Qemu-devel] [PATCH v2 3/3] configure/Make: Build libfdt from submodule DTC |
Date: |
Thu, 28 Feb 2013 15:30:44 +0000 |
On 19 February 2013 04:19, Peter Crosthwaite
<address@hidden> wrote:
> Configure to use the DTC submodule to build libfdt when no system libfdt
> is found. Prompt to install the DTC submodule if --enable-fdt is set but
> no DTC can be found.
>
> DTC has no out-of-tree build capability, so the configure will symlink
> the Makefile and scripts directory in the out of tree build directory
> and pass in all the needed DTC arguments to make out of tree build happen.
> Ideally we fix the DTC make to support out of tree, but did it this way to
> avoid commits to DTC.
>
> Signed-off-by: David Holsgrove <address@hidden>
> Signed-off-by: Peter Crosthwaite <address@hidden>
> ---
>
> Makefile | 10 ++++++++++
> configure | 29 +++++++++++++++++++++++++----
> 2 files changed, 35 insertions(+), 4 deletions(-)
>
> diff --git a/Makefile b/Makefile
> index 0d9099a..a8956d2 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -136,6 +136,15 @@ pixman/Makefile: $(SRC_PATH)/pixman/configure
> $(SRC_PATH)/pixman/configure:
> (cd $(SRC_PATH)/pixman; autoreconf -v --install)
>
> +DTC_MAKE_ARGS=-I$(SRC_PATH)/dtc VPATH=$(SRC_PATH)/dtc -C dtc V="$(V)"
> LIBFDT_srcdir=$(SRC_PATH)/dtc/libfdt
> +DTC_CFLAGS="$(CFLAGS) $(extra_cflags) -I$(BUILD_DIR)/dtc -I$(SRC_PATH)/dtc
> -I$(SRC_PATH)/dtc/libfdt"
> +
> +subdir-dtc:dtc/libfdt dtc/tests
> + $(call quiet-command,$(MAKE) $(DTC_MAKE_ARGS) CPPFLAGS=$(DTC_CFLAGS)
> LDFLAGS="$(LDFLAGS)" ARFLAGS="$(ARFLAGS)" CC=$(CC) AR=$(AR) LD=$(LD)
> $(SUBDIR_MAKEFLAGS) libfdt,)
This doesn't work if you configured with --cc='ccache gcc'.
I think you have insufficient quoting here.
> +
> +dtc/%:
> + mkdir -p $@
> +
> $(SUBDIR_RULES): libqemuutil.a libqemustub.a $(common-obj-y)
>
> ROMSUBDIR_RULES=$(patsubst %,romsubdir-%, $(ROMS))
> @@ -253,6 +262,7 @@ distclean: clean
> rm -rf $$d || exit 1 ; \
> done
> if test -f pixman/config.log; then make -C pixman distclean; fi
> + if test -f dtc/version_gen.h; then make $(DTC_MAKE_ARGS) clean; fi
>
> 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 \
> diff --git a/configure b/configure
> index 088909b..6e40624 100755
> --- a/configure
> +++ b/configure
> @@ -2376,11 +2376,28 @@ if test "$fdt" != "no" ; then
> int main(void) { return 0; }
> EOF
> if compile_prog "" "$fdt_libs" ; then
> + #system DTC is good - use it
Spaces between the comment char and the comment would be nice.
> fdt=yes
> - else
> - if test "$fdt" = "yes" ; then
> - feature_not_found "fdt"
> + elif test -d ${source_path}/dtc/libfdt ; then
> + #have submodule DTC - use it
> + fdt=yes
> + dtc_internal="yes"
> + mkdir -p dtc
> + if [ "$source_path" != `pwd` ]; then
> + symlink "$source_path/dtc/Makefile" "dtc/Makefile"
> + symlink "$source_path/dtc/scripts" "dtc/scripts"
> fi
> + fdt_cflags="-I\$(SRC_PATH)/dtc/libfdt"
> + fdt_libs="-L\$(BUILD_DIR)/dtc/libfdt $fdt_libs"
> + elif test "$fdt" = "yes" ; then
> + #have neither and want - prompt for system/submodule install
> + echo "ERROR: DTC not present. Your options:"
> + echo " (1) Preferred: Install the DTC devel package"
> + echo " (2) Fetch the DTC submodule, using:"
> + echo " git submodule update --init dtc"
> + exit 1
> + else
> + #dont have and dont want
Missing apostrophes.
> fdt_libs=
> fdt=no
> fi
> @@ -3259,7 +3276,7 @@ if test "$cpu" = "ppc64" -a "$targetos" != "Darwin" ;
> then
> fi
>
> # add pixman flags after all config tests are done
> -QEMU_CFLAGS="$QEMU_CFLAGS $pixman_cflags"
> +QEMU_CFLAGS="$QEMU_CFLAGS $pixman_cflags $fdt_cflags"
> libs_softmmu="$libs_softmmu $pixman_libs"
>
> echo "Install prefix $prefix"
> @@ -4299,6 +4316,10 @@ if [ "$pixman" = "internal" ]; then
> echo "config-host.h: subdir-pixman" >> $config_host_mak
> fi
>
> +if [ "$dtc_internal" = "yes" ]; then
> + echo "config-host.h: subdir-dtc" >> $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"
> --
> 1.7.0.4
>
-- PMM
[Qemu-devel] [PATCH v2 3/3] configure/Make: Build libfdt from submodule DTC, Peter Crosthwaite, 2013/02/18
- Re: [Qemu-devel] [PATCH v2 3/3] configure/Make: Build libfdt from submodule DTC,
Peter Maydell <=