blob: 11ffdc9df21811fea08264d119f228136d372b3c [file] [log] [blame]
Benny Prijono27c98722007-04-09 21:28:15 +00001include ../../build.mak
Benny Prijonod9627842007-04-18 09:24:31 +00002
3THIRD_PARTY:=$(PJDIR)/third_party
4PA_DIR := $(THIRD_PARTY)/build/portaudio/src
5
Benny Prijono27c98722007-04-09 21:28:15 +00006include $(PJDIR)/build/common.mak
Benny Prijono4381efe2006-03-16 14:24:26 +00007
Benny Prijono27c98722007-04-09 21:28:15 +00008RULES_MAK := $(PJDIR)/build/rules.mak
Benny Prijono4381efe2006-03-16 14:24:26 +00009
Benny Prijono27c98722007-04-09 21:28:15 +000010PJLIB_LIB:=$(PJDIR)/pjlib/lib/libpj-$(TARGET_NAME)$(LIBEXT)
11PJLIB_UTIL_LIB:=$(PJDIR)/pjlib-util/lib/libpjlib-util-$(TARGET_NAME)$(LIBEXT)
12PJNATH_LIB:=$(PJDIR)/pjnath/lib/libpjnath-$(TARGET_NAME)$(LIBEXT)
Benny Prijonob8528f42006-02-07 19:31:53 +000013
Benny Prijono0382cd82006-05-04 08:43:02 +000014export PJMEDIA_LIB:=../lib/libpjmedia-$(TARGET_NAME)$(LIBEXT)
15export PJMEDIA_CODEC_LIB:=../lib/libpjmedia-codec-$(TARGET_NAME)$(LIBEXT)
Benny Prijono10af18e2006-08-10 14:26:15 +000016export PJSDP_LIB:=../lib/libpjsdp-$(TARGET_NAME)$(LIBEXT)
Benny Prijonob8528f42006-02-07 19:31:53 +000017
Benny Prijono4381efe2006-03-16 14:24:26 +000018NULLSOUND_OBJS := nullsound.o
19
20###############################################################################
Benny Prijonob8528f42006-02-07 19:31:53 +000021# Gather all flags.
22#
Benny Prijono1819dc92006-02-08 11:15:20 +000023export _CFLAGS := $(CC_CFLAGS) $(OS_CFLAGS) $(HOST_CFLAGS) $(M_CFLAGS) \
Benny Prijonoa6bd7582007-03-28 15:49:48 +000024 $(CFLAGS) $(CC_INC)../include \
25 $(CC_INC)../../pjlib/include \
Benny Prijono34a404e2006-02-09 14:38:30 +000026 $(CC_INC)../../pjlib-util/include \
Benny Prijonoa6bd7582007-03-28 15:49:48 +000027 $(CC_INC)../../pjnath/include \
Benny Prijono25dfd1d2007-04-17 16:16:01 +000028 $(CC_INC)../..
Benny Prijonob8528f42006-02-07 19:31:53 +000029export _CXXFLAGS:= $(_CFLAGS) $(CC_CXXFLAGS) $(OS_CXXFLAGS) $(M_CXXFLAGS) \
30 $(HOST_CXXFLAGS) $(CXXFLAGS)
31export _LDFLAGS := $(subst /,$(HOST_PSEP),$(PJMEDIA_LIB)) \
32 $(subst /,$(HOST_PSEP),$(PJLIB_LIB)) \
33 $(subst /,$(HOST_PSEP),$(PJLIB_UTIL_LIB)) \
Benny Prijonoa6bd7582007-03-28 15:49:48 +000034 $(subst /,$(HOST_PSEP),$(PJNATH_LIB)) \
Benny Prijonob8528f42006-02-07 19:31:53 +000035 $(CC_LDFLAGS) $(OS_LDFLAGS) $(M_LDFLAGS) $(HOST_LDFLAGS) \
36 $(LDFLAGS)
37
38###############################################################################
39# Defines for building PJMEDIA library
40#
Benny Prijonodd859a62005-11-01 16:42:51 +000041export PJMEDIA_SRCDIR = ../src/pjmedia
Benny Prijonob8528f42006-02-07 19:31:53 +000042export PJMEDIA_OBJS += $(OS_OBJS) $(M_OBJS) $(CC_OBJS) $(HOST_OBJS) \
Benny Prijonobc968472006-11-30 01:35:00 +000043 alaw_ulaw.o alaw_ulaw_table.o clock_thread.o codec.o \
Benny Prijonod9627842007-04-18 09:24:31 +000044 conference.o echo_common.o echo_port.o \
Benny Prijono22dfe592006-08-06 12:07:13 +000045 echo_suppress.o endpoint.o errno.o \
Benny Prijonoa14fe1f2006-06-28 11:48:51 +000046 g711.o jbuf.o master_port.o mem_capture.o mem_player.o \
Benny Prijono25dfd1d2007-04-17 16:16:01 +000047 null_port.o plc_common.o port.o splitcomb.o \
48 resample_resample.o \
Benny Prijonoa837c302006-04-27 22:36:40 +000049 resample_port.o rtcp.o rtp.o sdp.o sdp_cmp.o sdp_neg.o \
Benny Prijonob04c9e02006-05-17 17:17:39 +000050 session.o silencedet.o sound_port.o stream.o \
Benny Prijonoa6bd7582007-03-28 15:49:48 +000051 tonegen.o transport_ice.o transport_udp.o \
Benny Prijonoa66c3312007-01-21 23:12:40 +000052 wav_player.o wav_playlist.o wav_writer.o wave.o \
Benny Prijonoa837c302006-04-27 22:36:40 +000053 $(SOUND_OBJS) $(NULLSOUND_OBJS)
Benny Prijonodd859a62005-11-01 16:42:51 +000054
Benny Prijonob8528f42006-02-07 19:31:53 +000055export PJMEDIA_CFLAGS += $(_CFLAGS)
Benny Prijonodd859a62005-11-01 16:42:51 +000056
Benny Prijonodd859a62005-11-01 16:42:51 +000057
Benny Prijonob8528f42006-02-07 19:31:53 +000058###############################################################################
Benny Prijono10af18e2006-08-10 14:26:15 +000059# Defines for building PJSDP library
60# Note that SDP functionality is already INCLUDED in PJMEDIA.
61# The PJSDP library should only be used for applications that want SDP
62# but don't want to use the rest of the media framework.
63#
64export PJSDP_SRCDIR = ../src/pjmedia
65export PJSDP_OBJS += $(OS_OBJS) $(M_OBJS) $(CC_OBJS) $(HOST_OBJS) \
66 errno.o sdp.o sdp_cmp.o sdp_neg.o
67export PJSDP_CFLAGS += $(_CFLAGS)
68
69
70###############################################################################
Benny Prijonof80b1bf2006-02-19 02:24:27 +000071# Defines for building PJMEDIA-Codec library
72#
73export PJMEDIA_CODEC_SRCDIR = ../src/pjmedia-codec
Benny Prijonoc4c61d02006-08-20 20:47:34 +000074export PJMEDIA_CODEC_OBJS += \
Benny Prijono41ee6ab2006-04-27 22:41:56 +000075 $(OS_OBJS) $(M_OBJS) $(CC_OBJS) $(HOST_OBJS) \
Benny Prijono4381efe2006-03-16 14:24:26 +000076 $(CODEC_OBJS)
Benny Prijono00cae612006-07-31 15:19:36 +000077export PJMEDIA_CODEC_CFLAGS += $(_CFLAGS) $(GSM_CFLAGS) $(SPEEX_CFLAGS) \
78 $(ILBC_CFLAGS)
Benny Prijonof80b1bf2006-02-19 02:24:27 +000079
80
81###############################################################################
Benny Prijonob8528f42006-02-07 19:31:53 +000082# Defines for building test application
83#
84export PJMEDIA_TEST_SRCDIR = ../src/test
85export PJMEDIA_TEST_OBJS += jbuf_test.o main.o rtp_test.o sdp_neg_test.o test.o
86export PJMEDIA_TEST_CFLAGS += $(_CFLAGS)
87export PJMEDIA_TEST_LDFLAGS += $(_LDFLAGS)
Benny Prijono0382cd82006-05-04 08:43:02 +000088export PJMEDIA_TEST_EXE:=../bin/pjmedia-test-$(TARGET_NAME)$(HOST_EXE)
Benny Prijonodd859a62005-11-01 16:42:51 +000089
Benny Prijonob8528f42006-02-07 19:31:53 +000090
91export CC_OUT CC AR RANLIB HOST_MV HOST_RM HOST_RMDIR HOST_MKDIR OBJEXT LD LDOUT
92###############################################################################
93# Main entry
94#
95# $(TARGET) is defined in os-$(OS_NAME).mak file in current directory.
96#
Benny Prijono10af18e2006-08-10 14:26:15 +000097TARGETS := pjmedia pjmedia-codec pjsdp
Benny Prijono34a404e2006-02-09 14:38:30 +000098#pjmedia-test
Benny Prijonob8528f42006-02-07 19:31:53 +000099
100all: $(TARGETS)
Benny Prijonodd859a62005-11-01 16:42:51 +0000101
102doc:
103 cd .. && doxygen docs/doxygen.cfg
104
Benny Prijonodd859a62005-11-01 16:42:51 +0000105dep: depend
Benny Prijonob8528f42006-02-07 19:31:53 +0000106distclean: realclean
107
Benny Prijonof80b1bf2006-02-19 02:24:27 +0000108.PHONY: dep depend pjmedia pjmedia-codec pjmedia-test clean realclean distclean
Benny Prijonodd859a62005-11-01 16:42:51 +0000109
110pjmedia:
Benny Prijonob8528f42006-02-07 19:31:53 +0000111 $(MAKE) -f $(RULES_MAK) APP=PJMEDIA app=pjmedia $(PJMEDIA_LIB)
Benny Prijonodd859a62005-11-01 16:42:51 +0000112
Benny Prijonof80b1bf2006-02-19 02:24:27 +0000113pjmedia-codec:
114 $(MAKE) -f $(RULES_MAK) APP=PJMEDIA_CODEC app=pjmedia-codec $(PJMEDIA_CODEC_LIB)
115
Benny Prijono10af18e2006-08-10 14:26:15 +0000116pjsdp:
117 $(MAKE) -f $(RULES_MAK) APP=PJSDP app=pjsdp $(PJSDP_LIB)
118
Benny Prijonob8528f42006-02-07 19:31:53 +0000119pjmedia-test: $(PJMEDIA_LIB)
120 $(MAKE) -f $(RULES_MAK) APP=PJMEDIA_TEST app=pjmedia-test $(PJMEDIA_TEST_EXE)
Benny Prijonodd859a62005-11-01 16:42:51 +0000121
Benny Prijonob8528f42006-02-07 19:31:53 +0000122.PHONY: ../lib/pjmedia.ko
123../lib/pjmedia.ko:
124 echo Making $@
125 $(MAKE) -f $(RULES_MAK) APP=PJMEDIA app=pjmedia $@
Benny Prijonodd859a62005-11-01 16:42:51 +0000126
Benny Prijonof80b1bf2006-02-19 02:24:27 +0000127.PHONY: ../lib/pjmedia-codec.ko
128../lib/pjmedia-codec.ko:
129 echo Making $@
130 $(MAKE) -f $(RULES_MAK) APP=PJMEDIA_CODEC app=pjmedia-codec $@
131
Benny Prijonob8528f42006-02-07 19:31:53 +0000132.PHONY: ../lib/pjmedia-test.ko
133../lib/pjmedia-test.ko:
134 $(MAKE) -f $(RULES_MAK) APP=PJMEDIA_TEST app=pjmedia-test $@
Benny Prijonodd859a62005-11-01 16:42:51 +0000135
Benny Prijono0c59fea2006-05-27 13:11:32 +0000136clean:
Benny Prijonob8528f42006-02-07 19:31:53 +0000137 $(MAKE) -f $(RULES_MAK) APP=PJMEDIA app=pjmedia $@
Benny Prijonof80b1bf2006-02-19 02:24:27 +0000138 $(MAKE) -f $(RULES_MAK) APP=PJMEDIA_CODEC app=pjmedia-codec $@
Benny Prijono10af18e2006-08-10 14:26:15 +0000139 $(MAKE) -f $(RULES_MAK) APP=PJSDP app=pjsdp $@
Benny Prijonob8528f42006-02-07 19:31:53 +0000140 $(MAKE) -f $(RULES_MAK) APP=PJMEDIA_TEST app=pjmedia-test $@
Benny Prijono0c59fea2006-05-27 13:11:32 +0000141
142realclean:
143 $(subst @@,$(subst /,$(HOST_PSEP),.pjmedia-$(TARGET_NAME).depend),$(HOST_RMR))
144 $(subst @@,$(subst /,$(HOST_PSEP),.pjmedia-codec-$(TARGET_NAME).depend),$(HOST_RMR))
145 $(subst @@,$(subst /,$(HOST_PSEP),.pjmedia-test-$(TARGET_NAME).depend),$(HOST_RMR))
Benny Prijono10af18e2006-08-10 14:26:15 +0000146 $(subst @@,$(subst /,$(HOST_PSEP),.pjsdp-$(TARGET_NAME).depend),$(HOST_RMR))
Benny Prijono0c59fea2006-05-27 13:11:32 +0000147
148 $(MAKE) -f $(RULES_MAK) APP=PJMEDIA app=pjmedia $@
Benny Prijonof80b1bf2006-02-19 02:24:27 +0000149 $(MAKE) -f $(RULES_MAK) APP=PJMEDIA_CODEC app=pjmedia-codec $@
Benny Prijono0c59fea2006-05-27 13:11:32 +0000150 $(MAKE) -f $(RULES_MAK) APP=PJMEDIA_TEST app=pjmedia-test $@
Benny Prijono10af18e2006-08-10 14:26:15 +0000151 $(MAKE) -f $(RULES_MAK) APP=PJSDP app=pjsdp $@
Benny Prijono0c59fea2006-05-27 13:11:32 +0000152
153depend:
154 $(MAKE) -f $(RULES_MAK) APP=PJMEDIA app=pjmedia $@
155 $(MAKE) -f $(RULES_MAK) APP=PJMEDIA_CODEC app=pjmedia-codec $@
156 $(MAKE) -f $(RULES_MAK) APP=PJMEDIA_TEST app=pjmedia-test $@
Benny Prijono10af18e2006-08-10 14:26:15 +0000157 $(MAKE) -f $(RULES_MAK) APP=PJSDP app=pjsdp $@
Benny Prijono0c59fea2006-05-27 13:11:32 +0000158 echo '$(PJMEDIA_LIB): .pjmedia-$(TARGET_NAME).depend' >> .pjmedia-$(TARGET_NAME).depend; \
159 echo '$(PJMEDIA_CODEC_LIB): .pjmedia-codec-$(TARGET_NAME).depend' >> .pjmedia-codec-$(TARGET_NAME).depend; \
160 echo '$(PJMEDIA_TEST_EXE): $(PJMEDIA_LIB) $(PJMEDIA_CODEC_LIB)' >> .pjmedia-test-$(TARGET_NAME).depend; \
Benny Prijonodd859a62005-11-01 16:42:51 +0000161
162