#for Releases
MAJOR=3
MINOR=-1
#for Candidates
CANDIDATE=25

#internal stuff regarding releases
MINOR_CANDIDATE=$(shell echo $$(($(MINOR)+1 )))
RELEASE_VERSION=0.$(MAJOR).$(MINOR)
CANDIDATE_VERSION=0.$(MAJOR).$(MINOR_CANDIDATE)-rc$(CANDIDATE)

#
# The following line tells the makefile where to install the module, 
# if necessary, please edit it 
#
INSTALL_MODPATH=/usr/lib/asterisk/modules


AST_PACK_DIR := /usr/src/asterisk

CFLAGS+=-g -ggdb -Wall -D_GNU_SOURCE
CFLAGS+=-Wno-missing-prototypes -Wno-missing-declarations
CFLAGS+=-fomit-frame-pointer -D_REENTRANT
CFLAGS+=-fPIC -Imisdn -Wall


MISDNOBJS=chan_misdn.o misdn/chan_misdn_lib.a misdn_config.o 

ADDOBJS+=/usr/lib/libisdnnet.so /usr/lib/libmISDN.so

all: chan_misdn.so 

$(ADDOBJS):
	@if [ ! -f $(MISDNUSERLIB)/libisdnnet.so -o ! -f $(MISDNUSERLIB)/libmISDN.so ] ; then echo -e "\nYou need mISDNuser to compile chan_misdn!\nPlease read the README\n" ; exit 1;  fi 

chan_misdn.so: $(MISDNOBJS) $(ADDOBJS) 
	$(CC) -shared -Xlinker -x -L/usr/lib/mISDNuser -o $@ $(MISDNOBJS) -lisdnnet -lmISDN

chan_misdn.o: chan_misdn.c
	$(CC) $(CFLAGS) -DCHAN_MISDN_VERSION=\"$(CANDIDATE_VERSION)\" -c chan_misdn.c


misdn_config.o: misdn_config.c
	$(CC) $(CFLAGS) -c misdn_config.c

misdn/chan_misdn_lib.a: misdn/isdn_lib.c misdn/isdn_lib.h misdn/isdn_msg_parser.c
	make -C misdn

install: chan_misdn.so 
	install -m 644 chan_misdn.so $(INSTALL_MODPATH)/
	if [ ! -f /etc/asterisk/misdn.conf ] ; then cp misdn.conf /etc/asterisk/; fi
	if [ ! -e /dev/mISDN ] ; then mknod /dev/mISDN c 46 0; fi
	@echo 
	@echo INSTALLATION SUCCEEDED

clean: 
	rm -rf *.o *.so *~ te_test core.* portinfo app_v110.so app_ptyfork.so app_waitfordigits.so 
	make -C misdn clean

clean_tags:
	rm -rf TAGS

snapshot: clean
	DIR=chan_misdn-$$(date +"20%y_%m_%d") ; \
	echo $$(date +"20%y_%m_%d" | sed -e "s/\//_/g") > VERSION ; \
	mkdir -p /tmp/$$DIR ; \
	cp * /tmp/$$DIR ; \
	mkdir -p /tmp/$$DIR/misdn ; \
	cp misdn/* /tmp/$$DIR/misdn ; \
	cd /tmp/; \
	tar czf $$DIR.tar.gz $$DIR


candidate: clean
#	cvs tag "V0_$(MAJOR)_$(MINOR_CANDIDATE)-rc$(CANDIDATE)"
	DIR=chan_misdn;\
	echo "$(CANDIDATE_VERSION)" > VERSION;\
	rm -rf /tmp/$$DIR ; \
	mkdir -p /tmp/$$DIR ; \
	cp * /tmp/$$DIR ; \
	mkdir -p /tmp/$$DIR/misdn ; \
	cp misdn/* /tmp/$$DIR/misdn ; \
	cd /tmp/; \
	tar czf chan_misdn-$(CANDIDATE_VERSION).tar.gz $$DIR


pack:
	cp $(AST_PACK_DIR)/channels/chan_misdn*.c .
	cp $(AST_PACK_DIR)/channels/misdn*.c .
	cp $(AST_PACK_DIR)/channels/misdn . -a
	cp $(AST_PACK_DIR)/configs/misdn.conf.sample misdn.conf
	cp $(AST_PACK_DIR)/doc/README.misdn .


pack_clean:
	rm -rf chan_misdn*.c
	rm -rf misdn
	rm -rf README.misdn misdn.conf
	rm -rf VERSION

tags:
	etags *.[ch] misdn/*.[ch]

.PHONY: clean snapshot misdn misdn_install misdn_clean tags
