freebsd-ports/emulators/wine/Makefile
Tijl Coosemans 59272d1017 Combine print/cups-base, print/cups-client and print/cups-image into
print/cups and update it to 2.1.3.  Also remove print/cups-pstoraster,
improve print/cups-filters, print/foomatic-* and update print/hplip to
3.16.2.

Long description:

First some background.  When you hand a file to cups it sets up a chain of
filter programs that converts the file to something a printer understands.
Each filter has a cost associated with it and cups tries to find the
cheapest chain.  Costs used to be configured in such a way that files were
first converted to PostScript.  This could then be manipulated further (e.g.
putting multiple pages on one sheet) before finally being sent to a
PostScript printer or another filter like pstoraster which produces a raster
format understood by non-PostScript printer drivers.  Nowadays most filters
have been moved from cups to cups-filters and they have been configured to
use PDF as an intermediate format instead of PostScript.

Merging of cups-base, cups-client and cups-image into print/cups:
- cups-image provides a library to work with the cups raster format.  It is
  only used to implement filters and printer drivers and these only exist
  in the context of a cups server so there's no need to separate this from
  cups-base.
- cups-client provides a library that allows applications to print via cups.
  It is possible to use the library to access a remote cups server without
  running a local cups server, but such a setup is discouraged and the
  configuration file to set this up has been marked deprecated.  It is
  better to run a local cups server and let that talk to the remote cups
  server because then you have the benefits of local job queuing in case the
  remote server is down or busy.  Given this and the fact that without
  filters cups-base is now smaller than it used to be it makes sense to
  merge the ports.  The patch also adds options IPPTOOL, DOCS and NLS which
  when disabled make the new cups package smaller than the current
  cups-client package.  Merging the ports also prevents problems with
  options like ZEROCONF being configured differently in both ports.
- print/cups was a metaport that depended on cups-base and some filters.
  There isn't really a need for such a metaport so cups-base can be renamed
  to cups.  The filters can be depended on by printer drivers such as hplip
  if they need them.

Additional changes to the new print/cups:
- Clean up the patches.  They seem to have been regenerated with post-patch
  changes included.
- Add a patch to prevent intermediate conversion to PDF when a PostScript
  file is sent to a PostScript printer when cups-filters is installed.
- Fix the PAM configuration file.
- Add a patch to let the server search /usr/local/share/ppd like on Linux so
  other ports don't have to add links to it.
- Remove ulpt(4) helper scripts.  The port uses libusb with ugen(4).
- Remove support for mDNSResponder.  cups-filters only supports Avahi.
- Combine ICONS and XDG_OPEN options into an X11 option to support WITHOUT_X11.
- Optionally depend on colord for ICC profile support.
- Various smaller changes.

Changes to print/cups-filters:
- Let the cups_browsed rc.d script depend on cupsd and avahi_daemon instead
  of LOGIN.
- Development of foomatic-filters has been moved to cups-filters so let this
  port install foomatic related files and add foomatic-filters to CONFLICTS.
- Fix location of liblouis tables.
- Add patch to fix ICC support.

Changes to print/cups-pstoraster:
This port is essentially an old version of Ghostscript plus a cups filter.
It's no longer developed.  This commit removes it and changes existing
dependencies to print/cups-filters which depends on print/ghostscript* and
includes a gstoraster filter that can handle both PostScript and PDF.

Changes to print/foomatic-db*:
Remove old MASTER_SITES and dependencies and eliminate PKGNAMEPREFIX.

Changes to print/foomatic-filters:
Install beh backend with its original name again and add cups-filters to
CONFLICTS.

Changes to print/hplip:
- Stop installing hpijs/foomatic-rip support.  This is no longer supported
  upstream.
- Stop installing hpcups PPDs.  These are now automatically generated.  The
  bundled PPDs are generated for an older version of cups.
- Rename the QT option to X11 to support WITHOUT_X11.
- Simplify the patches now that ports are installed in a staging area.
- Add a patch to set SO_REUSEPORT (next to SO_REUSEADDR) on the mDNS socket
  like avahi-daemon does.  This fixes Zeroconf support for HP network
  printers.

PR:		207746
Exp-run by:	antoine
Approved by:	portmgr (antoine)
2016-03-11 11:53:42 +00:00

151 lines
4.9 KiB
Makefile

# Created by: Gerald Pfeifer <gerald@FreeBSD.org>
# $FreeBSD$
PORTNAME= wine
DISTVERSION= 1.8.1
PORTREVISION= 2
PORTEPOCH= 1
CATEGORIES= emulators
MASTER_SITES= SF/${PORTNAME}/Source \
http://ibiblio.org/pub/linux/system/emulators/wine/
MAINTAINER?= gerald@FreeBSD.org
COMMENT?= Microsoft Windows compatibility environment
LICENSE= LGPL21 LGPL3
LICENSE_COMB= dual
LICENSE_FILE= ${WRKSRC}/LICENSE
BUILD_DEPENDS= ${LOCALBASE}/bin/flex:${PORTSDIR}/textproc/flex
LIB_DEPENDS= libxml2.so:${PORTSDIR}/textproc/libxml2
CONFLICTS_INSTALL= wine-staging-[0-9]* wine-devel-[0-9]* i386-wine-[0-9]* \
i386-wine-staging-[0-9]* i386-wine-devel-[0-9]*
CPPFLAGS+= -I${LOCALBASE}/include
LDFLAGS+= -L${LOCALBASE}/lib
GNU_CONFIGURE= yes
CONFIGURE_ARGS+=--verbose --disable-tests \
--without-alsa --without-capi --without-dbus \
--without-gettext --without-gettextpo \
--without-gphoto --without-gsm --without-gstreamer \
--without-opencl \
--without-osmesa \
--with-oss \
--without-sane \
--without-tiff \
--without-xinerama
CONFIGURE_ENV= CPPBIN="${CPP}" FLEX="${LOCALBASE}/bin/flex"
WINELIBDIR?= ${PREFIX}/lib
.if !defined(USE_LDCONFIG32)
USE_LDCONFIG= ${WINELIBDIR} ${WINELIBDIR}/wine
.endif
ONLY_FOR_ARCHS= i386 amd64
USES= bison compiler:c11 desktop-file-utils gmake shebangfix tar:bzip2
SHEBANG_FILES= tools/make_requests tools/winemaker/winemaker \
tools/winedump/function_grep.pl
SUB_FILES= pkg-message
PKGMESSAGE= ${WRKDIR}/pkg-message
PORTDATA= l_intl.nls wine.inf
OPTIONS_DEFINE= CUPS DOCS DOSBOX GNUTLS HAL LDAP LIBXSLT MPG123 OPENAL V4L WINEMAKER X11 GECKO MONO
OPTIONS_DEFAULT=X11
OPTIONS_SUB= yes
DOSBOX_DESC= Use DOSBox to run MS-DOS programs
LIBXSLT_DESC= Use libxslt (only used by msxml3.dll)
WINEMAKER_DESC= Fully support winemaker (requires Perl)
GECKO_DESC= Bundle Gecko MSI package for Wine
MONO_DESC= Bundle Mono MSI package for Wine
PORTSCOUT= limitw:1,even
CUPS_CONFIGURE_WITH= cups
CUPS_LIB_DEPENDS= libcups.so:${PORTSDIR}/print/cups
DOSBOX_RUN_DEPENDS= dosbox:${PORTSDIR}/emulators/dosbox
GECKO_RUN_DEPENDS= ${DATADIR}/gecko/wine_gecko-2.40-x86.msi:${PORTSDIR}/emulators/wine-gecko
GNUTLS_CONFIGURE_WITH= gnutls
GNUTLS_LIB_DEPENDS= libgnutls.so:${PORTSDIR}/security/gnutls
HAL_CONFIGURE_WITH= hal
HAL_LIB_DEPENDS= libhal.so:${PORTSDIR}/sysutils/hal
LDAP_CONFIGURE_WITH= ldap
LDAP_USE= OPENLDAP=yes
LIBXSLT_CONFIGURE_WITH= xslt
LIBXSLT_LIB_DEPENDS= libxslt.so:${PORTSDIR}/textproc/libxslt
MONO_RUN_DEPENDS= ${DATADIR}/mono/wine-mono-4.5.6.msi:${PORTSDIR}/emulators/wine-mono
MPG123_CONFIGURE_WITH= mpg123
MPG123_LIB_DEPENDS= libmpg123.so:${PORTSDIR}/audio/mpg123
OPENAL_CONFIGURE_WITH= openal
OPENAL_USES= openal
V4L_CONFIGURE_WITH= v4l
V4L_LIB_DEPENDS= libv4l1.so:${PORTSDIR}/multimedia/libv4l
WINEMAKER_RUN_DEPENDS= p5-XML-LibXML>0:${PORTSDIR}/textproc/p5-XML-LibXML
X11_CONFIGURE_WITH= x cms fontconfig freetype glu jpeg opengl png xinput2 xrandr xrender
X11_USES= jpeg
X11_USE= GL=glu XORG=xcomposite,xcursor,xi,xrandr,xrender
X11_LIB_DEPENDS= libfontconfig.so:${PORTSDIR}/x11-fonts/fontconfig \
libfreetype.so:${PORTSDIR}/print/freetype2 \
liblcms2.so:${PORTSDIR}/graphics/lcms2 \
libpng.so:${PORTSDIR}/graphics/png
.include <bsd.port.pre.mk>
.if ${ARCH} == amd64
# Wine is composed of three parts:
# - wine (aka this port) is the 32-bit component and runs 32-bit programs (on FreeBSD/i386)
# - wine64 (aka this part of this port) is the 64-bit component and runs 64-bit programs
# (on FreeBSD/amd64)
# - wow64 (a subset of emulators/i386-wine-devel) is a part of the 64-bit component that runs
# 32-bit programs (on FreeBSD/amd64)
# We also currently have:
# - "wine32" (aka emulators/i386-wine-devel) is the 32-bit component and runs 32-bit programs
# (on FreeBSD/amd64). This will be superseded by wow64.
# --libdir is required since Wine defaults to "${PREFIX}/lib64" on amd64.
CONFIGURE_ARGS+= --enable-win64 --libdir=${PREFIX}/lib
PLIST_SUB+= WINE32="@comment " WINE64=""
.if ${CHOSEN_COMPILER_TYPE} == clang && ${COMPILER_VERSION} < 38
CPPFLAGS+= -D__builtin_ms_va_list=__builtin_va_list \
-D__builtin_ms_va_start=__builtin_va_start \
-D__builtin_ms_va_end=__builtin_va_end \
-D__builtin_ms_va_copy=__builtin_va_copy
.endif
# Wine assumes a WoW64 package is available however WoW64 is not yet available on FreeBSD.
post-patch:
${REINPLACE_CMD} 's|/wine|/wine64|g' ${WRKSRC}/tools/wineapploader.in
.else
PLIST_SUB+= WINE32="" WINE64="@comment "
.endif
pre-build:
cd ${WRKSRC} && ${MAKE_CMD} depend
post-install:
@${MV} -f ${STAGEDIR}${WINELIBDIR}/libwine.so.1.0 \
${STAGEDIR}${WINELIBDIR}/libwine.so.1
@${LN} -sf libwine.so.1 ${STAGEDIR}/${WINELIBDIR}/libwine.so
@${MKDIR} ${STAGEDIR}${DOCSDIR}
.for i in README ANNOUNCE AUTHORS
${INSTALL_DATA} ${WRKSRC}/${i} ${STAGEDIR}${DOCSDIR}
.endfor
${INSTALL_DATA} ${WRKSRC}/programs/winedbg/README ${STAGEDIR}${DOCSDIR}/README.winedbg
${INSTALL_DATA} ${WRKSRC}/tools/winedump/README ${STAGEDIR}${DOCSDIR}/README.winedump
.include <bsd.port.post.mk>