XCOMM $XFree86: xc/programs/Xserver/hw/xwin/Imakefile,v 1.18 2003/10/02 13:30:09 eich Exp $

#include <Server.tmpl>

EXTRADEFINES = 

#if HasShm
SHMDEF = -DHAS_SHM
#endif

#ifdef cygwinArchitecture
MMAPDEF = -DHAS_MMAP
#endif

#if defined(HasDevWindow) && HasDevWindows
EXTRADEFINES += -DHAS_DEVWINDOWS
#endif

#if defined(RelocateProjectRoot) && RelocateProjectRoot
EXTRADEFINES += -DRELOCATE_PROJECTROOT
#endif

#ifdef cygwinArchitecture
EXTRADEFINES += -DREAD_FONTDIRS
#endif

#if defined(mingwArchitecture)
PROJECT_NAME = Xming
#elif defined(cygwinArchitecture)
PROJECT_NAME = Cygwin/X
#else
PROJECT_NAME = Xorg
#endif
PROJECT_DEFINES = -DPROJECT_NAME="\"$(PROJECT_NAME)\""
RC_PROJECT_DEFINES = -DPROJECT_NAME="\\\"$(PROJECT_NAME)\\\""
EXTRA_DEFINES = $(PROJECT_DEFINES)

#if BuildXWinClipboard
SRCS_CLIPBOARD = \
	winclipboardinit.c \
	winclipboardtextconv.c \
	winclipboardthread.c \
	winclipboardunicode.c \
	winclipboardwndproc.c \
	winclipboardwrappers.c \
	winclipboardxevents.c
#endif

#if GlxUseWindows
SRCS_GLX_WINDOWS = \
	winpriv.c
#endif

#if BuildXWinMultiWindow
SRCS_MULTIWINDOW = \
	winmultiwindowshape.c \
	winmultiwindowwindow.c \
	winmultiwindowwm.c \
	winmultiwindowwndproc.c
#endif

#if BuildXWinMultiWindowExtWM
SRCS_MULTIWINDOWEXTWM = \
	winwin32rootless.c \
	winwin32rootlesswindow.c \
	winwin32rootlesswndproc.c \
	winwindowswm.c
#endif

#if BuildXWinNativeGDI
SRCS_NATIVEGDI = \
	winclip.c \
	winfillsp.c \
	winfont.c \
	wingc.c \
	wingetsp.c \
	winnativegdi.c \
	winpixmap.c \
	winpntwin.c \
	winpolyline.c \
	winpushpxl.c \
	winrop.c \
	winsetsp.c
#endif

#if BuildXWinPrimaryFB
SRCS_PRIMARYFB = \
	winpfbdd.c
#endif

#if BuildRandR
SRCS_RANDR = \
	winrandr.c
#endif

#if BuildXvExt
SRCS_XV = \
	winvideo.c
#endif

SRCS =	InitInput.c \
	InitOutput.c \
	stubs.c \
	winallpriv.c \
	winauth.c \
	winblock.c \
	wincmap.c \
	winconfig.c \
	wincreatewnd.c \
	wincursor.c \
	windialogs.c \
	winengine.c \
	winerror.c \
	winglobals.c \
	winkeybd.c \
	winkeyhook.c \
	winmisc.c \
	winmouse.c \
	winmsg.c \
	winmultiwindowclass.c \
	winmultiwindowicons.c \
	winprefs.c \
	winprefslex.l \
	winprefsyacc.y \
	winprocarg.c \
	winregistry.c \
	winscrinit.c \
	winshaddd.c \
	winshadddnl.c \
	winshadgdi.c \
	wintrayicon.c \
	winvalargs.c \
	winwakeup.c \
	winwindow.c \
	winwndproc.c \
	$(SRCS_CLIPBOARD) \
	$(SRCS_GLX_WINDOWS) \
	$(SRCS_MULTIWINDOW) \
	$(SRCS_MULTIWINDOWEXTWM) \
	$(SRCS_NATIVEGDI) \
	$(SRCS_PRIMARYFB) \
	$(SRCS_RANDR) \
	$(SRCS_XV)

winprefsyacc.c: winprefsyacc.y
	bison -d -o winprefsyacc.c winprefsyacc.y

winprefsyacc.h: winprefsyacc.c

winprefslex.c: winprefsyacc.y winprefslex.l winprefsyacc.h
	flex -i -owinprefslex.c winprefslex.l

clean::
	$(RM) winprefslex.c winprefsyacc.h winprefsyacc.c

depend:: winprefslex.c winprefsyacc.h winprefsyacc.c

#if BuildXWinClipboard
OBJS_CLIPBOARD = \
	winclipboardinit.o \
	winclipboardtextconv.o \
	winclipboardthread.o \
	winclipboardunicode.o \
	winclipboardwndproc.o \
	winclipboardwrappers.o \
	winclipboardxevents.o
#endif

#if GlxUseWindows
OBJS_GLX_WINDOWS = \
	winpriv.o
#endif

#if BuildXWinMultiWindow
OBJS_MULTIWINDOW = \
	winmultiwindowshape.o \
	winmultiwindowwindow.o \
	winmultiwindowwm.o \
	winmultiwindowwndproc.o
#endif

#if BuildXWinMultiWindowExtWM
OBJS_MULTIWINDOWEXTWM = \
	winwin32rootless.o \
	winwin32rootlesswindow.o \
	winwin32rootlesswndproc.o \
	winwindowswm.o
#endif

#if BuildXWinNativeGDI
OBJS_NATIVEGDI = \
	winclip.o \
	winfillsp.o \
	winfont.o \
	wingc.o \
	wingetsp.o \
	winnativegdi.o \
	winpixmap.o \
	winpntwin.o \
	winpolyline.o \
	winpushpxl.o \
	winrop.o \
	winsetsp.o
#endif

#if BuildXWinPrimaryFB
OBJS_PRIMARYFB = \
	winpfbdd.o
#endif

#if BuildRandR
OBJS_RANDR = \
	winrandr.o
#endif

#if BuildXvExt
OBJS_XV = \
	winvideo.o
#endif

OBJS =	InitInput.o \
	InitOutput.o \
	stubs.o \
	winallpriv.o \
	winauth.o \
	winblock.o \
	wincmap.o \
	winconfig.o \
	wincreatewnd.o \
	wincursor.o \
	windialogs.o \
	winengine.o \
	winerror.o \
	winglobals.o \
	winkeybd.o \
	winkeyhook.o \
	winmisc.o \
	winmouse.o \
	winmsg.o \
	winmultiwindowclass.o \
	winmultiwindowicons.o \
	winprefs.o \
	winprefslex.o \
	winprefsyacc.o \
	winprocarg.o \
	winregistry.o \
	winscrinit.o \
	winshaddd.o \
	winshadddnl.o \
	winshadgdi.o \
	wintrayicon.o \
	winvalargs.o \
	winwakeup.o \
	winwindow.o \
	winwndproc.o \
	$(OBJS_CLIPBOARD) \
	$(OBJS_GLX_WINDOWS) \
	$(OBJS_MULTIWINDOW) \
	$(OBJS_MULTIWINDOWEXTWM) \
	$(OBJS_NATIVEGDI) \
	$(OBJS_PRIMARYFB) \
	$(OBJS_RANDR) \
	$(OBJS_XV)

INCLUDES = -I. -I$(XBUILDINCDIR) -I$(FONTINCSRC) \
	   -I$(SERVERSRC)/fb -I$(SERVERSRC)/mi \
	   -I$(SERVERSRC)/miext/shadow \
	   -I$(SERVERSRC)/miext/rootless \
	   -I$(SERVERSRC)/miext/rootless/safeAlpha \
	   -I$(SERVERSRC)/include -I$(SERVERSRC)/os  \
           -I$(EXTINCSRC) -I$(XINCLUDESRC) \
	   -I$(SERVERSRC)/render -I$(SERVERSRC)/randr \
	   -I$(WINDOWSWMLIBSRC)

#ifdef XVendorString
VENDORSTRING = XVendorString
   VENDOR_STRING = -DVENDOR_STRING=\"$(VENDORSTRING)\"
#endif

#ifdef XVendorContact
VENDORCONTACT = XVendorContact
   VENDOR_CONTACT = -DVENDOR_CONTACT=\"$(VENDORCONTACT)\"
#endif

#ifdef CygxVersionString
CYGXVERSIONSTRING = CygxVersionString
   VERSION_STRING = -DVERSION_STRING=\"$(CYGXVERSIONSTRING)\"
#endif

VENDOR_DEFINES = $(VENDOR_STRING) $(VENDOR_CONTACT) $(VERSION_STRING)

DEFINES = $(OS_DEFINES) $(SHMDEF) $(MMAPDEF) $(EXTRADEFINES) \
	-DPROJECTROOT="\"$(PROJECTROOT)\"" -DETCX11DIR="\"$(ETCX11DIR)\""

LinkSourceFile(stubs.c,$(SERVERSRC)/Xi)
SpecialCObjectRule(stubs,$(ICONFIGFILES),$(EXT_DEFINES))

SpecialCObjectRule(winerror,$(ICONFIGFILES),$(DEFINES) $(VENDOR_DEFINES))
SpecialCObjectRule(winprocarg,$(ICONFIGFILES),$(DEFINES) $(VENDOR_DEFINES))

/* Build the Windows resource file (contains the program icon, etc.) */
ResourceObjectRule(XWin,X.ico X-boxed.ico,$(RC_PROJECT_DEFINES))

NormalLibraryObjectRule()
NormalLibraryTarget(XWin,$(OBJS))

InstallManPage(XWin,$(MANDIR))
InstallManPage(XWinrc,$(MANDIR))

DependTarget()