Tristan Matthews | 0a329cc | 2013-07-17 13:20:14 -0400 | [diff] [blame] | 1 | |
| 2 | LIBEXT = .lib |
| 3 | |
| 4 | !if "$(ARCH)" == "win64" |
| 5 | TARGET = x86_64-x64-vc$(VC_VER)-$(BUILD_MODE) |
| 6 | TARGET_FLAGS = /DPJ_WIN64=1 /DPJ_M_X86_64=1 |
| 7 | !else |
| 8 | |
| 9 | TARGET = i386-win32-vc$(VC_VER)-$(BUILD_MODE) |
| 10 | TARGET_FLAGS = /DPJ_WIN32=1 /DPJ_M_I386=1 |
| 11 | !endif |
| 12 | |
| 13 | !if "$(BUILD_MODE)" == "debug" |
| 14 | BUILD_FLAGS = /MTd /Od /Zi /W4 |
| 15 | !elseif "$(BUILD_MODE)" == "debug-static" |
| 16 | BUILD_FLAGS = /MTd /Od /Zi /W4 |
| 17 | !elseif "$(BUILD_MODE)" == "debug-dynamic" |
| 18 | BUILD_FLAGS = /MDd /Od /Zi /W4 |
| 19 | !elseif "$(BUILD_MODE)" == "release-static" |
| 20 | BUILD_FLAGS = /Ox /MT /DNDEBUG /W4 |
| 21 | !else |
| 22 | BUILD_FLAGS = /Ox /MD /DNDEBUG /W4 |
| 23 | !endif |
| 24 | |
| 25 | PJLIB_LIB = ..\..\pjlib\lib\pjlib-$(TARGET)$(LIBEXT) |
| 26 | PJLIB_UTIL_LIB = ..\..\pjlib-util\lib\pjlib-util-$(TARGET)$(LIBEXT) |
| 27 | PJNATH_LIB = ..\..\pjnath\lib\pjnath-$(TARGET)$(LIBEXT) |
| 28 | PJMEDIA_LIB = ..\..\pjmedia\lib\pjmedia-$(TARGET)$(LIBEXT) |
| 29 | PJMEDIA_CODEC_LIB = ..\..\pjmedia\lib\pjmedia-codec-$(TARGET)$(LIBEXT) |
| 30 | PJMEDIA_AUDIODEV_LIB = ..\..\pjmedia\lib\pjmedia-audiodev-$(TARGET)$(LIBEXT) |
| 31 | PJMEDIA_VIDEODEV_LIB = ..\..\pjmedia\lib\pjmedia-videodev-$(TARGET)$(LIBEXT) |
| 32 | PJSIP_LIB = ..\..\pjsip\lib\pjsip-core-$(TARGET)$(LIBEXT) |
| 33 | PJSIP_UA_LIB = ..\..\pjsip\lib\pjsip-ua-$(TARGET)$(LIBEXT) |
| 34 | PJSIP_SIMPLE_LIB = ..\..\pjsip\lib\pjsip-simple-$(TARGET)$(LIBEXT) |
| 35 | PJSUA_LIB_LIB = ..\..\pjsip\lib\pjsua-lib-$(TARGET)$(LIBEXT) |
| 36 | |
| 37 | GSM_LIB = ..\..\third_party\lib\libgsmcodec-$(TARGET)$(LIBEXT) |
| 38 | ILBC_LIB = ..\..\third_party\lib\libilbccodec-$(TARGET)$(LIBEXT) |
| 39 | PORTAUDIO_LIB = ..\..\third_party\lib\libportaudio-$(TARGET)$(LIBEXT) |
| 40 | RESAMPLE_LIB = ..\..\third_party\lib\libresample-$(TARGET)$(LIBEXT) |
| 41 | SPEEX_LIB = ..\..\third_party\lib\libspeex-$(TARGET)$(LIBEXT) |
| 42 | SRTP_LIB = ..\..\third_party\lib\libsrtp-$(TARGET)$(LIBEXT) |
| 43 | G7221_LIB = ..\..\third_party\lib\libg7221codec-$(TARGET)$(LIBEXT) |
| 44 | BASECLASSES_LIB = ..\..\third_party\lib\libbaseclasses-$(TARGET)$(LIBEXT) |
| 45 | |
| 46 | THIRD_PARTY_LIBS = $(GSM_LIB) $(ILBC_LIB) $(PORTAUDIO_LIB) $(RESAMPLE_LIB) \ |
| 47 | $(SPEEX_LIB) $(SRTP_LIB) $(G7221_LIB) $(BASECLASSES_LIB) |
| 48 | |
| 49 | LIBS = $(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 | |
| 55 | CFLAGS = $(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 |
| 62 | LDFLAGS = $(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 | |
| 66 | SRCDIR = ..\src\samples |
| 67 | OBJDIR = .\output\samples-$(TARGET) |
| 68 | BINDIR = ..\bin\samples\$(TARGET) |
| 69 | |
| 70 | |
| 71 | SAMPLES = $(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 | |
| 104 | all: $(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 | |
| 119 | clean: |
| 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 | |