|
|
|
@ -1,39 +1,40 @@ |
|
|
|
|
# Variables
|
|
|
|
|
FTBENCH_DIR = $(TOP_DIR)/src/tools/ftbench
|
|
|
|
|
FTBENCH_SRC = $(FTBENCH_DIR)/ftbench.c
|
|
|
|
|
FTBENCH_BIN = $(FTBENCH_DIR)/bench
|
|
|
|
|
FTBENCH_FLAGS = $(shell pkg-config --cflags freetype2) -lfreetype
|
|
|
|
|
FTBENCH_BIN = $(OBJ_DIR)/bench.o
|
|
|
|
|
FONTS = $(wildcard $(FTBENCH_DIR)/fonts/*.ttf)
|
|
|
|
|
BASELINES = $(addprefix $(FTBENCH_DIR)/baselines/, $(notdir $(FONTS:.ttf=.txt)))
|
|
|
|
|
BENCHMARKS = $(addprefix $(FTBENCH_DIR)/benchmarks/, $(notdir $(FONTS:.ttf=.txt)))
|
|
|
|
|
PYTHON = python3
|
|
|
|
|
BASELINE = $(addprefix $(FTBENCH_DIR)/baseline/, $(notdir $(FONTS:.ttf=.txt)))
|
|
|
|
|
BENCHMARK = $(addprefix $(FTBENCH_DIR)/benchmark/, $(notdir $(FONTS:.ttf=.txt)))
|
|
|
|
|
BASELINE_DIR = $(FTBENCH_DIR)/baseline/
|
|
|
|
|
BENCHMARK_DIR = $(FTBENCH_DIR)/benchmark/
|
|
|
|
|
HTMLCREATOR = $(FTBENCH_DIR)/src/tohtml.py
|
|
|
|
|
HTMLFILE = $(TOP_DIR)/benchmark.html
|
|
|
|
|
|
|
|
|
|
# Create directories for baselines and benchmarks
|
|
|
|
|
$(FTBENCH_DIR)/baselines/ $(FTBENCH_DIR)/benchmarks/: |
|
|
|
|
# Create directories for baseline and benchmark
|
|
|
|
|
$(OBJ_DIR) $(BASELINE_DIR) $(BENCHMARK_DIR): |
|
|
|
|
@echo "Creating directory..."
|
|
|
|
|
@mkdir -p $@
|
|
|
|
|
|
|
|
|
|
# Build ftbench
|
|
|
|
|
$(FTBENCH_BIN): $(FTBENCH_SRC) |
|
|
|
|
$(FTBENCH_BIN): $(FTBENCH_SRC) | $(OBJ_DIR) |
|
|
|
|
@echo "Building ftbench..."
|
|
|
|
|
@gcc $(FTBENCH_FLAGS) $< -o $@
|
|
|
|
|
@$(CC) -I$(TOP_DIR)/include -lfreetype $< -o $@
|
|
|
|
|
|
|
|
|
|
# Create a baseline
|
|
|
|
|
.PHONY: baseline |
|
|
|
|
baseline: $(FTBENCH_BIN) $(FTBENCH_DIR)/baselines/ |
|
|
|
|
baseline: $(FTBENCH_BIN) $(BASELINE_DIR) |
|
|
|
|
@echo "Creating baseline..."
|
|
|
|
|
@$(foreach font, $(FONTS), \
|
|
|
|
|
$(FTBENCH_BIN) $(font) > $(FTBENCH_DIR)/baselines/$(notdir $(font:.ttf=.txt)); \
|
|
|
|
|
$(FTBENCH_BIN) $(font) > $(BASELINE_DIR)$(notdir $(font:.ttf=.txt)); \
|
|
|
|
|
)
|
|
|
|
|
@echo "Baseline created."
|
|
|
|
|
|
|
|
|
|
# Benchmark and compare to baseline
|
|
|
|
|
.PHONY: benchmark |
|
|
|
|
benchmark: $(FTBENCH_BIN) $(FTBENCH_DIR)/benchmarks/ |
|
|
|
|
benchmark: $(FTBENCH_BIN) $(BENCHMARK_DIR) |
|
|
|
|
@echo "Creating benchmark..."
|
|
|
|
|
@$(foreach font, $(FONTS), \
|
|
|
|
|
$(FTBENCH_BIN) $(font) > $(FTBENCH_DIR)/benchmarks/$(notdir $(font:.ttf=.txt)); \
|
|
|
|
|
$(FTBENCH_BIN) $(font) > $(BENCHMARK_DIR)$(notdir $(font:.ttf=.txt)); \
|
|
|
|
|
)
|
|
|
|
|
@$(PYTHON) $(HTMLCREATOR) > $(HTMLFILE)
|
|
|
|
|
@echo "Benchmark created."
|
|
|
|
@ -41,6 +42,6 @@ benchmark: $(FTBENCH_BIN) $(FTBENCH_DIR)/benchmarks/ |
|
|
|
|
.PHONY: clean-benchmark |
|
|
|
|
clean-benchmark: |
|
|
|
|
@echo "Cleaning..."
|
|
|
|
|
@rm -f $(FTBENCH_BIN)
|
|
|
|
|
@rm -rf $(FTBENCH_DIR)/baselines/ $(FTBENCH_DIR)/benchmarks/ $(HTMLFILE)
|
|
|
|
|
@$(RM) $(FTBENCH_BIN)
|
|
|
|
|
@$(RM) -rf $(BASELINE_DIR) $(BENCHMARK_DIR) $(HTMLFILE)
|
|
|
|
|
@echo "Cleaned."
|
|
|
|
|