blob: e6a1bd9fd5f67f25c98f7dc65ddf79faea9a0a3d [file] [log] [blame]
Benny Prijonodd859a62005-11-01 16:42:51 +00001#
2# Include host/target/compiler selection.
3# This will export CC_NAME, MACHINE_NAME, OS_NAME, and HOST_NAME variables.
4#
5include ../../build.mak
6
7#
8# Include global compiler specific definitions
9#
10include ../../build/cc-$(CC_NAME).mak
11
12#
13# (Optionally) Include compiler specific configuration that is
14# specific to this project. This configuration file is
15# located in this directory.
16#
17-include cc-$(CC_NAME).mak
18
19#
20# Include global machine specific definitions
21#
22include ../../build/m-$(MACHINE_NAME).mak
23-include m-$(MACHINE_NAME).mak
24
25#
26# Include target OS specific definitions
27#
28include ../../build/os-$(OS_NAME).mak
29
30#
31# (Optionally) Include target OS specific configuration that is
32# specific to this project. This configuration file is
33# located in this directory.
34#
35-include os-$(OS_NAME).mak
36
37#
38# Include host specific definitions
39#
40include ../../build/host-$(HOST_NAME).mak
41
42#
43# (Optionally) Include host specific configuration that is
44# specific to this project. This configuration file is
45# located in this directory.
46#
47-include host-$(HOST_NAME).mak
48
49#
50# Include global user configuration, if any
51#
52-include ../../user.mak
53
54
55RULES_MAK := ../../build/rules.mak
56
57
58export PJLIB_LIB := ../lib/libpj-$(MACHINE_NAME)-$(OS_NAME)-$(CC_NAME)$(LIBEXT)
59
60###############################################################################
61# Gather all flags.
62#
Benny Prijonobc986152005-11-06 16:50:38 +000063export _CFLAGS := -O2 -g $(CC_CFLAGS) $(OS_CFLAGS) $(HOST_CFLAGS) $(M_CFLAGS) \
Benny Prijonodd859a62005-11-01 16:42:51 +000064 $(CFLAGS) $(CC_INC)../include
65export _CXXFLAGS:= $(_CFLAGS) $(CC_CXXFLAGS) $(OS_CXXFLAGS) $(M_CXXFLAGS) \
66 $(HOST_CXXFLAGS) $(CXXFLAGS)
67export _LDFLAGS := $(subst /,$(HOST_PSEP),$(PJLIB_LIB)) \
68 $(CC_LDFLAGS) $(OS_LDFLAGS) $(M_LDFLAGS) $(HOST_LDFLAGS) \
69 $(LDFLAGS)
70
71###############################################################################
72# Defines for building PJLIB library
73#
74export PJLIB_SRCDIR = ../src/pj
75export PJLIB_OBJS += $(OS_OBJS) $(M_OBJS) $(CC_OBJS) $(HOST_OBJS) \
76 array.o config.o errno.o except.o fifobuf.o guid.o \
77 hash.o list.o lock.o log.o \
78 md5.o pool.o pool_caching.o rand.o \
79 rbtree.o scanner.o string.o stun.o stun_client.o timer.o \
80 types.o xml.o symbols.o
81export PJLIB_CFLAGS += $(_CFLAGS)
82
83###############################################################################
84# Defines for building test application
85#
86export TEST_SRCDIR = ../src/pjlib-test
87export TEST_OBJS += atomic.o echo_clt.o echo_srv.o errno.o exception.o \
88 fifobuf.o \
89 ioq_perf.o ioq_udp.o ioq_tcp.o \
90 list.o mutex.o os.o pool.o pool_perf.o rand.o rbtree.o \
91 select.o sleep.o sock.o sock_perf.o \
92 string.o test.o thread.o timer.o timestamp.o \
93 udp_echo_srv_sync.o \
94 util.o xml.o
95export TEST_CFLAGS += $(_CFLAGS)
96export TEST_LDFLAGS += $(_LDFLAGS)
97export TEST_EXE := ../bin/pjlib-test-$(MACHINE_NAME)-$(OS_NAME)-$(CC_NAME)$(HOST_EXE)
98
99
100export CC_OUT CC AR RANLIB HOST_MV HOST_RM HOST_RMDIR HOST_MKDIR OBJEXT LD LDOUT
Benny Prijonodd859a62005-11-01 16:42:51 +0000101###############################################################################
102# Main entry
103#
104# $(TARGET) is defined in os-$(OS_NAME).mak file in current directory.
105#
106
107all: $(TARGETS)
108
109doc:
110 cd .. && doxygen docs/doxygen.cfg
111
112print:
113 $(MAKE) -f $(RULES_MAK) APP=PJLIB app=pjlib print_lib
114 $(MAKE) -f $(RULES_MAK) APP=TEST app=pjlib-test print_bin
115
116depend:
117 $(MAKE) -f $(RULES_MAK) APP=PJLIB app=pjlib depend
118 $(MAKE) -f $(RULES_MAK) APP=TEST app=pjlib-test depend
119 echo '$(TEST_EXE): $(PJLIB_LIB)' >> .pjlib-test-$(MACHINE_NAME)-$(OS_NAME)-$(CC_NAME).depend
120
121
122.PHONY: dep depend pjlib pjlib-test clean realclean distclean
123
124dep: depend
125
Benny Prijonobc986152005-11-06 16:50:38 +0000126pjlib: ../include/pj/config_site.h
Benny Prijonodd859a62005-11-01 16:42:51 +0000127 $(MAKE) -f $(RULES_MAK) APP=PJLIB app=pjlib $(PJLIB_LIB)
128
Benny Prijonobc986152005-11-06 16:50:38 +0000129../include/pj/config_site.h:
130 touch ../include/pj/config_site.h
131
Benny Prijonodd859a62005-11-01 16:42:51 +0000132pjlib-test:
133 $(MAKE) -f $(RULES_MAK) APP=TEST app=pjlib-test $(TEST_EXE)
134
135.PHONY: ../lib/pjlib.ko
136../lib/pjlib.ko:
137 echo Making $@
138 $(MAKE) -f $(RULES_MAK) APP=PJLIB app=pjlib $@
139
140.PHONY: ../lib/pjlib-test.ko
141../lib/pjlib-test.ko:
142 $(MAKE) -f $(RULES_MAK) APP=TEST app=pjlib-test $@
143
144clean:
145 $(MAKE) -f $(RULES_MAK) APP=PJLIB app=pjlib clean
146 $(MAKE) -f $(RULES_MAK) APP=TEST app=pjlib-test clean
147
148realclean:
149 $(MAKE) -f $(RULES_MAK) APP=PJLIB app=pjlib realclean
150 $(MAKE) -f $(RULES_MAK) APP=TEST app=pjlib-test realclean
151
152distclean: realclean
153