/**************************************************************************/
/*                                                                        */
/* Copyright (c) 2001, 2011 NoMachine (http://www.nomachine.com)          */
/* Copyright (c) 2008-2014 Oleksandr Shneyder <o.shneyder@phoca-gmbh.de>  */
/* Copyright (c) 2011-2016 Mike Gabriel <mike.gabriel@das-netzwerkteam.de>*/
/* Copyright (c) 2014-2016 Mihai Moldovan <ionic@ionic.de>                */
/* Copyright (c) 2014-2016 Ulrich Sibiller <uli42@gmx.de>                 */
/* Copyright (c) 2015-2016 Qindel Group (http://www.qindel.com)           */
/*                                                                        */
/* nx-X11, NX protocol compression and NX extensions to this software     */
/* are copyright of the aforementioned persons and companies.             */
/*                                                                        */
/* Redistribution and use of the present software is allowed according    */
/* to terms specified in the file LICENSE which comes in the source       */
/* distribution.                                                          */
/*                                                                        */
/* All rights reserved.                                                   */
/*                                                                        */
/**************************************************************************/

#define IHaveSubdirs
#define PassCDebugFlags CDEBUGFLAGS="$(CDEBUGFLAGS)"

RELEASE = XOrgReleaseString

#ifndef OSName
#define OSName Unknown Operating System!
#endif

        SUBDIRS = include config programs

#if HasParallelMake
#ifdef ParallelDefines
        TOPPARALLELMFLAGS = TopParallelDefines
#endif
#endif

MakeSubdirs($(SUBDIRS))

DependSubdirs($(SUBDIRS))

#define IHaveSpecialMakefileTarget

#if !defined(Win32Architecture) || defined(mingwArchitecture)
VerifyOS::
	@echo ""
	@echo Building on OSName "("OSMajorVersion"."OSMinorVersion"."OSTeenyVersion")."
	@echo ""
#ifdef LinuxArchitecture
VerifyOS::
	@echo Linux Distribution: LinuxDistName
	@echo libc version: LinuxCLibMajorVersion"."LinuxCLibMinorVersion"."LinuxCLibTeenyVersion
	@echo binutils version: `expr LinuxBinUtilsMajorVersion / 10`.`expr LinuxBinUtilsMajorVersion % 10`
	@echo ""
#endif
#if defined(GccMajorVersion) && defined(GccMinorVersion)
VerifyOS::
	@echo GCC version: GccMajorVersion"."GccMinorVersion
	@echo ""
#endif

includes::
	MakeDir($(BUILDINCDIR))
	MakeDir($(BUILDBINDIR))

XCOMM
XCOMM Watch out!!!  Make sure you do make includes after removing X11....
XCOMM
clean::
	$(RM) -r $(BUILDINCDIR)
	$(RM) -r $(BUILDLIBDIR)
	$(RM) -r $(BUILDBINDIR)

      MAKE_OPTS = -f xmakefile

World::
	$(MAKE) $(MFLAGS) $(MAKE_OPTS) $(TOPPARALLELMFLAGS) all

Everything::
	@echo ""
	@echo Rebuilding $(RELEASE) of the X Window System.
	@echo ""
	@date
	@echo ""
	-$(RM) xmakefile.bak; $(MV) xmakefile xmakefile.bak
	$(MAKE) $(MFLAGS) xmakefile
	$(MAKE) $(MFLAGS) $(MAKE_OPTS) Makefiles
	$(MAKE) $(MFLAGS) $(MAKE_OPTS) includes
	$(MAKE) $(MFLAGS) $(MAKE_OPTS) depend
	$(MAKE) $(MFLAGS) $(MAKE_OPTS) $(WORLDOPTS)
	@echo ""
	@date
	@echo ""
	@echo Rebuild of $(RELEASE) of the X Window System complete.
	@echo ""

XCOMM clean out link tree looking for stuff that should get checked in
dangerous_strip_clean::
	$(MAKE) -k distclean
	find . -type l -exec rm {} \;
	find . \( \! -type d \) -print

#else /* not Win32Architecture else */
VerifyOS::
	@echo :
	@echo Building on OSName.
	@echo :

includes::
	MakeDir($(BUILDINCDIR:/=\))

XCOMM
XCOMM Watch out!!!  Make sure you do make includes after removing X11....
XCOMM
clean::
	RmTreeCmd $(BUILDINCDIR:/=\)
	RmTreeCmd $(BUILDLIBDIR:/=\)

Everything::
	@echo :
	@echo Rebuilding $(RELEASE) of the X Window System.
	@echo :
	@echo :
	RMoveToBakFile(xmakefile)
	$(MAKE) $(MFLAGS) xmakefile
	$(MAKE) $(MFLAGS) $(MAKE_OPTS) Makefiles
	$(MAKE) $(MFLAGS) $(MAKE_OPTS) includes
	$(MAKE) $(MFLAGS) $(MAKE_OPTS) depend
	$(MAKE) $(MFLAGS) $(MAKE_OPTS) $(WORLDOPTS)
	@echo :
	@echo :
	@echo Rebuild of $(RELEASE) of the X Window System complete.
	@echo :

#ifdef ProjectRoot
install::
	MakeDir($(PROJECTROOT:/=\))
#endif

install::
	MakeDir($(INCROOT:/=\))
	MakeDir($(USRLIBDIR:/=\))
	MakeDir($(LIBDIR:/=\))

#endif /* not Win32Architecture else */

XCOMM special target to determine if the xmakefile exists. 
XCOMM Works on both Unix and NMAKE.EXE
xmakefile-exists::

#ifndef MakeManKeywords
#define MakeManKeywords YES	/* install.man rebuilds "man -k" database? */
#endif

#ifndef MakeHtmlManIndex
#define MakeHtmlManIndex YES	/* install.man generates HTML man page index */
#endif