1 # 2 # glib-lite Makefile 3 # 4 LINK = link.exe 5 6 GLIB_VERSION = 2.28.8 7 export GLIB_BASE_DIR = 3rd_party/glib/glib-$(GLIB_VERSION) 8 9 GLIB_TARGET = libglib-$(GLIB_VERSION).lib 10 GMODULE_TARGET = libmodule-$(GLIB_VERSION).lib 11 GOBJECT_TARGET = libgobject-$(GLIB_VERSION).lib 12 GTHREAD_TARGET = libgthread-$(GLIB_VERSION).lib 13 MODULES = $(GLIB_TARGET) $(GMODULE_TARGET) $(GOBJECT_TARGET) $(GTHREAD_TARGET) 14 15 export BUILD_DIR = $(shell cygpath -u "$(OUTPUT_DIR)/$(BUILD_TYPE)") 16 DEF_DIR = ../../../$(GLIB_BASE_DIR)/build/win32/vs100 17 18 TARGET = $(BUILD_DIR)/$(BASE_NAME).dll 19 20 MANIFEST = $(shell cygpath -ma "$(BUILD_DIR)/$(BASE_NAME).manifest") 21 IMPLIB = $(shell cygpath -ma "$(BUILD_DIR)/$(BASE_NAME).lib") 22 export PDB = $(shell cygpath -ma "$(BUILD_DIR)/$(BASE_NAME).pdb") 23 24 SYSTEM_LIBS = Ws2_32.lib \ 25 kernel32.lib \ 26 user32.lib \ 27 shell32.lib \ 28 advapi32.lib \ 29 ole32.lib 30 31 LDFLAGS = -out:$(shell cygpath -ma $(TARGET)) -nologo -incremental:no -libpath:$(shell cygpath -ma $(BUILD_DIR)) -dll $(SYSTEM_LIBS) \ 32 -manifest -manifestfile:$(MANIFEST) -manifestuac:"level='asInvoker' uiAccess='false'" \ 33 -subsystem:windows -tlbid:1 -dynamicbase -nxcompat -errorreport:queue -implib:$(IMPLIB) 34 35 ifeq ($(BUILD_TYPE), Release) 36 LDFLAGS += -def:$(DEF_DIR)/glib-lite.def -opt:ref -opt:icf 37 else # debug 38 LDFLAGS += -debug -def:$(DEF_DIR)/glib-liteD.def -pdb:$(shell cygpath -ma $(PDB)) 39 endif 40 41 ifeq ($(ARCH), x32) 42 LDFLAGS += -MACHINE:x86 43 else 44 LDFLAGS += -MACHINE:x64 45 endif 46 47 LIBS = $(addprefix $(BUILD_DIR)/,$(MODULES)) 48 49 .PHONY: default list 50 51 default: $(TARGET) 52 53 $(TARGET): $(LIBS) 54 $(LINK) $(LDFLAGS) $(shell cygpath -ma "$(RESOURCE)") $(foreach lib,$(LIBS),$(shell cygpath -ma $(lib))) 55 56 $(BUILD_DIR)/$(GLIB_TARGET): 57 $(MAKE) TARGET=$(BUILD_DIR)/$(GLIB_TARGET) -f Makefile.glib 58 59 $(BUILD_DIR)/$(GMODULE_TARGET): 60 $(MAKE) TARGET=$(BUILD_DIR)/$(GMODULE_TARGET) -f Makefile.gmodule 61 62 $(BUILD_DIR)/$(GOBJECT_TARGET): 63 $(MAKE) TARGET=$(BUILD_DIR)/$(GOBJECT_TARGET) -f Makefile.gobject 64 65 $(BUILD_DIR)/$(GTHREAD_TARGET): 66 $(MAKE) TARGET=$(BUILD_DIR)/$(GTHREAD_TARGET) -f Makefile.gthread