Add support for ICE/STUN/TURN in res_rtp_asterisk and chan_sip.
[asterisk/asterisk.git] / res / pjproject / pjlib / build / Makefile
1 include ../../build.mak
2 include ../../version.mak
3 include $(PJDIR)/build/common.mak
4
5 RULES_MAK := $(PJDIR)/build/rules.mak
6
7
8 export PJLIB_LIB := ../lib/libpj-$(TARGET_NAME)$(LIBEXT)
9
10 ###############################################################################
11 # Gather all flags.
12 #
13 export _CFLAGS  := $(CC_CFLAGS) $(OS_CFLAGS) $(HOST_CFLAGS) $(M_CFLAGS) \
14                    $(CFLAGS) $(CC_INC)../include
15 export _CXXFLAGS:= $(_CFLAGS) $(CC_CXXFLAGS) $(OS_CXXFLAGS) $(M_CXXFLAGS) \
16                    $(HOST_CXXFLAGS) $(CXXFLAGS)
17 export _LDFLAGS := $(subst /,$(HOST_PSEP),$(PJLIB_LIB)) \
18                    $(CC_LDFLAGS) $(OS_LDFLAGS) $(M_LDFLAGS) $(HOST_LDFLAGS) \
19                    $(LDFLAGS) 
20
21 ###############################################################################
22 # Defines for building PJLIB library
23 #
24 export PJLIB_SRCDIR = ../src/pj
25 export PJLIB_OBJS += $(OS_OBJS) $(M_OBJS) $(CC_OBJS) $(HOST_OBJS) \
26         activesock.o array.o config.o ctype.o errno.o except.o fifobuf.o \
27         guid.o hash.o ip_helper_generic.o list.o lock.o log.o os_time_common.o \
28         os_info.o pool.o pool_buf.o pool_caching.o pool_dbg.o rand.o \
29         rbtree.o sock_common.o sock_qos_common.o sock_qos_bsd.o \
30         ssl_sock_common.o ssl_sock_ossl.o ssl_sock_dump.o \
31         string.o timer.o types.o
32 export PJLIB_CFLAGS += $(_CFLAGS)
33
34 ###############################################################################
35 # Defines for building test application
36 #
37 export TEST_SRCDIR = ../src/pjlib-test
38 export TEST_OBJS += activesock.o atomic.o echo_clt.o errno.o exception.o \
39                     fifobuf.o file.o hash_test.o ioq_perf.o ioq_udp.o \
40                     ioq_unreg.o ioq_tcp.o \
41                     list.o mutex.o os.o pool.o pool_perf.o rand.o rbtree.o \
42                     select.o sleep.o sock.o sock_perf.o ssl_sock.o \
43                     string.o test.o thread.o timer.o timestamp.o \
44                     udp_echo_srv_sync.o udp_echo_srv_ioqueue.o \
45                     util.o
46 export TEST_CFLAGS += $(_CFLAGS)
47 export TEST_LDFLAGS += $(_LDFLAGS)
48 export TEST_EXE := ../bin/pjlib-test-$(TARGET_NAME)$(HOST_EXE)
49
50         
51 export CC_OUT CC AR RANLIB HOST_MV HOST_RM HOST_RMDIR HOST_MKDIR OBJEXT LD LDOUT 
52 ###############################################################################
53 # Main entry
54 #
55 # $(TARGET) is defined in os-$(OS_NAME).mak file in current directory.
56 #
57
58 all: $(TARGETS)
59
60 doc:
61         cd .. && rm -rf docs/$(PJ_VERSION) && doxygen docs/doxygen.cfg
62         @if [ -n "$(WWWDIR)" ] && ! [ -d "$(WWWDIR)/docs/$(PJ_VERSION)/pjlib/docs/html" ] ; then \
63                 echo "Creating docs/$(PJ_VERSION)/pjlib/docs/html" ; \
64                 mkdir -p $(WWWDIR)/docs/$(PJ_VERSION)/pjlib/docs/html ; \
65         fi 
66         @if [ -n "$(WWWDIR)" ] && [ -d "$(WWWDIR)/docs/$(PJ_VERSION)/pjlib/docs/html" ] ; then \
67                 echo "Copying docs/$(PJ_VERSION) to $(WWWDIR)/docs/$(PJ_VERSION)/pjlib/docs/html.." ; \
68                 cp -v -a ../docs/$(PJ_VERSION)/html/* $(WWWDIR)/docs/$(PJ_VERSION)/pjlib/docs/html/ ; \
69         fi
70 print:
71         $(MAKE) -f $(RULES_MAK) APP=PJLIB app=pjlib print_lib
72         $(MAKE) -f $(RULES_MAK) APP=TEST app=pjlib-test print_bin
73         
74 depend: ../include/pj/config_site.h
75         $(MAKE) -f $(RULES_MAK) APP=PJLIB app=pjlib depend
76         $(MAKE) -f $(RULES_MAK) APP=TEST app=pjlib-test depend
77         echo '$(TEST_EXE): $(PJLIB_LIB)' >> .pjlib-test-$(TARGET_NAME).depend
78
79
80 .PHONY: dep depend pjlib pjlib-test clean realclean distclean
81
82 dep: depend
83
84 pjlib: ../include/pj/config_site.h
85         $(MAKE) -f $(RULES_MAK) APP=PJLIB app=pjlib $(PJLIB_LIB)
86
87 ../include/pj/config_site.h:
88         touch ../include/pj/config_site.h
89         
90 pjlib-test: 
91         $(MAKE) -f $(RULES_MAK) APP=TEST app=pjlib-test $(TEST_EXE)
92
93 .PHONY: ../lib/pjlib.ko
94 ../lib/pjlib.ko:
95         echo Making $@
96         $(MAKE) -f $(RULES_MAK) APP=PJLIB app=pjlib $@
97
98 .PHONY: ../lib/pjlib-test.ko
99 ../lib/pjlib-test.ko:
100         $(MAKE) -f $(RULES_MAK) APP=TEST app=pjlib-test $@
101
102 clean:
103         $(MAKE) -f $(RULES_MAK) APP=PJLIB app=pjlib clean
104         $(MAKE) -f $(RULES_MAK) APP=TEST app=pjlib-test clean
105
106 realclean:
107         $(subst @@,$(subst /,$(HOST_PSEP),.pjlib-$(TARGET_NAME).depend),$(HOST_RMR))
108         $(subst @@,$(subst /,$(HOST_PSEP),.pjlib-test-$(TARGET_NAME).depend),$(HOST_RMR))
109         $(MAKE) -f $(RULES_MAK) APP=PJLIB app=pjlib realclean
110         $(MAKE) -f $(RULES_MAK) APP=TEST app=pjlib-test realclean
111
112 distclean: realclean
113
114 gcov-report:
115         $(MAKE) -f $(RULES_MAK) APP=PJLIB app=pjlib gcov-report
116         $(MAKE) -f $(RULES_MAK) APP=TEST app=pjlib-test gcov-report
117