# Makefile for the whole RF experimental system
# PARALLELISM 2: cluster 3 pmake -k
# PARALLELISM 3: cluster 4 pmake -k dep
# $Id: Makefile,v 7.1 91/05/09 19:29:30 dfk Tape2 $

# Normal is optimized compilation
X=-O
# define this for debugging compilation
#X=-g
#X=-g -X18    # -X18 is old; is default with -g in new compiler

all: libs programs-tags

# For when you just make a change to lib or driver
# Note we use a smaller cluster for the library, since it
# usually does not need to be full-size.
libdriver: lib.small Driver

libs: $(PARALLEL) Patternlib lib.a 

lib.a:
	(cd lib; cluster 26 -e pmake "X=$X")

lib.small:
	(cd lib; cluster 2 -e pmake "X=$X")

programs-tags: $(PARALLEL) Driver Pattern tags

Patternlib:
	(cd pattern; cluster 3 -e make pattern.a "X=$X")

Pattern:
	(cd pattern; cluster 8 -e pmake "X=$X")

Driver:
	(cd driver; cluster 7 -e pmake "X=$X")

tags:
	cluster 1 -e etags */*.h */*.c

lint:
	lint -nu -Iinclude lib/*.c pattern/*.c driver/*.c > lintout

clean:
	rm -f *~
	(cd include; rm -f *~)
	(cd lib; make clean)
#	(cd libsim; make clean)
	(cd pattern; make clean)
	(cd driver; make clean)

spotless:
	rm -f *~
	(cd include; rm -f *~)
	(cd lib; make spotless)
#	(cd libsim; make spotless)
	(cd pattern; make spotless)
	(cd driver; make spotless)

dep: $(PARALLEL) libdep patterndep driverdep 

libdep:
	(cd lib; make dep)

patterndep:
	(cd pattern; make dep)

driverdep:
	(cd driver; make dep)

rcs:
	-uncompress RCS/*.Z
	checkin -n Makefile
	-(cd include; uncompress RCS/*.Z)
	(cd include; checkin -n *.h)
	(cd lib; make rcsn)
	(cd pattern; make rcsn)
	(cd driver; make rcsn)
