# SccsId        = "@(#)Makefile 4.12 (TU-Delft) 12/17/92"

include ../Config.mk

TARGET		= space	 	# Default target for make install

XSPACEFLAGS	= -DX11 -DDISPLAY -DCAP3D -DX11R4

MAKEARGS1       = -$(MAKEFLAGS) OCFLAGS="$(OCFLAGS)" \
		   DEBUGFLAGS="$(DEBUGFLAGS)" \
		   ICDPATH=$(ICDPATH) OSTYPE=$(OSTYPE) \
		   LDFLAGS="$(LDFLAGS)" CONFIG=$(CONFIG)

MAKEARGS2       = $(MAKEARGS1) $(XSPACEFLAGS)

CD		= [ -d $$D ] || exit 0; cd $$D; echo ===== $$D ====

STUBLIB		= # $(STUBS)/stubs.a

LIBS		= $(LIBFMT) $(LIBDDM) $(LIBESE) -lm

XLIBS	 	= -lXaw -lXt -lXmu -lX11 -lXext -ldbm -lm

SCAN    	= ../scan
LUMP    	= ../lump
EXTRACT 	= ../extract
SPIDER  	= ../spider
SCHUR   	= ../schur
GREEN   	= ../green
X11	 	= ../X11
AUX     	= ../aux
XMENU	 	= ../xmenu
STUBS		= ../stubs

# SPACE_D: object directies to make for space
# SPACE_L: library directies to make for space
# SPACE_M: object and library directies to make for space
# SPACE_O: objects to link to space
# SPACE_A: libraries to link to space
# XSPACE_[DLOA]: idem

SPACE_D         = $(SCAN) $(EXTRACT) $(LUMP)
SPACE_L         = $(AUX) $(STUBS)
SPACE_M         = $(SPACE_D) $(SPACE_L)
SPACE_O		= 
SPACE_A    	= $(SCAN)/libscan.a \
		  $(EXTRACT)/libextract.a \
		  $(LUMP)/liblump.a \
		  $(AUX)/aux.a
XSPACE_D        = $(SPACE_D) $(SPIDER) $(SCHUR) $(GREEN) $(X11)
XSPACE_L        = $(SPACE_L) $(XMENU)
XSPACE_M        = $(XSPACE_D) $(XSPACE_L)
XSPACE_O        = $(SPACE_O) \
		  $(SPIDER)/space.o  \
		  $(SCHUR)/space.o \
		  $(GREEN)/space.o $(X11)/space.o

XSPACE_A        = $(SPACE_A) $(XMENU)/libMenu.a

ALL_D           = $(XSPACE_D) $(AUX) $(STUBS) $(XMENU) $(STUBS)


space:  date.o
	@for D in $(SPACE_L); do D=$$D; $(CD); $(MAKE) $(MAKEARGS1); done
	@for D in $(SPACE_D); do D=$$D; $(CD); \
	    DA=`basename $$D`; \
	    $(MAKE) $(MAKEARGS1) lib$$DA.a; done
	@echo ==== space ====
	$(CC) $(LDFLAGS) $(OCFLAGS) $(DEBUGFLAGS) $(SPACE_O) $(SPACE_A) \
	    date.o $(STUBLIB) $(LIBS) $(OLIBS) -o $@

Xspace: date.o
	@for D in $(XSPACE_L); do D=$$D; $(CD); $(MAKE) $(MAKEARGS2); done
	@for D in $(XSPACE_D); do D=$$D; $(CD); \
	     $(MAKE) $(MAKEARGS2) space.o; done
	@echo ==== space ====
	$(CC) $(LDFLAGS) $(OCFLAGS) $(DEBUGFLAGS) $(XSPACE_O) $(XSPACE_A) \
	    date.o $(LIBS) $(XLIBS) $(OLIBS) -o $@

space_and_Xspace: cleanspace space cleanspace Xspace

install: space_and_Xspace
	mv space Xspace $(BIN)
	cd $(BIN); rm space3d; ln -s Xspace space3d

eseinstall: space
	mv space $(BIN)

cleanspace:
	@for D in $(SPACE_D); do \
	    D=$$D; $(CD); $(MAKE) $(MAKEARGS1) clean; \
	done

cleanxspace:
	@for D in $(XSPACE_D); do \
	    D=$$D; $(CD); $(MAKE) $(MAKEARGS1) clean; \
	done

clean:
	rm -f date.o space
	@for D in $(ALL_D); do \
	    (D=$$D; $(CD); $(MAKE) $(MAKEARGS1) clean); \
	done

distclean: clean
	rm -f space Xspace

LINT:	always
	@for D in $(SPACE_M); do (D=$$D; $(CD); \
	    $(MAKE) $(MAKEARGS1) LINT="$(LINT) $(LINTLIBFLAGS)" LINT); done
	$(LINT) $(LINTFLAGS) \
	    `for D in $(SPACE_M); do echo $$D/llib-lspace.ln; done` > $@

XLINT:	always
	@for D in $(XSPACE_M); do (D=$$D; $(CD); \
	    $(MAKE) $(MAKEARGS2) LINT="$(LINT) $(LINTLIBFLAGS)" LINT); done
	$(LINT) $(LINTFLAGS) \
	    `for D in $(XSPACE_M); do echo $$D/llib-lspace.ln; done` > $@

libs: always
	@for M in $(AUX) $(STUBS) $(XMENU) ; do \
	    (D=$$M; $(CD); $(MAKE) $(MAKEARGS1)) \
        done

date.o: date.h date.c
	$(CC) -c date.c 

date.h: always
	echo '# define COMPILE_DATE "'`date`'"' > $@

always:; @true
list:;   @true
files:;  @true

#EOF 
