4
TARGET = i386-win32-vc$(VC_VER)-$(BUILD_MODE)
6
!if "$(BUILD_MODE)" == "debug"
7
BUILD_FLAGS = /MTd /Od /Zi /W4
8
!elseif "$(BUILD_MODE)" == "debug-static"
9
BUILD_FLAGS = /MTd /Od /Zi /W4
10
!elseif "$(BUILD_MODE)" == "debug-dynamic"
11
BUILD_FLAGS = /MDd /Od /Zi /W4
12
!elseif "$(BUILD_MODE)" == "release-static"
13
BUILD_FLAGS = /Ox /MT /DNDEBUG /W4
15
BUILD_FLAGS = /Ox /MD /DNDEBUG /W4
18
PJLIB_LIB = ..\..\pjlib\lib\pjlib-$(TARGET)$(LIBEXT)
19
PJLIB_UTIL_LIB = ..\..\pjlib-util\lib\pjlib-util-$(TARGET)$(LIBEXT)
20
PJNATH_LIB = ..\..\pjnath\lib\pjnath-$(TARGET)$(LIBEXT)
21
PJMEDIA_LIB = ..\..\pjmedia\lib\pjmedia-$(TARGET)$(LIBEXT)
22
PJMEDIA_CODEC_LIB = ..\..\pjmedia\lib\pjmedia-codec-$(TARGET)$(LIBEXT)
23
PJMEDIA_AUDIODEV_LIB = ..\..\pjmedia\lib\pjmedia-audiodev-$(TARGET)$(LIBEXT)
24
PJMEDIA_VIDEODEV_LIB = ..\..\pjmedia\lib\pjmedia-videodev-$(TARGET)$(LIBEXT)
25
PJSIP_LIB = ..\..\pjsip\lib\pjsip-core-$(TARGET)$(LIBEXT)
26
PJSIP_UA_LIB = ..\..\pjsip\lib\pjsip-ua-$(TARGET)$(LIBEXT)
27
PJSIP_SIMPLE_LIB = ..\..\pjsip\lib\pjsip-simple-$(TARGET)$(LIBEXT)
28
PJSUA_LIB_LIB = ..\..\pjsip\lib\pjsua-lib-$(TARGET)$(LIBEXT)
30
GSM_LIB = ..\..\third_party\lib\libgsmcodec-$(TARGET)$(LIBEXT)
31
ILBC_LIB = ..\..\third_party\lib\libilbccodec-$(TARGET)$(LIBEXT)
32
PORTAUDIO_LIB = ..\..\third_party\lib\libportaudio-$(TARGET)$(LIBEXT)
33
RESAMPLE_LIB = ..\..\third_party\lib\libresample-$(TARGET)$(LIBEXT)
34
SPEEX_LIB = ..\..\third_party\lib\libspeex-$(TARGET)$(LIBEXT)
35
SRTP_LIB = ..\..\third_party\lib\libsrtp-$(TARGET)$(LIBEXT)
36
G7221_LIB = ..\..\third_party\lib\libg7221codec-$(TARGET)$(LIBEXT)
37
BASECLASSES_LIB = ..\..\third_party\lib\libbaseclasses-$(TARGET)$(LIBEXT)
39
THIRD_PARTY_LIBS = $(GSM_LIB) $(ILBC_LIB) $(PORTAUDIO_LIB) $(RESAMPLE_LIB) \
40
$(SPEEX_LIB) $(SRTP_LIB) $(G7221_LIB) $(BASECLASSES_LIB)
42
LIBS = $(PJSUA_LIB_LIB) $(PJSIP_UA_LIB) $(PJSIP_SIMPLE_LIB) \
43
$(PJSIP_LIB) $(PJMEDIA_CODEC_LIB) $(PJMEDIA_AUDIODEV_LIB) \
44
$(PJMEDIA_VIDEODEV_LIB) \
45
$(PJMEDIA_LIB) $(PJNATH_LIB) $(PJLIB_UTIL_LIB) $(PJLIB_LIB) \
48
CFLAGS = /DPJ_WIN32=1 /DPJ_M_I386=1 \
50
-I..\..\pjsip\include \
51
-I..\..\pjlib\include \
52
-I..\..\pjlib-util\include \
53
-I..\..\pjmedia\include \
54
-I..\..\pjnath/include
55
LDFLAGS = $(BUILD_FLAGS) $(LIBS) \
56
Iphlpapi.lib ole32.lib user32.lib dsound.lib dxguid.lib netapi32.lib \
57
mswsock.lib ws2_32.lib gdi32.lib advapi32.lib oleaut32.lib
59
SRCDIR = ..\src\samples
60
OBJDIR = .\output\samples-$(TARGET)
61
BINDIR = ..\bin\samples\$(TARGET)
64
SAMPLES = $(BINDIR)\auddemo.exe \
65
$(BINDIR)\aectest.exe \
66
$(BINDIR)\aviplay.exe \
67
$(BINDIR)\confsample.exe \
68
$(BINDIR)\confbench.exe \
69
$(BINDIR)\encdec.exe \
70
$(BINDIR)\httpdemo.exe \
71
$(BINDIR)\icedemo.exe \
73
$(BINDIR)\latency.exe \
76
$(BINDIR)\pcaputil.exe\
77
$(BINDIR)\pjsip-perf.exe \
78
$(BINDIR)\playfile.exe \
79
$(BINDIR)\playsine.exe\
80
$(BINDIR)\recfile.exe \
81
$(BINDIR)\resampleplay.exe \
82
$(BINDIR)\simpleua.exe \
83
$(BINDIR)\simple_pjsua.exe \
84
$(BINDIR)\sipecho.exe \
85
$(BINDIR)\siprtp.exe \
86
$(BINDIR)\sipstateless.exe \
87
$(BINDIR)\stateful_proxy.exe \
88
$(BINDIR)\stateless_proxy.exe \
89
$(BINDIR)\stereotest.exe \
90
$(BINDIR)\streamutil.exe \
91
$(BINDIR)\strerror.exe \
92
$(BINDIR)\tonegen.exe \
93
$(BINDIR)\vid_streamutil.exe
96
all: $(BINDIR) $(OBJDIR) $(SAMPLES)
98
$(SAMPLES): $(SRCDIR)\$(@B).c $(LIBS) $(SRCDIR)\util.h Samples-vc.mak
99
cl -nologo -c $(SRCDIR)\$(@B).c /Fo$(OBJDIR)\$(@B).obj $(CFLAGS)
100
cl /nologo $(OBJDIR)\$(@B).obj /Fe$@ /Fm$(OBJDIR)\$(@B).map $(LDFLAGS)
101
@rem the following two lines is just for cleaning up the 'bin' directory
102
if exist $(BINDIR)\*.ilk del /Q $(BINDIR)\*.ilk
103
if exist $(BINDIR)\*.pdb del /Q $(BINDIR)\*.pdb
106
if not exist $(BINDIR) mkdir $(BINDIR)
109
if not exist $(OBJDIR) mkdir $(OBJDIR)
112
echo Cleaning up samples...
113
if exist $(BINDIR) del /Q $(BINDIR)\*
114
if exist $(BINDIR) rmdir $(BINDIR)
115
if exist $(OBJDIR) del /Q $(OBJDIR)\*.*