Tristan Matthews | 0a329cc | 2013-07-17 13:20:14 -0400 | [diff] [blame] | 1 | include ../../build.mak |
| 2 | include ../../version.mak |
| 3 | |
| 4 | THIRD_PARTY:=$(PJDIR)/third_party |
| 5 | |
| 6 | SRTP_INC=$(CC_INC)$(THIRD_PARTY)/build/srtp \ |
| 7 | $(CC_INC)$(THIRD_PARTY)/srtp/crypto/include \ |
| 8 | $(CC_INC)$(THIRD_PARTY)/srtp/include |
| 9 | |
| 10 | include $(PJDIR)/build/common.mak |
| 11 | |
| 12 | RULES_MAK := $(PJDIR)/build/rules.mak |
| 13 | |
| 14 | PJLIB_LIB:=$(PJDIR)/pjlib/lib/libpj-$(TARGET_NAME)$(LIBEXT) |
| 15 | PJLIB_UTIL_LIB:=$(PJDIR)/pjlib-util/lib/libpjlib-util-$(TARGET_NAME)$(LIBEXT) |
| 16 | PJNATH_LIB:=$(PJDIR)/pjnath/lib/libpjnath-$(TARGET_NAME)$(LIBEXT) |
| 17 | |
| 18 | export PJMEDIA_LIB:=../lib/libpjmedia-$(TARGET_NAME)$(LIBEXT) |
| 19 | export PJMEDIA_CODEC_LIB:=../lib/libpjmedia-codec-$(TARGET_NAME)$(LIBEXT) |
| 20 | export PJSDP_LIB:=../lib/libpjsdp-$(TARGET_NAME)$(LIBEXT) |
| 21 | export PJMEDIA_AUDIODEV_LIB:=../lib/libpjmedia-audiodev-$(TARGET_NAME)$(LIBEXT) |
| 22 | export PJMEDIA_VIDEODEV_LIB:=../lib/libpjmedia-videodev-$(TARGET_NAME)$(LIBEXT) |
| 23 | |
| 24 | |
| 25 | ############################################################################### |
| 26 | # Gather all flags. |
| 27 | # |
| 28 | export _CFLAGS := $(CC_CFLAGS) $(OS_CFLAGS) $(HOST_CFLAGS) $(M_CFLAGS) \ |
| 29 | $(CFLAGS) $(CC_INC)../include \ |
| 30 | $(CC_INC)../../pjlib/include \ |
| 31 | $(CC_INC)../../pjlib-util/include \ |
| 32 | $(CC_INC)../../pjmedia/include \ |
| 33 | $(CC_INC)../../pjnath/include \ |
| 34 | $(CC_INC)../.. \ |
| 35 | $(SRTP_INC) |
| 36 | export _CXXFLAGS:= $(_CFLAGS) $(CC_CXXFLAGS) $(OS_CXXFLAGS) $(M_CXXFLAGS) \ |
| 37 | $(HOST_CXXFLAGS) $(CXXFLAGS) |
| 38 | export _LDFLAGS := $(subst /,$(HOST_PSEP),$(PJMEDIA_VIDEODEV_LIB)) \ |
| 39 | $(subst /,$(HOST_PSEP),$(PJMEDIA_CODEC_LIB)) \ |
| 40 | $(subst /,$(HOST_PSEP),$(PJMEDIA_LIB)) \ |
| 41 | $(subst /,$(HOST_PSEP),$(PJMEDIA_AUDIODEV_LIB)) \ |
| 42 | $(subst /,$(HOST_PSEP),$(PJLIB_LIB)) \ |
| 43 | $(subst /,$(HOST_PSEP),$(PJLIB_UTIL_LIB)) \ |
| 44 | $(subst /,$(HOST_PSEP),$(PJNATH_LIB)) \ |
| 45 | -L$(PJDIR)/third_party/lib \ |
| 46 | $(APP_THIRD_PARTY_LIBS) \ |
| 47 | $(APP_THIRD_PARTY_EXT) \ |
| 48 | $(CC_LDFLAGS) $(OS_LDFLAGS) $(M_LDFLAGS) $(HOST_LDFLAGS) \ |
| 49 | $(LDFLAGS) |
| 50 | |
| 51 | ############################################################################### |
| 52 | # Defines for building PJMEDIA library |
| 53 | # |
| 54 | export PJMEDIA_SRCDIR = ../src/pjmedia |
| 55 | export PJMEDIA_OBJS += $(OS_OBJS) $(M_OBJS) $(CC_OBJS) $(HOST_OBJS) \ |
| 56 | alaw_ulaw.o alaw_ulaw_table.o avi_player.o \ |
| 57 | bidirectional.o clock_thread.o codec.o conference.o \ |
| 58 | conf_switch.o converter.o converter_libswscale.o \ |
| 59 | delaybuf.o echo_common.o \ |
| 60 | echo_port.o echo_suppress.o endpoint.o errno.o \ |
| 61 | event.o format.o ffmpeg_util.o \ |
| 62 | g711.o jbuf.o master_port.o mem_capture.o mem_player.o \ |
| 63 | null_port.o plc_common.o port.o splitcomb.o \ |
| 64 | resample_resample.o resample_libsamplerate.o \ |
| 65 | resample_port.o rtcp.o rtcp_xr.o rtp.o \ |
| 66 | sdp.o sdp_cmp.o sdp_neg.o session.o silencedet.o \ |
| 67 | sound_legacy.o sound_port.o stereo_port.o stream_common.o \ |
| 68 | stream.o stream_info.o tonegen.o transport_adapter_sample.o \ |
| 69 | transport_ice.o transport_loop.o transport_srtp.o transport_udp.o \ |
| 70 | types.o vid_codec.o vid_codec_util.o \ |
| 71 | vid_port.o vid_stream.o vid_stream_info.o vid_tee.o \ |
| 72 | wav_player.o wav_playlist.o wav_writer.o wave.o \ |
| 73 | wsola.o |
| 74 | |
| 75 | export PJMEDIA_CFLAGS += $(_CFLAGS) |
| 76 | |
| 77 | |
| 78 | ############################################################################### |
| 79 | # Defines for building PJMEDIA-AUDIODEV library |
| 80 | # |
| 81 | export PJMEDIA_AUDIODEV_SRCDIR = ../src/pjmedia-audiodev |
| 82 | export PJMEDIA_AUDIODEV_OBJS += audiodev.o audiotest.o errno.o \ |
| 83 | coreaudio_dev.o legacy_dev.o null_dev.o pa_dev.o wmme_dev.o \ |
| 84 | alsa_dev.o bb10_dev.o bdimad_dev.o \ |
| 85 | android_jni_dev.o opensl_dev.o |
| 86 | export PJMEDIA_AUDIODEV_CFLAGS += $(_CFLAGS) |
| 87 | |
| 88 | |
| 89 | ############################################################################### |
| 90 | # Defines for building PJMEDIA-VIDEODEV library |
| 91 | # |
| 92 | export PJMEDIA_VIDEODEV_SRCDIR = ../src/pjmedia-videodev |
| 93 | export PJMEDIA_VIDEODEV_OBJS += errno.o videodev.o avi_dev.o ffmpeg_dev.o \ |
| 94 | colorbar_dev.o v4l2_dev.o |
| 95 | export PJMEDIA_VIDEODEV_CFLAGS += $(_CFLAGS) |
| 96 | |
| 97 | |
| 98 | ############################################################################### |
| 99 | # Defines for building PJSDP library |
| 100 | # Note that SDP functionality is already INCLUDED in PJMEDIA. |
| 101 | # The PJSDP library should only be used for applications that want SDP |
| 102 | # but don't want to use the rest of the media framework. |
| 103 | # |
| 104 | export PJSDP_SRCDIR = ../src/pjmedia |
| 105 | export PJSDP_OBJS += $(OS_OBJS) $(M_OBJS) $(CC_OBJS) $(HOST_OBJS) \ |
| 106 | errno.o sdp.o sdp_cmp.o sdp_neg.o |
| 107 | export PJSDP_CFLAGS += $(_CFLAGS) |
| 108 | |
| 109 | |
| 110 | ############################################################################### |
| 111 | # Defines for building PJMEDIA-Codec library |
| 112 | # |
| 113 | export PJMEDIA_CODEC_SRCDIR = ../src/pjmedia-codec |
| 114 | export PJMEDIA_CODEC_OBJS += audio_codecs.o ffmpeg_vid_codecs.o \ |
| 115 | h263_packetizer.o h264_packetizer.o \ |
| 116 | $(OS_OBJS) $(M_OBJS) $(CC_OBJS) $(HOST_OBJS) \ |
| 117 | ipp_codecs.o opencore_amr.o silk.o $(CODEC_OBJS) \ |
| 118 | g7221_sdp_match.o amr_sdp_match.o |
| 119 | export PJMEDIA_CODEC_CFLAGS += $(_CFLAGS) $(GSM_CFLAGS) $(SPEEX_CFLAGS) \ |
| 120 | $(ILBC_CFLAGS) $(IPP_CFLAGS) $(G7221_CFLAGS) |
| 121 | |
| 122 | |
| 123 | ############################################################################### |
| 124 | # Defines for building test application |
| 125 | # |
| 126 | export PJMEDIA_TEST_SRCDIR = ../src/test |
| 127 | export PJMEDIA_TEST_OBJS += codec_vectors.o jbuf_test.o main.o mips_test.o \ |
| 128 | vid_codec_test.o vid_dev_test.o vid_port_test.o \ |
| 129 | rtp_test.o test.o |
| 130 | export PJMEDIA_TEST_OBJS += sdp_neg_test.o |
| 131 | export PJMEDIA_TEST_CFLAGS += $(_CFLAGS) |
| 132 | export PJMEDIA_TEST_LDFLAGS += $(_LDFLAGS) |
| 133 | export PJMEDIA_TEST_EXE:=../bin/pjmedia-test-$(TARGET_NAME)$(HOST_EXE) |
| 134 | |
| 135 | |
| 136 | export CC_OUT CC AR RANLIB HOST_MV HOST_RM HOST_RMDIR HOST_MKDIR OBJEXT LD LDOUT |
| 137 | ############################################################################### |
| 138 | # Main entry |
| 139 | # |
| 140 | # $(TARGET) is defined in os-$(OS_NAME).mak file in current directory. |
| 141 | # |
| 142 | TARGETS := pjmedia pjmedia-videodev pjmedia-audiodev pjmedia-codec pjsdp pjmedia-test |
| 143 | |
| 144 | all: $(TARGETS) |
| 145 | |
| 146 | doc: |
| 147 | cd .. && rm -rf docs/$(PJ_VERSION) && doxygen docs/doxygen.cfg |
| 148 | @if [ -n "$(WWWDIR)" ] && ! [ -d "$(WWWDIR)/docs/$(PJ_VERSION)/pjmedia/docs/html" ] ; then \ |
| 149 | echo "Creating docs/$(PJ_VERSION)/pjmedia/docs/html" ; \ |
| 150 | mkdir -p $(WWWDIR)/docs/$(PJ_VERSION)/pjmedia/docs/html ; \ |
| 151 | fi |
| 152 | @if [ -n "$(WWWDIR)" ] && [ -d "$(WWWDIR)/docs/$(PJ_VERSION)/pjmedia/docs/html" ] ; then \ |
| 153 | echo "Copying docs/$(PJ_VERSION) to $(WWWDIR)/docs/$(PJ_VERSION)/pjmedia/docs/html.." ; \ |
| 154 | cp -v -a ../docs/$(PJ_VERSION)/html/* $(WWWDIR)/docs/$(PJ_VERSION)/pjmedia/docs/html/ ; \ |
| 155 | fi |
| 156 | |
| 157 | dep: depend |
| 158 | distclean: realclean |
| 159 | |
| 160 | .PHONY: dep depend pjmedia pjmedia-codec pjmedia-videodev pjmedia-audiodev pjmedia-test clean realclean distclean |
| 161 | |
| 162 | pjmedia: |
| 163 | $(MAKE) -f $(RULES_MAK) APP=PJMEDIA app=pjmedia $(PJMEDIA_LIB) |
| 164 | |
| 165 | pjmedia-codec: |
| 166 | $(MAKE) -f $(RULES_MAK) APP=PJMEDIA_CODEC app=pjmedia-codec $(PJMEDIA_CODEC_LIB) |
| 167 | |
| 168 | pjmedia-videodev: |
| 169 | $(MAKE) -f $(RULES_MAK) APP=PJMEDIA_VIDEODEV app=pjmedia-videodev $(PJMEDIA_VIDEODEV_LIB) |
| 170 | |
| 171 | pjmedia-audiodev: |
| 172 | $(MAKE) -f $(RULES_MAK) APP=PJMEDIA_AUDIODEV app=pjmedia-audiodev $(PJMEDIA_AUDIODEV_LIB) |
| 173 | |
| 174 | pjsdp: |
| 175 | $(MAKE) -f $(RULES_MAK) APP=PJSDP app=pjsdp $(PJSDP_LIB) |
| 176 | |
| 177 | $(PJMEDIA_LIB): pjmedia |
| 178 | |
| 179 | pjmedia-test: $(PJMEDIA_LIB) pjmedia |
| 180 | $(MAKE) -f $(RULES_MAK) APP=PJMEDIA_TEST app=pjmedia-test $(PJMEDIA_TEST_EXE) |
| 181 | |
| 182 | .PHONY: ../lib/pjmedia.ko |
| 183 | ../lib/pjmedia.ko: |
| 184 | echo Making $@ |
| 185 | $(MAKE) -f $(RULES_MAK) APP=PJMEDIA app=pjmedia $@ |
| 186 | |
| 187 | .PHONY: ../lib/pjmedia-codec.ko |
| 188 | ../lib/pjmedia-codec.ko: |
| 189 | echo Making $@ |
| 190 | $(MAKE) -f $(RULES_MAK) APP=PJMEDIA_CODEC app=pjmedia-codec $@ |
| 191 | |
| 192 | .PHONY: ../lib/pjmedia-test.ko |
| 193 | ../lib/pjmedia-test.ko: |
| 194 | $(MAKE) -f $(RULES_MAK) APP=PJMEDIA_TEST app=pjmedia-test $@ |
| 195 | |
| 196 | clean: |
| 197 | $(MAKE) -f $(RULES_MAK) APP=PJMEDIA app=pjmedia $@ |
| 198 | $(MAKE) -f $(RULES_MAK) APP=PJMEDIA_CODEC app=pjmedia-codec $@ |
| 199 | $(MAKE) -f $(RULES_MAK) APP=PJMEDIA_VIDEODEV app=pjmedia-videodev $@ |
| 200 | $(MAKE) -f $(RULES_MAK) APP=PJMEDIA_AUDIODEV app=pjmedia-audiodev $@ |
| 201 | $(MAKE) -f $(RULES_MAK) APP=PJSDP app=pjsdp $@ |
| 202 | $(MAKE) -f $(RULES_MAK) APP=PJMEDIA_TEST app=pjmedia-test $@ |
| 203 | |
| 204 | realclean: |
| 205 | $(subst @@,$(subst /,$(HOST_PSEP),.pjmedia-$(TARGET_NAME).depend),$(HOST_RMR)) |
| 206 | $(subst @@,$(subst /,$(HOST_PSEP),.pjmedia-videodev-$(TARGET_NAME).depend),$(HOST_RMR)) |
| 207 | $(subst @@,$(subst /,$(HOST_PSEP),.pjmedia-audiodev-$(TARGET_NAME).depend),$(HOST_RMR)) |
| 208 | $(subst @@,$(subst /,$(HOST_PSEP),.pjmedia-codec-$(TARGET_NAME).depend),$(HOST_RMR)) |
| 209 | $(subst @@,$(subst /,$(HOST_PSEP),.pjmedia-test-$(TARGET_NAME).depend),$(HOST_RMR)) |
| 210 | $(subst @@,$(subst /,$(HOST_PSEP),.pjsdp-$(TARGET_NAME).depend),$(HOST_RMR)) |
| 211 | |
| 212 | $(MAKE) -f $(RULES_MAK) APP=PJMEDIA app=pjmedia $@ |
| 213 | $(MAKE) -f $(RULES_MAK) APP=PJMEDIA_VIDEODEV app=pjmedia-videodev $@ |
| 214 | $(MAKE) -f $(RULES_MAK) APP=PJMEDIA_AUDIODEV app=pjmedia-audiodev $@ |
| 215 | $(MAKE) -f $(RULES_MAK) APP=PJMEDIA_CODEC app=pjmedia-codec $@ |
| 216 | $(MAKE) -f $(RULES_MAK) APP=PJMEDIA_TEST app=pjmedia-test $@ |
| 217 | $(MAKE) -f $(RULES_MAK) APP=PJSDP app=pjsdp $@ |
| 218 | |
| 219 | depend: |
| 220 | $(MAKE) -f $(RULES_MAK) APP=PJMEDIA app=pjmedia $@ |
| 221 | $(MAKE) -f $(RULES_MAK) APP=PJMEDIA_VIDEODEV app=pjmedia-videodev $@ |
| 222 | $(MAKE) -f $(RULES_MAK) APP=PJMEDIA_AUDIODEV app=pjmedia-audiodev $@ |
| 223 | $(MAKE) -f $(RULES_MAK) APP=PJMEDIA_CODEC app=pjmedia-codec $@ |
| 224 | $(MAKE) -f $(RULES_MAK) APP=PJMEDIA_TEST app=pjmedia-test $@ |
| 225 | $(MAKE) -f $(RULES_MAK) APP=PJSDP app=pjsdp $@ |
| 226 | echo '$(PJMEDIA_TEST_EXE): $(PJMEDIA_LIB) $(PJMEDIA_CODEC_LIB) $(PJNATH_LIB) $(PJLIB_UTIL_LIB) $(PJLIB_LIB)' >> .pjmedia-test-$(TARGET_NAME).depend |
| 227 | |
| 228 | |