cc08b57079
Instead of having the user need to figure out that 2 alsa-lib features
are needed for wine ALSA support, have the top-level wine option select
the relevant alsa-lib features, when alsa-lib is enabled as already done
for pulseaudio in commit 97cd3680a4
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
337 lines
7.9 KiB
Makefile
337 lines
7.9 KiB
Makefile
################################################################################
|
|
#
|
|
# wine
|
|
#
|
|
################################################################################
|
|
|
|
WINE_VERSION = 7.0
|
|
WINE_SOURCE = wine-$(WINE_VERSION).tar.xz
|
|
WINE_SITE = https://dl.winehq.org/wine/source/7.0
|
|
WINE_LICENSE = LGPL-2.1+
|
|
WINE_LICENSE_FILES = COPYING.LIB LICENSE
|
|
WINE_CPE_ID_VENDOR = winehq
|
|
WINE_SELINUX_MODULES = wine
|
|
WINE_DEPENDENCIES = host-bison host-flex host-wine
|
|
HOST_WINE_DEPENDENCIES = host-bison host-flex
|
|
|
|
# Wine needs its own directory structure and tools for cross compiling
|
|
WINE_CONF_OPTS = \
|
|
--with-wine-tools=../host-wine-$(WINE_VERSION) \
|
|
--disable-tests \
|
|
--disable-win64 \
|
|
--without-capi \
|
|
--without-coreaudio \
|
|
--without-gettext \
|
|
--without-gettextpo \
|
|
--without-gphoto \
|
|
--without-mingw \
|
|
--without-opencl \
|
|
--without-oss \
|
|
--without-vkd3d \
|
|
--without-vulkan
|
|
|
|
# Wine uses a wrapper around gcc, and uses the value of --host to
|
|
# construct the filename of the gcc to call. But for external
|
|
# toolchains, the GNU_TARGET_NAME tuple that we construct from our
|
|
# internal variables may differ from the actual gcc prefix for the
|
|
# external toolchains. So, we have to override whatever the gcc
|
|
# wrapper believes what the real gcc is named, and force the tuple of
|
|
# the external toolchain, not the one we compute in GNU_TARGET_NAME.
|
|
ifeq ($(BR2_TOOLCHAIN_EXTERNAL),y)
|
|
WINE_CONF_OPTS += TARGETFLAGS="-b $(TOOLCHAIN_EXTERNAL_PREFIX)"
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_ALSA_LIB),y)
|
|
WINE_CONF_OPTS += --with-alsa
|
|
WINE_DEPENDENCIES += alsa-lib
|
|
else
|
|
WINE_CONF_OPTS += --without-alsa
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_CUPS),y)
|
|
WINE_CONF_OPTS += --with-cups
|
|
WINE_DEPENDENCIES += cups
|
|
WINE_CONF_ENV += CUPS_CONFIG=$(STAGING_DIR)/usr/bin/cups-config
|
|
else
|
|
WINE_CONF_OPTS += --without-cups
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_DBUS),y)
|
|
WINE_CONF_OPTS += --with-dbus
|
|
WINE_DEPENDENCIES += dbus
|
|
else
|
|
WINE_CONF_OPTS += --without-dbus
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_FONTCONFIG),y)
|
|
WINE_CONF_OPTS += --with-fontconfig
|
|
WINE_DEPENDENCIES += fontconfig
|
|
else
|
|
WINE_CONF_OPTS += --without-fontconfig
|
|
endif
|
|
|
|
# To support freetype in wine we also need freetype in host-wine for the cross compiling tools
|
|
ifeq ($(BR2_PACKAGE_FREETYPE),y)
|
|
WINE_CONF_OPTS += --with-freetype
|
|
HOST_WINE_CONF_OPTS += --with-freetype
|
|
WINE_DEPENDENCIES += freetype
|
|
HOST_WINE_DEPENDENCIES += host-freetype
|
|
WINE_CONF_ENV += FREETYPE_CONFIG=$(STAGING_DIR)/usr/bin/freetype-config
|
|
else
|
|
WINE_CONF_OPTS += --without-freetype
|
|
HOST_WINE_CONF_OPTS += --without-freetype
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_GNUTLS),y)
|
|
WINE_CONF_OPTS += --with-gnutls
|
|
WINE_DEPENDENCIES += gnutls
|
|
else
|
|
WINE_CONF_OPTS += --without-gnutls
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BASE),y)
|
|
WINE_CONF_OPTS += --with-gstreamer
|
|
WINE_DEPENDENCIES += gst1-plugins-base
|
|
else
|
|
WINE_CONF_OPTS += --without-gstreamer
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_HAS_LIBGL),y)
|
|
WINE_CONF_OPTS += --with-opengl
|
|
WINE_DEPENDENCIES += libgl
|
|
else
|
|
WINE_CONF_OPTS += --without-opengl
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_LIBKRB5),y)
|
|
WINE_CONF_OPTS += --with-krb5
|
|
WINE_DEPENDENCIES += libkrb5
|
|
else
|
|
WINE_CONF_OPTS += --without-krb5
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_LIBPCAP),y)
|
|
WINE_CONF_OPTS += --with-pcap
|
|
WINE_DEPENDENCIES += libpcap
|
|
else
|
|
WINE_CONF_OPTS += --without-pcap
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_LIBUSB),y)
|
|
WINE_CONF_OPTS += --with-usb
|
|
WINE_DEPENDENCIES += libusb
|
|
else
|
|
WINE_CONF_OPTS += --without-usb
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_LIBV4L),y)
|
|
WINE_CONF_OPTS += --with-v4l2
|
|
WINE_DEPENDENCIES += libv4l
|
|
else
|
|
WINE_CONF_OPTS += --without-v4l2
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_OPENAL),y)
|
|
WINE_CONF_OPTS += --with-openal
|
|
WINE_DEPENDENCIES += openal
|
|
else
|
|
WINE_CONF_OPTS += --without-openal
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_OPENLDAP),y)
|
|
WINE_CONF_OPTS += --with-ldap
|
|
WINE_DEPENDENCIES += openldap
|
|
else
|
|
WINE_CONF_OPTS += --without-ldap
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_MESA3D_OSMESA_GALLIUM),y)
|
|
WINE_CONF_OPTS += --with-osmesa
|
|
WINE_DEPENDENCIES += mesa3d
|
|
else
|
|
WINE_CONF_OPTS += --without-osmesa
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_PULSEAUDIO),y)
|
|
WINE_CONF_OPTS += --with-pulse
|
|
WINE_DEPENDENCIES += pulseaudio
|
|
else
|
|
WINE_CONF_OPTS += --without-pulse
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_SAMBA4),y)
|
|
WINE_CONF_OPTS += --with-netapi
|
|
WINE_DEPENDENCIES += samba4
|
|
else
|
|
WINE_CONF_OPTS += --without-netapi
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_SANE_BACKENDS),y)
|
|
WINE_CONF_OPTS += --with-sane
|
|
WINE_DEPENDENCIES += sane-backends
|
|
WINE_CONF_ENV += SANE_CONFIG=$(STAGING_DIR)/usr/bin/sane-config
|
|
else
|
|
WINE_CONF_OPTS += --without-sane
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_SDL2),y)
|
|
WINE_CONF_OPTS += --with-sdl
|
|
WINE_DEPENDENCIES += sdl2
|
|
else
|
|
WINE_CONF_OPTS += --without-sdl
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_HAS_UDEV),y)
|
|
WINE_CONF_OPTS += --with-udev
|
|
WINE_DEPENDENCIES += udev
|
|
else
|
|
WINE_CONF_OPTS += --without-udev
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_XLIB_LIBX11),y)
|
|
WINE_CONF_OPTS += --with-x
|
|
WINE_DEPENDENCIES += xlib_libX11
|
|
else
|
|
WINE_CONF_OPTS += --without-x
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_XLIB_LIBXCOMPOSITE),y)
|
|
WINE_CONF_OPTS += --with-xcomposite
|
|
WINE_DEPENDENCIES += xlib_libXcomposite
|
|
else
|
|
WINE_CONF_OPTS += --without-xcomposite
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_XLIB_LIBXCURSOR),y)
|
|
WINE_CONF_OPTS += --with-xcursor
|
|
WINE_DEPENDENCIES += xlib_libXcursor
|
|
else
|
|
WINE_CONF_OPTS += --without-xcursor
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_XLIB_LIBXEXT),y)
|
|
WINE_CONF_OPTS += --with-xshape --with-xshm
|
|
WINE_DEPENDENCIES += xlib_libXext
|
|
else
|
|
WINE_CONF_OPTS += --without-xshape --without-xshm
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_XLIB_LIBXI),y)
|
|
WINE_CONF_OPTS += --with-xinput --with-xinput2
|
|
WINE_DEPENDENCIES += xlib_libXi
|
|
else
|
|
WINE_CONF_OPTS += --without-xinput --without-xinput2
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_XLIB_LIBXINERAMA),y)
|
|
WINE_CONF_OPTS += --with-xinerama
|
|
WINE_DEPENDENCIES += xlib_libXinerama
|
|
else
|
|
WINE_CONF_OPTS += --without-xinerama
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_XLIB_LIBXRANDR),y)
|
|
WINE_CONF_OPTS += --with-xrandr
|
|
WINE_DEPENDENCIES += xlib_libXrandr
|
|
else
|
|
WINE_CONF_OPTS += --without-xrandr
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_XLIB_LIBXRENDER),y)
|
|
WINE_CONF_OPTS += --with-xrender
|
|
WINE_DEPENDENCIES += xlib_libXrender
|
|
else
|
|
WINE_CONF_OPTS += --without-xrender
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_XLIB_LIBXXF86VM),y)
|
|
WINE_CONF_OPTS += --with-xxf86vm
|
|
WINE_DEPENDENCIES += xlib_libXxf86vm
|
|
else
|
|
WINE_CONF_OPTS += --without-xxf86vm
|
|
endif
|
|
|
|
# host-gettext is essential for .po file support in host-wine wrc
|
|
ifeq ($(BR2_SYSTEM_ENABLE_NLS),y)
|
|
HOST_WINE_DEPENDENCIES += host-gettext
|
|
HOST_WINE_CONF_OPTS += --with-gettext --with-gettextpo
|
|
else
|
|
HOST_WINE_CONF_OPTS += --without-gettext --without-gettextpo
|
|
endif
|
|
|
|
# Wine needs to enable 64-bit build tools on 64-bit host
|
|
ifeq ($(HOSTARCH),x86_64)
|
|
HOST_WINE_CONF_OPTS += --enable-win64
|
|
endif
|
|
|
|
# Wine only needs the host tools to be built, so cut-down the
|
|
# build time by building just what we need.
|
|
HOST_WINE_TOOLS = \
|
|
tools \
|
|
tools/sfnt2fon \
|
|
tools/widl \
|
|
tools/winebuild \
|
|
tools/winegcc \
|
|
tools/wmc \
|
|
tools/wrc
|
|
|
|
define HOST_WINE_BUILD_CMDS
|
|
$(foreach t, $(HOST_WINE_TOOLS),
|
|
$(HOST_MAKE_ENV) $(MAKE) -C $(@D)/$(t)
|
|
)
|
|
endef
|
|
|
|
# Wine only needs its host variant to be built, not that it is
|
|
# installed, as it uses the tools from the build directory. But
|
|
# we have no way in Buildroot to state that a host package should
|
|
# not be installed. So, just provide an noop install command.
|
|
define HOST_WINE_INSTALL_CMDS
|
|
:
|
|
endef
|
|
|
|
# We are focused on the cross compiling tools, disable everything else
|
|
HOST_WINE_CONF_OPTS += \
|
|
--disable-tests \
|
|
--disable-win16 \
|
|
--without-alsa \
|
|
--without-capi \
|
|
--without-coreaudio \
|
|
--without-cups \
|
|
--without-dbus \
|
|
--without-fontconfig \
|
|
--without-gphoto \
|
|
--without-gnutls \
|
|
--without-gssapi \
|
|
--without-gstreamer \
|
|
--without-krb5 \
|
|
--without-ldap \
|
|
--without-mingw \
|
|
--without-netapi \
|
|
--without-openal \
|
|
--without-opencl \
|
|
--without-opengl \
|
|
--without-osmesa \
|
|
--without-oss \
|
|
--without-pcap \
|
|
--without-pulse \
|
|
--without-sane \
|
|
--without-sdl \
|
|
--without-usb \
|
|
--without-v4l2 \
|
|
--without-vkd3d \
|
|
--without-vulkan \
|
|
--without-x \
|
|
--without-xcomposite \
|
|
--without-xcursor \
|
|
--without-xinerama \
|
|
--without-xinput \
|
|
--without-xinput2 \
|
|
--without-xrandr \
|
|
--without-xrender \
|
|
--without-xshape \
|
|
--without-xshm \
|
|
--without-xxf86vm
|
|
|
|
$(eval $(autotools-package))
|
|
$(eval $(host-autotools-package))
|