# Makefile for the speaker driver for USR Sportster
# and all other voice modems
# Author: Eugene Anikin
#
# If you have bug report or suggestion, e-mail to:
# anikin@anikin.ddns.org, put "Speaker" in subject.
#

#############################################################
# Specify your configuration:
#############################################################

# Modem port
SERIAL_PORT=/dev/ttyS2

# Location of files for spk
BASE_LOCATION=/usr/local

CONFIG_FILE=$(BASE_LOCATION)/etc/spk.conf
SPK_DATA=$(BASE_LOCATION)/lib/spk
BIN_PATH=$(BASE_LOCATION)/bin
LOCK_PATH=/var/lock
RUN_PATH=/var/run/spk

#############################################################
# Nothing to be changed after this line (Unless you know
# what you are doing)
#############################################################
VERSION=1.0.1

# Your platform
PLATFORM=LINUX20
#PLATFORM=SOLARIS

#
P_DEFINES=-DCONFIG_FILE=\"$(CONFIG_FILE)\" -D$(PLATFORM)
#
CC=g++
#

# Solaris with gcc-lib 2.7.2:
#INCLFLAGS=-I/usr/local/lib/gcc-lib/sparc-sun-solaris2.5/2.7.2/include \
#-I/usr/local/lib/g++-include -I/usr/openwin/include
# Linux:
INCLFLAGS=

# Solaris
#CFLAGS=-Wall -g -pipe $(INCLFLAGS)
# Linux
CFLAGS=-Wall -g -O2 -pipe -pedantic $(INCLFLAGS)

# Solaris with tcl7.4 and tk4.0
#LDFLAGS=-ltk4.0 -ltcl7.4 -lX11 -ldl -lm -lsocket -L/usr/X11/lib -L/usr/local/lib
# Linux
LDFLAGS=-ltk -ltcl -lX11 -ldl -lm -L/usr/X11/lib

#LDFLAGS=-lprot -lsocket
#LDFLAGS=-s -shlib
#LDFLAGS=-lsocket
#LDFLAGS=-lbsd			
#LDFLAGS=-posix	
#

OBJS= smodlib.o config.o locks.o main.o commandset.o \
   cmdsequence.o tkfunc.o 
INCLUDE= Makefile smodlib.h incall.h config.h locks.h \
   commandset.h cmdsequence.h

all:	speaker

clean:
	rm -f speaker spk.conf.temp *.o

distrib:
	cd ..; tar --gzip -cvf speaker-$(VERSION).tar.gz speaker

install: speaker
	echo "SERIAL_PORT=$(SERIAL_PORT)" > spk.conf.temp
	echo "COMMAND_SET=$(SPK_DATA)/spk.cmds" >> spk.conf.temp
	echo "FIRST_ACTION_FILE=$(SPK_DATA)/config.act" >> spk.conf.temp
	echo "GSPK_LOCATION=$(SPK_DATA)/gspk" >> spk.conf.temp
	echo "COUNTER=$(SPK_DATA)/.spkcount" >> spk.conf.temp
	echo "DEFAULT_PATH=$(SPK_DATA)/vmbox" >> spk.conf.temp
	echo "LOCK_PATH=$(LOCK_PATH)" >> spk.conf.temp
	echo "RUN_PATH=$(RUN_PATH)" >> spk.conf.temp
	echo "CHECK_GSM=1" >> spk.conf.temp
	echo "TEST_LOCAL=0" >> spk.conf.temp
	echo "PORT_SPEED=38400" >> spk.conf.temp
	echo "USE_CALLER_ID=1" >> spk.conf.temp
	echo "SPK_CAPABLE=1" >> spk.conf.temp
	install -d $(SPK_DATA)
	install -d $(BIN_PATH)
	install -d $(BASE_LOCATION)/etc
	install -m 0444 spk.cmds $(SPK_DATA)/spk.cmds
	install -m 0755 gspk $(SPK_DATA)/gspk
	install -m 0444 spk.conf.temp $(CONFIG_FILE)
	install -m 0755 speaker $(BIN_PATH)/speaker

# a few C files need extra compiler arguments
tkfunc.o : tkfunc.C $(INCLUDE)
	$(CC) $(CFLAGS) $(P_DEFINES) -c tkfunc.C

smodlib.o : smodlib.C $(INCLUDE)
	$(CC) $(CFLAGS) $(P_DEFINES) -c smodlib.C

config.o : config.C $(INCLUDE)
	$(CC) $(CFLAGS) $(P_DEFINES) -c config.C

locks.o : locks.C $(INCLUDE)
	$(CC) $(CFLAGS) $(P_DEFINES) -c locks.C

commandset.o : commandset.C $(INCLUDE)
	$(CC) $(CFLAGS) $(P_DEFINES) -c commandset.C

cmdsequence.o : cmdsequence.C $(INCLUDE)
	$(CC) $(CFLAGS) $(P_DEFINES) -c cmdsequence.C

main.o : main.C $(INCLUDE)
	$(CC) $(CFLAGS) $(P_DEFINES) -c main.C

# here are the binaries...

speaker : main.C $(OBJS) 
	$(CC) -g -o speaker $(OBJS) $(LDFLAGS)

