Add Makefile.
Provides targets for building, auto-formatting and testing (with and without coverage).
This commit is contained in:
parent
e0166b98a9
commit
4639a8c011
3
.gitignore
vendored
3
.gitignore
vendored
@ -1,3 +1,2 @@
|
||||
bin/
|
||||
pkg/
|
||||
cover/
|
||||
|
||||
|
57
Makefile
Normal file
57
Makefile
Normal file
@ -0,0 +1,57 @@
|
||||
# Go parameters
|
||||
GOCMD=go
|
||||
GOBUILD=$(GOCMD) build
|
||||
GOCLEAN=$(GOCMD) clean
|
||||
GOINSTALL=$(GOCMD) install
|
||||
GOTEST=$(GOCMD) test
|
||||
GODEP=$(GOTEST) -i
|
||||
GOFMT=gofmt -w
|
||||
GOCOVER=$(GOCMD) tool cover
|
||||
COVER_DIR=cover
|
||||
|
||||
# Package lists
|
||||
TOPLEVEL_PKG := jsh
|
||||
CMD_LIST := jsh/ps
|
||||
|
||||
# List building
|
||||
ALL_LIST = $(TOPLEVEL_PKG) $(CMD_LIST)
|
||||
|
||||
BUILD_LIST = $(foreach int, $(ALL_LIST), $(int)_build)
|
||||
CLEAN_LIST = $(foreach int, $(ALL_LIST), $(int)_clean)
|
||||
INSTALL_LIST = $(foreach int, $(ALL_LIST), $(int)_install)
|
||||
IREF_LIST = $(foreach int, $(ALL_LIST), $(int)_iref)
|
||||
TEST_LIST = $(foreach int, $(ALL_LIST), $(int)_test)
|
||||
COVER_LIST = $(foreach int, $(ALL_LIST), $(int)_cover)
|
||||
FMT_TEST = $(foreach int, $(ALL_LIST), $(int)_fmt)
|
||||
|
||||
# All are .PHONY for now because dependencyness is hard
|
||||
.PHONY: $(CLEAN_LIST) $(TEST_LIST) $(FMT_LIST) $(INSTALL_LIST) $(BUILD_LIST) $(IREF_LIST)
|
||||
|
||||
all: install
|
||||
build: $(BUILD_LIST)
|
||||
clean: $(CLEAN_LIST)
|
||||
rm -rf $(COVER_DIR)
|
||||
install: $(INSTALL_LIST)
|
||||
test: $(TEST_LIST)
|
||||
cover: $(COVER_LIST)
|
||||
echo "Output in directory: $(COVER_DIR)"
|
||||
iref: $(IREF_LIST)
|
||||
fmt: $(FMT_TEST)
|
||||
|
||||
$(BUILD_LIST): %_build: %_fmt %_iref
|
||||
$(GOBUILD) $*
|
||||
$(CLEAN_LIST): %_clean:
|
||||
$(GOCLEAN) $*
|
||||
$(INSTALL_LIST): %_install: %_fmt %_iref
|
||||
$(GOINSTALL) $*
|
||||
$(IREF_LIST): %_iref:
|
||||
$(GODEP) $*
|
||||
$(TEST_LIST): %_test:
|
||||
$(GOTEST) $*
|
||||
$(COVER_LIST): %_cover:
|
||||
mkdir -p $(COVER_DIR)/$*
|
||||
$(GOTEST) -coverprofile=$(COVER_DIR)/$*/c.out $*
|
||||
$(GOCOVER) -html=$(COVER_DIR)/$*/c.out -o $(COVER_DIR)/$*/index.html
|
||||
rm -f $*_c.out
|
||||
$(FMT_TEST): %_fmt:
|
||||
[ -d ./$* ] && $(GOFMT) ./$* || $(GOFMT) .
|
Reference in New Issue
Block a user