#
# Makefile for X server.  Makes various machine dependent versions
#
#	created by sue, Aug 1986

CDEBUGFLAGS = -g

COMMONSUBDIRS = dix os/4.2bsd ddx/mi
SUBDIRS = os dix ddx

UNIX = os/4.2bsd/oslib.a
MFB = ddx/mfb/libmfb.a
CFB = ddx/cfb/libcfb.a
MI = ddx/mi/libmi.a
DIX = dix/dix.a
LIBS = -lm -ldbm

VS100 = ddx/vs100/vs100.a ddx/vs100/libvs100/libvs100.a
QDSS = ddx/qdss/libQD.a libQIL.a

ALL = Xqvss Xsun Xapa16 Xapollo

all: Xsun 

servertype:
	@echo "For the server, you must either supply a specific"; \
	echo "target ($(ALL)) or put the name of that target in"; \
	echo "the file server/$@"

aall: $(ALL)


qvss:
	for i in ${COMMONSUBDIRS} ddx/mfb ddx/lk201 ddx/qvss; do \
		(cd $$i ; echo "compiling $$i";\
		make $(MFLAGS) 'CDEBUGFLAGS=$(CDEBUGFLAGS)' all;\
		cd ..);\
	done

Xqvss: qvss ${DIX} ${UNIX} ${MFB} ${MI}
	-rm -f Xqvss
	${CC} ${CDEBUGFLAGS} -o Xqvss  \
		ddx/qvss/init.o ddx/qvss/qvss_io.o ddx/lk201/lk201.o \
		$(DIX) $(UNIX) $(MFB) $(MI) $(LIBS)

loadXqvss:
	-rm -f Xqvss
	${CC} ${CDEBUGFLAGS} -o Xqvss  \
		ddx/qvss/init.o ddx/qvss/qvss_io.o ddx/lk201/lk201.o \
		$(DIX) $(UNIX) $(MFB) $(MI) $(LIBS)

sun.n:
	for i in ${COMMONSUBDIRS} ddx/mfb ddx/cfb ddx/sun; do \
		(cd $$i ; echo "compiling $$i";\
		make $(MFLAGS) 'CDEBUGFLAGS=$(CDEBUGFLAGS)' all;\
		cd ..);\
	done

Xsun.n: sun.n ${DIX} ${UNIX} ${MFB} ${CFB} ${MI}
	${CC} ${CDEBUGFLAGS} -o Xsun.n  \
		ddx/sun/sunInit.o ddx/sun/sun.a \
		$(DIX) $(UNIX) $(MFB) $(MI) $(LIBS)

loadXsun.n:
	${CC} ${CDEBUGFLAGS} -o Xsun.n  \
		ddx/sun/init.o ddx/sun/sun_io.o \
		$(DIX) $(UNIX) $(MFB) $(MI) $(LIBS)

sun:
	for i in ${COMMONSUBDIRS} ddx/mfb ddx/cfb; do \
		(cd $$i ; echo "compiling $$i";\
		make $(MFLAGS) 'CDEBUGFLAGS=$(CDEBUGFLAGS)' all;\
		cd ..);\
	done
	for i in ddx/sun; do \
		(cd $$i ; echo "compiling $$i";\
		make $(MFLAGS) 'CDEBUGFLAGS=$(CDEBUGFLAGS) -DSUN_WINDOWS' \
		sun.a sunInit.o;\
		cd ..);\
	done

Xsun: sun ${DIX} ${UNIX} ${MFB} ${CFB} ${MI}
	${CC} ${CDEBUGFLAGS} -o Xsun  \
		ddx/sun/sunInit.o ddx/sun/sun.a ${CFB} \
		$(DIX) $(UNIX) $(MFB) $(MI) $(LIBS) \
		-lsunwindow -lpixrect

loadXsun:
	${CC} ${CDEBUGFLAGS} -o Xsun  \
		ddx/sun/sunInit.o ddx/sun/sun.a \
		$(DIX) $(UNIX) $(MFB) $(MI) $(LIBS) \
		-lsunwindow -lpixrect

apa16:
	for i in ${COMMONSUBDIRS} ddx/mfb ddx/ibm; do \
		(cd $$i ; echo "compiling $$i";\
		make $(MFLAGS) 'CDEBUGFLAGS=$(CDEBUGFLAGS)' all;\
		cd ..);\
	done

Xapa16: apa16 ${DIX} ${UNIX} ${MFB} ${MI}
	-rm -f Xapa16
	${CC} ${CDEBUGFLAGS} -o Xapa16 ddx/ibm/rt/rtinit.o \
		ddx/ibm/rt/rtio.o \
		ddx/ibm/rt/librt.a ddx/ibm/apa16/libapa16.a \
		$(DIX) $(UNIX) $(MFB) $(MI) $(LIBS)

loadXapa16:
	-rm -f Xapa16
	${CC} ${CDEBUGFLAGS} -o Xapa16 ddx/ibm/rt/rtinit.o \
		ddx/ibm/rt/rtio.o \
		ddx/ibm/rt/librt.a ddx/ibm/apa16/libapa16.a \
		$(DIX) $(UNIX) $(MFB) $(MI) $(LIBS)


apollo:
	for i in ${COMMONSUBDIRS} ddx/mfb ddx/apollo; do \
		(cd $$i ; echo "compiling $$i";\
		make $(MFLAGS) 'CDEBUGFLAGS=$(CDEBUGFLAGS)' all;\
		cd ..);\
	done

Xapollo: apollo ${DIX} ${UNIX} ${MFB} ${MI}
	-rm -f Xapollo
	${CC} ${CDEBUGFLAGS} -o Xapollo  \
		ddx/apollo/init.o ddx/apollo/apollo_io.o \
		ddx/apollo/gpr_type_mgr.o /sys/traits/io_traits \
		$(DIX) $(UNIX) $(MFB) $(MI) $(LIBS)

loadXapollo:
	-rm -f Xapollo
	${CC} ${CDEBUGFLAGS} -o Xapollo  \
		ddx/apollo/init.o ddx/apollo/apollo_io.o \
		ddx/apollo/gpr_type_mgr.o /sys/traits/io_traits \
		$(DIX) $(UNIX) $(MFB) $(MI) $(LIBS)

clean:
	rm -f $(ALL) ,* *~ *.bak *.BAK core
	for i in ${SUBDIRS}; do \
		(cd $$i ; echo "cleaning $$i";\
		make $(MFLAGS) clean);\
	done

depend:
	for i in ${SUBDIRS}; do \
		(cd $$i ; echo "depending $$i";\
		make $(MFLAGS) depend);\
	done

buildtree:
	@for i in ${SUBDIRS}; do \
		(mkdir $$i ; cd $$i ; ln -s ${WHEREAMI}/$$i/RCS ; co Makefile;\
		make $(MFLAGS) WHEREAMI=${WHEREAMI}/$$i  buildtree);\
	done
	mkdir include
	(cd include; ln -s ${WHEREAMI}/include/RCS )

get:
	@echo "getting include"
	@(cd include; co -q RCS/*)
	@for i in ${SUBDIRS}; do \
		(cd $$i ; echo "geting $$i";\
		co -q Makefile; \
		make ${MFLAGS} get);\
	done

clobber:
	for i in ${SUBDIRS}; do \
		(cd $$i ; echo "clobbering $$i";\
		make ${MFLAGS} clobber); \
	done
	rm -f *
	co Makefile

lint:
	lint dix/*.ln os/4.2bsd/*.ln ddx/mi/*.ln ddx/mfb/*.ln > lint.out

lintlibs:
	echo "This will take a while"
	for i in dix os/4.2bsd ddx/mi ddx/mfb; do \
		(cd $$i ; echo " -- making lintlib in $$i"; \
		make $(MFLAGS) lint) \
	done

