#				PCOMM v2.0
#			     for generic SVR4

#for 80286 versions of SCO Xenix
#CFLAGS = -Od -DM_TERMINFO -Mle2 -LARGE
#LDFLAGS = -SEG 1000 -F 5000 -Mle2
#CURSES = -ltinfo -lx

#for 80386 versions of SCO Xenix
#CFLAGS = -O -DM_TERMINFO
#LDFLAGS = -s
#CURSES = -ltinfo -lx

#for the AT&T Unix PC 7300/3b1
#LD = ld
#SHLIB = /lib/crt0s.o /lib/shlib_c.ifile
#OTHER = /lib/setvbuf.o /lib/doprnt.o -luipc

#for Sun OS (using the System V compiler)
#CC = /usr/5bin/cc
#LD = /usr/5bin/cc

#for SVR3.2
#SHLIB = -lc_s
#OTHER = -lpt

LD = cc
SHLIB =
OTHER =
#CFLAGS = -O -DBSD_INCLUDES -DBSD_REMAP_SIGNAL_TO_SIGVEC
CFLAGS = -O
LDFLAGS = -s
SHAR = shar -a

PREFIX = /usr/local
BIN_DIR = $(PREFIX)/bin
MAN_DIR = $(PREFIX)/man/man1
MAN_EXT = 1
PCOMM_LIB = $(PREFIX)/lib/pcomm

#for old curses (i.e. Berkeley systems)
#CURSES = -lcurses -ltermcap
CURSES = -lcurses

#for systems without getcwd(3) or getopt(3)
#GETCWD.O = getcwd.o
#GETCWD.C = getcwd.c
#GETOPT.O = getopt.o
#GETOPT.C = getopt.c

#for System V or Berkeley TTY interface
#TTY.O = tty_ucb.o
#TTY.C = tty_ucb.c
TTY.O = tty_att.o
TTY.C = tty_att.c

#for System V poll() or Berkeley select()
IPC.O = ipc_ucb.o
IPC.C = ipc_ucb.c
#IPC.O = ipc_att.o
#IPC.C = ipc_att.c

PCOMM = $(GETCWD.O) $(GETOPT.O) $(TTY.O) $(IPC.O) admin.o chg_dir.o cmd.o \
	curses.o d_delete.o d_lib.o d_manual.o d_menu.o d_print.o \
	d_prompt.o d_revise.o data_log.o di_delay.o di_win.o dial.o \
	e_lib.o expand.o help.o info.o init.o input.o list_dir.o ls_menu.o \
	m_lib.o macro.o main.o n_shell.o p_lib.o passthru.o pexit.o \
	port.o redial.o s_axfer.o s_extrnl.o s_gen.o s_menu.o s_modem.o \
	s_prompt.o s_term.o s_tty.o screen.o script.o st_line.o \
	strings.o terminal.o vcs.o x_ascii.o x_batch.o x_extrnl.o \
	x_menu.o x_rcv.o x_send.o x_win.o xmodem.o

all:	pcomm waitfor matches pcomm_cmd

pcomm:	$(PCOMM)
	$(LD) $(LDFLAGS) $(PCOMM) $(OTHER) -o pcomm $(CURSES) $(SHLIB)

waitfor: waitfor.o
	$(LD) $(LDFLAGS) waitfor.o -o waitfor $(SHLIB)

matches: matches.o
	$(LD) $(LDFLAGS) matches.o -o matches $(SHLIB)

pcomm_cmd: pcomm_cmd.o
	$(LD) $(LDFLAGS) pcomm_cmd.o -o pcomm_cmd $(SHLIB)

pcomm_cmd.o:
	$(CC) $(CFLAGS) -DIPC=\"$(IPC.C)\" -c pcomm_cmd.c

install:
	cp pcomm waitfor matches pcomm_cmd $(BIN_DIR)
#	obviously this requires super-user privelidges...
	chmod 4755 $(BIN_DIR)/pcomm
	chown uucp $(BIN_DIR)/pcomm

install_man:
	cp Pcomm.1 $(MAN_DIR)/pcomm.$(MAN_EXT)
	cp Pcomm_cmd.1 $(MAN_DIR)/pcomm_cmd.$(MAN_EXT)
	cp Waitfor.1 $(MAN_DIR)/waitfor.$(MAN_EXT)
	cp Matches.1 $(MAN_DIR)/matches.$(MAN_EXT)

install_support:
	cp Pcomm.dial_dir $(PCOMM_LIB)/pcomm.dial_dir
	cp Pcomm.modem $(PCOMM_LIB)/pcomm.modem
	cp Pcomm.param $(PCOMM_LIB)/pcomm.param
	cp Pcomm.extrnl $(PCOMM_LIB)/pcomm.extrnl

clean:
	rm pcomm waitfor matches pcomm_cmd

lint:
	lint -p -Dlint $(GETCWD.C) $(GETOPT.C) $(TTY.C) $(IPC.C) admin.c \
	chg_dir.c cmd.c curses.c d_delete.c d_lib.c d_manual.c d_menu.c \
	d_print.c d_prompt.c d_revise.c data_log.c di_delay.c di_win.c \
	dial.c e_lib.c expand.c help.c info.c init.c input.c list_dir.c \
	ls_menu.c m_lib.c macro.c main.c n_shell.c p_lib.c passthru.c \
	pexit.c port.c redial.c s_axfer.c s_extrnl.c s_gen.c s_menu.c \
	s_modem.c s_prompt.c s_term.c s_tty.c screen.c script.c \
	st_line.c strings.c terminal.c vcs.c x_ascii.c x_batch.c \
	x_extrnl.c x_menu.c x_rcv.c x_send.c x_win.c xmodem.c $(CURSES)
	lint -p -Dlint -DIPC=\"$(IPC.C)\" pcomm_cmd.c
	lint -p -Dlint waitfor.c
	lint -p -Dlint matches.c

shar:
	$(SHAR) Doc.me > pcomm_sh.1
	$(SHAR) Configure.sh Convert.sh Makefile Matches.1 Pcomm.1 \
	Pcomm.dial_dir Pcomm.extrnl Pcomm.modem Pcomm.param Pcomm_cmd.1 \
	Q_and_A Readme Release.notes Sample > pcomm_sh.2
	$(SHAR) Unixpc.shar Waitfor.1 admin.c chg_dir.c cmd.c cmd.h \
	config.h curses.c d_delete.c d_lib.c d_manual.c > pcomm_sh.3
	$(SHAR) d_menu.c d_print.c d_prompt.c d_revise.c data_log.c \
	di_delay.c di_win.c dial.c dial_dir.h e_lib.c expand.c extrnl.h \
	getcwd.c getopt.c help.c > pcomm_sh.4
	$(SHAR) info.c init.c input.c ipc.h ipc_att.c ipc_ucb.c \
	list_dir.c ls_menu.c m_lib.c macro.c main.c matches.c misc.h \
	modem.h n_shell.c > pcomm_sh.5
	$(SHAR) p_lib.c param.h passthru.c patchlevel.h pcomm_cmd.c \
	pexit.c port.c redial.c s_axfer.c s_extrnl.c s_gen.c > pcomm_sh.6
	$(SHAR) s_menu.c s_modem.c s_prompt.c s_term.c s_tty.c screen.c \
	script.c st_line.c status.h strings.c terminal.c tty_att.c \
	tty_ucb.c > pcomm_sh.7
	$(SHAR) vcs.c vcs.h waitfor.c x_ascii.c x_batch.c x_extrnl.c \
	x_menu.c x_rcv.c > pcomm_sh.8
	$(SHAR) x_send.c x_win.c xmodem.c xmodem.h > pcomm_sh.9
#	$(SHAR) Doc.out Matches.out Pcomm.out Pcomm_cmd.out Waitfor.out \
#	> pcomm_sh.10

admin.o:	config.h dial_dir.h param.h
chg_dir.o:	config.h misc.h
cmd.o:		cmd.h config.h dial_dir.h extrnl.h modem.h param.h status.h xmodem.h
curses.o:	config.h misc.h status.h
d_delete.o:	dial_dir.h misc.h param.h
d_lib.o:	dial_dir.h param.h
d_manual.o:	config.h dial_dir.h misc.h
d_menu.o:	config.h dial_dir.h misc.h param.h
d_print.o:	config.h dial_dir.h misc.h
d_prompt.o:	dial_dir.h misc.h
d_revise.o:	dial_dir.h misc.h param.h
data_log.o:	misc.h param.h status.h
di_delay.o:	misc.h param.h
di_win.o:	dial_dir.h misc.h modem.h param.h status.h
dial.o:		config.h dial_dir.h misc.h modem.h param.h
e_lib.o:	extrnl.h
expand.o:	config.h
getopt.o:	config.h
help.o:		config.h misc.h
info.o:		patchlevel.h
init.o:		config.h misc.h status.h
input.o:	config.h misc.h param.h status.h vcs.h
ipc_att.o:	ipc.h
ipc_ucb.o:	ipc.h
list_dir.o:	misc.h
ls_menu.o:	dial_dir.h misc.h param.h
m_lib.o:	modem.h
macro.o:	misc.h param.h
main.o:		config.h dial_dir.h extrnl.h misc.h modem.h param.h status.h
n_shell.o:	config.h
p_lib.o:	param.h
passthru.o:	config.h misc.h
pexit.o:	dial_dir.h misc.h param.h status.h
port.o:		config.h dial_dir.h modem.h status.h
redial.o:	config.h dial_dir.h misc.h
s_axfer.o:	misc.h param.h
s_extrnl.o:	extrnl.h misc.h
s_gen.o:	misc.h param.h
s_menu.o:	misc.h
s_modem.o:	misc.h modem.h
s_prompt.o:	misc.h
s_term.o:	dial_dir.h misc.h param.h
s_tty.o:	misc.h modem.h
screen.o:	param.h status.h
script.o:	config.h dial_dir.h misc.h modem.h status.h 
st_line.o:	config.h dial_dir.h misc.h modem.h param.h status.h
strings.o:	config.h
terminal.o:	config.h dial_dir.h ipc.h misc.h modem.h param.h status.h xmodem.h
tty_att.o:	dial_dir.h modem.h param.h
tty_ucb.o:	dial_dir.h modem.h param.h
vcs.o:		config.h status.h vcs.h
x_ascii.o:	config.h misc.h param.h
x_batch.o:	config.h misc.h xmodem.h
x_extrnl.o:	config.h
x_menu.o:	extrnl.h misc.h xmodem.h
x_rcv.o:	config.h dial_dir.h misc.h xmodem.h
x_send.o:	config.h dial_dir.h misc.h xmodem.h
x_win.o:	dial_dir.h misc.h status.h xmodem.h
xmodem.o:	config.h misc.h param.h xmodem.h

pcomm_cmd.o:	config.h cmd.h $(IPC.C)
matches.o:	config.h
waitfor.o:	config.h
