##########################################################################
#   Instructions to Make, for compilation of ISODE processes
##########################################################################

###############################################################################
#
# Header: /xtel/isode/isode/RCS/Makefile,v 9.0 1992/06/16 12:05:01 isode Rel 
#
#
# Log: Makefile,v 
# Revision 9.0  1992/06/16  12:05:01  isode
# Release 8.0
#
# 
###############################################################################

###############################################################################
#
#				 NOTICE
#
#    Acquisition, use, and distribution of this module and related
#    materials are subject to the restrictions of a license agreement.
#    Consult the Preface in the User's Manual for the full terms of
#    this agreement.
#
###############################################################################


##################################################################
# Here it is...
##################################################################

.include "config/CONFIG.make"

LIBDIRS	=	h compat dirent tsap ssap psap pepsy pepy psap2 \
		acsap rosap rtsap ronot rosy 
DIRS	=	$(LIBDIRS) support imisc others
OTHERS	=	dsap ftam ftam2 ftam-ftp ftp-ftam psap2-lpp quipu \
		snmp vt

MKDIR	=	mkdir

all:		everything

mostthings:;	@for i in $(DIRS); \
		    do (echo "cd $$i; $(MAKE) all"; \
			      cd $$i; $(MAKE) all); \
		    done

depend:

obj:

objdir:

tags:

lint:

inst-all:	make-dirs
		@for i in $(DIRS); \
		    do (echo "cd $$i; $(MAKE) inst-all"; \
			      cd $$i; $(MAKE) inst-all); \
		    done

make-dirs:;	@chmod 775 ./mkdirs
		./mkdirs $(DESTDIR)$(BINDIR) $(DESTDIR)$(SBINDIR) $(DESTDIR)$(ETCDIR) $(DESTDIR)$(LOGDIR) \
			$(DESTDIR)$(LIBDIR) $(DESTDIR)$(LINTDIR) $(DESTDIR)$(INCDIR) $(DESTDIR)$(MANDIR) \
			$(DESTDIR)$(MANDIR)cat1 $(DESTDIR)$(MANDIR)cat5 $(DESTDIR)$(MANDIR)cat8
		chmod 777 $(DESTDIR)$(LOGDIR)

install:	inst-everything
		cp README $(DESTDIR)/usr/contrib/isode
		nroff -man isode-gen.8 > $(DESTDIR)$(MANDIR)/cat1/isode-gen.0

lint:;		@for i in $(DIRS); \
		    do (echo "cd $$i; $(MAKE) lint"; \
			      cd $$i; $(MAKE) lint); \
		    done

cleandir:	clean

clean:;		rm -f *.a *.so* llib-l* _* *.tmp config/_* util/inst-man.sh
		@for i in $(DIRS) $(OTHERS); \
		    do (echo "cd $$i; $(MAKE) clean"; \
			      cd $$i; $(MAKE) clean); \
		    done

test:;		PATH=$$PATH:${BINDIR} sh isode-test

grind:;		@for i in $(DIRS) $(OTHERS); \
		    do (echo "cd $$i; $(MAKE) grind"; \
			      cd $$i; $(MAKE) grind); \
		    done

once-only:;	@touch h/*.h h/quipu/*.h
		@touch dsap/dsaptailor dsap/oidtable.*.local quipu/quiputailor

distribution:	clean once-only READ-ME COSINE
		@cd doc; make clean

READ-ME:	isode-gen.8
		nroff -man isode-gen.8 > isode-gen.tmp
		mv isode-gen.tmp $@

#QUIPU-READ-ME:	quipu-new.8
#		nroff -ms quipu-new.8 > quipu-new.tmp
#		mv quipu-new.tmp $@

inst-partial:;	cd h; $(MAKE) inst-all
		cd compat; $(MAKE) inst-all
		cd pepsy; $(MAKE) inst-all
		cd pepy; $(MAKE) inst-all
		cd support; $(MAKE) macros inst-libisode


##################################################################
# everything
##################################################################

everything:	mostthings true
		$(MAKE) all-ftam all-ftam-ftp all-vt all-quipu \
			all-lpp all-snmp
		@echo "a great album by mtr's favorite rock band"
		@echo "sh \"whois -name mtr -info 'favorite rock band'\""

inst-everything: inst-all true
		$(MAKE) inst-ftam inst-ftam-ftp inst-vt inst-quipu \
			inst-lpp inst-snmp

lint-everything: lint true
		$(MAKE) lint-ftam lint-ftam-ftp lint-vt lint-quipu lint-snmp \
			lint-lpp lint-snmp

true:;


##################################################################
# ftam
##################################################################

FTAM	=	ftam ftam2


all-ftam:;	@for i in $(FTAM); \
		    do (echo "cd $$i; $(MAKE) all"; \
			      cd $$i; $(MAKE) all); \
		    done

inst-ftam:;	@for i in $(FTAM); \
		    do (echo "cd $$i; $(MAKE) inst-all"; \
			      cd $$i; $(MAKE) inst-all); \
		    done

install-ftam:;	@for i in $(FTAM); \
		    do (echo "cd $$i; $(MAKE) install"; \
			      cd $$i; $(MAKE) install); \
		    done

lint-ftam:;	@for i in $(FTAM); \
		    do (echo "cd $$i; $(MAKE) lint"; \
			      cd $$i; $(MAKE) lint); \
		    done


##################################################################
# ftam-ftp
##################################################################

FTAM-FTP=	ftam-ftp ftp-ftam


all-ftam-ftp:;	@for i in $(FTAM-FTP); \
		    do (echo "cd $$i; $(MAKE) all"; \
			      cd $$i; $(MAKE) all); \
		    done

inst-ftam-ftp:;	@for i in $(FTAM-FTP); \
		    do (echo "cd $$i; $(MAKE) inst-all"; \
			      cd $$i; $(MAKE) inst-all); \
		    done

install-ftam-ftp:;	@for i in $(FTAM-FTP); \
		    do (echo "cd $$i; $(MAKE) install"; \
			      cd $$i; $(MAKE) install); \
		    done

lint-ftam-ftp:;	@for i in $(FTAM-FTP); \
		    do (echo "cd $$i; $(MAKE) lint"; \
			      cd $$i; $(MAKE) lint); \
		    done


##################################################################
# vt
##################################################################

VT	=	vt


all-vt:;	@for i in $(VT); \
		    do (echo "cd $$i; $(MAKE) all"; \
			      cd $$i; $(MAKE) all); \
		    done

inst-vt:;	@for i in $(VT); \
		    do (echo "cd $$i; $(MAKE) inst-all"; \
			      cd $$i; $(MAKE) inst-all); \
		    done

install-vt:;	@for i in $(VT); \
		    do (echo "cd $$i; $(MAKE) install"; \
			      cd $$i; $(MAKE) install); \
		    done

lint-vt:;	@for i in $(VT); \
		    do (echo "cd $$i; $(MAKE) lint"; \
			      cd $$i; $(MAKE) lint); \
		    done


##################################################################
# quipu
##################################################################

QUIPU	=	dsap quipu


all-quipu:;	cd h/quipu; $(MAKE) all
		@for i in $(QUIPU); \
		    do (echo "cd $$i; $(MAKE) all"; \
			      cd $$i; $(MAKE) all); \
		    done
		cd acsap; $(MAKE) dased
		cd support; $(MAKE) iaed

inst-quipu:;	cd h/quipu; $(MAKE) inst-all
		@for i in $(QUIPU); \
		    do (echo "cd $$i; $(MAKE) inst-all"; \
			      cd $$i; $(MAKE) inst-all); \
		    done
		cd acsap; $(MAKE) inst-dased man-dased
		cd support; $(MAKE) inst-iaed man-iaed

install-quipu:;	cd h/quipu; $(MAKE) install
		@for i in $(QUIPU); \
		    do (echo "cd $$i; $(MAKE) install"; \
			      cd $$i; $(MAKE) install); \
		    done
		cd acsap; $(MAKE) inst-dased man-dased
		cd support; $(MAKE) inst-iaed man-iaed

lint-quipu:;	cd h/quipu; $(MAKE) lint
		@for i in $(QUIPU); \
		    do (echo "cd $$i; $(MAKE) lint"; \
			      cd $$i; $(MAKE) lint); \
		    done		
		cd acsap; $(MAKE) l-dased
		cd support; $(MAKE) l-iaed


##################################################################
# snmp
##################################################################

SNMP	=	snmp


all-snmp:;	@for i in $(SNMP); \
		    do (echo "cd $$i; $(MAKE) all"; \
			      cd $$i; $(MAKE) all); \
		    done

inst-snmp:;	@for i in $(SNMP); \
		    do (echo "cd $$i; $(MAKE) inst-all"; \
			      cd $$i; $(MAKE) inst-all); \
		    done

install-snmp:;	@for i in $(SNMP); \
		    do (echo "cd $$i; $(MAKE) install"; \
			      cd $$i; $(MAKE) install); \
		    done

lint-snmp:;	@for i in $(SNMP); \
		    do (echo "cd $$i; $(MAKE) lint"; \
			      cd $$i; $(MAKE) lint); \
		    done


##################################################################
# lpp
##################################################################

LPP	=	h compat psap pepsy pepy acsap rosap ronot rosy psap2-lpp
LPP-AUX	=	support imisc


all-lpp:;	@for i in $(LPP); \
		    do (echo "cd $$i; $(MAKE) all"; \
			      cd $$i; $(MAKE) all); \
		    done
		@for i in $(LPP-AUX); \
		    do (echo "cd $$i; $(MAKE) all-lpp"; \
			      cd $$i; $(MAKE) all-lpp); \
		    done

inst-lpp:;	@for i in $(LPP); \
		    do (echo "cd $$i; $(MAKE) inst-all"; \
			      cd $$i; $(MAKE) inst-all); \
		    done
		@for i in $(LPP-AUX); \
		    do (echo "cd $$i; $(MAKE) inst-lpp"; \
			      cd $$i; $(MAKE) inst-lpp); \
		    done

install-lpp:;	@for i in $(LPP); \
		    do (echo "cd $$i; $(MAKE) install"; \
			      cd $$i; $(MAKE) install); \
		    done
		@for i in $(LPP-AUX); \
		    do (echo "cd $$i; $(MAKE) install-lpp"; \
			      cd $$i; $(MAKE) install-lpp); \
		    done

lint-lpp:;	@for i in $(LPP); \
		    do (echo "cd $$i; $(MAKE) lint"; \
			      cd $$i; $(MAKE) lint); \
		    done
		@for i in $(LPP-AUX); \
		    do (echo "cd $$i; $(MAKE) lint-lpp"; \
			      cd $$i; $(MAKE) lint-lpp); \
		    done


##################################################################
# COSINE PARADISE project
##################################################################

PARADISEDUA =		others/quipu/uips/de

paradise:		paradise-dsa paradise-dua

inst-paradise:		inst-paradise-dsa inst-paradise-dua

install-paradise:	inst-paradise-dsa inst-paradise-dua clean

paradise-isode:;	@for i in $(LIBDIRS); \
				do (echo "cd $$i; $(MAKE) all"; \
				cd $$i; $(MAKE) all); \
			done
			touch support/macros.local support/objects.local
			cd support; $(MAKE) libisode isomacros isobjects
			cd dsap; $(MAKE) all

paradise-inst-isode:	make-dirs
			cd support; $(MAKE) $(DESTDIR)$(LIBDIR)libisode.a macros objects
			cd dsap; $(MAKE) $(DESTDIR)$(LIBDIR)libdsap.a \
			   	 inst-dsaptailor inst-oidtable
		
paradise-dsa:		paradise-isode
			cd quipu; $(MAKE) all

inst-paradise-dsa:	paradise-inst-isode
			cd quipu; $(MAKE) inst-all

install-paradise-dsa:	inst-paradise-dua clean

paradise-dua:		paradise-isode
			@for i in $(PARADISEDUA); \
			do (echo "cd $$i; $(MAKE) all"; \
			      	cd $$i; $(MAKE) all); \
			done

inst-paradise-dua:	paradise-inst-isode
			cd $(PARADISEDUA); $(MAKE) inst-all

install-paradise-dua:	inst-paradise-dua clean

COSINE:			paradise-gen.8
			nroff -man paradise-gen.8 > paradise-gen.tmp
			mv paradise-gen.tmp $@

##################################################################
# image
##################################################################

image:;		find . -name RCS -a -exec rm -rf {} \; -a -prune
		find . -name version.local -exec rm -f {} \;
		find . -name '*.rej' -o -name '*.orig' -o -name '*.log' \
		     -o -name core -o -name '*~' -o -name '#*#' -print
		rm -f CHECK-OUT TODO config/CONFIG.make h/config.h \
			support/aliases.local support/entities.local \
			support/macros.local support/objects.local \
			support/services.local timestamp*
		cp dsap/common/protected.c /tmp/protected.c
		-unifdef -UHAVE_PROTECTED < /tmp/protected.c \
			> dsap/common/protected.c
		rm -f /tmp/protected.c


##################################################################
# zap
##################################################################

zap:;	rm -rf $(DESTDIR)$(INCDIRM)
	rm -f $(DESTDIR)$(BINDIR)pepy  \
	    $(DESTDIR)$(BINDIR)posy    \
	    $(DESTDIR)$(BINDIR)rosy
	rm -f $(DESTDIR)$(LIBDIR)libicompat.a \
	    $(DESTDIR)$(LIBDIR)libdirent.a   \
	    $(DESTDIR)$(LIBDIR)libtsap.a     \
	    $(DESTDIR)$(LIBDIR)libssap.a     \
	    $(DESTDIR)$(LIBDIR)libpsap.a     \
	    $(DESTDIR)$(LIBDIR)libpepy.a     \
	    $(DESTDIR)$(LIBDIR)libpsap2.a    \
	    $(DESTDIR)$(LIBDIR)libacsap.a    \
	    $(DESTDIR)$(LIBDIR)librtsap.a    \
	    $(DESTDIR)$(LIBDIR)libronot.a    \
	    $(DESTDIR)$(LIBDIR)librosap.a    \
	    $(DESTDIR)$(LIBDIR)librosy.a     \
	    $(DESTDIR)$(LIBDIR)libisode.a    \
	    $(DESTDIR)$(LIBDIR)libdsap.a     \
	    $(DESTDIR)$(LIBDIR)libquipu.a
	rm -f $(DESTDIR)$(LINTDIR)llib-licompat* \
	    $(DESTDIR)$(LINTDIR)llib-ldirent*   \
	    $(DESTDIR)$(LINTDIR)llib-ltsap*     \
	    $(DESTDIR)$(LINTDIR)llib-lssap*     \
	    $(DESTDIR)$(LINTDIR)llib-lpsap*     \
	    $(DESTDIR)$(LINTDIR)llib-lpsap2*    \
	    $(DESTDIR)$(LINTDIR)llib-lacsap*    \
	    $(DESTDIR)$(LINTDIR)llib-lrtsap*    \
	    $(DESTDIR)$(LINTDIR)llib-lronot*    \
	    $(DESTDIR)$(LINTDIR)llib-lrosap*    \
	    $(DESTDIR)$(LINTDIR)llib-lrosy*     \
	    $(DESTDIR)$(LINTDIR)llib-lisode*    \
	    $(DESTDIR)$(LINTDIR)llib-ldsap*     \
	    $(DESTDIR)$(LINTDIR)llib-lquipu*
