XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/Imakefile,v 3.94 2007/09/16 03:36:21 tsi Exp $
/*
 * Copyright (c) 1994-2006 by The XFree86 Project, Inc.
 * All rights reserved.
 *
 * Permission is hereby granted, free of charge, to any person obtaining
 * a copy of this software and associated documentation files (the
 * "Software"), to deal in the Software without restriction, including
 * without limitation the rights to use, copy, modify, merge, publish,
 * distribute, sublicense, and/or sell copies of the Software, and to
 * permit persons to whom the Software is furnished to do so, subject
 * to the following conditions:
 *
 *   1.  Redistributions of source code must retain the above copyright
 *       notice, this list of conditions, and the following disclaimer.
 *
 *   2.  Redistributions in binary form must reproduce the above copyright
 *       notice, this list of conditions and the following disclaimer
 *       in the documentation and/or other materials provided with the
 *       distribution, and in the same place and form as other copyright,
 *       license and disclaimer information.
 *
 *   3.  The end-user documentation included with the redistribution,
 *       if any, must include the following acknowledgment: "This product
 *       includes software developed by The XFree86 Project, Inc
 *       (http://www.xfree86.org/) and its contributors", in the same
 *       place and form as other third-party acknowledgments.  Alternately,
 *       this acknowledgment may appear in the software itself, in the
 *       same form and location as other such third-party acknowledgments.
 *
 *   4.  Except as contained in this notice, the name of The XFree86
 *       Project, Inc shall not be used in advertising or otherwise to
 *       promote the sale, use or other dealings in this Software without
 *       prior written authorization from The XFree86 Project, Inc.
 *
 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
 * IN NO EVENT SHALL THE XFREE86 PROJECT, INC OR ITS CONTRIBUTORS BE
 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
 * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
 * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
 * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
 * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */

#include <Server.tmpl>
#define IHaveSubdirs

#if XF86VgaHw
VGAHWDIR = vgahw
#endif

#if XF86FBDevHw
FBDEVHWDIR = fbdevhw
#endif

#if XF86XAA
XAADIR = xaa
#endif

#if defined(BuildTestmod) && BuildTestmod
TESTMODDIR = testmod
#endif

#if XF1Bpp || XF4Bpp
XF1BPPDIR = xf1bpp
# if XF4Bpp
XF4BPPDIR = xf4bpp
# endif
#endif

/* xf8_32wid is only used by sunffb driver */
#if XF8_32Wid && (DoLoadableServer || defined(SparcArchitecture)) 
XF8_32WIDDIR = xf8_32wid
#endif

#if XF8_32Bpp
XF8_32BPPDIR = xf8_32bpp
#endif

#if XF8_16Bpp
XF8_16BPPDIR = xf8_16bpp
#endif

/* xf24_32bpp is no longer used by any included drivers */
#if XF24_32Bpp && DoLoadableServer
XF24_32BPPDIR = xf24_32bpp
#endif

#if XFShadowFB
SHADOWFBDIR = shadowfb
#endif

#if XF86I2C
I2CDIR = i2c
#endif

#if XF86DDC
DDCDIR = ddc
#endif

#if XF86Ramdac
RAMDACDIR = ramdac
#endif

#if XF86RAC
RACDIR = rac
#endif

#if XF86Int10
INT10DIR = int10
#endif

#if XF86VBE
VBEDIR = vbe
#endif

#if DoLoadableServer
LOADERDIR = loader
#endif

#if BuildXInputExt && defined(XInputDrivers)
INPUTDIR = input
#endif

#if DoLoadableServer
DRIVERSDK = sdk
#endif

#if BuildXFree86ConfigTools
XF86CFGDIRS = xf86cfg xf86config
#endif

SUBDIRS = os-support common $(I2CDIR) $(XAADIR) $(XF1BPPDIR) $(XF4BPPDIR) \
          $(XF8_32BPPDIR) $(XF8_16BPPDIR) $(XF24_32BPPDIR) $(SHADOWFBDIR) \
	  dummylib drivers $(LOADERDIR) $(VGAHWDIR) $(FBDEVHWDIR) \
	  $(RAMDACDIR) $(RACDIR) $(DDCDIR) $(INPUTDIR) $(INT10DIR) $(VBEDIR) \
	  parser scanpci doc $(XF86CFGDIRS) etc $(DRIVERSDK) \
	  $(XF8_32WIDDIR) $(TESTMODDIR) getconfig

#if !defined(OS2Architecture) && !defined(cygwinArchitecture)
XF86CONFIG = XF86Config
XF98CONFIG = XF98Config
#else
XF86CONFIG = XF86Conf
#endif

SAMPLE_CONFIG_FILES = $(XF86CONFIG) $(XF98CONFIG)

all:: $(SAMPLE_CONFIG_FILES) xf86Build.h

#ifdef ChangelogFile
CHANGELOGFILE = ChangelogFile
#else
CHANGELOGFILE = CHANGELOG
#endif
#ifdef ChangelogId
CHANGELOGID = ChangelogId
#else
CHANGELOGID = XFree86
#endif

#if defined(BuildDate)
    BUILD_DATE = BuildDate
#else
    BUILD_DATE = 0
#endif

#if defined(ChangelogDate)
    CLOG_DATE = ChangelogDate
#else
    CLOG_DATE = 0
#endif

includes:: xf86Build.h

clean::
	RemoveFile(xf86Build.h)
	RemoveFile(build.new)

xf86Build.h: FRC
	RemoveFile(build.new)
	-echo "#define BUILD_DATE $(BUILD_DATE)" > build.new
	-echo "#define CLOG_DATE $(CLOG_DATE)" >> build.new
	-@if cmp -s build.new $@; then :; \
	else (set -x; : RemoveFile($@); $(MV) build.new $@); fi
	RemoveFile(build.new)

FRC:

#if defined(i386BsdArchitecture) && !defined(FreeBSDArchitecture)
MANPAGE=Concat(FileManDir,/XF86Config.0)
#else
MANPAGE=Concat3(FileManDir,/XF86Config.,FileManSuffix)
#endif

RGBPATH=\"DefaultRGBDatabase\"
LOCALFONTPATH=\"$(LIBDIR)/fonts/local/\"
MISCFONTPATH=\"$(LIBDIR)/fonts/misc/\"
T1FONTPATH=\"$(LIBDIR)/fonts/Type1/\"
CIDFONTPATH=\"$(LIBDIR)/fonts/CID/\"
SPFONTPATH=\"$(LIBDIR)/fonts/Speedo/\"
DPI75FONTPATH=\"$(LIBDIR)/fonts/75dpi/\"
DPI100FONTPATH=\"$(LIBDIR)/fonts/100dpi/\"
DPI75USFONTPATH=\"$(LIBDIR)/fonts/75dpi/:unscaled\"
DPI100USFONTPATH=\"$(LIBDIR)/fonts/100dpi/:unscaled\"

#ifdef FreeBSDArchitecture
  FREEBSDMOUSEDEV="    Option	\"Device\"	\"/dev/mse0\""
#else
  FREEBSDMOUSEDEV="XCOMM    Option	\"Device\"	\"/dev/mse0\""
#endif

#if defined(i386BsdArchitecture)&&defined(NetBSDArchitecture)
#  if (OSMajorVersion >= 1) && (OSMinorVersion >= 1)
  NETBSDOLDMOUSEDEV="XCOMM    Option	\"Device\"	\"/dev/mms0\""
  NETBSDNEWMOUSEDEV="    Option	\"Device\"	\"/dev/lms0\""
#  else
  NETBSDOLDMOUSEDEV="    Option	\"Device\"	\"/dev/mms0\""
  NETBSDNEWMOUSEDEV="XCOMM    Option	\"Device\"	\"/dev/lms0\""
#  endif
#else
  NETBSDOLDMOUSEDEV="XCOMM    Option	\"Device\"	\"/dev/mms0\""
  NETBSDNEWMOUSEDEV="XCOMM    Option	\"Device\"	\"/dev/lms0\""
#endif

#ifdef LinuxArchitecture
  LINUXMOUSEDEV="    Option	\"Device\"	\"/dev/mouse\""
#else
  LINUXMOUSEDEV="XCOMM    Option	\"Device\"	\"/dev/mouse\""
#endif

CppFileTarget($(XF86CONFIG), XF86Conf.cpp, \
    -DRGBPATH=$(RGBPATH) -DMISCFONTPATH=$(MISCFONTPATH) \
    -DLOCALFONTPATH=$(LOCALFONTPATH) \
    -DT1FONTPATH=$(T1FONTPATH) \
    -DCIDFONTPATH=$(CIDFONTPATH) \
    -DSPFONTPATH=$(SPFONTPATH) \
    -DDPI75FONTPATH=$(DPI75FONTPATH) \
    -DDPI100FONTPATH=$(DPI100FONTPATH) \
    -DDPI75USFONTPATH=$(DPI75USFONTPATH) \
    -DDPI100USFONTPATH=$(DPI100USFONTPATH) \
    -DMANPAGE=$(MANPAGE) '-DMODULEPATH="$(MODULEDIR)"', \
    $(ICONFIGFILES))
CppFileTarget($(XF98CONFIG), XF98Conf.cpp, \
    -DRGBPATH=$(RGBPATH) -DMISCFONTPATH=$(MISCFONTPATH) \
    -DLOCALFONTPATH=$(LOCALFONTPATH) \
    -DT1FONTPATH=$(T1FONTPATH) \
    -DCIDFONTPATH=$(CIDFONTPATH) \
    -DSPFONTPATH=$(SPFONTPATH) \
    -DDPI75FONTPATH=$(DPI75FONTPATH) \
    -DDPI100FONTPATH=$(DPI100FONTPATH) \
    -DDPI75USFONTPATH=$(DPI75USFONTPATH) \
    -DDPI100USFONTPATH=$(DPI100USFONTPATH) \
    -DFREEBSDMOUSEDEV=$(FREEBSDMOUSEDEV) \
    -DNETBSDOLDMOUSEDEV=$(NETBSDOLDMOUSEDEV) \
    -DNETBSDNEWMOUSEDEV=$(NETBSDNEWMOUSEDEV) \
    -DLINUXMOUSEDEV=$(LINUXMOUSEDEV) \
    -DMANPAGE=$(MANPAGE) '-DMODULEPATH="$(MODULEDIR)"', \
    $(ICONFIGFILES))

InstallDriverSDKNonExecFile($(XF86CONFIG),$(DRIVERSDKDIR))
InstallDriverSDKNonExecFile($(XF98CONFIG),$(DRIVERSDKDIR))

EXTRAMANDEFS=-D__logdir__=$(LOGDIRECTORY)
InstallManPage(XFree86,$(MANDIR))
InstallGenManPage(XF86Config,$(FILEMANDIR),$(FILEMANSUFFIX))

InstallNamedNonExec($(XF86CONFIG),XF86Config.eg,$(LIBDIR))
InstallNamedNonExec($(XF98CONFIG),XF86Config.98,$(LIBDIR))
InstallNamedNonExec(Options,Options,$(LIBDIR))

InstallDriverSDKNamedNonExec($(XF86CONFIG),XF86Config.eg,$(DRIVERSDKDIR))
InstallDriverSDKNonExecFile(xf86Version.h,$(DRIVERSDKINCLUDEDIR))

MakeSubdirs($(SUBDIRS))
DependSubdirs($(SUBDIRS))
