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/ 9 LIBFFI_DIR = ../../../3rd_party/libffi 10 OBJBASE_DIR = $(BUILD_DIR)/obj/glib-lite 11 12 DIRLIST = glib \ 13 glib/libcharset/ \ 14 glib/gnulib/ \ 15 glib/pcre/ \ 16 gobject/ \ 17 gthread/ \ 18 gmodule/ 19 20 TARGET_NAME = lib$(BASE_NAME).dylib 21 TARGET = $(BUILD_DIR)/$(TARGET_NAME) 22 23 CFLAGS += -fPIC \ 24 -Werror=implicit-function-declaration \ 25 -DG_DISABLE_CAST_CHECKS \ 26 -DGLIB_COMPILATION \ 27 -DGOBJECT_COMPILATION \ 28 -DLIBDIR=\"/irrelevant/lib\" \ 29 -DG_LOG_DOMAIN=\"GLib\" \ 30 -DGSTREAMER_LITE \ 31 -DG_DISABLE_DEPRECATED \ 32 -DG_DISABLE_ASSERT \ 33 -DPCRE_STATIC \ 34 -DLINK_SIZE=2 \ 35 -DMAX_NAME_SIZE=32 \ 36 -DMAX_NAME_COUNT=10000 \ 37 -DNEWLINE=-1 \ 38 -DPOSIX_MALLOC_THRESHOLD=10 \ 39 -DMATCH_LIMIT=10000000 \ 40 -DMATCH_LIMIT_RECURSION=10000000 41 42 ifeq ($(BUILD_TYPE), Release) 43 CFLAGS += -Os 44 else 45 CFLAGS += -O0 -g -Wall 46 endif 47 48 INCLUDES = -I$(SRCBASE_DIR) \ 49 -I$(SRCBASE_DIR)/glib \ 50 -I$(SRCBASE_DIR)/build/osx \ 51 -I$(LIBFFI_DIR)/include \ 52 -I$(LIBFFI_DIR)/include/x64 53 54 LDFLAGS += -Wl,-install_name,@rpath/$(TARGET_NAME) \ 55 -Wl,-framework \ 56 -Wl,CoreServices \ 57 -liconv \ 58 -L$(BUILD_DIR) -lffi 59 60 C_SOURCES = glib/garray.c \ 61 glib/gasyncqueue.c \ 62 glib/gatomic.c \ 63 glib/gbacktrace.c \ 64 glib/gbase64.c \ 65 glib/gbytes.c \ 66 glib/gbookmarkfile.c \ 67 glib/gbitlock.c \ 68 glib/gcharset.c \ 69 glib/gchecksum.c \ 70 glib/gconvert.c \ 71 glib/gdataset.c \ 72 glib/gdate.c \ 73 glib/gdatetime.c \ 74 glib/gdir.c \ 75 glib/gerror.c \ 76 glib/genviron.c \ 77 glib/ghmac.c \ 78 glib/gfileutils.c \ 79 glib/ghash.c \ 80 glib/ghook.c \ 81 glib/giochannel.c \ 82 glib/giounix.c \ 83 glib/gkeyfile.c \ 84 glib/glib-init.c \ 85 glib/glib-private.c \ 86 glib/glist.c \ 87 glib/gmain.c \ 88 glib/gmappedfile.c \ 89 glib/gmarkup.c \ 90 glib/gmem.c \ 91 glib/gmessages.c \ 92 glib/ggettext.c \ 93 glib/gnode.c \ 94 glib/goption.c \ 95 glib/gpattern.c \ 96 glib/gpoll.c \ 97 glib/gprimes.c \ 98 glib/gprintf.c \ 99 glib/gqsort.c \ 100 glib/gquark.c \ 101 glib/gqueue.c \ 102 glib/grand.c \ 103 glib/gregex.c \ 104 glib/grcbox.c \ 105 glib/grefcount.c \ 106 glib/gscanner.c \ 107 glib/gsequence.c \ 108 glib/gspawn.c \ 109 glib/gshell.c \ 110 glib/gslice.c \ 111 glib/gslist.c \ 112 glib/gstdio.c \ 113 glib/gstrfuncs.c \ 114 glib/gstring.c \ 115 glib/gstringchunk.c \ 116 glib/gtestutils.c \ 117 glib/gthread.c \ 118 glib/gthread-posix.c \ 119 glib/gthreadpool.c \ 120 glib/gtimer.c \ 121 glib/gtimezone.c \ 122 glib/gtrashstack.c \ 123 glib/gtranslit.c \ 124 glib/gtree.c \ 125 glib/gunibreak.c \ 126 glib/gunidecomp.c \ 127 glib/guniprop.c \ 128 glib/gurifuncs.c \ 129 glib/gutf8.c \ 130 glib/gutils.c \ 131 glib/ghostutils.c \ 132 glib/gvarianttype.c \ 133 glib/gvariant.c \ 134 glib/gvariant-core.c \ 135 glib/gvariant-serialiser.c \ 136 glib/gvarianttypeinfo.c \ 137 glib/gwakeup.c \ 138 glib/glib-unix.c \ 139 glib/libcharset/localcharset.c \ 140 glib/gnulib/asnprintf.c \ 141 glib/gnulib/printf-args.c \ 142 glib/gnulib/printf-parse.c \ 143 glib/gnulib/printf.c \ 144 glib/gnulib/vasnprintf.c \ 145 glib/pcre/pcre_chartables.c \ 146 glib/pcre/pcre_compile.c \ 147 glib/pcre/pcre_config.c \ 148 glib/pcre/pcre_dfa_exec.c \ 149 glib/pcre/pcre_exec.c \ 150 glib/pcre/pcre_fullinfo.c \ 151 glib/pcre/pcre_get.c \ 152 glib/pcre/pcre_globals.c \ 153 glib/pcre/pcre_newline.c \ 154 glib/pcre/pcre_ord2utf8.c \ 155 glib/pcre/pcre_study.c \ 156 glib/pcre/pcre_tables.c \ 157 glib/pcre/pcre_xclass.c \ 158 gobject/gatomicarray.c \ 159 gobject/gbinding.c \ 160 gobject/gboxed.c \ 161 gobject/gclosure.c \ 162 gobject/genums.c \ 163 gobject/gobject.c \ 164 gobject/gparam.c \ 165 gobject/gparamspecs.c \ 166 gobject/gsignal.c \ 167 gobject/gsourceclosure.c \ 168 gobject/gtype.c \ 169 gobject/gtypemodule.c \ 170 gobject/gtypeplugin.c \ 171 gobject/gvalue.c \ 172 gobject/gvaluearray.c \ 173 gobject/gvaluetransform.c \ 174 gobject/gvaluetypes.c \ 175 gobject/gmarshal.c \ 176 gthread/gthread-impl.c \ 177 gmodule/gmodule.c 178 179 OBJ_DIRS = $(addprefix $(OBJBASE_DIR)/,$(DIRLIST)) 180 OBJECTS = $(patsubst %.c,$(OBJBASE_DIR)/%.o,$(C_SOURCES)) 181 182 .PHONY: default 183 184 default: $(TARGET) 185 186 $(OBJBASE_DIR)/%.o: $(SRCBASE_DIR)/%.c 187 $(CC) $(CFLAGS) $(INCLUDES) -c $< -o $@ 188 189 $(OBJECTS): | $(OBJ_DIRS) $(TARGET_DIRS) 190 191 $(OBJ_DIRS): 192 mkdir -p $(OBJ_DIRS) 193 194 $(TARGET_DIRS): 195 mkdir -p $(TARGET_DIRS) 196 197 $(TARGET): $(OBJECTS) 198 $(LINKER) -dynamiclib $(OBJECTS) $(LDFLAGS) -o $@