### sbl - suse-blinux Makefile
### Author: Marco Skambraks <marco@suse.de>

### arm
#CC = /opt/cross/bin/arm-linux-gcc


include ../make.config

## i386 compiler
CC = gcc
## objects
BRAILLE_TARGETS=dynamic-braille
SBLPATH=$(PROGPATH)
LIB_PATH = ./lib/
SCR_O = scr.o
INSKEY_O = inskey_lnx.o        
SBL_OBJECTS = sbl.o misc.o beeps.o cut-n-paste.o $(INSKEY_O) sbllog.o mbrola.o festival.o spk.o ldconf.o kbdsniff.o trans.o system.o selkey.o
SBL_OBJECTS+= ttsynth.o
SBL_OBJECTS+= speechd.o

BRLDEV = /dev/ttyS0
EXEC_PATH = ./
REINSTALL_PATH = ./
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 -Wno-unused-result -D_POSIX_C_SOURCE=2 -D_BSD_SOURCE -s 
#COMMONCFLAGS = -O2 -Wall -D_POSIX_C_SOURCE=2 -D_BSD_SOURCE
#CFLAGS = $(COMMONCFLAGS)
CFLAGS = -fPIC $(COMMONCFLAGS) 

LIB_CFLAGS = $(CFLAGS) -fPIC
LIB_SO_NAME = libsbl-
LIB_VER = 2
LD = $(CC)
COMMONLDFLAGS = -rdynamic
LDFLAGS = $(COMMONLDFLAGS)
LDLIBS = -L. -lspeech -ldl 
BRL_TARGETS = Alva_usb Pwrbrl Fhp_usb Fhp HT Baum Tieman None Alva

.EXPORT_ALL_VARIABLES:

all: softspeech sbl ttsynthlib.so speechdlib.so $(BRAILLE_TARGETS)

softspeech:
	$(MAKE) -C speech


sbl: $(SBL_OBJECTS) $(SCR_O) 
	$(LD) $(LDFLAGS) -Wl,-rpath,$(SBLPATH)/lib -o $@ $? $(LDLIBS)

install: sbl
	install --directory $(DESTDIR)$(SBLPATH)
	install --directory $(DESTDIR)$(SBLPATH)/lib
	install --directory $(DESTDIR)$(CONFDIR)/sbl
	install --directory $(DESTDIR)$(CONFDIR)/sbl/profile
	install --directory $(DESTDIR)$(CONFDIR)/sbl/spk
	install --directory $(DESTDIR)$(CONFDIR)/sbl/spkfilter
	install --directory $(DESTDIR)$(CONFDIR)/sbl/brltbl
	install --directory $(DESTDIR)$(CONFDIR)/sbl/keymap
	install --directory $(DESTDIR)$(PREFIX)/sbin
	install -s sbl $(DESTDIR)$(PREFIX)/sbin
	install -s lib/* $(DESTDIR)$(SBLPATH)/lib
	install -m 644 ../profile/* $(DESTDIR)$(CONFDIR)/sbl/profile
	install -m 644 ../keymap/* $(DESTDIR)$(CONFDIR)/sbl/keymap
	install -m 644 ../spk/* $(DESTDIR)$(CONFDIR)/sbl/spk
	install -m 644 ../spkfilter/* $(DESTDIR)$(CONFDIR)/sbl/spkfilter
	install -m 644 ../brltbl/* $(DESTDIR)$(CONFDIR)/sbl/brltbl
	install --directory $(DESTDIR)$(CONFDIR)/init.d
	install -m 644 ../config/sbl.conf $(DESTDIR)$(CONFDIR)
	install -m 744 ../config/sbl $(DESTDIR)$(CONFDIR)/init.d
	ln -sf $(CONFDIR)/init.d/sbl $(DESTDIR)$(PREFIX)/sbin/rcsbl
	install --directory $(DESTDIR)/var/run
#	mkfifo $(DESTDIR)/var/run/sbl.fifo.in
#	mkfifo $(DESTDIR)/var/run/sbl.fifo.out
	install --directory $(DESTDIR)$(MANDIR)/man8
	install -m 644 ../man/sbl.8 $(DESTDIR)$(MANDIR)/man8





#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

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

mbrola.o: mbrola.c mbrola.h
	$(CC) $(CFLAGS) '-DPROGPATH="$(SBLPATH)"' -c $<
ttsynth.o: ttsynth.c
	$(CC) $(LIB_CFLAGS) -c $<
ttsynthlib.so: ttsynthlib.c
	$(CC) $(LIB_CFLAGS) -shared -Wl,-soname,$@ -o ./lib/$@ $<

speechdlib.so: speechdlib.c speechdlib.h
	$(CC) $(LIB_CFLAGS) -shared -Wl,-soname,$@ -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) -fPIC $(CFLAGS) -c $<

spk.o: spk.c spk.h spkfilter.h typedefs.h sbllog.h
	$(CC) $(CFLAGS) '-DPROGPATH="$(SBLPATH)"' -c $<

$(SCR_O): scr.c
	$(CC) $(CFLAGS) -c scr.c


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 kbdsniff.c system.c selkey.c
	$(CC) $(CFLAGS) '-DPROGPATH="$(SBLPATH)"' '-DCONFDIR="$(CONFDIR)"' -c $?

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

cut-n-paste.o: cut-n-paste.c
	$(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 $(SBLPATH)
	rm -f $(CONFDIR)/init.d/sbl
	rm -f $(CONFDIR)/sbl.conf
	rm -f $(PREFIX)/sbin/sbl
	
