blob: 7bffdc99826627764f4b25e138024d107871112c [file] [log] [blame]
Benny Prijono0a749f12005-10-31 21:02:30 +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#
63export _CFLAGS := $(CC_CFLAGS) $(OS_CFLAGS) $(HOST_CFLAGS) $(M_CFLAGS) \
64 $(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
101
102###############################################################################
103# Main entry
104#
105# $(TARGET) is defined in os-$(OS_NAME).mak file in current directory.
106#
107
108all: $(TARGETS)
109
110doc:
111 cd .. && doxygen docs/doxygen.cfg
112
113print:
114 $(MAKE) -f $(RULES_MAK) APP=PJLIB app=pjlib print_lib
115 $(MAKE) -f $(RULES_MAK) APP=TEST app=pjlib-test print_bin
116
117depend:
118 $(MAKE) -f $(RULES_MAK) APP=PJLIB app=pjlib depend
119 $(MAKE) -f $(RULES_MAK) APP=TEST app=pjlib-test depend
120 echo '$(TEST_EXE): $(PJLIB_LIB)' >> .pjlib-test-$(MACHINE_NAME)-$(OS_NAME)-$(CC_NAME).depend
121
122
123.PHONY: dep depend pjlib pjlib-test clean realclean distclean
124
125dep: depend
126
127pjlib:
128 $(MAKE) -f $(RULES_MAK) APP=PJLIB app=pjlib $(PJLIB_LIB)
129
130pjlib-test:
131 $(MAKE) -f $(RULES_MAK) APP=TEST app=pjlib-test $(TEST_EXE)
132
133.PHONY: ../lib/pjlib.ko
134../lib/pjlib.ko:
135 echo Making $@
136 $(MAKE) -f $(RULES_MAK) APP=PJLIB app=pjlib $@
137
138.PHONY: ../lib/pjlib-test.ko
139../lib/pjlib-test.ko:
140 $(MAKE) -f $(RULES_MAK) APP=TEST app=pjlib-test $@
141
142clean:
143 $(MAKE) -f $(RULES_MAK) APP=PJLIB app=pjlib clean
144 $(MAKE) -f $(RULES_MAK) APP=TEST app=pjlib-test clean
145
146realclean:
147 $(MAKE) -f $(RULES_MAK) APP=PJLIB app=pjlib realclean
148 $(MAKE) -f $(RULES_MAK) APP=TEST app=pjlib-test realclean
149
150distclean: realclean
151