1 # 2 # gobject Makefile 3 # 4 CC = cl.exe 5 AR = lib.exe 6 7 OBJBASE_DIR = $(BUILD_DIR)/obj/$(GLIB_BASE_DIR)/gobject 8 SRCBASE_DIR = ../../../$(GLIB_BASE_DIR) 9 LIBFFI_DIR = ../../../$(THIRD_PARTY_DIR)/libffi 10 11 DEP_DIRS = $(BUILD_DIR) $(OBJBASE_DIR) 12 13 C_SOURCES = gatomicarray.c \ 14 gbinding.c \ 15 gboxed.c \ 16 gclosure.c \ 17 genums.c \ 18 gmarshal.c \ 19 gobject.c \ 20 gparam.c \ 21 gparamspecs.c \ 22 gsignal.c \ 23 gsourceclosure.c \ 24 gtype.c \ 25 gtypemodule.c \ 26 gtypeplugin.c \ 27 gvalue.c \ 28 gvaluearray.c \ 29 gvaluetransform.c \ 30 gvaluetypes.c 31 32 COMPILER_FLAGS = -nologo -W3 -WX- -EHsc -GS -fp:precise -Gm- \ 33 -Zc:wchar_t -Zc:forScope -Gd -wd"4430" -analyze- -errorReport:queue \ 34 -wd"4005" -wd"4018" -wd"4028" -wd"4090" -wd"4113" -wd"4267" -wd"4715" \ 35 -wd"4146" -wd"4311" -wd"4312" -wd"4133" -wd"4146" -wd"4334" \ 36 -FI"msvc_recommended_pragmas.h" 37 38 INCLUDES = -I$(SRCBASE_DIR) \ 39 -I$(SRCBASE_DIR)/glib \ 40 -I$(SRCBASE_DIR)/gobject \ 41 -I$(SRCBASE_DIR)/build/win32/vs100 \ 42 -I$(LIBFFI_DIR)/include 43 44 CFLAGS = -DWIN32 \ 45 -D_WINDOWS \ 46 -D_USRDLL \ 47 -DGSTREAMER_LITE \ 48 -DGOBJECT_EXPORTS \ 49 -DGOBJECT_COMPILATION \ 50 -DHAVE_CONFIG_H \ 51 -DG_LOG_DOMAIN=\"Glib-GObject\" \ 52 -D_MBCS \ 53 -DG_OS_WIN32 \ 54 -DFFI_BUILDING \ 55 -DG_DISABLE_DEPRECATED \ 56 $(INCLUDES) \ 57 $(COMPILER_FLAGS) 58 59 LIBFLAGS = -out:$(shell cygpath -ma $(TARGET)) -nologo 60 61 ifeq ($(BUILD_TYPE), Release) 62 CFLAGS += -DNDEBUG -DG_DISABLE_ASSERT -DG_DISABLE_CHECKS -O1 -Oy -MD -Gy -GF 63 else # debug 64 CFLAGS += -D_DEBUG -DG_DISABLE_ASSERT -DG_DISABLE_CHECKS -Od -Oy- -RTC1 -MDd -Zi -Fd$(PDB) 65 LIBFLAGS += -libpath:strmiids.lib 66 endif 67 68 ifeq ($(ARCH), x32) 69 LIBFLAGS += -MACHINE:x86 70 INCLUDES += -I$(LIBFFI_DIR)/include/x86 71 else 72 CFLAGS += -D_WIN64 73 LIBFLAGS += -MACHINE:x64 74 INCLUDES += -I$(LIBFFI_DIR)/include/x64 75 endif 76 77 OBJECTS = $(patsubst %.c,$(OBJBASE_DIR)/%.obj,$(C_SOURCES)) 78 79 .PHONY: default list 80 81 default: $(TARGET) 82 83 $(TARGET): $(OBJECTS) 84 $(AR) $(LIBFLAGS) $(foreach object,$(OBJECTS),$(shell cygpath -ma $(object))) 85 86 $(OBJECTS): | $(DEP_DIRS) 87 88 $(DEP_DIRS): 89 mkdir -p $(DEP_DIRS) 90 91 $(OBJBASE_DIR)/%.obj: $(SRCBASE_DIR)/gobject/%.c 92 $(CC) $(CFLAGS) -TC -c -Fo$(shell cygpath -ma $@) $<