@@ -113,23 +113,29 @@ ALL := libgdtoa.a libgdtoa-gdb.a libgdtoa-pic.a \
113
113
libmlton.a libmlton-gdb.a libmlton-pic.a
114
114
ALL += gen/c-types.sml gen/basis-ffi.sml gen/sizes
115
115
116
+ .PHONY : all
116
117
all : $(ALL )
117
118
119
+ # ## pattern rules
118
120
119
- # ## util ###
121
+ % .d : % .c
122
+ $(CROSS_PREFIX )$(CC ) $(OPTCFLAGS ) $($(< ) _XCFLAGS) -M -MG -MT $(subst .d,.o,$@ ) -MT $@ -MF $@ $<
123
+ % -gdb.d : % .c
124
+ $(CROSS_PREFIX )$(CC ) $(DEBUGCFLAGS ) $($(< ) _XCFLAGS) -M -MG -MT $(subst .d,.o,$@ ) -MT $@ -MF $@ $<
125
+ % -pic.d : % .c
126
+ $(CROSS_PREFIX )$(CC ) $(PICCFLAGS ) $($(< ) _XCFLAGS) -M -MG -MT $(subst .d,.o,$@ ) -MT $@ -MF $@ $<
120
127
121
- UTILHFILES := \
122
- util.h \
123
- $(shell $(FIND ) util -type f -name '* .h')
124
- UTILCFILES := \
125
- $(shell $(FIND ) util -type f -name '* .c')
128
+ % .o :
129
+ $(CROSS_PREFIX )$(CC ) $(OPTCFLAGS ) $($(< ) _XCFLAGS) -c -o $@ $<
130
+ % -gdb.o :
131
+ $(CROSS_PREFIX )$(CC ) $(DEBUGCFLAGS ) $($(< ) _XCFLAGS) -c -o $@ $<
132
+ % -pic.o :
133
+ $(CROSS_PREFIX )$(CC ) $(PICCFLAGS ) $($(< ) _XCFLAGS) -c -o $@ $<
126
134
127
- util-pic.o : util.c $(UTILCFILES ) cenv.h $(UTILHFILES )
128
- $(CROSS_PREFIX )$(CC ) $(PICCFLAGS ) -c -o $@ $<
129
- util-gdb.o : util.c $(UTILCFILES ) cenv.h $(UTILHFILES )
130
- $(CROSS_PREFIX )$(CC ) $(DEBUGCFLAGS ) -c -o $@ $<
131
- util.o : util.c $(UTILCFILES ) cenv.h $(UTILHFILES )
132
- $(CROSS_PREFIX )$(CC ) $(OPTCFLAGS ) -c -o $@ $<
135
+ % .a :
136
+ rm -f $@
137
+ $(CROSS_PREFIX )$(AR ) rc $@ $^
138
+ $(CROSS_PREFIX )$(RANLIB ) $@
133
139
134
140
# ## c-types.h ml-types.h gen/c-types.sml ###
135
141
@@ -197,12 +203,14 @@ GDTOA_OBJS := $(patsubst %.c,%.o,$(GDTOACFILES))
197
203
GDTOA_DEBUG_OBJS := $(patsubst % .c,% -gdb.o,$(GDTOACFILES ) )
198
204
GDTOA_PIC_OBJS := $(patsubst % .c,% -pic.o,$(GDTOACFILES ) )
199
205
200
- gdtoa/README : gdtoa.tgz gdtoa.may_alias-unions.patch gdtoa.rename-public-fns.patch gdtoa.hide-private-fns.patch gdtoa.hide-public-fns.patch
206
+ gdtoa/README : gdtoa.tgz gdtoa.may_alias-unions.patch gdtoa.rename-public-fns.patch gdtoa.hide-private-fns.patch gdtoa.hide-public-fns.patch gdtoa.include-arith.patch gdtoa.include-gd_qnan.patch
201
207
$(GZIP ) -dc gdtoa.tgz | $(TAR ) xf -
202
208
$(PATCH ) -s -d gdtoa -p1 < gdtoa.may_alias-unions.patch
203
209
$(PATCH ) -s -d gdtoa -p1 < gdtoa.rename-public-fns.patch
204
210
$(PATCH ) -s -d gdtoa -p1 < gdtoa.hide-private-fns.patch
205
211
$(PATCH ) -s -d gdtoa -p1 < gdtoa.hide-public-fns.patch
212
+ $(PATCH ) -s -d gdtoa -p1 < gdtoa.include-arith.patch
213
+ $(PATCH ) -s -d gdtoa -p1 < gdtoa.include-gd_qnan.patch
206
214
@touch $@
207
215
208
216
gdtoa/gdtoa.h $(GDTOACFILES ) : gdtoa/README
@@ -233,36 +241,21 @@ gdtoa/%-gdb.o: gdtoa/%.c gdtoa/arith.h gdtoa/gd_qnan.h
233
241
gdtoa/% .o : gdtoa/% .c gdtoa/arith.h gdtoa/gd_qnan.h
234
242
$(CROSS_PREFIX )$(CC ) $(OPTCFLAGS ) -w -DINFNAN_CHECK -c -o $@ $<
235
243
244
+ ifneq ($(MAKECMDGOALS ) ,clean)
245
+ -include $(patsubst % .o,% .d,$(GDTOA_OBJS ) )
246
+ -include $(patsubst % .o,% .d,$(GDTOA_DEBUG_OBJS ) )
247
+ -include $(patsubst % .o,% .d,$(GDTOA_PIC_OBJS ) )
248
+ endif
249
+
236
250
libgdtoa.a : $(GDTOA_OBJS )
237
251
libgdtoa-gdb.a : $(GDTOA_DEBUG_OBJS )
238
252
libgdtoa-pic.a : $(GDTOA_PIC_OBJS )
239
253
240
254
# ## libmlton ###
241
255
242
- PLATFORMHFILES := \
243
- platform.h \
244
- $(shell $(FIND ) platform -type f -name '* .h')
245
- PLATFORMCFILES := \
246
- $(shell $(FIND ) platform -type f -name '* .c')
247
-
248
- GCHFILES := \
249
- gc.h \
250
- $(shell $(FIND ) gc -type f -name '* .h')
251
- GCCFILES := \
252
- $(shell $(FIND ) gc -type f -name '* .c')
253
-
254
256
BASISCFILES := \
255
257
$(shell $(FIND ) basis -type f -name '* .c')
256
258
257
- HFILES := \
258
- cenv.h \
259
- $(UTILHFILES ) \
260
- ml-types.h \
261
- c-types.h \
262
- basis-ffi.h \
263
- $(PLATFORMHFILES ) \
264
- $(GCHFILES )
265
-
266
259
MLTON_OBJS := \
267
260
util.o \
268
261
platform.o \
@@ -272,43 +265,15 @@ MLTON_OBJS += $(foreach f, $(basename $(BASISCFILES)), $(f).o)
272
265
MLTON_DEBUG_OBJS := $(patsubst % .o,% -gdb.o,$(MLTON_OBJS ) )
273
266
MLTON_PIC_OBJS := $(patsubst % .o,% -pic.o,$(MLTON_OBJS ) )
274
267
275
- platform/$(TARGET_OS ) -pic.o : $(PLATFORMCFILES )
276
- platform/$(TARGET_OS ) -gdb.o : $(PLATFORMCFILES )
277
- platform/$(TARGET_OS ) .o : $(PLATFORMCFILES )
278
-
279
- gc-pic.o : $(GCCFILES )
280
- gc-gdb.o : $(GCCFILES )
281
- gc.o : $(GCCFILES )
282
-
283
268
gc.c_XCFLAGS := -Wno-unreachable-code
284
-
285
- basis/Real/Real-pic.o : basis/Real/Real-ops.h
286
- basis/Real/Real-gdb.o : basis/Real/Real-ops.h
287
- basis/Real/Real.o : basis/Real/Real-ops.h
288
269
basis/Real/Real.c_XCFLAGS := -Wno-float-equal
289
- basis/Real/gdtoa-pic.o : $(GDTOAHFILES )
290
- basis/Real/gdtoa-gdb.o : $(GDTOAHFILES )
291
- basis/Real/gdtoa.o : $(GDTOAHFILES )
292
- basis/Real/strto-pic.o : $(GDTOAHFILES )
293
- basis/Real/strto-gdb.o : $(GDTOAHFILES )
294
- basis/Real/strto.o : $(GDTOAHFILES )
295
270
basis/System/Date.c_XCFLAGS := -Wno-format-nonliteral
296
- basis/Word/Word-pic.o : basis/Word/Word-ops.h
297
- basis/Word/Word-gdb.o : basis/Word/Word-ops.h
298
- basis/Word/Word.o : basis/Word/Word-ops.h
299
- basis/coerce-pic.o : basis/coerce.h
300
- basis/coerce-gdb.o : basis/coerce.h
301
- basis/coerce.o : basis/coerce.h
302
- basis/cpointer-pic.o : basis/cpointer.h
303
- basis/cpointer-gdb.o : basis/cpointer.h
304
- basis/cpointer.o : basis/cpointer.h
305
-
306
- % -pic.o : % .c $(HFILES )
307
- $(CROSS_PREFIX )$(CC ) $(PICCFLAGS ) $($(< ) _XCFLAGS) -c -o $@ $<
308
- % -gdb.o : % .c $(HFILES )
309
- $(CROSS_PREFIX )$(CC ) $(DEBUGCFLAGS ) $($(< ) _XCFLAGS) -c -o $@ $<
310
- % .o : % .c $(HFILES )
311
- $(CROSS_PREFIX )$(CC ) $(OPTCFLAGS ) $($(< ) _XCFLAGS) -c -o $@ $<
271
+
272
+ ifneq ($(MAKECMDGOALS ) ,clean)
273
+ -include $(patsubst % .o,% .d,$(MLTON_OBJS ) )
274
+ -include $(patsubst % .o,% .d,$(MLTON_DEBUG_OBJS ) )
275
+ -include $(patsubst % .o,% .d,$(MLTON_PIC_OBJS ) )
276
+ endif
312
277
313
278
libmlton.a : $(MLTON_OBJS )
314
279
libmlton-gdb.a : $(MLTON_DEBUG_OBJS )
@@ -333,13 +298,6 @@ gen/gen-sizes$(EXE): util.o
333
298
# #####
334
299
335
300
336
- % .a :
337
- rm -f $@
338
- $(CROSS_PREFIX )$(AR ) rc $@ $^
339
- $(CROSS_PREFIX )$(RANLIB ) $@
340
-
341
-
342
-
343
301
.PHONY : flags
344
302
flags :
345
303
@echo TARGET = $(TARGET )
0 commit comments