#Makefile
CPP=c++
OPT=-O
WARN=-pedantic -Wall -W -Wno-long-long -Wno-unused -Werror -ansi
CFLAG=$(OPT) $(WARN) -DQT_THREAD_SUPPORT -D_REENTRANT
LIBS=-L$(QTDIR)/lib -lqt-mt -lpthread

MOC=$(QTDIR)/bin/moc
INC=-I./ -I$(QTDIR)/include -Istests/ -Ibnf/ -Icert_test

MLIB=$(CPP) $(CFLAG) $(INC) -c
MPROG=$(CPP) $(CFLAG) $(INC) *.o stests/*.o bnf/*.o cert_test/*.o $(LIBS)

OBJS=qsipb_packetview.o sipb_sendrecv_udp.o sipb_addfun.o\
     sipb_sendrecv_tcp.o sipb_transport.o sipb_ipaddr.o\
     qsipb_stestinfo.o qsipb_stmanager.o qsipb_stchooser.o\
     qsipb_stpnkeep.o sipb_netfun.o qsipb_handtest.o qsipb_packetedit.o\
     qsipb_stconf_dialog.o qsipb_ewshower.o qsipb_pwrapper.o\
     qsipb_stpwrapper.o qsipb_htpwrapper.o sipb_errwarn.o qsipb_ht_plist.o\
     sipb_paramlist.o qsipb_inputparamset.o qsipb_gen.o sipb_main.o $(MOC_OBJS)

MOC_OBJS=moc_qsipb_stmanager.o moc_qsipb_stchooser.o\
         moc_qsipb_stconf_dialog.o moc_qsipb_inputparamset.o\
         moc_qsipb_handtest.o moc_qsipb_packetview.o moc_qsipb_ht_plist.o\
	 moc_qsipb_gen.o
all:sipb_main

.cpp.o:
	$(MLIB) $*.cpp -o $*.o

#TODO: make it more correctly!
moc_qsipb_stmanager.cpp:
	$(MOC)   qsipb_stmanager.h -o moc_qsipb_stmanager.cpp
moc_qsipb_stchooser.cpp:
	$(MOC)   qsipb_stchooser.h -o moc_qsipb_stchooser.cpp
moc_qsipb_stconf_dialog.cpp:
	$(MOC)   qsipb_stconf_dialog.h -o moc_qsipb_stconf_dialog.cpp
moc_qsipb_inputparamset.cpp:
	$(MOC)   qsipb_inputparamset.h -o moc_qsipb_inputparamset.cpp
moc_qsipb_handtest.cpp:
	$(MOC)   qsipb_handtest.h -o moc_qsipb_handtest.cpp
moc_qsipb_ht_plist.cpp:
	$(MOC)   qsipb_ht_plist.h -o moc_qsipb_ht_plist.cpp
moc_qsipb_packetview.cpp:
	$(MOC)   qsipb_packetview.h -o moc_qsipb_packetview.cpp
moc_qsipb_gen.cpp:
	$(MOC)   qsipb_gen.h -o moc_qsipb_gen.cpp

sipb_main:subdirs $(OBJS)
	$(MPROG) -o sipb_main

subdirs:
	cd stests;make all
	cd bnf;make all
	cd cert_test;make all
clean:
	rm -f core a.out *.o *.a sipb_main moc_*.cpp
	cd stests;make clean
	cd bnf;make clean
	cd cert_test;make clean
lclean:
	rm -f core a.out *.o *.a sipb_main moc_*.cpp
