.SUFFIXES:
.SUFFIXES: .sc .cdecl .o .c

cdecl = ../cdecl/cdecl

XD = X.cdecl Xatom.cdecl Xlib.cdecl Xresource.cdecl Xutil.cdecl \
     Xkeysym.cdecl Xcursorfont.cdecl

XDP = xws2.cdecl xws3.cdecl xws4.cdecl xws5.cdecl xws6.cdecl xws7.cdecl \
      xws8.cdecl xws9.cdecl xws10.cdecl

xdsc =	depth.sc screen.sc visual.sc xarc.sc xchar2b.sc xcharstruct.sc \
	xclasshint.sc xcomposestatus.sc xcolor.sc xlibCONSTANTS.sc xevent.sc \
	xfontprop.sc xfontstruct.sc xgcvalues.sc xhostaddress.sc xiconsize.sc \
	ximage.sc xkeyboardcontrol.sc xkeyboardstate.sc xmodifierkeymap.sc \
	xpoint.sc xrectangle.sc xrmoptiondescrec.sc xrmvalue.sc xsegment.sc \
	xsetwindowattributes.sc xsizehints.sc xstandardcolormap.sc \
	xlibSTUBS.sc xtextitem.sc xtextitem16.sc xtimecoord.sc xlibTYPES.sc \
	xvisualinfo.sc xwindowattributes.sc xwindowchanges.sc xwmhints.sc

xdc =	depth.c screen.c visual.c xarc.c xchar2b.c xcharstruct.c \
	xclasshint.c xcomposestatus.c xcolor.c xlibCONSTANTS.c xevent.c \
	xfontprop.c xfontstruct.c xgcvalues.c xhostaddress.c xiconsize.c \
	ximage.c xkeyboardcontrol.c xkeyboardstate.c xmodifierkeymap.c \
	xpoint.c xrectangle.c xrmoptiondescrec.c xrmvalue.c xsegment.c \
	xsetwindowattributes.c xsizehints.c xstandardcolormap.c \
	xlibSTUBS.c xtextitem.c xtextitem16.c xtimecoord.c xlibTYPES.c \
	xvisualinfo.c xwindowattributes.c xwindowchanges.c xwmhints.c

xdo =	depth.o screen.o visual.o xarc.o xchar2b.o xcharstruct.o \
	xclasshint.o xcomposestatus.o xcolor.o xlibCONSTANTS.o xevent.o \
	xfontprop.o xfontstruct.o xgcvalues.o xhostaddress.o xiconsize.o \
	ximage.o xkeyboardcontrol.o xkeyboardstate.o xmodifierkeymap.o \
	xpoint.o xrectangle.o xrmoptiondescrec.o xrmvalue.o xsegment.o \
	xsetwindowattributes.o xsizehints.o xstandardcolormap.o \
	xlibSTUBS.o xtextitem.o xtextitem16.o xtimecoord.o xlibTYPES.o \
	xvisualinfo.o xwindowattributes.o xwindowchanges.o xwmhints.o

xwssc = xwss.sc xws2.sc xws3.sc xws4.sc xws5.sc xws6.sc xws7.sc xws8.sc \
	xws9.sc xws10.sc

xwsc = xwss.c xws2.c xws3.c xws4.c xws5.c xws6.c xws7.c xws8.c xws9.c xws10.c \
       xlib.c

xwso = xwss.o xws2.o xws3.o xws4.o xws5.o xws6.o xws7.o xws8.o xws9.o xws10.o \
       xlib.o 

xlibTYPES.sc:	${XD}
	${cdecl} xlib -const ${XD}
	${cdecl} xlib -typedef ${XD}
	${cdecl} xlib -stubs ${XD} ${XDP}

xlibTYPES.c:	xlibTYPES.sc
	scc -C -Og -sch 12 ${xdsc}

xlibTYPES.o:	xlibTYPES.c
	scc -c ${xdc}

${xwssc}:	xlibTYPES.c

.cdecl.sc:
	${cdecl} xlib -extern ${XD} $*.cdecl

.sc.c:
	scc -C $*.sc

.c.o:
	scc -c $*.c

scixl:	xlibTYPES.o ${xwssc} ${xwsc} ${xwso} dummy.o
	scc -o scixl -i -m xlib ${xwso} ${xdo} dummy.o -lX11
	
scxl.a:	xlibTYPES.o ${xwssc} ${xwsc} ${xwso} dummy.o	
	rm -f scxl.a
	ar q scxl.a ${xdo} ${xwso} dummy.o
	ranlib scxl.a

clear:
	scc -o clear clear.sc scxl.a -lX11

hello:
	scc -o hello hello.sc scxl.a -lX11

puzzle: 
	scc -o puzzle puzzle.sc scxl.a -lX11

clean:
	rm -f *.BAK *.CKP core

no-progs:
	rm -f *.o scixl scxl.a hello puzzle clear

all:
	make scixl scxl.a

gensource:
	make ${xwssc} ${xwsc}
