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 $@) $<