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

#
# The following line tells the makefile where to find the asterisk src, so 
# please edit this one if necessary 
#
ASTERISKSRC=../../

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

#
# The Includes are Set appropriatly
#
ASTERISKINC=$(ASTERISKSRC)/include


#
# mISDNuser PATHS
#
#MISDNUSER=/usr/src/install-misdn/mISDNuser
MISDNUSER=/usr/src/echo-cancel/install-misdn/mISDNuser
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


#
# ASTERISK Version
# If you are using a asterisk version above from stable (v1-0)
# then comment the following line out (good luck)
#
#CFLAGS+=-DASTERISK_STABLE

#CFLAGS+=-DUSE_ZT_EC


#LINUXROOT=/usr/src/linux-2.6
LINUXROOT=/lib/modules/$(shell uname -r)/build

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

#
# Linux Includes (must be patched with mISDN!)
#
LINUXINC=$(LINUXROOT)/include


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

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

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


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


MISDNOBJS=chan_misdn.o isdn_lib.o  isdn_msg_parser.o  chan_misdn_config.o
#config.o
ADDOBJS+=$(MISDNUSER)/i4lnet/libisdnnet.a $(MISDNUSER)/lib/libmISDN.a


all: chan_misdn.so app_v110.so app_ptyfork.so app_waitfordigits.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: $(ADDOBJS) $(MISDNOBJS) 
	$(CC) -shared -Xlinker -x -o $@ $(MISDNOBJS) $(ADDOBJS) 

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

install: chan_misdn.so app_v110.so app_ptyfork.so app_waitfordigits.so
	install -m 644 chan_misdn.so $(INSTALL_MODPATH)/
	install -m 644 app_v110.so $(INSTALL_MODPATH)/
	install -m 644 app_ptyfork.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

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

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

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

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


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

te_test: te_lib.o te_test.o
	$(CC) $(CFLAGS) te_lib.o te_test.o $(MISDNUSERLIB)/libmISDN.a $(MISDNUSER)/i4lnet/libisdnnet.a -lpthread  -o te_test

portinfo: portinfo.c
	$(CC) $(CFLAGS) portinfo.c -ggdb $(MISDNUSERLIB)/libmISDN.a  -o portinfo

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


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 ; \
	cd /tmp/; \
	tar czf $$DIR.tgz $$DIR


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


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

misdn_clean:
	rm -rf lib

.PHONEY: clean snapshot misdn misdn_install misdn_clean
