Skip to content

Commit 7de5773

Browse files
committed
Automate dependencies in Makefile.in
1 parent 24830cc commit 7de5773

File tree

1 file changed

+26
-34
lines changed

1 file changed

+26
-34
lines changed

Makefile.in

+26-34
Original file line numberDiff line numberDiff line change
@@ -9,22 +9,24 @@ WESTMERE = @HAVE_WESTMERE@
99
HASWELL = @HAVE_HASWELL@
1010

1111
CC = @CC@
12-
CPPFLAGS = @CPPFLAGS@ -I$(srcdir)/include -I$(srcdir)/src -I.
12+
CPPFLAGS = @CPPFLAGS@ -I$(SOURCE)/include -I$(SOURCE)/src -I.
1313
CFLAGS = @CFLAGS@
1414
DEPFLAGS = -MT $@ -MMD -MP -MF $(@:.o=.d)
15-
srcdir = @srcdir@
1615
VPATH = @srcdir@
1716

18-
SOURCES = src/zone.c src/fallback/parser.c
19-
20-
OBJECTS = $(SOURCES:.c=.o)
21-
NO_OBJECTS =
22-
2317
WESTMERE_SOURCES = src/westmere/parser.c
24-
WESTMERE_OBJECTS = $(WESTMERE_SOURCES:.c=.o)
18+
WESTMERE_OBJECTS = $($(WESTMERE)_SOURCES:.c=.o)
2519

2620
HASWELL_SOURCES = src/haswell/parser.c
27-
HASWELL_OBJECTS = $(HASWELL_SOURCES:.c=.o)
21+
HASWELL_OBJECTS = $($(HASWELL)_SOURCES:.c=.o)
22+
23+
SOURCE = @srcdir@
24+
SOURCES = src/zone.c src/fallback/parser.c
25+
NO_SOURCES =
26+
OBJECTS = $(SOURCES:.c=.o) \
27+
$($(WESTMERE)_SOURCES:.c=.o) \
28+
$($(HASWELL)_SOURCES:.c=.o)
29+
DEPENDS = $(OBJECTS:.o=.d)
2830

2931
EXPORT_HEADER = include/zone/export.h
3032

@@ -33,44 +35,34 @@ EXPORT_HEADER = include/zone/export.h
3335
all: libzone.a
3436

3537
clean:
36-
@rm -f libzone.a
37-
@rm -f $(OBJECTS) $(OBJECTS:.o=.d)
38-
@rm -f $(WESTMERE_OBJECTS) $(WESTMERE_OBJECTS:.o=.d)
39-
@rm -f $(HASWELL_OBJECTS) $(HASWELL_OBJECTS:.o=.d)
38+
@rm -f .depend
39+
@rm -f libzone.a $(OBJECTS)
4040

4141
distclean: clean
4242
@rm -f Makefile config.h config.log config.status
4343

4444
realclean: distclean
4545
@rm -rf autom4te*
4646

47-
libzone.a: $(EXPORT_HEADER) $(OBJECTS) $($(WESTMERE)_OBJECTS) $($(HASWELL)_OBJECTS)
48-
$(AR) rcs libzone.a $(OBJECTS) $($(WESTMERE)_OBJECTS) $($(HASWELL)_OBJECTS)
49-
47+
libzone.a: $(EXPORT_HEADER) $(OBJECTS)
48+
$(AR) rcs libzone.a $(OBJECTS)
5049

5150
$(EXPORT_HEADER):
5251
@mkdir -p include/zone
5352
@echo "#define ZONE_EXPORT" > include/zone/export.h
5453

55-
$(OBJECTS):
56-
@mkdir -p src/fallback
57-
$(CC) $(DEPFLAGS) $(CPPFLAGS) $(CFLAGS) -o $@ -c $(srcdir)/$(@:.o=.c)
58-
59-
$(WESTMERE_OBJECTS):
60-
@mkdir -p src/westmere
61-
$(CC) $(DEPFLAGS) $(CPPFLAGS) $(CFLAGS) -march=westmere -o $@ -c $(srcdir)/$(@:.o=.c)
54+
$(WESTMERE_OBJECTS): CFLAGS += -march=westmere
55+
$(HASWELL_OBJECTS): CFLAGS += -march=haswell
6256

63-
$(HASWELL_OBJECTS):
64-
@mkdir -p src/haswell
65-
$(CC) $(DEPFLAGS) $(CPPFLAGS) $(CFLAGS) -march=haswell -o $@ -c $(srcdir)/$(@:.o=.c)
57+
$(OBJECTS): .depend
58+
@mkdir -p src/fallback src/westmere src/haswell
59+
$(CC) $(DEPFLAGS) $(CPPFLAGS) $(CFLAGS) -o $@ -c $(SOURCE)/$(@:.o=.c)
60+
@touch $@
6661

67-
src/zone.o: $(srcdir)/src/zone.c src/zone.d
68-
src/fallback/parser.o: $(srcdir)/src/fallback/parser.c src/fallback/parser.d
69-
src/westmere/parser.o: $(srcdir)/src/westmere/parser.c src/westmere/parser.d
70-
src/haswell/parser.o: $(srcdir)/src/haswell/parser.c src/haswell/parser.d
62+
.depend:
63+
@echo -n > $@
64+
@for x in $(OBJECTS:.o=); do echo "$${x}.o: $${x}.c $${x}.d" >> $@; done
7165

72-
DEPENDS := $(SOURCES:.c=.d) \
73-
$($(WESTMERE)_SOURCES:.c=.d) \
74-
$($(HASWELL)_SOURCES:.c=.d)
66+
-include .depend
7567
$(DEPENDS):
76-
-include $(wildcard $(DEPENDS))
68+
-include $(DEPENDS)

0 commit comments

Comments
 (0)