blob: a36f5f44b463d85bb9e79cbcb35a270b2cf72dbe [file] [log] [blame]
Tristan Matthews0a329cc2013-07-17 13:20:14 -04001include ../../build.mak
2include ../../version.mak
3include $(PJDIR)/build/common.mak
4
5RULES_MAK := $(PJDIR)/build/rules.mak
6
7
8export PJLIB_LIB := ../lib/libpj-$(TARGET_NAME)$(LIBEXT)
9
10###############################################################################
11# Gather all flags.
12#
13export _CFLAGS := $(CC_CFLAGS) $(OS_CFLAGS) $(HOST_CFLAGS) $(M_CFLAGS) \
14 $(CFLAGS) $(CC_INC)../include
15export _CXXFLAGS:= $(_CFLAGS) $(CC_CXXFLAGS) $(OS_CXXFLAGS) $(M_CXXFLAGS) \
16 $(HOST_CXXFLAGS) $(CXXFLAGS)
17export _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#
24export PJLIB_SRCDIR = ../src/pj
25export 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
32export PJLIB_CFLAGS += $(_CFLAGS)
33
34###############################################################################
35# Defines for building test application
36#
37export TEST_SRCDIR = ../src/pjlib-test
38export 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
46export TEST_CFLAGS += $(_CFLAGS)
47export TEST_LDFLAGS += $(_LDFLAGS)
48export TEST_EXE := ../bin/pjlib-test-$(TARGET_NAME)$(HOST_EXE)
49
50
51export 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
58all: $(TARGETS)
59
60doc:
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
70print:
71 $(MAKE) -f $(RULES_MAK) APP=PJLIB app=pjlib print_lib
72 $(MAKE) -f $(RULES_MAK) APP=TEST app=pjlib-test print_bin
73
74depend: ../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
82dep: depend
83
84pjlib: ../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
90pjlib-test: pjlib
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
102clean:
103 $(MAKE) -f $(RULES_MAK) APP=PJLIB app=pjlib clean
104 $(MAKE) -f $(RULES_MAK) APP=TEST app=pjlib-test clean
105
106realclean:
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
112distclean: realclean
113
114gcov-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