freebsd-ports/emulators/wine-proton/Makefile
Bartek thindil Jasicki 377e01b8ea
emulators/wine-proton: update to version 9.0-3 (+)
PR:	282697

Sponsored by:	Future Crew, LLC
2024-12-10 23:37:50 +03:00

161 lines
4.8 KiB
Makefile

PORTNAME= wine-proton
DISTVERSION= 9.0-3
PORTREVISION= 0
CATEGORIES= emulators
MAINTAINER= iwtcex@gmail.com
COMMENT= Wine with a bit of extra spice
WWW= https://github.com/ValveSoftware/wine
LICENSE= LGPL21 LGPL3
LICENSE_COMB= dual
LICENSE_FILE= ${WRKSRC}/LICENSE
ONLY_FOR_ARCHS= amd64 i386
BUILD_DEPENDS= ${LOCALBASE}/bin/flex:textproc/flex \
${LOCALBASE}/include/linux/input.h:devel/evdev-proto
LIB_DEPENDS= libfontconfig.so:x11-fonts/fontconfig \
libfreetype.so:print/freetype2 \
libgnutls.so:security/gnutls \
libvulkan.so:graphics/vulkan-loader
# amd_ags_x64.so
LIB_DEPENDS+= libdrm.so:graphics/libdrm \
libdrm_amdgpu.so:graphics/libdrm
# winewayland.so
LIB_DEPENDS+= libwayland-client.so:graphics/wayland \
libxkbcommon.so:x11/libxkbcommon \
libxkbregistry.so:x11/libxkbcommon
USES= autoreconf bison desktop-file-utils gl gmake gnome gstreamer llvm:${_LLVM_VERSION},build localbase perl5 pkgconfig python:build sdl shebangfix tar:xz xorg
USE_GCC= yes
USE_GITHUB= yes
GH_ACCOUNT= ValveSoftware
GH_PROJECT= wine
GH_TAGNAME= 488fb296dda334a1e8555a9dd8f5cbe09be2afe5
USE_GL= gl
USE_GNOME= glib20
USE_GSTREAMER= gl good mpeg2dec x264 # https://github.com/ValveSoftware/wine/commit/8cdd506d7e68c27cd564c317320bfc8d3a999eda
USE_PERL5= build
USE_SDL= sdl2
USE_XORG= x11 xext xcomposite xcursor xi xinerama xrandr xrender
SHEBANG_FILES= tools/make_requests tools/winemaker/winemaker \
tools/winedump/function_grep.pl
GNU_CONFIGURE= yes
GNU_CONFIGURE_PREFIX= ${PREFIX}/${PORTNAME}
CONFIGURE_ARGS= --verbose \
--enable-archs=${ARCH:S|amd64|x86_64|} \
--with-mingw CROSSCC="clang" CROSSCFLAGS="-isystem ${FILESDIR}/clang" \
--libdir=${PREFIX}/${PORTNAME}/lib \
--disable-kerberos \
--disable-tests \
--with-fontconfig \
--with-freetype \
--with-gnutls \
--with-gstreamer \
--with-opengl \
--with-oss \
--with-pthread \
--with-sdl \
--with-vulkan \
--with-wayland \
--with-x \
--with-xinerama \
--with-xinput2 \
--with-xrandr \
--with-xrender \
--without-alsa \
--without-capi \
--without-coreaudio \
--without-cups \
--without-dbus \
--without-gettext \
--without-gettextpo \
--without-gphoto \
--without-gssapi \
--without-inotify \
--without-krb5 \
--without-netapi \
--without-opencl \
--without-osmesa \
--without-pcap \
--without-pcsclite \
--without-sane \
--without-udev \
--without-unwind \
--without-usb \
--without-v4l2
CONFIGURE_ENV= CPPBIN="false" CPPFLAGS="" FLEX="${LOCALBASE}/bin/flex" JXRLIB_CFLAGS="-I${LOCALBASE}/include/jxrlib"
CFLAGS+= -D__NR_futex="-1" -Werror=implicit-function-declaration
CFLAGS_i386+= -mpreferred-stack-boundary=4 -mstackrealign
PIE_UNSAFE= yes
BINARY_ALIAS+= clang=${LOCALBASE}/bin/clang${_LLVM_VERSION} \
lld-link=${LOCALBASE}/bin/lld-link${_LLVM_VERSION}
OPTIONS_DEFINE= PULSEAUDIO
OPTIONS_DEFAULT=PULSEAUDIO
OPTIONS_SUB= yes
PULSEAUDIO_DESC= Build winepulse.drv
PULSEAUDIO_BUILD_DEPENDS= ${LOCALBASE}/include/pulse/pulseaudio.h:audio/pulseaudio
PULSEAUDIO_CONFIGURE_ON= --with-pulse
PULSEAUDIO_CONFIGURE_OFF= --without-pulse
.include <bsd.port.pre.mk>
.if ${LLVM_DEFAULT} == 11
_LLVM_VERSION= 15
.else
_LLVM_VERSION= ${LLVM_DEFAULT}
.endif
.if ${ARCH} == amd64
PLIST_SUB+= WINE32="@comment " WINE64="" WINEARCH="x86_64"
CONFIGURE_ARGS+=--enable-win64
.else
PLIST_SUB+= WINE32="" WINE64="@comment " WINEARCH="i386"
.endif
post-patch:
${REINPLACE_CMD} 's/CFLAGS="$$llvm_extra_cflags $$llvm_cflags"/CFLAGS="$$CROSSCFLAGS $$llvm_extra_cflags $$llvm_cflags"/g' ${WRKSRC}/configure.ac
pre-configure:
cd ${WRKSRC} && ${PYTHON_CMD} dlls/winevulkan/make_vulkan --xml vk.xml
cd ${WRKSRC} && ${PERL5} tools/make_specfiles
pre-build:
cd ${WRKSRC} && ${MAKE_CMD} depend
cd ${WRKSRC} && ${PERL5} tools/make_requests
post-install:
.if ${ARCH} == i386
${MV} ${STAGEDIR}${PREFIX}/${PORTNAME}/bin/wineserver ${STAGEDIR}${PREFIX}/${PORTNAME}/bin/wineserver32
${MV} ${STAGEDIR}${PREFIX}/${PORTNAME}/bin/wine ${STAGEDIR}${PREFIX}/${PORTNAME}/bin/wine.bin
-${ELFCTL} -e +noaslr ${STAGEDIR}${PREFIX}/${PORTNAME}/bin/wine.bin
${INSTALL_SCRIPT} ${FILESDIR}/wine.sh ${STAGEDIR}${PREFIX}/${PORTNAME}/bin/wine
.else
${INSTALL_SCRIPT} ${FILESDIR}/pkg32.sh ${STAGEDIR}${PREFIX}/${PORTNAME}/bin/pkg32.sh
${MV} ${STAGEDIR}${PREFIX}/${PORTNAME}/bin/wine64 ${STAGEDIR}${PREFIX}/${PORTNAME}/bin/wine64.bin
${INSTALL_SCRIPT} ${FILESDIR}/wine.sh ${STAGEDIR}${PREFIX}/${PORTNAME}/bin/wine64
${INSTALL_SCRIPT} ${FILESDIR}/wine-wow64.sh ${STAGEDIR}${PREFIX}/${PORTNAME}/bin/wine
.endif
${RM} -r ${STAGEDIR}${PREFIX}/${PORTNAME}/include
${RM} -r ${STAGEDIR}${PREFIX}/share/man
${MKDIR} ${STAGEDIR}${DOCSDIR}
.for i in README.md ANNOUNCE.md AUTHORS
${INSTALL_DATA} ${WRKSRC}/${i} ${STAGEDIR}${DOCSDIR}
.endfor
.include <bsd.port.post.mk>