File: Makefile

package info (click to toggle)
halide 21.0.0-4
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 55,752 kB
  • sloc: cpp: 289,334; ansic: 22,751; python: 7,486; makefile: 4,299; sh: 2,508; java: 1,549; javascript: 282; pascal: 207; xml: 127; asm: 9
file content (42 lines) | stat: -rw-r--r-- 1,254 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
include ../support/Makefile.inc

.PHONY: build clean test

build: $(BIN)/$(HL_TARGET)/wavelet

clean:
	@rm -rf $(BIN)

# By default, %.generator is produced by building %_generator.cpp
$(GENERATOR_BIN)/%.generator: %_generator.cpp $(GENERATOR_DEPS)
	@echo Building Generator $(filter %_generator.cpp,$^)
	@mkdir -p $(@D)
	@$(CXX) $(CXXFLAGS) $(filter %.cpp,$^) $(LIBHALIDE_LDFLAGS) -o $@

# Can't have multiple wildcards in Make, so we'll use a macro
# to stamp out all the rules we need
VARIANTS = daubechies_x haar_x inverse_daubechies_x inverse_haar_x

define GEN_RULE
$$(BIN)/%/$(1).a: $$(GENERATOR_BIN)/$(1).generator
	@echo Running Generator $$<
	@mkdir -p $$(@D)
	@$$< -g $(1) -o $$(@D) target=$$*-no_runtime
endef

$(foreach V,$(VARIANTS),$(eval $(call GEN_RULE,$(V))))

$(BIN)/%/runtime.a: $(GENERATOR_BIN)/haar_x.generator
	@echo Compiling Halide runtime for target $*
	@mkdir -p $(@D)
	@$< -r runtime -o $(@D) target=$*

$(BIN)/%/wavelet: wavelet.cpp $(foreach V,$(VARIANTS),$(BIN)/%/$(V).a) $(BIN)/%/runtime.a
	@$(CXX) $(CXXFLAGS) $(IMAGE_IO_CXX_FLAGS) -I$(BIN)/$* $^ $(IMAGE_IO_LIBS) $(LDFLAGS) -o $@

test: $(BIN)/$(HL_TARGET)/wavelet
	@echo Testing wavelet...
	@$< ../images/gray.png $(<D)

# Don't auto-delete the generators.
.SECONDARY: