blob: 3b03cf72d309b3213701dd8c5dfca7f7e1853e57 [file] [log] [blame]
Benny Prijono6107a002006-03-17 18:01:27 +00001
Benny Prijono6107a002006-03-17 18:01:27 +00002LIBEXT = .lib
3
Benny Prijonodc8c4902009-04-29 15:30:38 +00004TARGET = i386-win32-vc$(VC_VER)-$(BUILD_MODE)
Nanang Izzuddin432dd252009-04-22 13:37:11 +00005
Benny Prijono6107a002006-03-17 18:01:27 +00006!if "$(BUILD_MODE)" == "debug"
Nanang Izzuddin432dd252009-04-22 13:37:11 +00007BUILD_FLAGS = /MTd /Od /Zi /W4
8!elseif "$(BUILD_MODE)" == "debug-static"
Benny Prijono15953012006-04-27 22:37:08 +00009BUILD_FLAGS = /MTd /Od /Zi /W4
Perry Ismangil74338052009-03-30 12:15:43 +000010!elseif "$(BUILD_MODE)" == "debug-dynamic"
Perry Ismangil74338052009-03-30 12:15:43 +000011BUILD_FLAGS = /MDd /Od /Zi /W4
12!elseif "$(BUILD_MODE)" == "release-static"
Perry Ismangil74338052009-03-30 12:15:43 +000013BUILD_FLAGS = /Ox /MT /DNDEBUG /W4
Benny Prijonodc8c4902009-04-29 15:30:38 +000014!else
Benny Prijono15953012006-04-27 22:37:08 +000015BUILD_FLAGS = /Ox /MD /DNDEBUG /W4
Benny Prijono6107a002006-03-17 18:01:27 +000016!endif
17
Benny Prijono95af4cc2006-05-14 09:39:04 +000018PJLIB_LIB = ..\..\pjlib\lib\pjlib-$(TARGET)$(LIBEXT)
19PJLIB_UTIL_LIB = ..\..\pjlib-util\lib\pjlib-util-$(TARGET)$(LIBEXT)
Benny Prijonoc27512b2007-03-23 20:12:45 +000020PJNATH_LIB = ..\..\pjnath\lib\pjnath-$(TARGET)$(LIBEXT)
Benny Prijono95af4cc2006-05-14 09:39:04 +000021PJMEDIA_LIB = ..\..\pjmedia\lib\pjmedia-$(TARGET)$(LIBEXT)
22PJMEDIA_CODEC_LIB = ..\..\pjmedia\lib\pjmedia-codec-$(TARGET)$(LIBEXT)
Benny Prijono10454dc2009-02-21 14:21:59 +000023PJMEDIA_AUDIODEV_LIB = ..\..\pjmedia\lib\pjmedia-audiodev-$(TARGET)$(LIBEXT)
Benny Prijono95af4cc2006-05-14 09:39:04 +000024PJSIP_LIB = ..\..\pjsip\lib\pjsip-core-$(TARGET)$(LIBEXT)
25PJSIP_UA_LIB = ..\..\pjsip\lib\pjsip-ua-$(TARGET)$(LIBEXT)
26PJSIP_SIMPLE_LIB = ..\..\pjsip\lib\pjsip-simple-$(TARGET)$(LIBEXT)
27PJSUA_LIB_LIB = ..\..\pjsip\lib\pjsua-lib-$(TARGET)$(LIBEXT)
Benny Prijono6107a002006-03-17 18:01:27 +000028
Benny Prijonoc95a0f02007-04-09 07:06:08 +000029GSM_LIB = ..\..\third_party\lib\libgsmcodec-$(TARGET)$(LIBEXT)
30ILBC_LIB = ..\..\third_party\lib\libilbccodec-$(TARGET)$(LIBEXT)
31PORTAUDIO_LIB = ..\..\third_party\lib\libportaudio-$(TARGET)$(LIBEXT)
32RESAMPLE_LIB = ..\..\third_party\lib\libresample-$(TARGET)$(LIBEXT)
33SPEEX_LIB = ..\..\third_party\lib\libspeex-$(TARGET)$(LIBEXT)
Benny Prijonod8179652008-01-23 20:39:07 +000034SRTP_LIB = ..\..\third_party\lib\libsrtp-$(TARGET)$(LIBEXT)
Nanang Izzuddin56e380a2009-04-15 14:45:41 +000035G7221_LIB = ..\..\third_party\lib\libg7221codec-$(TARGET)$(LIBEXT)
Benny Prijonoc95a0f02007-04-09 07:06:08 +000036
37THIRD_PARTY_LIBS = $(GSM_LIB) $(ILBC_LIB) $(PORTAUDIO_LIB) $(RESAMPLE_LIB) \
Nanang Izzuddin56e380a2009-04-15 14:45:41 +000038 $(SPEEX_LIB) $(SRTP_LIB) $(G7221_LIB)
Benny Prijonoc95a0f02007-04-09 07:06:08 +000039
Benny Prijono6107a002006-03-17 18:01:27 +000040LIBS = $(PJSUA_LIB_LIB) $(PJSIP_UA_LIB) $(PJSIP_SIMPLE_LIB) \
Benny Prijono10454dc2009-02-21 14:21:59 +000041 $(PJSIP_LIB) $(PJMEDIA_CODEC_LIB) $(PJMEDIA_AUDIODEV_LIB) \
42 $(PJMEDIA_LIB) $(PJNATH_LIB) $(PJLIB_UTIL_LIB) $(PJLIB_LIB) \
Benny Prijonoc95a0f02007-04-09 07:06:08 +000043 $(THIRD_PARTY_LIBS)
Benny Prijono6107a002006-03-17 18:01:27 +000044
45CFLAGS = /DPJ_WIN32=1 /DPJ_M_I386=1 \
46 $(BUILD_FLAGS) \
47 -I..\..\pjsip\include \
Benny Prijonoa6bd7582007-03-28 15:49:48 +000048 -I..\..\pjlib\include \
49 -I..\..\pjlib-util\include \
Benny Prijonoc27512b2007-03-23 20:12:45 +000050 -I..\..\pjmedia\include \
51 -I..\..\pjnath/include
Benny Prijono6107a002006-03-17 18:01:27 +000052LDFLAGS = $(BUILD_FLAGS) $(LIBS) \
Benny Prijonob681a2f2007-03-25 18:44:51 +000053 Iphlpapi.lib ole32.lib user32.lib dsound.lib dxguid.lib netapi32.lib \
Benny Prijonof5512402008-06-10 11:13:04 +000054 mswsock.lib ws2_32.lib gdi32.lib advapi32.lib
Benny Prijono6107a002006-03-17 18:01:27 +000055
56SRCDIR = ..\src\samples
Benny Prijono95af4cc2006-05-14 09:39:04 +000057OBJDIR = .\output\samples-$(TARGET)
Benny Prijono82674642009-05-01 10:05:13 +000058BINDIR = ..\bin\samples\$(TARGET)
Benny Prijono6107a002006-03-17 18:01:27 +000059
60
Benny Prijono10454dc2009-02-21 14:21:59 +000061SAMPLES = $(BINDIR)\auddemo.exe \
62 $(BINDIR)\confsample.exe \
Benny Prijonoc78c3a32006-06-16 15:54:43 +000063 $(BINDIR)\confbench.exe \
Benny Prijono06e62d72008-01-11 09:01:50 +000064 $(BINDIR)\encdec.exe \
Sauw Mingd8435e62010-02-04 18:29:16 +000065 $(BINDIR)\httpdemo.exe \
Benny Prijono00238772009-04-13 18:41:04 +000066 $(BINDIR)\icedemo.exe \
Benny Prijono1f47f3f2009-07-29 12:28:31 +000067 $(BINDIR)\jbsim.exe \
Benny Prijono9183c032008-07-28 14:37:47 +000068 $(BINDIR)\latency.exe \
Benny Prijonof9962132006-05-16 13:20:00 +000069 $(BINDIR)\level.exe \
Benny Prijonoa2687702008-01-12 11:23:02 +000070 $(BINDIR)\mix.exe \
Benny Prijono0f856722008-02-01 14:59:19 +000071 $(BINDIR)\pcaputil.exe\
Benny Prijono88406102006-07-03 01:09:50 +000072 $(BINDIR)\pjsip-perf.exe \
Benny Prijonof9962132006-05-16 13:20:00 +000073 $(BINDIR)\playfile.exe \
74 $(BINDIR)\playsine.exe\
75 $(BINDIR)\recfile.exe \
76 $(BINDIR)\resampleplay.exe \
77 $(BINDIR)\simpleua.exe \
Benny Prijonof77ba882007-01-08 01:20:07 +000078 $(BINDIR)\simple_pjsua.exe \
Benny Prijonof9962132006-05-16 13:20:00 +000079 $(BINDIR)\siprtp.exe \
80 $(BINDIR)\sipstateless.exe \
Benny Prijonofff245c2007-04-02 11:44:47 +000081 $(BINDIR)\stateful_proxy.exe \
82 $(BINDIR)\stateless_proxy.exe \
Benny Prijono7d60d052008-03-29 12:24:20 +000083 $(BINDIR)\stereotest.exe \
Benny Prijono7f5c12c2006-09-02 23:45:18 +000084 $(BINDIR)\streamutil.exe \
Benny Prijono812fdee2007-12-01 09:07:42 +000085 $(BINDIR)\strerror.exe \
Benny Prijono7f5c12c2006-09-02 23:45:18 +000086 $(BINDIR)\tonegen.exe
Benny Prijonobc797312006-03-24 20:44:27 +000087
Benny Prijono6107a002006-03-17 18:01:27 +000088
Benny Prijono82674642009-05-01 10:05:13 +000089all: $(BINDIR) $(OBJDIR) $(SAMPLES)
Benny Prijono6107a002006-03-17 18:01:27 +000090
Benny Prijonobc797312006-03-24 20:44:27 +000091$(SAMPLES): $(SRCDIR)\$(@B).c $(LIBS) $(SRCDIR)\util.h Samples-vc.mak
Benny Prijono6107a002006-03-17 18:01:27 +000092 cl -nologo -c $(SRCDIR)\$(@B).c /Fo$(OBJDIR)\$(@B).obj $(CFLAGS)
Benny Prijono82674642009-05-01 10:05:13 +000093 cl /nologo $(OBJDIR)\$(@B).obj /Fe$@ /Fm$(OBJDIR)\$(@B).map $(LDFLAGS)
Nanang Izzuddin0cf8d052009-04-22 14:27:55 +000094 @rem the following two lines is just for cleaning up the 'bin' directory
Benny Prijono82674642009-05-01 10:05:13 +000095 if exist $(BINDIR)\*.ilk del /Q $(BINDIR)\*.ilk
96 if exist $(BINDIR)\*.pdb del /Q $(BINDIR)\*.pdb
97
98$(BINDIR):
99 if not exist $(BINDIR) mkdir $(BINDIR)
Benny Prijono6107a002006-03-17 18:01:27 +0000100
101$(OBJDIR):
Benny Prijono39ac70a2007-02-01 03:01:01 +0000102 if not exist $(OBJDIR) mkdir $(OBJDIR)
Benny Prijono6107a002006-03-17 18:01:27 +0000103
Benny Prijono39ac70a2007-02-01 03:01:01 +0000104clean:
105 echo Cleaning up samples...
Benny Prijono82674642009-05-01 10:05:13 +0000106 if exist $(BINDIR) del /Q $(BINDIR)\*
107 if exist $(BINDIR) rmdir $(BINDIR)
Benny Prijono39ac70a2007-02-01 03:01:01 +0000108 if exist $(OBJDIR) del /Q $(OBJDIR)\*.*
Benny Prijono6107a002006-03-17 18:01:27 +0000109