Skip to content

Commit eeee00f

Browse files
committed
Use automatic dependencies in runtime/Makefile
1 parent 76da64c commit eeee00f

File tree

4 files changed

+58
-76
lines changed

4 files changed

+58
-76
lines changed

runtime/Makefile

+33-75
Original file line numberDiff line numberDiff line change
@@ -113,23 +113,29 @@ ALL := libgdtoa.a libgdtoa-gdb.a libgdtoa-pic.a \
113113
libmlton.a libmlton-gdb.a libmlton-pic.a
114114
ALL += gen/c-types.sml gen/basis-ffi.sml gen/sizes
115115

116+
.PHONY: all
116117
all: $(ALL)
117118

119+
### pattern rules
118120

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 $@ $<
120127

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 $@ $<
126134

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) $@
133139

134140
### c-types.h ml-types.h gen/c-types.sml ###
135141

@@ -197,12 +203,14 @@ GDTOA_OBJS := $(patsubst %.c,%.o,$(GDTOACFILES))
197203
GDTOA_DEBUG_OBJS := $(patsubst %.c,%-gdb.o,$(GDTOACFILES))
198204
GDTOA_PIC_OBJS := $(patsubst %.c,%-pic.o,$(GDTOACFILES))
199205

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
201207
$(GZIP) -dc gdtoa.tgz | $(TAR) xf -
202208
$(PATCH) -s -d gdtoa -p1 <gdtoa.may_alias-unions.patch
203209
$(PATCH) -s -d gdtoa -p1 <gdtoa.rename-public-fns.patch
204210
$(PATCH) -s -d gdtoa -p1 <gdtoa.hide-private-fns.patch
205211
$(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
206214
@touch $@
207215

208216
gdtoa/gdtoa.h $(GDTOACFILES): gdtoa/README
@@ -233,36 +241,21 @@ gdtoa/%-gdb.o: gdtoa/%.c gdtoa/arith.h gdtoa/gd_qnan.h
233241
gdtoa/%.o: gdtoa/%.c gdtoa/arith.h gdtoa/gd_qnan.h
234242
$(CROSS_PREFIX)$(CC) $(OPTCFLAGS) -w -DINFNAN_CHECK -c -o $@ $<
235243

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+
236250
libgdtoa.a: $(GDTOA_OBJS)
237251
libgdtoa-gdb.a: $(GDTOA_DEBUG_OBJS)
238252
libgdtoa-pic.a: $(GDTOA_PIC_OBJS)
239253

240254
### libmlton ###
241255

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-
254256
BASISCFILES := \
255257
$(shell $(FIND) basis -type f -name '*.c')
256258

257-
HFILES := \
258-
cenv.h \
259-
$(UTILHFILES) \
260-
ml-types.h \
261-
c-types.h \
262-
basis-ffi.h \
263-
$(PLATFORMHFILES) \
264-
$(GCHFILES)
265-
266259
MLTON_OBJS := \
267260
util.o \
268261
platform.o \
@@ -272,43 +265,15 @@ MLTON_OBJS += $(foreach f, $(basename $(BASISCFILES)), $(f).o)
272265
MLTON_DEBUG_OBJS := $(patsubst %.o,%-gdb.o,$(MLTON_OBJS))
273266
MLTON_PIC_OBJS := $(patsubst %.o,%-pic.o,$(MLTON_OBJS))
274267

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-
283268
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
288269
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)
295270
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
312277

313278
libmlton.a: $(MLTON_OBJS)
314279
libmlton-gdb.a: $(MLTON_DEBUG_OBJS)
@@ -333,13 +298,6 @@ gen/gen-sizes$(EXE): util.o
333298
######
334299

335300

336-
%.a:
337-
rm -f $@
338-
$(CROSS_PREFIX)$(AR) rc $@ $^
339-
$(CROSS_PREFIX)$(RANLIB) $@
340-
341-
342-
343301
.PHONY: flags
344302
flags:
345303
@echo TARGET = $(TARGET)

runtime/gdtoa.hide-private-fns.patch

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ diff -Naur gdtoa.2/gdtoa.h gdtoa.3/gdtoa.h
55

66
#include "arith.h"
77
#include <stddef.h> /* for size_t */
8-
+#include "../export.h"
8+
+#include "export.h"
99

1010
#ifndef Long
1111
#define Long int

runtime/gdtoa.include-arith.patch

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
diff -Naur gdtoa.4/gdtoa.h gdtoa/gdtoa.h
2+
--- gdtoa.4/gdtoa.h 2020-01-16 15:59:46.223259055 -0500
3+
+++ gdtoa.5/gdtoa.h 2020-01-16 15:56:09.748123456 -0500
4+
@@ -32,7 +32,7 @@
5+
#ifndef GDTOA_H_INCLUDED
6+
#define GDTOA_H_INCLUDED
7+
8+
-#include "arith.h"
9+
+#include "gdtoa/arith.h"
10+
#include <stddef.h> /* for size_t */
11+
#include "../export.h"
12+

runtime/gdtoa.include-gd_qnan.patch

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
diff -Naur gdtoa.5/gdtoaimp.h gdtoa/gdtoaimp.h
2+
--- gdtoa.5/gdtoaimp.h 2020-01-16 16:50:10.663906370 -0500
3+
+++ gdtoa.6/gdtoaimp.h 2020-01-16 16:50:21.799657698 -0500
4+
@@ -198,7 +198,7 @@
5+
#ifndef GDTOAIMP_H_INCLUDED
6+
#define GDTOAIMP_H_INCLUDED
7+
#include "gdtoa.h"
8+
-#include "gd_qnan.h"
9+
+#include "gdtoa/gd_qnan.h"
10+
#ifdef Honor_FLT_ROUNDS
11+
#include <fenv.h>
12+
#endif

0 commit comments

Comments
 (0)