1 # 2 # fxplugins Makefile 3 # 4 5 CC = cl.exe 6 CPP = cl.exe 7 LINK = link.exe 8 9 GLIB_VERSION = 2.28.8 10 11 BASECLASSES_TARGET = baseclasses.lib 12 MODULES = $(BASECLASSES_TARGET) 13 14 export BUILD_DIR = $(shell cygpath -u "$(OUTPUT_DIR)/$(BUILD_TYPE)") 15 TARGET = $(BUILD_DIR)/$(BASE_NAME).dll 16 17 MANIFEST = $(shell cygpath -ma "$(BUILD_DIR)/$(BASE_NAME).manifest") 18 IMPLIB = $(shell cygpath -ma "$(BUILD_DIR)/$(BASE_NAME).lib") 19 export PDB = $(shell cygpath -ma "$(BUILD_DIR)/$(BASE_NAME).pdb") 20 21 SYSTEM_LIBS = glib-lite.lib \ 22 gstreamer-lite.lib \ 23 winmm.lib \ 24 strmiids.lib \ 25 kernel32.lib \ 26 user32.lib \ 27 shell32.lib \ 28 advapi32.lib \ 29 ole32.lib \ 30 oleaut32.lib \ 31 strmiids.lib 32 33 LDFLAGS = -out:$(shell cygpath -ma $(TARGET)) -nologo -incremental:no -libpath:$(shell cygpath -ma $(BUILD_DIR)) -dll $(SYSTEM_LIBS) \ 34 -nodefaultlib:libcmt -manifest -manifestfile:$(MANIFEST) -manifestuac:"level='asInvoker' uiAccess='false'" -implib:$(IMPLIB) \ 35 -subsystem:windows -tlbid:1 -dynamicbase -nxcompat -errorreport:queue 36 37 OBJBASE_DIR = $(BUILD_DIR)/obj/plugins 38 SRCBASE_DIR = ../../../plugins 39 40 GLIB_DIR = ../../../3rd_party/glib/glib-$(GLIB_VERSION) 41 GSTREAMER_DIR = ../../../gstreamer-lite 42 BASECLASSES_DIR = $(shell cygpath -mas "$(BASECLASSES_SDK_DIR)"/Samples/multimedia/directshow/baseclasses) 43 44 DIRLIST = dshowwrapper \ 45 javasource \ 46 progressbuffer \ 47 progressbuffer/win32 48 49 DEP_DIRS = $(BUILD_DIR) $(addprefix $(OBJBASE_DIR)/,$(DIRLIST)) 50 51 C_SOURCES = javasource/javasource.c \ 52 javasource/marshal.c \ 53 progressbuffer/progressbuffer.c \ 54 progressbuffer/hlsprogressbuffer.c \ 55 progressbuffer/win32/filecache.c \ 56 fxplugins.c 57 58 CPP_SOURCES = dshowwrapper/Allocator.cpp \ 59 dshowwrapper/dshowwrapper.cpp \ 60 dshowwrapper/Sink.cpp \ 61 dshowwrapper/Src.cpp 62 63 COMPILER_FLAGS = -nologo -W3 -WX- -EHsc -GS -fp:precise \ 64 -Zc:wchar_t -Zc:forScope- -analyze- -errorReport:queue -Gm- 65 66 INCLUDES = $(addprefix -I$(SRCBASE_DIR)/,$(DIRLIST)) \ 67 -I$(SRCBASE_DIR) \ 68 -I$(GLIB_DIR) \ 69 -I$(GLIB_DIR)/glib \ 70 -I$(GLIB_DIR)/gmodule \ 71 -I$(GLIB_DIR)/build/win32/vs100 \ 72 -I$(GSTREAMER_DIR)/gstreamer \ 73 -I$(GSTREAMER_DIR)/gstreamer/libs \ 74 -I$(GSTREAMER_DIR)/gst-plugins-base/gst-libs \ 75 -I$(BASECLASSES_DIR) 76 77 CFLAGS = -DWIN32 \ 78 -D_WINDOWS \ 79 -D_USRDLL \ 80 -DENABLE_PULL_MODE=1 \ 81 -DHAVE_CONFIG_H=on2_codecs_config.h \ 82 -DENABLE_SOURCE_SEEKING=1 \ 83 -DGSTREAMER_LITE \ 84 -DGST_REMOVE_DEPRECATED \ 85 -DGST_REMOVE_DISABLED \ 86 -DGST_DISABLE_GST_DEBUG \ 87 -DGST_DISABLE_LOADSAVE \ 88 -DG_DISABLE_DEPRECATED \ 89 -DG_DISABLE_ASSERT \ 90 -DG_DISABLE_CHECKS \ 91 -D_WINDLL \ 92 -D_MBCS \ 93 -DINITGUID \ 94 $(INCLUDES) \ 95 $(COMPILER_FLAGS) 96 97 OBJECTS = $(patsubst %.cpp,$(OBJBASE_DIR)/%.obj,$(CPP_SOURCES)) $(patsubst %.c,$(OBJBASE_DIR)/%.obj,$(C_SOURCES)) 98 99 ifeq ($(BUILD_TYPE), Release) 100 CFLAGS += -DNDEBUG -Oy -MD -Gy -GF 101 LDFLAGS += -opt:ref -opt:icf 102 O1FLAGS = -O1 103 O2FLAGS = -O2 104 else # debug 105 LDFLAGS += -debug -pdb:$(PDB) 106 CFLAGS += -D_DEBUG -Oy- -RTC1 -MDd -DENABLE_VISUAL_STUDIO_MEMORY_LEAKS_DETECTION -wd"4018" -wd"4244" -wd"4274" -Zi -Fd$(PDB) 107 O1FLAGS = -Od 108 O2FLAGS = -Od 109 endif 110 111 ifeq ($(ARCH), x32) 112 LDFLAGS += -safeseh -MACHINE:x86 113 else 114 CFLAGS += -D_WIN64 115 LDFLAGS += -MACHINE:x64 116 endif 117 118 ifneq ($(strip $(ON2_SRCDIR)),) 119 DIRLIST += vp6 120 121 INCLUDES += -I$(shell cygpath -ma "$(ON2_SRCDIR)/include") \ 122 -I$(shell cygpath -ma "$(ON2_SRCDIR)/src") \ 123 -I$(shell cygpath -ma "$(ON2_SRCDIR)/config/win") 124 125 LDFLAGS += $(shell cygpath -ma "$(ON2_LIB)") 126 127 C_SOURCES += vp6/flvdemux.c \ 128 vp6/flvmetadata.c \ 129 vp6/flvparser.c \ 130 vp6/vp6decoder.c 131 132 CFLAGS += -DENABLE_ON2_DECODER 133 endif 134 135 LIBS = $(addprefix $(BUILD_DIR)/,$(MODULES)) 136 137 export BASECLASSES_DIR 138 139 .PHONY: default $(MODULES) list 140 141 default: $(MODULES) 142 $(MAKE) $(TARGET) 143 144 $(TARGET): $(OBJECTS) $(LIBS) 145 $(LINK) $(LDFLAGS) $(shell cygpath -ma "$(RESOURCE)") $(foreach object,$(OBJECTS),$(shell cygpath -ma $(object))) $(foreach lib,$(LIBS),$(shell cygpath -ma $(lib))) 146 147 $(OBJECTS): | $(DEP_DIRS) 148 149 $(DEP_DIRS): 150 @mkdir -p $(DEP_DIRS) 151 152 $(OBJBASE_DIR)/%.obj: $(SRCBASE_DIR)/%.cpp 153 $(CPP) $(CFLAGS) $(O1FLAGS) -TP -c -Fo$(shell cygpath -ma $@) $< 154 155 $(OBJBASE_DIR)/%.obj: $(SRCBASE_DIR)/%.c 156 $(CPP) $(CFLAGS) $(O1FLAGS) -TC -c -Fo$(shell cygpath -ma $@) $< 157 158 $(OBJBASE_DIR)/plugin_vp6/vp6decoder.obj: $(SRCBASE_DIR)/plugin_vp6/vp6decoder.c 159 $(CPP) $(CFLAGS) $(O2FLAGS) -TC -c -Fo$(shell cygpath -ma $@) $< 160 161 $(BASECLASSES_TARGET): 162 $(MAKE) TARGET=$(BUILD_DIR)/$(BASECLASSES_TARGET) -f Makefile.BaseClasses