blob: c3819f34e57a0ff21400387931f6e2334dbd2d1b [file] [log] [blame]
Benny Prijono27c98722007-04-09 21:28:15 +00001include ../../build.mak
2include $(PJDIR)/build/common.mak
Benny Prijonodd859a62005-11-01 16:42:51 +00003
Benny Prijono27c98722007-04-09 21:28:15 +00004RULES_MAK := $(PJDIR)/build/rules.mak
Benny Prijonodd859a62005-11-01 16:42:51 +00005
6
Benny Prijono0382cd82006-05-04 08:43:02 +00007export PJLIB_LIB := ../lib/libpj-$(TARGET_NAME)$(LIBEXT)
Benny Prijonodd859a62005-11-01 16:42:51 +00008
9###############################################################################
10# Gather all flags.
11#
Benny Prijono3d327302006-02-08 11:14:03 +000012export _CFLAGS := $(CC_CFLAGS) $(OS_CFLAGS) $(HOST_CFLAGS) $(M_CFLAGS) \
Benny Prijonodd859a62005-11-01 16:42:51 +000013 $(CFLAGS) $(CC_INC)../include
14export _CXXFLAGS:= $(_CFLAGS) $(CC_CXXFLAGS) $(OS_CXXFLAGS) $(M_CXXFLAGS) \
15 $(HOST_CXXFLAGS) $(CXXFLAGS)
16export _LDFLAGS := $(subst /,$(HOST_PSEP),$(PJLIB_LIB)) \
17 $(CC_LDFLAGS) $(OS_LDFLAGS) $(M_LDFLAGS) $(HOST_LDFLAGS) \
18 $(LDFLAGS)
19
20###############################################################################
21# Defines for building PJLIB library
22#
23export PJLIB_SRCDIR = ../src/pj
24export PJLIB_OBJS += $(OS_OBJS) $(M_OBJS) $(CC_OBJS) $(HOST_OBJS) \
Benny Prijono4bac2c12008-05-11 18:12:16 +000025 activesock.o array.o config.o ctype.o errno.o except.o fifobuf.o \
26 guid.o hash.o ip_helper_generic.o list.o lock.o log.o os_time_common.o \
Benny Prijono7d93d4e2006-09-17 19:54:23 +000027 pool.o pool_buf.o pool_caching.o pool_dbg.o rand.o \
Benny Prijono8ab968f2007-07-20 08:08:30 +000028 rbtree.o sock_common.o string.o timer.o types.o
Benny Prijonodd859a62005-11-01 16:42:51 +000029export PJLIB_CFLAGS += $(_CFLAGS)
30
31###############################################################################
32# Defines for building test application
33#
34export TEST_SRCDIR = ../src/pjlib-test
Benny Prijono4bac2c12008-05-11 18:12:16 +000035export TEST_OBJS += activesock.o atomic.o echo_clt.o errno.o exception.o \
Benny Prijonof1370372008-07-14 16:58:11 +000036 fifobuf.o file.o hash_test.o ioq_perf.o ioq_udp.o \
37 ioq_unreg.o ioq_tcp.o \
Benny Prijonodd859a62005-11-01 16:42:51 +000038 list.o mutex.o os.o pool.o pool_perf.o rand.o rbtree.o \
39 select.o sleep.o sock.o sock_perf.o \
40 string.o test.o thread.o timer.o timestamp.o \
Benny Prijono40ce3fb2005-11-07 18:14:08 +000041 udp_echo_srv_sync.o udp_echo_srv_ioqueue.o \
Benny Prijonoe91bf772005-11-08 11:31:55 +000042 util.o
Benny Prijonodd859a62005-11-01 16:42:51 +000043export TEST_CFLAGS += $(_CFLAGS)
44export TEST_LDFLAGS += $(_LDFLAGS)
Benny Prijono0382cd82006-05-04 08:43:02 +000045export TEST_EXE := ../bin/pjlib-test-$(TARGET_NAME)$(HOST_EXE)
Benny Prijonodd859a62005-11-01 16:42:51 +000046
47
48export CC_OUT CC AR RANLIB HOST_MV HOST_RM HOST_RMDIR HOST_MKDIR OBJEXT LD LDOUT
Benny Prijonodd859a62005-11-01 16:42:51 +000049###############################################################################
50# Main entry
51#
52# $(TARGET) is defined in os-$(OS_NAME).mak file in current directory.
53#
54
55all: $(TARGETS)
56
57doc:
Benny Prijono5b64b8d2008-06-20 21:39:02 +000058 cd .. && rm -rf docs/html docs/latex && doxygen docs/doxygen.cfg
59 @if test ! "$(WWWDIR)" == ""; then \
60 echo "Copying to $(WWWDIR)/pjlib/docs/html.." ; \
61 cp -a ../docs/html/* $(WWWDIR)/pjlib/docs/html/ ; \
62 fi
Benny Prijonodd859a62005-11-01 16:42:51 +000063
64print:
65 $(MAKE) -f $(RULES_MAK) APP=PJLIB app=pjlib print_lib
66 $(MAKE) -f $(RULES_MAK) APP=TEST app=pjlib-test print_bin
67
Benny Prijono40ce3fb2005-11-07 18:14:08 +000068depend: ../include/pj/config_site.h
Benny Prijonodd859a62005-11-01 16:42:51 +000069 $(MAKE) -f $(RULES_MAK) APP=PJLIB app=pjlib depend
70 $(MAKE) -f $(RULES_MAK) APP=TEST app=pjlib-test depend
Benny Prijono0382cd82006-05-04 08:43:02 +000071 echo '$(TEST_EXE): $(PJLIB_LIB)' >> .pjlib-test-$(TARGET_NAME).depend
Benny Prijonodd859a62005-11-01 16:42:51 +000072
73
74.PHONY: dep depend pjlib pjlib-test clean realclean distclean
75
76dep: depend
77
Benny Prijonobc986152005-11-06 16:50:38 +000078pjlib: ../include/pj/config_site.h
Benny Prijonodd859a62005-11-01 16:42:51 +000079 $(MAKE) -f $(RULES_MAK) APP=PJLIB app=pjlib $(PJLIB_LIB)
80
Benny Prijonobc986152005-11-06 16:50:38 +000081../include/pj/config_site.h:
82 touch ../include/pj/config_site.h
83
Benny Prijonodd859a62005-11-01 16:42:51 +000084pjlib-test:
85 $(MAKE) -f $(RULES_MAK) APP=TEST app=pjlib-test $(TEST_EXE)
86
87.PHONY: ../lib/pjlib.ko
88../lib/pjlib.ko:
89 echo Making $@
90 $(MAKE) -f $(RULES_MAK) APP=PJLIB app=pjlib $@
91
92.PHONY: ../lib/pjlib-test.ko
93../lib/pjlib-test.ko:
94 $(MAKE) -f $(RULES_MAK) APP=TEST app=pjlib-test $@
95
96clean:
97 $(MAKE) -f $(RULES_MAK) APP=PJLIB app=pjlib clean
98 $(MAKE) -f $(RULES_MAK) APP=TEST app=pjlib-test clean
99
100realclean:
Benny Prijono0c59fea2006-05-27 13:11:32 +0000101 $(subst @@,$(subst /,$(HOST_PSEP),.pjlib-$(TARGET_NAME).depend),$(HOST_RMR))
102 $(subst @@,$(subst /,$(HOST_PSEP),.pjlib-test-$(TARGET_NAME).depend),$(HOST_RMR))
Benny Prijonodd859a62005-11-01 16:42:51 +0000103 $(MAKE) -f $(RULES_MAK) APP=PJLIB app=pjlib realclean
104 $(MAKE) -f $(RULES_MAK) APP=TEST app=pjlib-test realclean
105
106distclean: realclean
107
Benny Prijono7d433ec2006-02-03 15:23:28 +0000108gcov-report:
109 $(MAKE) -f $(RULES_MAK) APP=PJLIB app=pjlib gcov-report
110 $(MAKE) -f $(RULES_MAK) APP=TEST app=pjlib-test gcov-report
111