### suse-blinux Makefile

## arm
#CC = /opt/cross/bin/arm-linux-gcc
#COMPCPP = /opt/cross/bin/arm-linux-g++

## i386 compiler
CC = gcc
COMPCPP = g++




## objects
BRAILLE_TARGETS=dynamic-braille
TMPPATH=/tmp/suse-blinux
SBLPATH=/usr/lib/suse-blinux
LIB_PATH = ./lib/
VCSADEV = /dev/vcsa
SCR_O = scr_vcsa.o
INSKEY_O = inskey_lnx.o        
SCREEN_OBJECTS = scr.o scrdev.o $(SCR_O)
SBL_OBJECTS = sbl.o misc.o beeps.o cut-n-paste.o $(INSKEY_O) sbllog.o mbrola.o festival.o brl_load.o spk.o libspeech.a ldconf.o
SBL_OBJECTS+= ttsynth.o
SBL_OBJECTS+= speechd.o
BRAILLE_OBJECTS =
BRLDEV = /dev/ttyS0
EXEC_PATH = ./
REINSTALL_PATH = ./
DATA_DIR = ./
INSTALL_EXEC = --owner=root --group=root --mode=0744

# To compile in a.out (if you use ELF by default), you may be able to use
# `-b i486-linuxaout'; however, you may also need to use the -V flag, or
# possibly a different gcc executable, depending on your setup.
COMMONCFLAGS = -O2 -W -Wall -D_POSIX_C_SOURCE=2 -D_BSD_SOURCE -s
#COMMONCFLAGS = -O2 -Wall -D_POSIX_C_SOURCE=2 -D_BSD_SOURCE
#CFLAGS = $(COMMONCFLAGS)
CFLAGS = $(COMMONCFLAGS) 
UTILS_CFLAGS = $(CFLAGS)

LIB_CFLAGS = $(CFLAGS) -fPIC
LIB_SO_NAME = libsbl-
LIB_VER = 1
#LD = gcc
LD = $(COMPCPP)
COMMONLDFLAGS = -rdynamic
LDFLAGS = $(COMMONLDFLAGS)
LDLIBS = -L. -lspeech -ldl -lpthread
PREFIX =
BRL_TARGETS = Pwrbrl Fhp_usb Fhp HT Baum Tieman None Alva
#BRL_TARGETS = Tieman
#BRL_TARGETS = Fhp_usb None Fhp HT Alva Tieman Baum
# ------------------------ DO NOT EDIT BELOW THIS LINE ------------------------


.EXPORT_ALL_VARIABLES:

all:
	make do_it

do_it: softspeech sbl ttsynthlib.so speechdlib.so

softspeech:
	$(MAKE) -C speech


sbl: $(SBL_OBJECTS) $(SCREEN_OBJECTS) $(BRAILLE_TARGETS)

	$(LD) $(LDFLAGS) -Wl,-rpath,$(SBLPATH)/lib -o $@ \
	 $(SBL_OBJECTS) $(SCREEN_OBJECTS) $(BRAILLE_OBJECTS) $(LDLIBS)

install: sbl
	install --directory $(DESTDIR)$(SBLPATH)
	install --directory $(DESTDIR)$(SBLPATH)/lib
	install --directory $(DESTDIR)$(SBLPATH)/profile
	install --directory $(DESTDIR)$(SBLPATH)/spk
	install --directory $(DESTDIR)$(SBLPATH)/spkfilter
	install --directory $(DESTDIR)$(SBLPATH)/brltbl
	install --directory $(DESTDIR)$(SBLPATH)/keymap
	install sbl $(DESTDIR)$(SBLPATH)
	install lib/* $(DESTDIR)$(SBLPATH)/lib
	install -m 644 ../profile/* $(DESTDIR)$(SBLPATH)/profile
	install -m 644 ../keymap/* $(DESTDIR)$(SBLPATH)/keymap
	install -m 644 ../spk/* $(DESTDIR)$(SBLPATH)/spk
	install -m 644 ../spkfilter/* $(DESTDIR)$(SBLPATH)/spkfilter
	install -m 644 ../brltbl/* $(DESTDIR)$(SBLPATH)/brltbl
	install --directory $(DESTDIR)/etc/init.d
	install -m 644 ../config/suse-blinux.conf $(DESTDIR)/etc
	install -m 744 ../config/suse-blinux $(DESTDIR)/etc/init.d
	install --directory $(DESTDIR)/usr/sbin
	ln -sf /etc/init.d/suse-blinux $(DESTDIR)/usr/sbin/sbl
	install --directory $(DESTDIR)/var/run
#	mkfifo $(DESTDIR)/var/run/sbl.fifo.in
#	mkfifo $(DESTDIR)/var/run/sbl.fifo.out


tmpinst: sbl
	install --directory $(TMPPATH)
	install --directory $(TMPPATH)/lib
	install --directory $(TMPPATH)/profile
	install --directory $(TMPPATH)/spk
	install --directory $(TMPPATH)/spkfilter
	install --directory $(TMPPATH)/brltbl
	install --directory $(TMPPATH)/keymap
	install sbl $(TMPPATH)
	install lib/* $(TMPPATH)/lib
	install -m 644 ../profile/* $(TMPPATH)/profile
	install -m 644 ../keymap/* $(TMPPATH)/keymap
	install -m 644 ../spk/* $(TMPPATH)/spk
	install -m 644 ../spkfilter/* $(TMPPATH)/spkfilter
	install -m 644 ../brltbl/* $(TMPPATH)/brltbl
	install -m 644 ../config/suse-blinux.conf.tmp $(TMPPATH)/
	install -m 744 ../config/start $(TMPPATH)/
#	mkfifo /var/run/sbl.fifo.in
#	mkfifo /var/run/sbl.fifo.out





brl_load.o: brl_load.c brl.h misc.h
	$(CC) $(CFLAGS) '-DLIB_PATH="$(LIB_PATH)"' $(BUILTIN_BRAILLE) -c brl_load.c

dynamic-braille:
	rm -f lib/sbl-brl.lst
	for target in $(BRL_TARGETS); \
	do $(MAKE)  -C $$target braille-driver || exit 1;\
	done

#brl.o: Makefile
#	cd $(BRL_TARGET); \
#	if [ -f Makefile ]; \
#	then \
#	  $(MAKE) brl.o CC='$(CC)' CFLAGS='$(CFLAGS)' LD='$(LD)' \
#	    LDFLAGS='$(LDFLAGS)' LDLIBS='$(LDLIBS)' BRLDEV='$(BRLDEV)'; \
#	else \
#	  $(MAKE) -f ../Driver.Makefile brl.o CC='$(CC)' CFLAGS='$(CFLAGS)' \
#	    LD='$(LD)' LDFLAGS='$(LDFLAGS)' LDLIBS='$(LDLIBS)' \
#	    BRLDEV='$(BRLDEV)'; \
#	fi



ldconf.o: ldconf.c ldconf.h typedefs.h sbllog.h 
	$(CC) $(CFLAGS) -c $<

mbrola.o: mbrola.c mbrola.h
	$(CC) $(CFLAGS) -c $<
ttsynth.o: ttsynth.c
	$(CC) $(LIB_CFLAGS) -c $<
ttsynthlib.so: ttsynthlib.c
	$(CC) $(LIB_CFLAGS) -shared -o ./lib/$@ $<

speechdlib.so: speechdlib.c speechdlib.h
	$(CC) $(LIB_CFLAGS) -shared -o ./lib/$@ $<
speechd.o: speechd.c speechd.h
	$(CC) $(LIB_CFLAGS) -c $<

festival.o: festival.c festival.h
	$(CC) $(CFLAGS) -c $<

sbllog.o: sbllog.c sbllog.h
	$(CC) $(CFLAGS) -c $<

spk.o: spk.c spk.h spkfilter.h typedefs.h sbllog.h
	$(CC) $(CFLAGS) -c $<

scr.o: scr.cc scr.h scrdev.h helphdr.h config.h
	$(COMPCPP) $(CFLAGS) -c scr.cc

scrdev.o: scrdev.cc scr.h scrdev.h helphdr.h config.h
	$(COMPCPP) $(CFLAGS) -c scrdev.cc

scr_vcsa.o: scr_vcsa.cc scr_vcsa.h scr.h scrdev.h config.h
	$(COMPCPP) $(CFLAGS) '-DVCSADEV="$(VCSADEV)"' -c scr_vcsa.cc

scr_shm.o: scr_shm.cc scr_shm.h scr.h scrdev.h config.h
	$(COMPCPP) $(CFLAGS) -c scr_shm.cc

inskey_lnx.o: inskey_lnx.c inskey.h
	$(CC) $(CFLAGS) -c inskey_lnx.c

misc.o: misc.c misc.h
	$(CC) $(CFLAGS) -c misc.c

sbl.o: sbl.c brl.h scr.h inskey.h misc.h config.h \
	  text.def attrib.def mbrola.h sbllog.h
	$(CC) $(CFLAGS) '-DHOME_DIR="$(DATA_DIR)"' -c sbl.c

beeps.o: beeps.c beeps.h
	$(CC) $(CFLAGS) -c beeps.c

cut-n-paste.o: cut-n-paste.c cut-n-paste.h beeps.h scr.h inskey.h
	$(CC) $(CFLAGS) -c cut-n-paste.c

clean:
	rm -f *.a */*.a
	rm -f jj.* */jj.*
	rm -f *.so */*.so
	rm -f *.o */*.o 
	rm -f sbl 
	rm -f *~ */*~ *orig */*orig \#*\# */\#*\#
	rm -f lib/*

uninstall:
	rm -rf /usr/lib/suse-blinux
	rm -f /etc/init.d/suse-blinux
	rm -f /etc/suse-blinux.conf
	rm -f /usr/sbin/sbl
	
tmpuninst:
	rm -rf /tmp/suse-blinux
