#
#	Makefile at the top of the discuss source hierarchy
#

# configuration info needed for installation
DESTDIR= /usr/local

INFODIR= /usr/sipb/lib/discuss/info

SERVERDIR=  /usr/etc

CC= cc

# pass flags down the tree
MFLAGS1= $(MFLAGS) DESTDIR=$(DESTDIR) INFODIR=$(INFODIR) \
	SERVERDIR=$(SERVERDIR) CC=$(CC)

# for rebuilding changed sources
all:
	cd et		; make $(MFLAGS1) all
	cd ss		; make $(MFLAGS1) all
	cd ets		; make $(MFLAGS1) all
	cd usp		; make $(MFLAGS1) all
	cd include	; make $(MFLAGS1) all
	cd libds	; make $(MFLAGS1) all
	cd lib		; make $(MFLAGS1) all
	cd server	; make $(MFLAGS1) all
	cd client	; make $(MFLAGS1) all
	cd mclient	; make $(MFLAGS1) all
	cd edsc		; make $(MFLAGS1) all

# for building from sources only
build:
	cd et		; make $(MFLAGS1) depend ; make $(MFLAGS1) all
	cd ss		; make $(MFLAGS1) depend ; make $(MFLAGS1) all
	cd ets		; make $(MFLAGS1) depend ; make $(MFLAGS1) all
	cd usp		;			   make $(MFLAGS1) all
	cd include	;			   make $(MFLAGS1) all
	cd libds	; make $(MFLAGS1) depend ; make $(MFLAGS1) all
	cd lib		;			   make $(MFLAGS1) all
	cd server	; make $(MFLAGS1) depend ; make $(MFLAGS1) all
	cd client	; make $(MFLAGS1) depend ; make $(MFLAGS1) all
	cd mclient	; make $(MFLAGS1) depend ; make $(MFLAGS1) all
	cd edsc		; make $(MFLAGS1) depend ; make $(MFLAGS1) all

# install executables and libraries
install: installserver installclient

installserver:
	cd server	; make $(MFLAGS1) install

installclient:
	cd client	; make $(MFLAGS1) install
	cd mclient	; make $(MFLAGS1) install
	cd server	; make $(MFLAGS1) installclient

# for deleting all but sources
clean:
	cd et		; make $(MFLAGS1) clean
	cd ss		; make $(MFLAGS1) clean
	cd ets		; make $(MFLAGS1) clean
	cd usp		; make $(MFLAGS1) clean
	cd libds	; make $(MFLAGS1) clean
	cd include	; make $(MFLAGS1) clean
	cd server	; make $(MFLAGS1) clean
	cd client	; make $(MFLAGS1) clean
	cd mclient	; make $(MFLAGS1) clean
	cd edsc		; make $(MFLAGS1) clean


dist:
	-mkdir ../dist/source
	-chmod g+w ../dist/source
	cp -p Makefile ../dist/source
	cd et		; make $(MFLAGS1) archive
	-mkdir ../dist/source/et
	cd ../dist/source/et; tar xf ../../../source/et/et.tar
	-mkdir ../dist/source/et/profiled
	cd ss		; make $(MFLAGS1) dist
	-mkdir ../dist/source/ss
	cd ../dist/source/ss; tar xf ../../../source/ss/ss.tar
	-mkdir ../dist/source/ss/profiled
	cd ets		; make $(MFLAGS1) dist
	cd usp		; make $(MFLAGS1) dist
	cd libds	; make $(MFLAGS1) dist
	cd server	; make $(MFLAGS1) dist
	cd client	; make $(MFLAGS1) dist
	cd mclient	; make $(MFLAGS1) dist
	cd include	; make $(MFLAGS1) dist
	cd lib		; make $(MFLAGS1) dist
	cd edsc		; make $(MFLAGS1) dist
	cd ../dist/source ; make $(MFLAGS1) undepend

# recheck dependencies
depend:
	cd et		; make $(MFLAGS1) depend
	cd ss		; make $(MFLAGS1) depend
	cd ets		; make $(MFLAGS1) depend
#	cd usp		; make $(MFLAGS1) depend
	cd include	; make $(MFLAGS1) depend
	cd libds	; make $(MFLAGS1) depend
	cd server	; make $(MFLAGS1) depend
	cd client	; make $(MFLAGS1) depend
	cd mclient	; make $(MFLAGS1) depend
	cd edsc		; make $(MFLAGS1) depend

# Remove dependencies 
undepend:
	cd et		; make $(MFLAGS1) undepend
	cd ss		; make $(MFLAGS1) undepend
#	cd usp		; make $(MFLAGS1) undepend
	cd libds	; make $(MFLAGS1) undepend
	cd server	; make $(MFLAGS1) undepend
	cd client	; make $(MFLAGS1) undepend
	cd mclient	; make $(MFLAGS1) undepend
	cd edsc		; make $(MFLAGS1) undepend

