CONFFILE=	host.def.local
CP=		/bin/cp
DO_NADA=	/usr/bin/true
ECHO_MSG=	echo
ECHO=		echo
WRKDIR?=	.
DISTDIR?=	/usr/ports/distfiles
FILESDIR?=	../files
LOCALBASE?=	/usr/local

#if BuildXInputExt
BUILDXINPUTEXT=	 YES
#else
JOYSTICSUPPORT=	 YES
#endif
#if BuildPexExt
BUILDPEXEXT=	 YES
#endif
#if BuildXIE
BUILDXIE=	 YES
#endif
#if HasSecureRPC
HASSECURERPC=	 YES
#endif
#if HasXdmAuth
HASXDMAUTH=	 YES
#endif

all:: SecureRPCCheck XdmAuthCheck \
	InputExtCheck pexCheck xieCheck \
	ELFCheck

initialize::
	@( \
	${ECHO_MSG} "  Now checking your XFree86 environment."; \
	rm -f ${CONFFILE}; \
	${ECHO} "#define FreeTypeLibDir ${LOCALBASE}/lib" >> ${CONFFILE}; \
	${ECHO} "#define FreeTypeIncDir ${LOCALBASE}/include/freetype1/freetype" >> ${CONFFILE}; \
	${ECHO} "#undef XF86SVGAServer" >> ${CONFFILE}; \
	${ECHO} "#undef XF86VGA16Server" >> ${CONFFILE}; \
	${ECHO} "#undef XF86VGA16DualServer" >> ${CONFFILE}; \
	${ECHO} "#undef XF86MonoServer" >> ${CONFFILE}; \
	${ECHO} "#undef XF86MonoDualServer" >> ${CONFFILE}; \
	${ECHO} "#undef XF86S3Server" >> ${CONFFILE}; \
	${ECHO} "#undef XF86S3VServer" >> ${CONFFILE}; \
	${ECHO} "#undef XF86I8514Server" >> ${CONFFILE}; \
	${ECHO} "#undef XF86Mach8Server" >> ${CONFFILE}; \
	${ECHO} "#undef XF86Mach32Server" >> ${CONFFILE}; \
	${ECHO} "#undef XF86Mach64Server" >> ${CONFFILE}; \
	${ECHO} "#undef XF86P9000Server" >> ${CONFFILE}; \
	${ECHO} "#undef XF86AGXServer" >> ${CONFFILE}; \
	${ECHO} "#undef XF86W32Server" >> ${CONFFILE}; \
	${ECHO} "#undef XF86I128Server" >> ${CONFFILE}; \
	${ECHO} "#undef XF86GLINTServer" >> ${CONFFILE}; \
	${ECHO} "#undef XF98EGCServer" >> ${CONFFILE}; \
	${ECHO} "#undef XF98GA968Server" >> ${CONFFILE}; \
	${ECHO} "#undef XF98GANBWAPServer" >> ${CONFFILE}; \
	${ECHO} "#undef XF98MGAServer" >> ${CONFFILE}; \
	${ECHO} "#undef XF98NEC480Server" >> ${CONFFILE}; \
	${ECHO} "#undef XF98NECS3Server" >> ${CONFFILE}; \
	${ECHO} "#undef XF98NKVNECServer" >> ${CONFFILE}; \
	${ECHO} "#undef XF98PWLBServer" >> ${CONFFILE}; \
	${ECHO} "#undef XF98PWSKBServer" >> ${CONFFILE}; \
	${ECHO} "#undef XF98SVGAServer" >> ${CONFFILE}; \
	${ECHO} "#undef XF98TGUIServer" >> ${CONFFILE}; \
	${ECHO} "#undef XF98WABEPServer" >> ${CONFFILE}; \
	${ECHO} "#undef XF98WABSServer" >> ${CONFFILE}; \
	${ECHO} "#undef XF98WSNAServer" >> ${CONFFILE}; \
	${ECHO} "#undef BuildFontServer" >> ${CONFFILE}; \
	${ECHO} "#undef BuildFonts" >> ${CONFFILE}; \
	${ECHO} "#undef XnestServer" >> ${CONFFILE}; \
	${ECHO} "#undef XVirtualFramebufferServer" >> ${CONFFILE}; \
	${ECHO} "#undef XprtServer" >> ${CONFFILE}; \
	${ECHO} "#define BuildFonts	NO" >> ${CONFFILE}; \
	${ECHO} "#define XnestServer NO" >> ${CONFFILE}; \
	${ECHO} "#define XVirtualFramebufferServer NO" >> ${CONFFILE}; \
	${ECHO} "#define XprtServer	NO" >> ${CONFFILE}; \
	)

InputExtCheck:: initialize
.if defined(BUILDXINPUTEXT) && ${BUILDXINPUTEXT} == YES
	@( \
	${ECHO} "#ifdef BuildXInputExt" >> ${CONFFILE}; \
	${ECHO} "#undef BuildXInputExt" >> ${CONFFILE}; \
	${ECHO} "#endif" >> ${CONFFILE}; \
	${ECHO} "#define BuildXInputExt YES" >> ${CONFFILE}; \
	${ECHO_MSG} "   Using BuildXInputExt." )
.elif !defined (AlphaArchitecture)
	@( \
	${ECHO} "#ifdef JoystickSupport" >> ${CONFFILE}; \
	${ECHO} "#undef JoystickSupport" >> ${CONFFILE}; \
	${ECHO} "#endif" >> ${CONFFILE}; \
	${ECHO} "#define JoystickSupport YES" >> ${CONFFILE}; \
	${ECHO_MSG} "   Using JoystickSupport." )
.endif

pexCheck:: initialize
.if defined(BUILDPEXEXT) && ${BUILDPEXEXT} == YES
	@( \
	${ECHO} "#ifdef BuildPexExt" >> ${CONFFILE}; \
	${ECHO} "#undef BuildPexExt" >> ${CONFFILE}; \
	${ECHO} "#endif" >> ${CONFFILE}; \
	${ECHO} "#define BuildPexExt YES" >> ${CONFFILE}; \
	${ECHO_MSG} "   Using BuildPexExt." )
.else
	@${DO_NADA}
.endif


xieCheck:: initialize
.if defined(BUILDXIE) && ${BUILDXIE} == YES
	@( \
	${ECHO} "#ifdef BuildXIE" >> ${CONFFILE}; \
	${ECHO} "#undef BuildXIE" >> ${CONFFILE}; \
	${ECHO} "#endif" >> ${CONFFILE}; \
	${ECHO} "#define BuildXIE YES" >> ${CONFFILE}; \
	${ECHO_MSG} "   Using BuildXIE." )
.else
	@${DO_NADA}
.endif

ELFCheck:: initialize
.if defined(PORTOBJFORMAT) && ${PORTOBJFORMAT} == elf
	@( \
	${ECHO} "#define UseElfFormat YES" >> ${CONFFILE}; \
	${ECHO} "#define BuildDynamicLoading YES" >> ${CONFFILE}; \
	${ECHO_MSG} "   Using ELF format." )
.else
	@${DO_NADA}
.endif

SecureRPCCheck:: initialize
.if defined(HASSECURERPC) && ${HASSECURERPC} == YES
	@( \
	${ECHO} "#ifdef HasSecureRPC" >> ${CONFFILE}; \
	${ECHO} "#undefine HasSecureRPC" >> ${CONFFILE}; \
	${ECHO} "#endif" >> ${CONFFILE}; \
	${ECHO} "#define HasSecureRPC YES" >> ${CONFFILE}; \
	${ECHO_MSG} "   Using Secure RPC"; \
	)
.else
	@${DO_NADA}
.endif

XdmAuthCheck:: initialize
.if defined(HASXDMAUTH) && ${HASXDMAUTH} == YES
	@( \
	${ECHO_MSG} "   Using XdmAuth." ; \
	if [ ! -f ${WRKDIR}/xc/lib/Xdmcp/Wraphelp.c ]; then \
	   if [ -f ${DISTDIR}/xc/Wraphelp.c ]; then \
		${ECHO_MSG} "     Whaphelp.c found in DISTDIR directory, copying it to source tree." ; \
		${CP} ${DISTDIR}/xc/Wraphelp.c ${WRKDIR}/xc/lib/Xdmcp/ ; \
		${ECHO} "#ifdef HasXdmAuth" >> ${CONFFILE} ; \
		${ECHO} "#undef HasXdmAuth" >> ${CONFFILE} ; \
		${ECHO} "#endif" >> ${CONFFILE}; \
		${ECHO} "#define HasXdmAuth ${HASXDMAUTH}" >> ${CONFFILE} ; \
	   elif [ -f ${FILESDIR}/Wraphelp.c ]; then \
		${ECHO_MSG} "     Whaphelp.c found in FILESDIR directory, copying it to source tree." ; \
		${CP} ${FILESDIR}/Wraphelp.c ${WRKDIR}/xc/lib/Xdmcp/ ; \
		${ECHO} "#ifdef HasXdmAuth" >> ${CONFFILE} ; \
		${ECHO} "#undef HasXdmAuth" >> ${CONFFILE} ; \
		${ECHO} "#endif" >> ${CONFFILE}; \
		${ECHO} "#define HasXdmAuth ${HASXDMAUTH}" >> ${CONFFILE} ; \
	   else \
		${ECHO_MSG} "Wraphelp.c not found. You can not use XDM-AUTHORIZATION-1!" ; \
		false ; \
	   fi ; \
	fi ; \
	)
.else
	@${DO_NADA}
.endif
