diff options
| author | Nicolas Paul <n@nc0.fr> | 2023-04-25 17:39:02 +0200 |
|---|---|---|
| committer | Nicolas Paul <n@nc0.fr> | 2023-04-25 17:39:02 +0200 |
| commit | 1ab9ba20b482271d27456d6d52c124991278a299 (patch) | |
| tree | dc8f8af8ca94b31b9e9e6cd95e86fd709c95f52b | |
| parent | 12d086bf4a0dc9422ccbb3ef7b38625e4cc98d89 (diff) | |
Add Makefile
Allows inserting build information variables at compile time
| -rw-r--r-- | .gitignore | 10 | ||||
| -rw-r--r-- | Makefile | 18 | ||||
| -rw-r--r-- | crocc.go | 16 |
3 files changed, 40 insertions, 4 deletions
diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..27e3c4c --- /dev/null +++ b/.gitignore @@ -0,0 +1,10 @@ +# Copyright (c) 2023 Nicolas Paul All rights reserved. +# Use of this source code is governed by a BSD-style +# license that can be found in the LICENSE file. + +/.vscode/ +/.idea/ +*.o +*.out +*.exe +crocc
\ No newline at end of file diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..206bf7c --- /dev/null +++ b/Makefile @@ -0,0 +1,18 @@ +# Copyright (c) 2023 Nicolas Paul All rights reserved. +# Use of this source code is governed by a BSD-style +# license that can be found in the LICENSE file. + +BINARY := crocc + +VERSION := $(shell git describe --tags --always --dirty) +DATE := $(shell date -u '+%FT%T%z') + +LDFLAGS := -ldflags "-w -s -X main.version=$(VERSION) -X main.date=$(DATE)" + +$(BINARY): *.go + go build $(LDFLAGS) -o $(BINARY) + +clean: + rm -f $(BINARY) + +.PHONY: clean @@ -8,6 +8,7 @@ package main /* import "go.nc0.fr/crocc" */ import ( "flag" "log" + "runtime" ) var ( @@ -16,7 +17,7 @@ var ( sitemap = flag.Bool("sitemap", false, "generate sitemap.xml") generateHidden = flag.Bool("hidden", false, "generate hidden pages") verbose = flag.Bool("v", false, "verbose output") - version = flag.Bool("version", false, "print version and exit") + printVersion = flag.Bool("version", false, "print version and exit") ) const usage string = `crocc is a simple Markdown-based static site generator. @@ -31,7 +32,11 @@ Usage: Options:` -const Version string = "1.0.0" +// Set at compilation time +var ( + version string + date string +) func init() { flag.Usage = func() { @@ -43,8 +48,11 @@ func init() { func main() { flag.Parse() - if *version { - log.Printf("crocc v%s\n", Version) + log.SetFlags(0) + + if *printVersion { + log.Printf("crocc version %s %s/%s %s date %s", + version, runtime.GOOS, runtime.GOARCH, runtime.Compiler, date) return } } |
