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 += -safeseh -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