#sccs	"@(#) /b4/law/sccs/ate/s.Makefile 1.3"
#sccs	"@(#)term513:Makefile	1.15"

include $(MAKEINC)/Makepre.h

#LCFLAGS = -DALPHA
#LLDFLAGS = -ltam -ltermlib

ID = id.o
HD_INST= .

INC_FILES= 	\
	$(HD_INST)/async_em.h	\
	$(HD_INST)/async_err.h

SPOOLER = -ldev -lPW

include $(MAKEINC)/Makepre.h

SCRIPT	=	Install Remove Name

FILES = \
	te.hlp

COMPONENTS = \
	$(SRC)/FND/APS/font

MAINOBJECTS = \
	async_main.o init_tam.o m_getargs.o ulockf.o forkmgrs.o\
	async_comm.o async_kbd.o pipe_loop.o vansi.o vansisub.o\
	bansi.o bansisub.o fatal.o exit.o command.o\
	killmgrs.o set_comm.o rdprf.o em_cntrl.o xfer.o\
	term_setup.o upf_setup.o ruler.o sh_exec.o term_setup.o\
	menu_list.o init_mem.o filesearch.o fm_suf.o chk_fnam.o\
	filemenu.o fm_tok.o menu_lp.o fontsub.o v52.o \
	ch_state.o \
	cleanexit.o \
	cursor.o \
	display.o \
	first_page.o \
	getfree.o \
	hndl_scrn.o \
	init_scrn.o \
	last_page.o \
	line_scrn.o \
	page_back.o \
	page_forw.o \
	pixel_addr.o \
	put_cursor.o \
	roll_down.o \
	roll_up.o \
	save_vars.o \
	scr_output.o \
	setwrap.o \
	sound_bell.o \
	term_port.o

UMODOBJECTS = \
	umodem.o

DEPENDLIST = \
	async_comm.c \
	async_kbd.c \
	async_main.c \
	bansi.c \
	bansisub.c \
	chk_fnam.c \
	command.c \
	em_cntrl.c \
	exit.c \
	fatal.c \
	filemenu.c \
	filesearch.c \
	fm_suf.c \
	fm_tok.c \
	fontsub.c \
	forkmgrs.c \
	init_mem.c \
	init_tam.c \
	killmgrs.c \
	m_getargs.c \
	menu_list.c \
	menu_lp.c \
	pipe_loop.c \
	rdprf.c \
	ruler.c \
	set_comm.c \
	sh_exec.c \
	term_setup.c \
	ulockf.c \
	umodem.c \
	upf_setup.c \
	vansi.c \
	vansisub.c \
	xfer.c \
	v52.c \
	ch_state.c \
	cleanexit.c \
	cursor.c \
	display.c \
	first_page.c \
	getfree.c \
	hndl_scrn.c \
	init_scrn.c \
	last_page.c \
	line_scrn.c \
	page_back.c \
	page_forw.c \
	pixel_addr.c \
	put_cursor.c \
	roll_down.c \
	roll_up.c \
	save_vars.c \
	scr_output.c \
	setwrap.c \
	sound_bell.c \
	term_port.c

ROOT_PRODUCTS = \
	ATE

all:    async_main umodem ate.driver

#all:    inst_tree Makeincludes async_main umodem 
#	for D in $(COMPONENTS); \
#	do \
#		( \
#		cd $$D; echo "making ** $$D **:"; \
#		$(MAKE) all; \
#		) \
#	done

inst_tree:
	( \
	if [ -d $(INST_TREE) -a "`uname -n`" != "zeus" ]; \
	then \
		echo "Assuming latest mstr.proto is installed on build machine";\
		cd $(INST_TREE); \
		rm -rf $(ROOT_PRODUCTS); \
		$(MAKE) -i SETS="$(ROOT_PRODUCTS)" all; \
	fi; \
	)

hdr_install: announce $(INC_FILES)

announce:
	echo "Installing header files in $(HD_INST)"

$(INC_FILES)::	$$(@F)
	rm -f $(@)
	cp $(@F) $(@)

Makeincludes: $(DEPENDLIST)
	$(INCCMD) $(DEPENDLIST) | $(SORT) | $(FILTER) > Makeincludes
	$(MAKE)

includes: $(DEPENDLIST)
	$(INCCMD) $(DEPENDLIST) | $(SORT) | $(FILTER) > Makeincludes

install: 
	for I in $(FILES); do echo installing $$I...; \
	$(INSTALL) -i$(EXITFLAG) $$I $(INSDIR) $(PROTOFILE); done
	for I in $(SCRIPT); do echo installing $$I...; \
	$(INSTALL) -i$(EXITFLAG) $$I%/usr/install/ATE $(INSDIR) $(PROTOFILE); done
	$(INSTALL) -i$(EXITFLAG) async_main $(INSDIR) $(PROTOFILE)
	$(INSTALL) -i$(EXITFLAG) umodem $(INSDIR) $(PROTOFILE)
	for D in $(COMPONENTS); \
	do \
		( \
		cd $$D; echo "making ** $$D **:"; \
		$(MAKE) install; \
		) \
	done


async_main: $(MAINOBJECTS) $(ID)
	$(LD) -x -o async_main $(SHAREDLIB) $(MAINOBJECTS) $(ID) $(SPOOLER) -lg
	strip async_main

umodem: $(UMODOBJECTS) $(ID)
	$(LD) -x -o umodem $(SHAREDLIB) $(UMODOBJECTS) $(ID)
	strip umodem

ate.driver:	ate.o
	echo "ate.o built"

clean: 
	rm  -f $(MAINOBJECTS) $(UMODOBJECTS) $(REMOTEOBJ)
	for D in $(COMPONENTS); \
	do \
		( \
		cd $$D; echo "making ** $$D **:"; \
		$(MAKE) clean; \
		) \
	done


clobber: clean
	rm -f async_main umodem 
	for D in $(COMPONENTS); \
	do \
		( \
		cd $$D; echo "making ** $$D **:"; \
		$(MAKE) clobber; \
		) \
	done


id.c: term513.sl
	mkslid > id.c

populate:
	getunit
	echo "Don't forget to populate $(COMPONENTS)"

include Makeincludes
include $(MAKEINC)/Makepost.h
