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

#
# mISDNuser PATHS
#
ifndef MISDNUSER
#MISDNUSER=/usr/src/echo-cancel/install-misdn/mISDNuser
MISDNUSER=/usr/src/install-misdn/mISDNuser
endif

MISDNUSERINC=$(MISDNUSER)/include
MISDNUSERLIB=$(MISDNUSER)/lib

#
# mISDNuser Version
#
# If you dont use the Jolly mISDNuser version above 2.7 then comment this
#
CFLAGS+=-DMISDNUSER_JOLLY



#
# If you use Asterisk v1-0-X (Stable) uncomment the following
#
#AST_CFLAGS=-DASTERISK_STABLE


CFLAGS+=$(AST_CFLAGS)

#
# The following line tells the makefile where to put in the configfile 
# of this module
#
AST_CONFIG_DIR=/etc/asterisk/


#
# Wether to use asterisk dsp for dtmf tone detection
#
#CFLAGS+=-DMISDN_CHECK_DTMFS 

#
# chan_misdn_version
#
CFLAGS+=-DCHAN_MISDN_VERSION=\"$(shell cat VERSION)\"
#CFLAGS+=-DCHAN_MISDN_VERSION=\"AsteriskVersion\"

CFLAGS+=-g -ggdb -Wall -D_GNU_SOURCE
CFLAGS+=-Wno-missing-prototypes -Wno-missing-declarations

CFLAGS+=-I$(MISDNUSERINC) -I$(MISDNUSER)/i4lnet/ 


CFLAGS+=-fPIC -I$(ASTERISKINC) -DAST_CONFIG_DIR=\"$(AST_CONFIG_DIR)\" -Imisdn/ -Wall


CFLAGS+=-fomit-frame-pointer -D_REENTRANT


MISDNOBJS=chan_misdn.o misdn/chan_misdn_lib.a chan_misdn_config.o
ADDOBJS+=$(MISDNUSER)/i4lnet/libisdnnet.a $(MISDNUSER)/lib/libmISDN.a

all: chan_misdn.so app_ptyfork.so app_waitfordigits.so app_v110.so

$(ADDOBJS):
	@if [ ! -f $(MISDNUSER)/i4lnet/libisdnnet.a -o ! -f $(MISDNUSER)/lib/libmISDN.a ] ; then echo -e "\nYou need mISDNuser to compile chan_misdn!\nPlease read the README\nOr just type: make misdn_install\n" ; exit 1;  fi 

chan_misdn.so: $(MISDNOBJS) $(ADDOBJS) 
	$(CC) -shared -Xlinker -x -o $@ $(MISDNOBJS) $(ADDOBJS) 

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

misdn/chan_misdn_lib.a:
	make -C misdn MISDNUSER=$(MISDNUSER) EXTRA_CFLAGS=$(AST_CFLAGS)

testphone:  testphone.c
	$(CC) -I$(MISDNUSERINC) -I$(MISDNUSER)/i4lnet/   testphone.c $(MISDNUSERLIB)/libmISDN.a -o testphone

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

app_v110.so: app_v110.o
	$(CC) -shared -Xlinker -x -o $@ app_v110.o

app_ptyfork.so: app_ptyfork.o
	$(CC) -shared -Xlinker -x -o $@ app_ptyfork.o

app_waitfordigits.so: app_waitfordigits.o
	$(CC) -shared -Xlinker -x -o $@ app_waitfordigits.o


clean: 
	rm -rf *.o *.so *~ te_test core.* portinfo app_v110.so app_ptyfork.so app_waitfordigits.so
	make -C misdn clean MISDNUSER=$(MISDNUSER) 



snapshot:
	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


misdn:
	mkdir -p lib
	make -f Makefile.misdn


misdn_install:
	mkdir -p lib
	make -f Makefile.misdn install

misdn_clean:
	rm -rf lib

.PHONY: clean snapshot misdn misdn_install misdn_clean
