summaryrefslogblamecommitdiffstats
path: root/source-builder/config/qemu-common-2.cfg
blob: 1dbaf05fa507ce9dd383cdb3966538a540013a9a (plain) (tree)
















































































































































                                                                                         
#
# QEMU Common Version 1.
#
# This configuration file configure's, make's and install's QEMU.
#

%if %{release} == %{nil}
%define release 1
%endif

#
# Select Snapshot Macro Maps
#
%select qemu-snapshot

#
# The description.
#
Name:      qemu-%{qemu_version}-%{_host}-%{release}
Summary:   Qemu is a simulator of various processors.
Version:   %{qemu_version}
Release:   %{release}
URL: 	   http://www.qemu.org/

#
# Source
#
%source set qemu http://wiki.qemu-project.org/download/qemu-%{qemu_version}.tar.bz2


#
# QEMU Disable component list.
#
# We are not interested in the VM use case for qemu and most of that
# functionality carries host platform baggage which complicates building on a
# range of host platforms.
#
# You can specialise before including this config file.
#
#
%define qemu_std_disables --disable-werror
%define qemu_std_disables %{qemu_std_disables} --disable-tools
%define qemu_std_disables %{qemu_std_disables} --disable-pie
%define qemu_std_disables %{qemu_std_disables} --disable-vnc
%define qemu_std_disables %{qemu_std_disables} --disable-sdl
%define qemu_std_disables %{qemu_std_disables} --disable-gtk
%define qemu_std_disables %{qemu_std_disables} --disable-opengl
%define qemu_std_disables %{qemu_std_disables} --disable-netmap
%ifn %{defined qemu_disables}
 %define qemu_disables %{nil}
%endif
%define qemu_disables %{qemu_std_disables} %{qemu_disables}

#
# QEMU Targets to build.
#
%if %{!defined qemu_archs} && %{!defined with_qemu_archs}
 %define qemu_target_list %{nil}
%else
 %if %{defined with_qemu_archs}
  %define qemu_target_list --target-list=%{with_qemu_archs}
 %else
  %define qemu_target_list --target-list=%{qemu_archs}
 %endif
%endif

#
# Clear the path to SB, meson does not like the python pkg-config
#
%define _extra_path %{nil}

#
# Prepare the source code.
#
%prep
  build_top=$(pwd)

  source_dir_qemu="qemu-%{qemu_version}"
  %source setup qemu -q -n qemu-%{qemu_version}
  %patch setup qemu -p1

  cd ${build_top}

%build
  build_top=$(pwd)

  %{build_directory}

  mkdir -p ${build_dir}
  cd ${build_dir}

  %if %{pkgconfig check vdeplug}
    VDE_CONFIG="--enable-vde"
    VDE_CFLAGS="%{pkgconfig cflags vdeplug}"
    VDE_LDFLAGS="%{pkgconfig ldflags vdeplug} %{pkgconfig libs vdeplug}"
  %endif

  %{host_build_flags}

  if test "%{_build}" != "%{_host}" ; then
    CROSS_PREFIX_OPTION="--cross-prefix=%{_host}-"
  fi

  SYSROOT=$SB_TMPPREFIX

  STAGED_GLIB="-I${SB_TMPPREFIX}/include/glib-2.0 -I${SB_TMPPREFIX}/lib/glib-2.0/include"
  STAGED_PIXMAN=" -I${SB_TMPPREFIX}/include/pixman-1"
  STAGED_INCLUDES="${STAGED_GLIB} ${STAGED_PIXMAN}"

  CC="${CC} ${STAGED_INCLUDES}"
  CXX="${CXX} ${STAGED_INCLUDES}"

  #
  # Hack warning: MSYS2 does not seem to convert the path to
  #               a shell path from Windows so we keep them
  #               separate and handle it in the pkgconfig tool.
  #
  PKG_CONFIG_DEFAULT_PATH=${PKG_CONFIG_PATH} \
  PKG_CONFIG_PATH=$SYSROOT/lib/pkgconfig \
  PKG_CONFIG_BUILD_TOP_DIR=$SB_TMPROOT \
  %{_ld_library_path}=$SYSROOT/lib \
  LDFLAGS="-Wl,-rpath -Wl,/$SB_PREFIX_CLEAN/lib -L$SYSROOT/lib ${VDE_LDFLAGS}" \
  CFLAGS="${CFLAGS} ${VDE_CFLAGS}" \
  ../${source_dir_qemu}/configure \
    --prefix=%{_prefix} \
    ${CROSS_PREFIX_OPTION} \
    --make=%{__make} \
    %{qemu_target_list} \
    ${VDE_CONFIG} \
    %{qemu_disables}

  %{_ld_library_path}=$SYSROOT/lib \
  %{__make} %{?_smp_mflags} all

  cd ${build_top}

%install
  build_top=$(pwd)

  %{__rmdir} $SB_BUILD_ROOT

  cd ${build_dir}
  %{_ld_library_path}=$SYSROOT/lib \
  %{__make} DESTDIR=$SB_BUILD_ROOT install
  cd ${build_top}