# New ports collection makefile for:	XFree86-Server
# Date created:		10 Oct 1999
# Whom:			taguchi@tohoku.iij.ad.jp
#
# $FreeBSD: ports/x11-servers/XFree86-4-Server/Makefile,v 1.111 2002/04/02 02:03:30 will Exp $
#

PORTNAME=	Server
PORTVERSION=	4.2.0
PORTREVISION=	2
CATEGORIES=	x11-servers
MASTER_SITES=	${MASTER_SITE_XFREE} \
		ftp://psych.psy.uq.oz.au/pub/X11R5/:wrap \
		ftp://ftp.internat.freebsd.org/pub/FreeBSD/X11-Crypto/:wrap \
		ftp://ftp3.za.freebsd.org/pub/FreeBSD/X11-Crypto/:wrap
MASTER_SITE_SUBDIR=	${PORTVERSION}
PKGNAMEPREFIX=	XFree86-
DISTFILES=	X${PORTVERSION:S/.//g}src-1.tgz Wraphelp.c:wrap
EXTRACT_ONLY=	X${PORTVERSION:S/.//g}src-1.tgz
IGNOREFILES=	Wraphelp.c

MAINTAINER=	taguchi@tohoku.iij.ad.jp

XFREE86_VERSION=	4
USE_IMAKE=		YES
DIST_SUBDIR=		xc
WRKSRC=			${WRKDIR}/xc
PATCHDIR=		${.CURDIR}/../../x11/XFree86-4-libraries/files
SCRIPTS_ENV=		OSVERSION=${OSVERSION} \
			HasXdmAuth=${HasXdmAuth} \
			HasSecureRPC=${HasSecureRPC} \
			HasPam=${HasPam} \
			ExtendedInputDevices=${ExtendedInputDevices} \
			BuildXF86DRI=${BuildXF86DRI} \
			HasGlide3=${HasGlide3} \
			HaveMatroxHal=${HaveMatroxHal}
MAKE_ENV=		MAN_INSTALL_TARGET=FreeBSDPortsInstall.man WORLDOPTS=
MAKE_ARGS=		WORLDOPTS=
ALL_TARGET=		FreeBSDPortsBuild
INSTALL_TARGET=		FreeBSDPortsInstall  FreeBSDPortsInstall.man
MAN1=			XFree86.1 \
			Xserver.1 \
			kbd_mode.1 \
			pcitweak.1 \
			xf86cfg.1 \
			xf86config.1
MAN3=			XF86VidMode.3 \
			XF86VidModeDeleteModeLine.3 \
			XF86VidModeGetAllModeLines.3 \
			XF86VidModeGetModeLine.3 \
			XF86VidModeGetMonitor.3 \
			XF86VidModeGetViewPort.3 \
			XF86VidModeLockModeSwitch.3 \
			XF86VidModeModModeLine.3 \
			XF86VidModeQueryExtension.3 \
			XF86VidModeQueryVersion.3 \
			XF86VidModeSetViewPort.3 \
			XF86VidModeSwitchMode.3 \
			XF86VidModeSwitchToMode.3 \
			XF86VidModeValidateModeLine.3
MAN4=			mga.4 \
			tdfx.4 \
			glint.4 \
			s3virge.4 \
			rendition.4 \
			savage.4 \
			nv.4 \
			siliconmotion.4 \
			vga.4 \
			keyboard.4 \
			mouse.4
MAN5=			XF86Config.5
PKGMESSAGE=		${WRKDIR}/.pkg-message

.include <bsd.port.pre.mk>

# XFree86 User Config:
# ---
# Name          Default		Meaning
# ----------------------------------------------------------------------------
# HasXdmAuth	YES		support XDM-AUTHORIZATION-1.
# HasSecureRPC	YES		build with SecureRPC (require FreeBSD-3 or later)
# HasPam	YES		support PAM (require FreeBSD-3.1 or later)
# ExtendedInputDevices	YES	support extended input devices
HasXdmAuth?=		YES
HasSecureRPC?=		DEFAULT
HasPam?=		DEFAULT
ExtendedInputDevices?=	DEFAULT

.if ${ARCH} == i386
BuildXF86DRI=		YES
PLIST_SUB+=		DRI=""
MASTER_SITES+=		http://gladstone.uoregon.edu/~eanholt/dri/:glide
DISTFILES+=		freebsd-glide3headers.tar.gz:glide
HasGlide3=		YES

post-extract:
	@(cd ${WRKSRC}/lib/GL/mesa/src/drv/tdfx/ ; \
		tar xfpz ${DISTDIR}/${DIST_SUBDIR}/freebsd-glide3headers.tar.gz)
.else
pre-fetch::
	@${ECHO_MSG} "DRI only built on i386"
BuildXF86DRI=		NO
HasGlide3=		NO
PLIST_SUB+=		DRI="@comment "
.endif # i386

# Some things are not applicable if this machine is an alpha
.if ${ARCH} == alpha
PLIST_SUB+=	ALPHA_NA="@comment "
.else
PLIST_SUB+=	ALPHA_NA=""
MAN1+=		scanpci.1
MAN4+=		vmware.4
.endif

.if ${ARCH} == i386
PLIST_SUB+=	I386:=""
MAN4+=		apm.4 \
		chips.4 \
		cirrus.4 \
		cyrix.4 \
		fbdev.4 \
		fbdevhw.4 \
		i128.4 \
		i740.4 \
		i810.4 \
		neomagic.4 \
		r128.4 \
		sis.4 \
		trident.4 \
		tseng.4 \
		vesa.4
.else
PLIST_SUB+=	I386:="@comment "
.endif

.if ${ExtendedInputDevices} == DEFAULT || ${ExtendedInputDevices} == YES
PLIST_SUB+=	XIE:=""
MAN4+=		citron.4 \
		dynapro.4 \
		elographics.4 \
		microtouch.4 \
		mutouch.4 \
		wacom.4 \
		void.4
.else
PLIST_SUB+=	XIE:="@comment "
.endif

# matrox BETA driver is not ready for 4.2.0.
# I don't confirm feather it is newer than the one which included in 4.2.0,
# but you can try the BETA driver. Just set that variable.

pre-everything::
	@${ECHO_MSG} "********************************************************"
	@${ECHO_MSG} "WARNING: MATROX DRIVERS NOT FULLY TESTED WITH XFREE86"
	@${ECHO_MSG} "4.2.0!  ENABLE AT YOUR OWN RISK!"
	@${ECHO_MSG} "********************************************************"

.if ${BuildXF86DRI} == YES
.if !defined(WITH_MATROX_GXX_DRIVER)
HaveMatroxHal=		NO
PLIST_SUB+=		MATROX="@comment "
pre-fetch::
	@${ECHO_MSG} "********************************************************"
	@${ECHO_MSG} "Define WITH_MATROX_GXX_DRIVER to enable the official"
	@${ECHO_MSG} "Matrox drivers for the G200, G400, G450, and G550"
	@${ECHO_MSG} "graphic adapters."
	@${ECHO_MSG} ""
	@${ECHO_MSG} "This has been tested on a G400 AGP card."
	@${ECHO_MSG} "********************************************************"
.else
NO_PACKAGE=	"Matrox drivers may not be distributed."
RESTRICTED=	"Matrox drivers may not be distributed."
HaveMatroxHal=		YES
MGA_DRIVER_VERSION=	2.0
MASTER_SITES+=		ftp://ftp.matrox.com/pub/mga/archive/linux/2002/:mga
DISTFILES+=		mgadrivers-${MGA_DRIVER_VERSION}-src.tgz:mga
EXTRACT_ONLY+=		mgadrivers-${MGA_DRIVER_VERSION}-src.tgz
RESTRICTED_FILES=	mgadrivers-${MGA_DRIVER_VERSION}-src.tgz
PLIST_SUB+=		MATROX=""
post-patch::
	@(cd ${WRKSRC}; \
	  ${MV} programs/Xserver/hw/xfree86/drivers/mga \
		programs/Xserver/hw/xfree86/drivers/mga.old; \
	  ${MV} ../mgadrivers-${MGA_DRIVER_VERSION}-src/${PORTVERSION}/drivers/src programs/Xserver/hw/xfree86/drivers/mga)
post-install::
	${INSTALL_DATA} ${WRKSRC}/programs/Xserver/hw/xfree86/drivers/mga/README_HALLIB ${PREFIX}/lib/X11/doc/README.mga_HALLIB
.endif	# !WITH_MATROX_GXX_DRIVER
.else
HaveMatroxHal=		NO
PLIST_SUB+=		MATROX="@comment "
.endif

do-configure:
	cd ${.CURDIR} && ${SETENV} ${SCRIPTS_ENV} ${SH} ${SCRIPTDIR}/configure

post-build:
	@${RM} -f ${PKGMESSAGE}
	@${CAT} ${.CURDIR}/pkg-message >> ${PKGMESSAGE}

post-install::
	@${SED} -e s,/usr/X11R6,${PREFIX}, ${PKGMESSAGE}
	strip ${PREFIX}/bin/XFree86

.include <bsd.port.post.mk>
