#PLATFORM = LINUX
PLATFORM = LINUX_LC6              # for GNU LibC 6
#PLATFORM = FREEBSD

CFLAGS += -O2
#DEBUG = -DINCL_DEBUG_CODE
DEFINES = -D$(PLATFORM) $(DEBUG)
INCLUDES = -I ../server

CC = gcc
LEX = flex -I
YACC = bison

PREFIX = /usr/local
BINDIR = $(PREFIX)/bin
MANDIR = $(PREFIX)/man

#===========================================================
# You shouldn't need to change anything beyond this point
#===========================================================
PROGS = gsmts0338 decode_pdu encode_pdu
MANPAGES = $(wildcard *.[0-9])
HTMLMAN = $(addsuffix .html, $(MANPAGES))

#=============================================================
all: $(PROGS)

doc: $(HTMLMAN)

gsmts0338: gsmts0338.o ../server/stuff.o ../server/pdu.o
	$(CC) -o gsmts0338 gsmts0338.o ../server/stuff.o ../server/pdu.o -lm

decode_pdu: decode_pdu.o ../server/stuff.o ../server/pdu.o ../server/gsmdevices.o
	$(CC) -o decode_pdu decode_pdu.o ../server/stuff.o ../server/pdu.o ../server/gsmdevices.o -lm -lmodem

encode_pdu: encode_pdu.o ../server/stuff.o ../server/pdu.o
	$(CC) -o encode_pdu encode_pdu.o ../server/stuff.o ../server/pdu.o -lm

gsmts0338.o: gsmts0338.c ../server/sms_serv.h ../server/pdu.h gsmts0338.h
	$(CC) $(CFLAGS) $(INCLUDES) $(DEFINES) -c gsmts0338.c

decode_pdu.o: decode_pdu.c ../server/sms_serv.h ../server/pdu.h decode_pdu.h
	$(CC) $(CFLAGS) $(INCLUDES) $(DEFINES) -c decode_pdu.c

encode_pdu.o: encode_pdu.c ../server/sms_serv.h ../server/pdu.h encode_pdu.h
	$(CC) $(CFLAGS) $(INCLUDES) $(DEFINES) -c encode_pdu.c

install: $(PROGS)
	install -g bin -o root -m 755 gsmts0338 $(BINDIR)
	install -g bin -o root -m 755 encode_pdu $(BINDIR)
	install -g bin -o root -m 755 decode_pdu $(BINDIR)
	strip $(BINDIR)/gsmts0338
	strip $(BINDIR)/encode_pdu
	strip $(BINDIR)/decode_pdu
	install -g bin -o root -m 644 gsmts0338.1 $(MANDIR)/man1
	install -g bin -o root -m 644 encode_pdu.1 $(MANDIR)/man1
	install -g bin -o root -m 644 decode_pdu.1 $(MANDIR)/man1

%.1.html: %.1
	rman -f HTML -r '%s.%s.html' $< > $@

%.5.html: %.5
	rman -f HTML -r '%s.%s.html' $< > $@

clean:
	rm -f core $(PROGS) *.o *~ *.html

