|
| 1 | +include ../support/Makefile.inc |
| 2 | + |
| 3 | +.PHONY: build clean test |
| 4 | +.SECONDARY: |
| 5 | + |
| 6 | +build: $(BIN)/$(HL_TARGET)/filter |
| 7 | + |
| 8 | +$(GENERATOR_BIN)/gaussian_blur.generator: gaussian_blur_generator.cpp $(GENERATOR_DEPS) |
| 9 | + @mkdir -p $(@D) |
| 10 | + $(CXX) $(CXXFLAGS) -g $(filter %.cpp,$^) -o $@ $(LIBHALIDE_LDFLAGS) |
| 11 | + |
| 12 | +LIBS := $(BIN)/%/gaussian_blur_direct.a |
| 13 | +HEADERS := gaussian_blur_direct.h |
| 14 | +define GAUSSIAN_BLUR |
| 15 | +LIBS += $(BIN)/%/gaussian_blur_$(1)_$(2)_$(3).a |
| 16 | +HEADERS += gaussian_blur_$(1)_$(2)_$(3).h |
| 17 | +$(BIN)/%/gaussian_blur_$(1)_$(2)_$(3).a: $(GENERATOR_BIN)/gaussian_blur.generator |
| 18 | + @mkdir -p $$(@D) |
| 19 | + $$< -g gaussian_blur -f gaussian_blur_$(1)_$(2)_$(3) -e $(GENERATOR_OUTPUTS),conceptual_stmt_html -o $(BIN)/$$* target=$$*-no_runtime upsample_order=$(1) downsample_order=$(2) factor=$(3) |
| 20 | +endef |
| 21 | + |
| 22 | +$(foreach upsample_order,2 3 4, \ |
| 23 | +$(foreach downsample_order,1 2 3, \ |
| 24 | +$(foreach factor,2 4 8 16, \ |
| 25 | +$(eval $(call GAUSSIAN_BLUR,$(upsample_order),$(downsample_order),$(factor)))))) |
| 26 | + |
| 27 | +LIBS += $(BIN)/%/runtime.a |
| 28 | + |
| 29 | +# combined header |
| 30 | +$(BIN)/%/blurs.h: |
| 31 | + rm -f $@ |
| 32 | + $(foreach h,$(HEADERS),echo '#include "$(h)"' >> $@;) |
| 33 | + |
| 34 | +$(BIN)/%/gaussian_blur_direct.a: $(GENERATOR_BIN)/gaussian_blur.generator |
| 35 | + @mkdir -p $(@D) |
| 36 | + $< -g gaussian_blur_direct -f gaussian_blur_direct -e $(GENERATOR_OUTPUTS),conceptual_stmt_html -o $(BIN)/$* target=$*-no_runtime |
| 37 | + |
| 38 | +$(BIN)/%/runtime.a: $(GENERATOR_BIN)/gaussian_blur.generator |
| 39 | + @mkdir -p $(@D) |
| 40 | + $< -r runtime -o $(BIN)/$* target=$* |
| 41 | + |
| 42 | +.PRECIOUS: $(LIBS) $(BIN)/%/blurs.h |
| 43 | + |
| 44 | +$(BIN)/%/filter: filter.cpp $(LIBS) $(BIN)/%/blurs.h |
| 45 | + @mkdir -p $(@D) |
| 46 | + $(CXX) $(CXXFLAGS) -I$(BIN)/$* -Wall -O3 $(filter-out %.h,$^) -o $@ $(LDFLAGS) $(IMAGE_IO_FLAGS) $(CUDA_LDFLAGS) $(OPENCL_LDFLAGS) |
| 47 | + |
| 48 | +test: $(BIN)/$(HL_TARGET)/filter |
| 49 | + $< ../images/gray.png 10 |
| 50 | + |
| 51 | +clean: |
| 52 | + rm -rf $(BIN) |
0 commit comments