TOOLS-yes += tiny_ssim.c tiny_ssim.SRCS += vpx/vpx_integer.h y4minput.c y4minput.h \ vpx/vpx_codec.h vpx/src/vpx_image.c tiny_ssim.SRCS += vpx_mem/vpx_mem.c vpx_mem/vpx_mem.h tiny_ssim.SRCS += vpx_dsp/ssim.h vpx_scale/yv12config.h tiny_ssim.SRCS += vpx_ports/mem.h vpx_ports/mem.h tiny_ssim.SRCS += vpx_mem/include/vpx_mem_intrnl.h tiny_ssim.GUID = 3afa9b05-940b-4d68-b5aa-55157d8ed7b4 tiny_ssim.DESCRIPTION = Generate SSIM/PSNR from raw .yuv files
TOOLS = $(addprefix tools/,$(call enabled,TOOLS)) ALL_SRCS = $(foreach ex,$(TOOLS),$($(notdir $(ex:.c=)).SRCS)) CFLAGS += -I../include
ifneq ($(CONFIG_CODEC_SRCS), yes) CFLAGS += -I../include/vpx endif
$(foreach ex,$(TOOLS),$(eval $(notdir $(ex:.c=)).SRCS += $(ex) tools.mk))
NOT_MSVS = $(if $(CONFIG_MSVS),,yes) DIST-BINS-$(NOT_MSVS) += $(addprefix bin/,$(TOOLS:.c=$(EXE_SFX))) DIST-SRCS-yes += $(ALL_SRCS) OBJS-$(NOT_MSVS) += $(call objs,$(ALL_SRCS)) BINS-$(NOT_MSVS) += $(addprefix $(BUILD_PFX),$(TOOLS:.c=$(EXE_SFX)))
$(foreach bin,$(BINS-yes),\ $(eval $(bin):)\ $(eval $(call linker_template,$(bin),\ $(call objs,$($(notdir $(bin:$(EXE_SFX)=)).SRCS)) -lm)))
INSTALL_MAPS += src/%.c %.c INSTALL_MAPS += src/% $(SRC_PATH_BARE)/% INSTALL_MAPS += bin/% % INSTALL_MAPS += % %
define vcproj_template $(1): $($(1:.$(VCPROJ_SFX)=).SRCS) vpx.$(VCPROJ_SFX) $(if $(quiet),@echo " [vcproj] $$@") $(qexec)$$(GEN_VCPROJ)\ --exe\ --target=$$(TOOLCHAIN)\ --name=$$(@:.$(VCPROJ_SFX)=)\ --ver=$$(CONFIG_VS_VERSION)\ --proj-guid=$$($$(@:.$(VCPROJ_SFX)=).GUID)\ --src-path-bare="$(SRC_PATH_BARE)" \ $$(if $$(CONFIG_STATIC_MSVCRT),--static-crt) \ --out=$$@ $$(INTERNAL_CFLAGS) $$(CFLAGS) \ $$(INTERNAL_LDFLAGS) $$(LDFLAGS) $$^ endef TOOLS_BASENAME := $(notdir $(TOOLS)) PROJECTS-$(CONFIG_MSVS) += $(TOOLS_BASENAME:.c=.$(VCPROJ_SFX)) INSTALL-BINS-$(CONFIG_MSVS) += $(foreach p,$(VS_PLATFORMS),\ $(addprefix bin/$(p)/,$(TOOLS_BASENAME:.c=.exe))) $(foreach proj,$(call enabled,PROJECTS),\ $(eval $(call vcproj_template,$(proj))))
%.dox: %.c @echo " [DOXY] $@" @mkdir -p $(dir $@) @echo "/!\page tools_$(@F:.dox=) $(@F:.dox=)" > $@ @echo " \includelineno $(<F)" >> $@ @echo "/" >> $@
tools.dox: tools.mk @echo " [DOXY] $@" @echo "/!\page tools Tools" > $@ @echo " This SDK includes a number of tools/utilities."\ "The following tools are included: ">>$@ @$(foreach ex,$(sort $(notdir $(TOOLS:.c=))),\ echo " - \subpage tools_$(ex) $($(ex).DESCRIPTION)" >> $@;) @echo "/" >> $@
CLEAN-OBJS += tools.doxy tools.dox $(TOOLS:.c=.dox) DOCS-yes += tools.doxy tools.dox tools.doxy: tools.dox $(TOOLS:.c=.dox) @echo "INPUT += $^" > $@