SRC_DIR := ./src TEST_DIR := ./script VENDOR_DIR := ./vendor SRC_FILES := \ $(SRC_DIR)/config.zsh \ $(SRC_DIR)/deprecated.zsh \ $(SRC_DIR)/bind.zsh \ $(SRC_DIR)/highlight.zsh \ $(SRC_DIR)/widgets.zsh \ $(SRC_DIR)/suggestion.zsh \ $(SRC_DIR)/strategies/*.zsh \ $(SRC_DIR)/start.zsh HEADER_FILES := \ DESCRIPTION \ URL \ VERSION \ LICENSE PLUGIN_TARGET := zsh-autosuggestions.zsh OH_MY_ZSH_LINK_TARGET := zsh-autosuggestions.plugin.zsh ALL_TARGETS := \ $(PLUGIN_TARGET) \ $(OH_MY_ZSH_LINK_TARGET) SHUNIT2 := $(VENDOR_DIR)/shunit2/2.1.6 STUB_SH := $(VENDOR_DIR)/stub.sh/stub.sh TEST_PREREQS := \ $(SHUNIT2) \ $(STUB_SH) TEST_FILES := \ $(TEST_DIR)/**/*.zsh all: $(ALL_TARGETS) $(PLUGIN_TARGET): $(HEADER_FILES) $(SRC_FILES) cat $(HEADER_FILES) | sed -e 's/^/# /g' > $@ cat $(SRC_FILES) >> $@ $(OH_MY_ZSH_LINK_TARGET): $(PLUGIN_TARGET) ln -s $(PLUGIN_TARGET) $@ $(SHUNIT2): git submodule update --init vendor/shunit2 $(STUB_SH): git submodule update --init vendor/stub.sh .PHONY: clean clean: rm $(ALL_TARGETS) .PHONY: test test: all $(TEST_PREREQS) script/test_runner.zsh