# Makefile for vgetty

# You have to define CFLAGS to match your system, check
# the comments in the mgetty Makefile.
#
# Nothing to change below this line

VGETTY_CFLAGS=-I.. -DVOICE -DVOICE_DIR=\"$(VOICE_DIR)\" \
	-DZYXEL_ROM=$(ZYXEL_ROM)

SPEAKOBJS=zplay.o voclib.o vpaths.o vmodem.o vrel.o \
	 ../logfile.o ../locks.o ../io.o ../tio.o ../getdisk.o
VGETTYOBJS=vgetty.o vanswer.o voclib.o vpaths.o vmodem.o vrel.o \
	../logfile.o ../do_chat.o ../utmp.o ../logname.o ../login.o \
	../faxrec.o ../faxsend.o ../locks.o ../faxlib.o ../faxhng.o \
	../io.o ../gettydefs.o ../tio.o ../config.o ../cnd.o ../getdisk.o \
	../mg_m_init.o ../goodies.o

REL=021-Oct28

all:
	cd ..; $(MAKE) vgetty

install:
	cd ..; $(MAKE) vgetty-install

.c.o:
	$(CC) -c $(VGETTY_CFLAGS) $(CFLAGS) $*.c -o $*.o

vrel.c: Makefile
	echo 'char *voice_rel="'$(REL)'";' >vrel.c

zplay: $(SPEAKOBJS)
	$(CC) -o zplay $(SPEAKOBJS) $(LDFLAGS)

vgetty: $(VGETTYOBJS)
	$(CC) -o vgetty $(VGETTYOBJS) $(LDFLAGS)

vgetty.c:
	@echo Making vgetty.c from ../mgetty.c
	$(LN) ../mgetty.c vgetty.c

../policy.h:
	@echo
	@echo "You didn't build mgetty first. Please read the documentation."
	@echo
	@exit 1

LINKS=pvfcut pvfecho pvfreverse pvfspeed pvfamp pvfmix \
	adpcmtopvf pvftoadpcm2 pvftoadpcm3 pvftoadpcm4 pvftoau autopvf \
	pvftolin lintopvf basictopvf pvftobasic pvftovoc voctopvf \
	pvfsine pvffft

PVFOBJS = pvfmain.o pvfsine.o pvfutil.o pvfadpcm.o pvfau.o pvflin.o \
	pvfvoc.o pvffft.o pvflib.o

pvf: pvfmain $(LINKS)

$(PVFOBJS): pvflib.h

pvfmain: $(PVFOBJS)
	$(CC) -o pvfmain $(PVFOBJS) $(LDFLAGS) -lm

$(LINKS): pvfmain
	for i in $(LINKS); do rm -f $$i; $(LN) pvfmain $$i; done

EXT_PROGS = vg_dtmf vg_message vg_button vg_nmp vg_say vg_call vg_fft
SHELL_SCRIPTS = play_messages # listen

vg_dtmf: vg_dtmf.in ../sedscript
	../sedscript <vg_dtmf.in >vg_dtmf

vg_message: vg_message.in ../sedscript
	../sedscript <vg_message.in >vg_message

vg_button: vg_button.in ../sedscript
	../sedscript <vg_button.in >vg_button

vg_nmp: vg_nmp.in ../sedscript
	../sedscript <vg_nmp.in >vg_nmp

vg_say: vg_say.in ../sedscript
	../sedscript <vg_say.in >vg_say

vg_call: vg_call.in ../sedscript
	../sedscript <vg_call.in >vg_call

vg_fft: vg_fft.in ../sedscript
	../sedscript <vg_fft.in >vg_fft

play_messages: play_messages.in ../sedscript
	../sedscript <play_messages.in >play_messages

#listen: listen.in ../sedscript
#	../sedscript <listen.in >listen

../sedscript: ../policy.h ../Makefile ../mksed.c
	@cd .. ; $(MAKE) sedscript

vgetty-all: vgetty zplay pvf $(EXT_PROGS) $(SHELL_SCRIPTS)

vgetty-install: vgetty-all $(EXT_PROGS)
	$(INSTALL) -s -m 755 zplay $(BINDIR)
	$(INSTALL) -s -m 755 pvfmain $(BINDIR)
	-mv -f $(SBINDIR)/vgetty $(SBINDIR)/vgetty.old
	$(INSTALL) -s -m 700 vgetty $(SBINDIR)
	cd $(BINDIR); for i in $(LINKS); do rm -f $$i; $(LN) pvfmain $$i; done
	$(INSTALL) -m 644 zplay.1 $(MAN1DIR)
	$(INSTALL) -m 644 pvf.1 $(MAN1DIR)
	cd $(MAN1DIR); for i in $(LINKS); \
		do rm -f $$i.1; $(LN) pvf.1 $$i.1; done
	[ -d $(VOICE_DIR) ] || mkdir $(VOICE_DIR)
	touch $(VOICE_DIR)/Voicelog
	chmod 666 $(VOICE_DIR)/Voicelog
	[ -d $(VOICE_DIR)/incoming ] || mkdir $(VOICE_DIR)/incoming
	chown 0 $(VOICE_DIR)/incoming
	chgrp $(PHONE_GROUP) $(VOICE_DIR)/incoming
	chmod $(PHONE_PERMS) $(VOICE_DIR)/incoming
	[ -d $(VOICE_DIR)/messages ] || mkdir $(VOICE_DIR)/messages
	for i in $(EXT_PROGS); do \
		$(INSTALL) -m 755 $$i $(VOICE_DIR) ;\
		done
	for i in $(SHELL_SCRIPTS); do \
		$(INSTALL) -m 755 $$i $(BINDIR) ;\
		done
	[ -f $(VOICE_DIR)/.code ] || echo '12345' >$(VOICE_DIR)/.code
	chgrp $(PHONE_GROUP) $(VOICE_DIR)/.code
	chmod $(PHONE_PERMS) $(VOICE_DIR)/.code
	chmod 660 $(VOICE_DIR)/.code
	[ -f $(VOICE_DIR)/messages/Index ] || \
		echo 'put_filename_here' >$(VOICE_DIR)/messages/Index
	[ -f $(VOICE_DIR)/messages/beep ] || \
		./pvfsine 1.0 880 | ./pvftoadpcm3 >$(VOICE_DIR)/messages/beep

patches: ../mgetty.c vgetty.c
	-diff -c ../mgetty.c vgetty.c >patches

# note: patches not included anymore
SFILES=README TODO ChangeLog rsynth-0.9.linuxA.pch \
	speakdate.sh speakdate.pl \
	Makefile voclib.h vmodem.h \
	vanswer.c voclib.c zplay.c vpaths.c vmodem.c \
	vg_dtmf.in vg_message.in vg_button.in vg_nmp.in vg_say.in \
	vg_call.in vg_fft.in play_messages.in \
	zplay.1 pvf.1 pvfmain.c pvfutil.c pvfadpcm.c pvfau.c \
	pvflin.c pvfvoc.c pvfsine.c pvffft.c pvflib.c pvflib.h

MANIFEST: $(SFILES)
	ls -l $(SFILES) >MANIFEST

FILES=$(SFILES) MANIFEST

AF=vgetty-$(REL).tgz

tar: $(FILES)
	tar cvvzf $(AF) -C .. `for i in $(FILES); do echo voice/$$i; done`

uucp: snapshot tar
	uucp -r -n gert $(AF) greenie!\~

snapshot:
	rsnap v$(REL)

test: tar
	mktest.sh $(AF)

clean:
	rm -f *.o $(LINKS)

fullclean:
	rm -f *.o vgetty zplay pvfmain $(LINKS)

#### dependencies
pvfadpcm.o : pvfadpcm.c ../mgetty.h ../ugly.h pvflib.h 
pvfau.o : pvfau.c ../mgetty.h ../ugly.h pvflib.h 
pvflib.o : pvflib.c ../mgetty.h ../ugly.h pvflib.h 
pvflin.o : pvflin.c ../mgetty.h ../ugly.h pvflib.h 
pvfmain.o : pvfmain.c ../mgetty.h ../ugly.h pvflib.h 
pvfsine.o : pvfsine.c ../mgetty.h ../ugly.h pvflib.h 
pvfutil.o : pvfutil.c ../mgetty.h ../ugly.h pvflib.h /usr/include/malloc.h 
pvfvoc.o : pvfvoc.c ../mgetty.h ../ugly.h pvflib.h 
vanswer.o : vanswer.c ../policy.h ../mgetty.h ../ugly.h ../fax_lib.h voclib.h 
vgetty.o : vgetty.c ../mgetty.h ../ugly.h ../policy.h ../tio.h ../mg_utmp.h 
voclib.o : voclib.c ../mgetty.h ../ugly.h ../policy.h voclib.h ../tio.h 
vpaths.o : vpaths.c ../mgetty.h ../ugly.h voclib.h 
zplay.o : zplay.c ../mgetty.h ../ugly.h voclib.h ../policy.h 
../cnd.o : ../cnd.c ../policy.h ../mgetty.h ../ugly.h 
../config.o : ../config.c ../mgetty.h ../ugly.h ../config.h 
../do_chat.o : ../do_chat.c ../mgetty.h ../ugly.h ../policy.h ../tio.h 
../faxhng.o : ../faxhng.c ../mgetty.h ../ugly.h 
../faxlib.o : ../faxlib.c ../mgetty.h ../ugly.h ../policy.h ../fax_lib.h 
../faxrec.o : ../faxrec.c ../mgetty.h ../ugly.h ../tio.h ../policy.h ../fax_lib.h 
../faxsend.o : ../faxsend.c ../mgetty.h ../ugly.h ../tio.h ../policy.h ../fax_lib.h 
../files.o : ../files.c ../mgetty.h ../ugly.h ../policy.h 
../getdisk.o : ../getdisk.c ../policy.h ../mgetty.h ../ugly.h 
../gettydefs.o : ../gettydefs.c ../mgetty.h ../ugly.h ../policy.h 
../io.o : ../io.c ../mgetty.h ../ugly.h 
../locks.o : ../locks.c ../mgetty.h ../ugly.h ../policy.h 
../logfile.o : ../logfile.c ../mgetty.h ../ugly.h ../policy.h 
../login.o : ../login.c ../mgetty.h ../ugly.h ../config.h ../policy.h 
../logname.o : ../logname.c ../mgetty.h ../ugly.h ../policy.h ../tio.h 
../mgetty.o : ../mgetty.c ../mgetty.h ../ugly.h ../policy.h ../tio.h ../mg_utmp.h
../mksed.o : ../mksed.c ../mgetty.h ../ugly.h ../policy.h 
../sendfax.o : ../sendfax.c ../mgetty.h ../ugly.h ../tio.h ../policy.h ../fax_lib.h 
../tio.o : ../tio.c ../mgetty.h ../ugly.h ../tio.h 
../utmp.o : ../utmp.c ../mgetty.h ../ugly.h ../mg_utmp.h
