XCOMM $XConsortium: Imakefile,v 5.34 91/12/28 14:20:56 rws Exp $
#include <Server.tmpl>

#ifndef PixelSize
#define PixelSize 8
#endif

#if PixelSize == 8
PSZSRCS = cfb8cppl.c cfb8bit.c cfbteblt8.c cfbglrop8.c cfbpush8.c cfbrctstp8.c
PSZOBJS = cfb8cppl.o cfb8bit.o cfbteblt8.o cfbglrop8.o cfbpush8.o cfbrctstp8.o
#ifdef MipsArchitecture
STIPPLESRC = stipmips.s stipmipste.s
STIPPLEOBJ = stipmips.o stipmipste.o
STIPPLEDEF = -DHAS_STIPPLE_CODE
#endif
#ifdef SparcArchitecture
STIPPLESRC = stipsparc.s stipsparcte.s
STIPPLEOBJ = stipsparc.o stipsparcte.o
STIPPLEDEF = -DHAS_STIPPLE_CODE
#endif
#endif

#if PixelSize == 32
#ifdef SparcArchitecture
STIPPLESRC = stipsparc32.s stipsparcte32.s
STIPPLEOBJ = stipsparc32.o stipsparcte32.o
STIPPLEDEF = -DHAS_STIPPLE_CODE
#endif
#endif


SRCS =	 cfbgc.c cfbrrop.c cfbwindow.c \
	 cfbpntwin.c cfbmskbits.c cfbpixmap.c cfbbitblt.c \
	 cfbfillsp.c cfbsetsp.c cfbscrinit.c cfballpriv.c \
	 cfbgetsp.c cfbfillrct.c \
	 cfbsolidC.c cfbsolidX.c cfbsolidG.c \
	 cfbtileoddC.c cfbtileoddG.c cfbtile32C.c cfbtile32G.c \
	 cfbcmap.c cfbzerarcC.c cfbzerarcX.c cfbzerarcG.c \
	 cfbfillarcC.c cfbfillarcG.c \
	 cfbigblt8.c cfbglblt8.c cfbtegblt.c cfbbstore.c \
	 cfbbltC.c cfbbltX.c cfbbltO.c cfbbltG.c \
	 cfbpolypnt.c \
	 cfbbres.c cfbline.c cfbhrzvert.c cfbbresd.c cfbimage.c cfbseg.c \
	 cfb8lineCO.c cfb8lineX.c cfb8lineG.c cfb8lineCP.c \
	 cfb8segC.c cfb8segX.c cfb8segG.c cfb8segCS.c \
	 cfbply1rctC.c cfbply1rctG.c $(PSZSRCS)

OBJS =   cfbgc.o cfbrrop.o cfbwindow.o \
	 cfbgetsp.o cfbfillrct.o \
	 cfbsolidC.o cfbsolidX.o cfbsolidG.o \
	 cfbtileoddC.o cfbtileoddG.o cfbtile32C.o cfbtile32G.o \
	 cfbfillsp.o cfbsetsp.o cfbscrinit.o cfballpriv.o \
	 cfbpntwin.o cfbmskbits.o cfbpixmap.o \
	 cfbcmap.o cfbzerarcC.o cfbzerarcX.o cfbzerarcG.o \
	 cfbfillarcC.o cfbfillarcG.o \
	 cfbigblt8.o cfbglblt8.o cfbtegblt.o cfbbstore.o \
	 cfbpolypnt.o \
	 cfbbres.o cfbline.o cfbhrzvert.o cfbbresd.o cfbimage.o cfbseg.o \
	 cfb8lineCO.o cfb8lineX.o cfb8lineG.o cfb8lineCP.o \
	 cfb8segCS.o cfb8segX.o cfb8segG.o cfb8segC.o \
 	 cfbbitblt.o cfbbltC.o cfbbltX.o cfbbltO.o cfbbltG.o \
	 cfbply1rctC.o cfbply1rctG.o $(PSZOBJS) $(STIPPLEOBJ)

   INCLUDES = -I. -I../mfb -I../mi -I../../include -I$(INCLUDESRC) \
   	      -I$(FONTSRC)/include
   LINTLIBS = ../../dix/llib-ldix.ln ../../os/llib-los.ln \
	     ../mfb/llib-lmfb.ln ../mi/llib-lmi.ln
    DEFINES = -DPSZ=PixelSize

NormalLibraryObjectRule()
NormalLibraryTarget(cfb,$(OBJS))
LintLibraryTarget(cfb,$(SRCS))

NormalLintTarget($(SRCS))

#if HasSaberC
saber_src:
	XCOMM load $(CFLAGS) $(SRCS)
#endif

#ifdef LinkDirectory
#define LinkDepSourceFile(file,dir)		@@\
LinkSourceFile(file,dir)			@@\
depend:: file					@@\
clean::						@@\
	$(RM) file

LinkDepSourceFile(cfb.h,LinkDirectory)
LinkDepSourceFile(cfbmap.h,LinkDirectory)
LinkDepSourceFile(cfballpriv.c,LinkDirectory)
LinkDepSourceFile(cfbbitblt.c,LinkDirectory)
LinkDepSourceFile(cfbblt.c,LinkDirectory)
LinkDepSourceFile(cfbbres.c,LinkDirectory)
LinkDepSourceFile(cfbbresd.c,LinkDirectory)
LinkDepSourceFile(cfbbstore.c,LinkDirectory)
LinkDepSourceFile(cfbcmap.c,LinkDirectory)
LinkDepSourceFile(cfbfillarc.c,LinkDirectory)
LinkDepSourceFile(cfbfillrct.c,LinkDirectory)
LinkDepSourceFile(cfbfillsp.c,LinkDirectory)
LinkDepSourceFile(cfbgc.c,LinkDirectory)
LinkDepSourceFile(cfbgetsp.c,LinkDirectory)
LinkDepSourceFile(cfbhrzvert.c,LinkDirectory)
LinkDepSourceFile(cfbimage.c,LinkDirectory)
LinkDepSourceFile(cfbline.c,LinkDirectory)
LinkDepSourceFile(cfb8line.c,LinkDirectory)
LinkDepSourceFile(cfbmskbits.c,LinkDirectory)
LinkDepSourceFile(cfbmskbits.h,LinkDirectory)
LinkDepSourceFile(cfbpixmap.c,LinkDirectory)
LinkDepSourceFile(cfbply1rct.c,LinkDirectory)
LinkDepSourceFile(cfbpntwin.c,LinkDirectory)
LinkDepSourceFile(cfbpolypnt.c,LinkDirectory)
LinkDepSourceFile(cfbrrop.c,LinkDirectory)
LinkDepSourceFile(cfbrrop.h,LinkDirectory)
LinkDepSourceFile(cfbscrinit.c,LinkDirectory)
LinkDepSourceFile(cfbsetsp.c,LinkDirectory)
LinkDepSourceFile(cfbsolid.c,LinkDirectory)
LinkDepSourceFile(cfbigblt8.c,LinkDirectory)
LinkDepSourceFile(cfbglblt8.c,LinkDirectory)
LinkDepSourceFile(cfbtegblt.c,LinkDirectory)
LinkDepSourceFile(cfbtileodd.c,LinkDirectory)
LinkDepSourceFile(cfbtile32.c,LinkDirectory)
LinkDepSourceFile(cfbwindow.c,LinkDirectory)
LinkDepSourceFile(cfbzerarc.c,LinkDirectory)
LinkDepSourceFile(cfb8bit.h,LinkDirectory)
#if PixelSize == 8
LinkDepSourceFile(cfb8bit.c,LinkDirectory)
LinkDepSourceFile(cfb8cppl.c,LinkDirectory)
LinkDepSourceFile(cfbpush8.c,LinkDirectory)
LinkDepSourceFile(cfbrctstp8.c,LinkDirectory)
LinkDepSourceFile(cfbteblt8.c,LinkDirectory)
#ifdef MipsArchitecture
LinkDepSourceFile(stipmips.s,LinkDirectory)
#endif
#ifdef SparcArchitecture
LinkDepSourceFile(stipsparc.s,LinkDirectory)
#endif
#endif
#if PixelSize == 32
#ifdef SparcArchitecture
LinkDepSourceFile(stipsparc32.s,LinkDirectory)
#endif
#endif
#endif

ObjectFromSpecialSource(cfbseg,cfbline,-DPOLYSEGMENT)

ObjectFromSpecialSource(cfbfillarcC,cfbfillarc,-DRROP=GXcopy)
ObjectFromSpecialSource(cfbfillarcG,cfbfillarc,-DRROP=GXset)

ObjectFromSpecialSource(cfbzerarcC,cfbzerarc,-DRROP=GXcopy)
ObjectFromSpecialSource(cfbzerarcX,cfbzerarc,-DRROP=GXxor)
ObjectFromSpecialSource(cfbzerarcG,cfbzerarc,-DRROP=GXset)

ObjectFromSpecialSource(cfbbltC,cfbblt,-DMROP=Mcopy)
ObjectFromSpecialSource(cfbbltX,cfbblt,-DMROP=Mxor)
ObjectFromSpecialSource(cfbbltO,cfbblt,-DMROP=Mor)
ObjectFromSpecialSource(cfbbltG,cfbblt,-DMROP=0)

ObjectFromSpecialSource(cfbsolidC,cfbsolid,-DRROP=GXcopy)
ObjectFromSpecialSource(cfbsolidX,cfbsolid,-DRROP=GXxor)
ObjectFromSpecialSource(cfbsolidG,cfbsolid,-DRROP=GXset)

ObjectFromSpecialSource(cfbtileoddC,cfbtileodd,-DMROP=Mcopy)
ObjectFromSpecialSource(cfbtileoddG,cfbtileodd,-DMROP=0)

ObjectFromSpecialSource(cfbtile32C,cfbtile32,-DMROP=Mcopy)
ObjectFromSpecialSource(cfbtile32G,cfbtile32,-DMROP=0)

ObjectFromSpecialSource(cfb8lineCO,cfb8line,-DRROP=GXcopy)
ObjectFromSpecialSource(cfb8lineCP,cfb8line,-DRROP=GXcopy -DPREVIOUS)
ObjectFromSpecialSource(cfb8lineX,cfb8line,-DRROP=GXxor)
ObjectFromSpecialSource(cfb8lineG,cfb8line,-DRROP=GXset)

ObjectFromSpecialSource(cfb8segCS,cfb8line,-DRROP=GXcopy -DPOLYSEGMENT -DWIDTH_SHIFT)
ObjectFromSpecialSource(cfb8segC,cfb8line,-DRROP=GXcopy -DPOLYSEGMENT)
ObjectFromSpecialSource(cfb8segX,cfb8line,-DRROP=GXxor -DPOLYSEGMENT)
ObjectFromSpecialSource(cfb8segG,cfb8line,-DRROP=GXset -DPOLYSEGMENT)

ObjectFromSpecialSource(cfbply1rctC,cfbply1rct,-DRROP=GXcopy)
ObjectFromSpecialSource(cfbply1rctG,cfbply1rct,-DRROP=GXset)

SpecialObjectRule(cfbglblt8.o,$(NOTDEF),$(STIPPLEDEF))

#if PixelSize == 8
ObjectFromSpecialSource(cfbglrop8,cfbglblt8,-DGLYPHROP)

#ifdef MipsArchitecture
stipmipste.s: stipmips.s
	$(RM) $@
	$(LN) stipmips.s stipmipste.s
clean::
	$(RM) stipmipste.s

stipmipste.o: stipmipste.s
	$(AS) -o $@ -DTETEXT stipmipste.s
#endif

#ifdef SparcArchitecture
stipsparcte.s: stipsparc.s
	$(RM) $@
	$(LN) stipsparc.s stipsparcte.s
clean::
	$(RM) stipsparcte.s

stipsparc.o: stipsparc.s
	$(CPP) stipsparc.s | $(AS) -o $@ -

stipsparcte.o: stipsparcte.s
	$(CPP) -DTETEXT stipsparcte.s | $(AS) -o $@ -
#endif
#endif

#if PixelSize == 32
#ifdef SparcArchitecture
stipsparcte32.s: stipsparc32.s
	$(RM) $@
	$(LN) stipsparc32.s stipsparcte32.s
clean::
	$(RM) stipsparcte32.s

stipsparc32.o: stipsparc32.s
	$(CPP) stipsparc32.s | $(AS) -o $@ -

stipsparcte32.o: stipsparcte32.s
	$(CPP) -DTETEXT stipsparcte32.s | $(AS) -o $@ -
#endif
#endif

DependTarget()
