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