summaryrefslogtreecommitdiffstats
path: root/source-builder/config/qemu-common-2.cfg
blob: 1dbaf05fa507ce9dd383cdb3966538a540013a9a (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
#
# 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}