1 #
   2 # MacOs glib-lite Makefile
   3 #
   4 
   5 BUILD_DIR = $(OUTPUT_DIR)/$(BUILD_TYPE)
   6 TARGET_DIRS = $(BUILD_DIR)
   7 
   8 SRCBASE_DIR = ../../../3rd_party/glib/glib-2.28.8/
   9 OBJBASE_DIR = $(BUILD_DIR)/obj/glib-lite
  10 
  11 DIRLIST = glib \
  12           glib/libcharset/ \
  13           glib/gnulib/ \
  14           gobject/ \
  15           gthread/ \
  16           gmodule/
  17 
  18 TARGET_NAME = lib$(BASE_NAME).dylib
  19 TARGET = $(BUILD_DIR)/$(TARGET_NAME)
  20 
  21 CFLAGS = -arch x86_64 \
  22          -fPIC \
  23          -Werror=implicit-function-declaration \
  24          -DG_DISABLE_CAST_CHECKS \
  25          -DGLIB_COMPILATION \
  26          -DGOBJECT_COMPILATION \
  27          -DLIBDIR=\"/irrelevant/lib\" \
  28          -DG_LOG_DOMAIN=\"GLib\" \
  29          -DGSTREAMER_LITE \
  30          -DG_DISABLE_DEPRECATED \
  31          -DG_DISABLE_ASSERT \
  32          -mmacosx-version-min=10.7
  33 
  34 ifeq ($(BUILD_TYPE), Release)
  35     CFLAGS += -Os
  36 else
  37     CFLAGS += -O0 -g -Wall
  38 endif
  39 
  40 INCLUDES = -I$(SRCBASE_DIR) \
  41            -I$(SRCBASE_DIR)/glib \
  42            -I$(SRCBASE_DIR)/build/osx
  43 
  44 LDFLAGS = -mmacosx-version-min=10.7 -arch x86_64 \
  45           -Wl,-install_name,@rpath/$(TARGET_NAME) -Wl,-framework -Wl,CoreServices -liconv 
  46 
  47 C_SOURCES = glib/garray.c \
  48             glib/gasyncqueue.c \
  49             glib/gatomic.c \
  50             glib/gbacktrace.c \
  51             glib/gbase64.c \
  52             glib/gbookmarkfile.c \
  53             glib/gbitlock.c \
  54             glib/gbuffer.c \
  55             glib/gcache.c \
  56             glib/gchecksum.c \
  57             glib/gcompletion.c \
  58             glib/gconvert.c \
  59             glib/gdataset.c \
  60             glib/gdate.c \
  61             glib/gdatetime.c \
  62             glib/gdir.c \
  63             glib/gerror.c \
  64             glib/gfileutils.c \
  65             glib/ghash.c \
  66             glib/ghook.c \
  67             glib/giochannel.c \
  68             glib/giounix.c \
  69             glib/gkeyfile.c \
  70             glib/glist.c \
  71             glib/gmain.c \
  72             glib/gmappedfile.c \
  73             glib/gmarkup.c \
  74             glib/gmem.c \
  75             glib/gmessages.c \
  76             glib/gnode.c \
  77             glib/goption.c \
  78             glib/gpattern.c \
  79             glib/gpoll.c \
  80             glib/gprimes.c \
  81             glib/gprintf.c \
  82             glib/gqsort.c \
  83             glib/gqueue.c \
  84             glib/grand.c \
  85             glib/grel.c \
  86             glib/gscanner.c \
  87             glib/gsequence.c \
  88             glib/gshell.c \
  89             glib/gspawn.c \
  90             glib/gslice.c \
  91             glib/gslist.c \
  92             glib/gstdio.c \
  93             glib/gstrfuncs.c \
  94             glib/gstring.c \
  95             glib/gtestutils.c \
  96             glib/gthread.c \
  97             glib/gthreadpool.c \
  98             glib/gtimer.c \
  99             glib/gtimezone.c \
 100             glib/gtree.c \
 101             glib/gunibreak.c \
 102             glib/gunidecomp.c \
 103             glib/guniprop.c \
 104             glib/gurifuncs.c \
 105             glib/gutf8.c \
 106             glib/gutils.c \
 107             glib/ghostutils.c \
 108             glib/gvarianttype.c \
 109             glib/gvariant.c \
 110             glib/gvariant-core.c \
 111             glib/gvariant-serialiser.c \
 112             glib/gvarianttypeinfo.c \
 113             glib/libcharset/localcharset.c \
 114             glib/gnulib/asnprintf.c \
 115             glib/gnulib/printf-args.c \
 116             glib/gnulib/printf-parse.c \
 117             glib/gnulib/printf.c \
 118             glib/gnulib/vasnprintf.c \
 119             gobject/gatomicarray.c \
 120             gobject/gboxed.c \
 121             gobject/gclosure.c \
 122             gobject/genums.c \
 123             gobject/gobject.c \
 124             gobject/gparam.c \
 125             gobject/gparamspecs.c \
 126             gobject/gsignal.c \
 127             gobject/gsourceclosure.c \
 128             gobject/gtype.c \
 129             gobject/gtypemodule.c \
 130             gobject/gtypeplugin.c \
 131             gobject/gvalue.c \
 132             gobject/gvaluearray.c \
 133             gobject/gvaluetransform.c \
 134             gobject/gvaluetypes.c \
 135             gthread/gthread-impl.c \
 136             gmodule/gmodule.c
 137 
 138 OBJ_DIRS = $(addprefix $(OBJBASE_DIR)/,$(DIRLIST))
 139 OBJECTS  = $(patsubst %.c,$(OBJBASE_DIR)/%.o,$(C_SOURCES))
 140 
 141 .PHONY: default
 142 
 143 default: $(TARGET)
 144 
 145 $(OBJBASE_DIR)/%.o: $(SRCBASE_DIR)/%.c
 146         $(CC) $(CFLAGS) $(INCLUDES) -c $< -o $@
 147 
 148 $(OBJECTS): | $(OBJ_DIRS) $(TARGET_DIRS)
 149 
 150 $(OBJ_DIRS):
 151         mkdir -p $(OBJ_DIRS)
 152 
 153 $(TARGET_DIRS):
 154         mkdir -p $(TARGET_DIRS)
 155 
 156 $(TARGET): $(OBJECTS)
 157         $(CC) -dynamiclib $(OBJECTS) $(LDFLAGS) -o $@