diff options
Diffstat (limited to '')
-rw-r--r-- | Makefile | 42 |
1 files changed, 30 insertions, 12 deletions
@@ -24,7 +24,7 @@ GOLDFLAGS = -L $(GOLIBDIR) .SUFFIXES: -.SUFFIXES: .go .a .bin .bin-check +.SUFFIXES: .go .a .bin .bin-check .adoc .go.a: go tool compile -I $(@D) $(GOCFLAGS) -o $@ -p $(*F) \ @@ -34,22 +34,27 @@ GOLDFLAGS = -L $(GOLIBDIR) .a.bin: go tool link -L $(@D) $(GOLDFLAGS) -o $@ --extldflags '$(LDLIBS)' $< +.adoc: + asciidoctor -b manpage -o $@ $< + all: include deps.mk -libs.a = $(libs.go:.go=.a) -mains.a = $(mains.go:.go=.a) -mains.bin = $(mains.go:.go=.bin) -functional/lib.a = $(functional/lib.go:.go=.a) -fuzz/lib.a = $(fuzz/lib.go:.go=.a) -benchmarks/lib.a = $(benchmarks/lib.go:.go=.a) +libs.a = $(libs.go:.go=.a) +mains.a = $(mains.go:.go=.a) +mains.bin = $(mains.go:.go=.bin) +functional-tests/lib.a = $(functional-tests/lib.go:.go=.a) +fuzz-targets/lib.a = $(fuzz-targets/lib.go:.go=.a) +benchmarks/lib.a = $(benchmarks/lib.go:.go=.a) +manpages.N = $(manpages.N.adoc:.adoc=) sources = \ src/$(NAME).go \ src/version.go \ + src/main.go \ derived-assets = \ @@ -57,6 +62,8 @@ derived-assets = \ $(libs.a) \ $(mains.a) \ $(mains.bin) \ + $(NAME).bin \ + $(manpages.N) \ side-assets = \ tests/fuzz/corpus/ \ @@ -73,18 +80,21 @@ $(libs.a): Makefile deps.mk $(libs.a): src/$(NAME).go src/version.go -$(fuzz/lib.a): +$(fuzz-targets/lib.a): go tool compile $(GOCFLAGS) -o $@ -p $(NAME) -d=libfuzzer \ $*.go src/$(NAME).go src/version.go src/version.go: Makefile echo 'package $(NAME); const Version = "$(VERSION)"' > $@ +$(NAME).bin: src/main.bin + ln -fs src/main.bin $@ + tests.bin-check = \ tests/main.bin-check \ - $(functional/main.go:.go=.bin-check) \ + $(functional-tests/main.go:.go=.bin-check) \ $(tests.bin-check): $(EXEC)$*.bin @@ -93,6 +103,8 @@ check-unit: $(tests.bin-check) integration-tests = \ + tests/cli-opts.sh \ + tests/integration.sh \ .PRECIOUS: $(integration-tests) $(integration-tests): $(NAME).bin @@ -111,12 +123,12 @@ check: check-unit check-integration FUZZSEC=1 -fuzz/main.bin-check = $(fuzz/main.go:.go=.bin-check) -$(fuzz/main.bin-check): +fuzz-targets/main.bin-check = $(fuzz-targets/main.go:.go=.bin-check) +$(fuzz-targets/main.bin-check): $(EXEC)$*.bin --test.fuzztime=$(FUZZSEC)s \ --test.fuzz='.*' --test.fuzzcachedir=tests/fuzz/corpus -fuzz: $(fuzz/main.bin-check) +fuzz: $(fuzz-targets/main.bin-check) @@ -140,20 +152,26 @@ clean: ## ensures that all installable artifacts are crafted beforehand. install: all mkdir -p \ + '$(DESTDIR)$(BINDIR)' \ '$(DESTDIR)$(GOLIBDIR)' \ '$(DESTDIR)$(SRCDIR)' \ + cp $(NAME).bin '$(DESTDIR)$(BINDIR)'/$(NAME) cp src/$(NAME).a '$(DESTDIR)$(GOLIBDIR)' cp $(sources) '$(DESTDIR)$(SRCDIR)' + mandir install '$(DESTDIR)$(MANDIR)' $(manpages.N) ## Uninstalls from $(DESTDIR)$(PREFIX). This is a perfect mirror ## of the "install" target, and removes *all* that was installed. ## A dedicated test asserts that this is always true. uninstall: rm -rf \ + '$(DESTDIR)$(BINDIR)'/$(NAME) \ '$(DESTDIR)$(GOLIBDIR)'/$(NAME).a \ '$(DESTDIR)$(SRCDIR)' \ + mandir uninstall '$(DESTDIR)$(MANDIR)' $(manpages.N) + ALWAYS: |