mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-13 15:10:34 +02:00
Bin in bin, obj in obj; prettify makefile
This commit is contained in:
parent
8f93e23a5f
commit
19f66fab08
1 changed files with 37 additions and 41 deletions
32
Makefile
32
Makefile
|
@ -31,30 +31,25 @@ CC=gcc
|
||||||
CFLAGS = -Wall -flto -fno-strict-aliasing -fvisibility=hidden -Wno-unused $(BUILD_CFLAGS)
|
CFLAGS = -Wall -flto -fno-strict-aliasing -fvisibility=hidden -Wno-unused $(BUILD_CFLAGS)
|
||||||
CPPFLAGS = -Iapi
|
CPPFLAGS = -Iapi
|
||||||
LDFLAGS = -lpthread -flto
|
LDFLAGS = -lpthread -flto
|
||||||
DEPFLAGS=-MMD -MP -MF $(@:%.o=.deps/%.d)
|
DEPFLAGS = -MMD -MP -MF $(@:obj/%.o=.deps/%.d)
|
||||||
COMPILE = $(CC) $(CFLAGS) $(CPPFLAGS) $(DEPFLAGS) -o $@
|
COMPILE = $(CC) $(CFLAGS) $(CPPFLAGS) $(DEPFLAGS) -o $@
|
||||||
LINK = $(CC) $(LDFLAGS) -o $@
|
LINK = $(CC) $(LDFLAGS) -o $@
|
||||||
PLATFORM = gnu-linux
|
PLATFORM = gnu-linux
|
||||||
|
|
||||||
ALL_TESTS = $(foreach COLLECTOR,$(COLLECTORS),$(addsuffix .$(COLLECTOR),$(TESTS)))
|
ALL_TESTS = $(foreach COLLECTOR,$(COLLECTORS),$(addsuffix .$(COLLECTOR),$(TESTS)))
|
||||||
|
|
||||||
all: $(ALL_TESTS)
|
all: $(ALL_TESTS:%=bin/%)
|
||||||
|
.deps obj bin: ; mkdir -p $@
|
||||||
|
|
||||||
OBJS=gc-platform.o gc-stack.o gc-options.o
|
include $(wildcard .deps/*)
|
||||||
OBJS+=$(foreach TEST,$(TESTS),$(TEST).gc-ephemeron.o)
|
|
||||||
OBJS+=$(foreach TEST,$(ALL_TESTS),$(TEST).gc.o $(TEST).o)
|
|
||||||
DEPS=$(OBJS:%.o=.deps/%.d)
|
|
||||||
$(OBJS): | .deps
|
|
||||||
.deps: ; mkdir -p .deps
|
|
||||||
include $(wildcard $(DEPS))
|
|
||||||
|
|
||||||
gc-platform.o: src/gc-platform-$(PLATFORM).c
|
obj/gc-platform.o: src/gc-platform-$(PLATFORM).c | .deps obj
|
||||||
$(COMPILE) -c $<
|
$(COMPILE) -c $<
|
||||||
gc-stack.o: src/gc-stack.c
|
obj/gc-stack.o: src/gc-stack.c | .deps obj
|
||||||
$(COMPILE) -c $<
|
$(COMPILE) -c $<
|
||||||
gc-options.o: src/gc-options.c
|
obj/gc-options.o: src/gc-options.c | .deps obj
|
||||||
$(COMPILE) -c $<
|
$(COMPILE) -c $<
|
||||||
%.gc-ephemeron.o: src/gc-ephemeron.c
|
obj/%.gc-ephemeron.o: src/gc-ephemeron.c | .deps obj
|
||||||
$(COMPILE) -include benchmarks/$*-embedder.h -c $<
|
$(COMPILE) -include benchmarks/$*-embedder.h -c $<
|
||||||
|
|
||||||
GC_STEM_bdw = bdw
|
GC_STEM_bdw = bdw
|
||||||
|
@ -89,7 +84,6 @@ endef
|
||||||
$(eval $(call trace_whippet_variants))
|
$(eval $(call trace_whippet_variants))
|
||||||
|
|
||||||
# $(1) is the benchmark, $(2) is the collector configuration
|
# $(1) is the benchmark, $(2) is the collector configuration
|
||||||
# gc_stem for bdw: bdw
|
|
||||||
make_gc_var = $$($(1)$(subst -,_,$(2)))
|
make_gc_var = $$($(1)$(subst -,_,$(2)))
|
||||||
gc_impl = $(call make_gc_var,GC_STEM_,$(1)).c
|
gc_impl = $(call make_gc_var,GC_STEM_,$(1)).c
|
||||||
gc_attrs = $(call make_gc_var,GC_STEM_,$(1))-attrs.h
|
gc_attrs = $(call make_gc_var,GC_STEM_,$(1))-attrs.h
|
||||||
|
@ -97,11 +91,11 @@ gc_cflags = $(call make_gc_var,GC_CFLAGS_,$(1))
|
||||||
gc_impl_cflags = $(call make_gc_var,GC_IMPL_CFLAGS_,$(1))
|
gc_impl_cflags = $(call make_gc_var,GC_IMPL_CFLAGS_,$(1))
|
||||||
gc_libs = $(call make_gc_var,GC_LIBS_,$(1))
|
gc_libs = $(call make_gc_var,GC_LIBS_,$(1))
|
||||||
define benchmark_template
|
define benchmark_template
|
||||||
$(1).$(2).gc.o: src/$(call gc_impl,$(2))
|
obj/$(1).$(2).gc.o: src/$(call gc_impl,$(2)) | .deps obj
|
||||||
$$(COMPILE) $(call gc_cflags,$(2)) $(call gc_impl_cflags,$(2)) -include benchmarks/$(1)-embedder.h -c $$<
|
$$(COMPILE) $(call gc_cflags,$(2)) $(call gc_impl_cflags,$(2)) -include benchmarks/$(1)-embedder.h -c $$<
|
||||||
$(1).$(2).o: benchmarks/$(1).c
|
obj/$(1).$(2).o: benchmarks/$(1).c | .deps obj
|
||||||
$$(COMPILE) $(call gc_cflags,$(2)) -include api/$(call gc_attrs,$(2)) -c $$<
|
$$(COMPILE) $(call gc_cflags,$(2)) -include api/$(call gc_attrs,$(2)) -c $$<
|
||||||
$(1).$(2): $(1).$(2).gc.o $(1).$(2).o gc-stack.o gc-options.o gc-platform.o $(1).gc-ephemeron.o
|
bin/$(1).$(2): obj/$(1).$(2).gc.o obj/$(1).$(2).o obj/gc-stack.o obj/gc-options.o obj/gc-platform.o obj/$(1).gc-ephemeron.o | bin
|
||||||
$$(LINK) $(call gc_libs,$(2)) $$^
|
$$(LINK) $(call gc_libs,$(2)) $$^
|
||||||
endef
|
endef
|
||||||
|
|
||||||
|
@ -112,8 +106,10 @@ $(foreach BENCHMARK,$(TESTS),\
|
||||||
.PRECIOUS: $(ALL_TESTS) $(OBJS)
|
.PRECIOUS: $(ALL_TESTS) $(OBJS)
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -f $(ALL_TESTS) $(OBJS) $(DEPS)
|
rm -f $(ALL_TESTS)
|
||||||
|
rm -rf .deps obj bin
|
||||||
|
|
||||||
|
# Clear some of the default rules.
|
||||||
.SUFFIXES:
|
.SUFFIXES:
|
||||||
.SECONDARY:
|
.SECONDARY:
|
||||||
%.c:;
|
%.c:;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue