CFLAGS+=$(EXTRA_CFLAGS)
#debugscript
DEBUGSCRIPT=sed -e "s/{/{\nchan_misdn_log(\"SEGFAULT_DEBUG: %d\\\n\",__LINE__)/g"
UNDEBUGSCRIPT=sed -e "s/{/{\nchan_misdn_log(\"SEGFAULT_DEBUG: %d\\\n\",__LINE__)/g"

#
# 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=/usr/src/asterisk-stable

#
# 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
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


LINUXROOT=/usr/src/linux-2.6

#
# Kernel 2.4 ? 
#
#CFLAGS+=-DKERNEL_24

#
# 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+=-ggdb -Wall -D_GNU_SOURCE
CFLAGS+=-Wno-missing-prototypes -Wno-missing-declarations

all: chan_misdn.so

CFLAGS+=-fPIC -I$(ASTERISKINC) -DAST_CONFIG_DIR=\"$(AST_CONFIG_DIR)\" -I$(MISDNUSERINC) -I$(LINUXINC) -I$(MISDNUSER)/i4lnet/ -Wall
ADDOBJS+=$(MISDNUSER)/i4lnet/libisdnnet.a $(MISDNUSER)/lib/libmISDN.a

chan_misdn.so: chan_misdn.o te_lib.o crypt.o ec.o $(ADDOBJS)
	$(CC) -shared -Xlinker -x -o $@ ec.o te_lib.o crypt.o chan_misdn.o $(ADDOBJS) 

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

install: chan_misdn.so
	install -m 644 chan_misdn.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

#tmp: 
#	./sed_make_ies MSGS.DATA > ies_data.c
#	./sed_make_msgs MSGS.DATA > msgs_data.c
debug:
	$(DEBUGSCRIPT) te_lib.c
	$(DEBUGSCRIPT) chan_misdn.c

undebug:
	$(UNDEBUGSCRIPT) te_lib.c
	$(UNDEBUGSCRIPT) chan_misdn.c


te_lib.o: te_lib.c te_lib.h isdn_msg.c isdn_msg_parser.c
	$(CC) -I$(MISDNUSERINC) -I$(MISDNUSER)/i4lnet/ -I$(LINUXINC) $(CFLAGS) -ggdb -c te_lib.c

ec.o: ec.c 
	$(CC) $(CFLAGS) -ggdb -c ec.c

crypt.o: crypt.c crypt.h 
	$(CC) $(CFLAGS) -ggdb -c crypt.c

te_test.o: te_test.c
	$(CC) -I$(MISDNUSERINC) -I$(MISDNUSER)/i4lnet/ -I$(LINUXINC) $(CFLAGS)-ggdb -c te_test.c

te_test: te_lib.o te_test.o
	$(CC) -I$(MISDNUSERINC) -I$(MISDNUSER)/i4lnet/ -I$(LINUXINC) $(CFLAGS) te_lib.o te_test.o $(MISDNUSERLIB)/libmISDN.a $(MISDNUSER)/i4lnet/libisdnnet.a -lpthread -ggdb -o te_test
#$(MISDNUSERLIB)/libmISDN.a 

clean: 
	rm -rf *.o *.so *~ te_test core.*

getmisdn:
	cvs -d :pserver:guest:readonly@cvs.isdn4linux.de:/i4ldev login
	cvs -d :pserver:guest:readonly@cvs.isdn4linux.de:/i4ldev co mISDN
	cvs -d :pserver:guest:readonly@cvs.isdn4linux.de:/i4ldev co mISDNuser

misdn:	
	make -C $(LINUXROOT) SUBDIRS=mISDN/drivers/isdn/hardware/mISDN modules modules_install
	make -C mISDNuser

snapshot:
	DIR=chan_misdn-$$(date +"%d_%m_%y") ; \
	echo $$(date +"%d_%m_%y" | sed -e "s/\//_/g") > VERSION ; \
	mkdir /tmp/$$DIR ; \
	cp * /tmp/$$DIR ; \
	cd /tmp/; \
	tar czf $$DIR.tgz $$DIR


