summaryrefslogtreecommitdiff
path: root/pjsip-apps/build/Samples-vc.mak
blob: 1f9fa7d273e0dbc6836a2e8a72f3b60a3ffce222 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124

LIBEXT = .lib

!if "$(ARCH)" == "win64"
TARGET = x86_64-x64-vc$(VC_VER)-$(BUILD_MODE)
TARGET_FLAGS = /DPJ_WIN64=1 /DPJ_M_X86_64=1 
!else

TARGET = i386-win32-vc$(VC_VER)-$(BUILD_MODE)
TARGET_FLAGS = /DPJ_WIN32=1 /DPJ_M_I386=1 
!endif

!if "$(BUILD_MODE)" == "debug"
BUILD_FLAGS = /MTd /Od /Zi /W4
!elseif "$(BUILD_MODE)" == "debug-static"
BUILD_FLAGS = /MTd /Od /Zi /W4
!elseif "$(BUILD_MODE)" == "debug-dynamic"
BUILD_FLAGS = /MDd /Od /Zi /W4
!elseif "$(BUILD_MODE)" == "release-static"
BUILD_FLAGS = /Ox /MT /DNDEBUG /W4
!else
BUILD_FLAGS = /Ox /MD /DNDEBUG /W4
!endif

PJLIB_LIB = ..\..\pjlib\lib\pjlib-$(TARGET)$(LIBEXT)
PJLIB_UTIL_LIB = ..\..\pjlib-util\lib\pjlib-util-$(TARGET)$(LIBEXT)
PJNATH_LIB = ..\..\pjnath\lib\pjnath-$(TARGET)$(LIBEXT)
PJMEDIA_LIB = ..\..\pjmedia\lib\pjmedia-$(TARGET)$(LIBEXT)
PJMEDIA_CODEC_LIB = ..\..\pjmedia\lib\pjmedia-codec-$(TARGET)$(LIBEXT)
PJMEDIA_AUDIODEV_LIB = ..\..\pjmedia\lib\pjmedia-audiodev-$(TARGET)$(LIBEXT)
PJMEDIA_VIDEODEV_LIB = ..\..\pjmedia\lib\pjmedia-videodev-$(TARGET)$(LIBEXT)
PJSIP_LIB = ..\..\pjsip\lib\pjsip-core-$(TARGET)$(LIBEXT)
PJSIP_UA_LIB = ..\..\pjsip\lib\pjsip-ua-$(TARGET)$(LIBEXT)
PJSIP_SIMPLE_LIB = ..\..\pjsip\lib\pjsip-simple-$(TARGET)$(LIBEXT)
PJSUA_LIB_LIB = ..\..\pjsip\lib\pjsua-lib-$(TARGET)$(LIBEXT)

GSM_LIB = ..\..\third_party\lib\libgsmcodec-$(TARGET)$(LIBEXT)
ILBC_LIB = ..\..\third_party\lib\libilbccodec-$(TARGET)$(LIBEXT)
#PORTAUDIO_LIB = ..\..\third_party\lib\libportaudio-$(TARGET)$(LIBEXT)
RESAMPLE_LIB = ..\..\third_party\lib\libresample-$(TARGET)$(LIBEXT)
SPEEX_LIB = ..\..\third_party\lib\libspeex-$(TARGET)$(LIBEXT)
SRTP_LIB = ..\..\third_party\lib\libsrtp-$(TARGET)$(LIBEXT)
G7221_LIB = ..\..\third_party\lib\libg7221codec-$(TARGET)$(LIBEXT)
BASECLASSES_LIB = ..\..\third_party\lib\libbaseclasses-$(TARGET)$(LIBEXT)

THIRD_PARTY_LIBS = $(GSM_LIB) $(ILBC_LIB) $(RESAMPLE_LIB) \
		   $(SPEEX_LIB) $(SRTP_LIB) $(G7221_LIB) $(BASECLASSES_LIB)

LIBS = $(PJSUA_LIB_LIB) $(PJSIP_UA_LIB) $(PJSIP_SIMPLE_LIB) \
	  $(PJSIP_LIB) $(PJMEDIA_CODEC_LIB) $(PJMEDIA_AUDIODEV_LIB) \
	  $(PJMEDIA_VIDEODEV_LIB) \
	  $(PJMEDIA_LIB) $(PJNATH_LIB) $(PJLIB_UTIL_LIB) $(PJLIB_LIB) \
	  $(THIRD_PARTY_LIBS)

CFLAGS 	= $(TARGET_FLAGS) \
	  $(BUILD_FLAGS) \
	  -I..\..\pjsip\include \
	  -I..\..\pjlib\include \
	  -I..\..\pjlib-util\include \
	  -I..\..\pjmedia\include \
	  -I..\..\pjnath/include
LDFLAGS = $(BUILD_FLAGS) $(LIBS) \
	  Iphlpapi.lib ole32.lib user32.lib dsound.lib dxguid.lib netapi32.lib \
	  mswsock.lib ws2_32.lib gdi32.lib advapi32.lib oleaut32.lib

SRCDIR = ..\src\samples
OBJDIR = .\output\samples-$(TARGET)
BINDIR = ..\bin\samples\$(TARGET)


SAMPLES = $(BINDIR)\auddemo.exe \
	  $(BINDIR)\aectest.exe \
	  $(BINDIR)\aviplay.exe \
	  $(BINDIR)\clidemo.exe \
	  $(BINDIR)\confsample.exe \
	  $(BINDIR)\confbench.exe \
	  $(BINDIR)\encdec.exe \
	  $(BINDIR)\httpdemo.exe \
	  $(BINDIR)\icedemo.exe \
	  $(BINDIR)\jbsim.exe \
	  $(BINDIR)\latency.exe \
	  $(BINDIR)\level.exe \
	  $(BINDIR)\mix.exe \
	  $(BINDIR)\pcaputil.exe\
	  $(BINDIR)\pjsip-perf.exe \
	  $(BINDIR)\playfile.exe \
	  $(BINDIR)\playsine.exe\
	  $(BINDIR)\recfile.exe  \
	  $(BINDIR)\resampleplay.exe \
	  $(BINDIR)\simpleua.exe \
	  $(BINDIR)\simple_pjsua.exe \
	  $(BINDIR)\sipecho.exe \
	  $(BINDIR)\siprtp.exe \
	  $(BINDIR)\sipstateless.exe \
	  $(BINDIR)\stateful_proxy.exe \
	  $(BINDIR)\stateless_proxy.exe \
	  $(BINDIR)\stereotest.exe \
	  $(BINDIR)\streamutil.exe \
	  $(BINDIR)\strerror.exe \
	  $(BINDIR)\tonegen.exe \
	  $(BINDIR)\vid_streamutil.exe


all: $(BINDIR) $(OBJDIR) $(SAMPLES)

$(SAMPLES): $(SRCDIR)\$(@B).c $(LIBS) $(SRCDIR)\util.h Samples-vc.mak
	cl -nologo -c $(SRCDIR)\$(@B).c /Fo$(OBJDIR)\$(@B).obj $(CFLAGS) 
	cl /nologo $(OBJDIR)\$(@B).obj /Fe$@ /Fm$(OBJDIR)\$(@B).map $(LDFLAGS)
	@rem the following two lines is just for cleaning up the 'bin' directory
	if exist $(BINDIR)\*.ilk del /Q $(BINDIR)\*.ilk
	if exist $(BINDIR)\*.pdb del /Q $(BINDIR)\*.pdb

$(BINDIR):
	if not exist $(BINDIR) mkdir $(BINDIR)

$(OBJDIR):
	if not exist $(OBJDIR) mkdir $(OBJDIR)

clean:
	echo Cleaning up samples...
	if exist $(BINDIR) del /Q $(BINDIR)\*
	if exist $(BINDIR) rmdir $(BINDIR)
	if exist $(OBJDIR) del /Q $(OBJDIR)\*.*