Browse Source

Crossplatform make

Work in progress 50%
pull/1/head
Bertrand Moreau 2 years ago
committed by Zorglube
parent
commit
ebb0d7bdc2
  1. 75
      Makefile
  2. 66
      Makefile.BSD
  3. 42
      make/Makefile.common

75
Makefile

@ -1,56 +1,23 @@
# If a different version of Go is installed (via `go get`) set the GO_VERSION
# environment variable to that version. For example, setting it to "1.13.7"
# will run `go1.13.7 build [...]` instead of `go build [...]`.
#
# For info on installing extra versions, see this page:
# https://golang.org/doc/install#extra_versions
TAGS=
# If a different version of Go is installed (via `go get`) set the GO_VERSION
# environment variable to that version. For example, setting it to "1.13.7"
# will run `go1.13.7 build [...]` instead of `go build [...]`.
#
# For info on installing extra versions, see this page:
# https://golang.org/doc/install#extra_versions
# goosList = "android darwin dragonfly freebsd linux nacl netbsd openbsd plan9 solaris windows"
# goarchList = "386 amd64 amd64p32 arm arm64 ppc64 ppc64le mips mipsle mips64 mips64le mips64p32 mips64p32leppc s390 s390x sparc sparc64"
include make/Makefile.common
# Windows needs the .exe extension.
ifeq ($(OS),Windows_NT)
EXT=.exe
endif
.PHONY: fmt vet get clean dev setdev test ServerMovieNight
all: fmt vet test MovieNight$(EXT) static/main.wasm settings.json
# Build the server deployment
server: ServerMovieNight static/main.wasm
# Build used for deploying to my server.
ServerMovieNight: *.go common/*.go
GOOS=${OS} GOARCH=${ARCH} go$(GO_VERSION) build -o MovieNight $(TAGS)
setdev:
$(eval export TAGS=-tags "dev")
dev: setdev all
MovieNight$(EXT): *.go common/*.go
GOOS=${OS} GOARCH=${ARCH} go$(GO_VERSION) build -o $@ $(TAGS)
static/js/wasm_exec.js:
cp $$(go env GOROOT)/misc/wasm/wasm_exec.js $@
static/main.wasm: static/js/wasm_exec.js wasm/*.go common/*.go
GOOS=js GOARCH=wasm go$(GO_VERSION) build -o $@ $(TAGS) wasm/*.go
clean:
-rm MovieNight$(EXT) ./static/main.wasm ./static/js/wasm_exec.js
fmt:
gofmt -w .
vet:
go$(GO_VERSION) vet $(TAGS) ./...
GOOS=js GOARCH=wasm go$(GO_VERSION) vet $(TAGS) ./...
test:
go$(GO_VERSION) test $(TAGS) ./...
# Do not put settings_example.json here as a prereq to avoid overwriting
# the settings if the example is updated.
settings.json:
cp settings_example.json settings.json
ifeq ($(OS),Windows_NT)
EXT=.exe
endif
ifeq ($(GOOS),)
GOOS=windows
endif
l
ifeq ($(ARCH),)
ARCH=386
endif

66
Makefile.BSD

@ -1,54 +1,12 @@
# If a different version of Go is installed (via `go get`) set the GO_VERSION
# environment variable to that version. For example, setting it to "1.13.7"
# will run `go1.13.7 build [...]` instead of `go build [...]`.
#
# For info on installing extra versions, see this page:
# https://golang.org/doc/install#extra_versions
# goosList = "android darwin dragonfly freebsd linux nacl netbsd openbsd plan9 solaris windows"
# goarchList = "386 amd64 amd64p32 arm arm64 ppc64 ppc64le mips mipsle mips64 mips64le mips64p32 mips64p32leppc s390 s390x sparc sparc64"
TAGS=
.PHONY: fmt vet get clean dev setdev test ServerMovieNight
all: fmt vet test MovieNight static/main.wasm settings.json
# Build the server deployment
server: ServerMovieNight static/main.wasm
# Build used for deploying to my server.
ServerMovieNight: *.go common/*.go
GOOS=${TARGET} GOARCH=${ARCH} go$(GO_VERSION) build -o MovieNight $(TAGS)
setdev:
$(eval export TAGS=-tags "dev")
dev: setdev all
MovieNight: *.go common/*.go
GOOS=${TARGET} GOARCH=${ARCH} go$(GO_VERSION) build -o $@ $(TAGS)
static/js/wasm_exec.js:
cp $$(go env GOROOT)/misc/wasm/wasm_exec.js $@
static/main.wasm: static/js/wasm_exec.js wasm/*.go common/*.go
GOOS=js GOARCH=wasm go$(GO_VERSION) build -o $@ $(TAGS) wasm/*.go
clean:
-rm MovieNight ./static/main.wasm ./static/js/wasm_exec.js
fmt:
gofmt -w .
vet:
go$(GO_VERSION) vet $(TAGS) ./...
GOOS=js GOARCH=wasm go$(GO_VERSION) vet $(TAGS) ./...
test:
go$(GO_VERSION) test $(TAGS) ./...
# Do not put settings_example.json here as a prereq to avoid overwriting
# the settings if the example is updated.
settings.json:
cp settings_example.json settings.json
# If a different version of Go is installed (via `go get`) set the GO_VERSION
# environment variable to that version. For example, setting it to "1.13.7"
# will run `go1.13.7 build [...]` instead of `go build [...]`.
#
# For info on installing extra versions, see this page:
# https://golang.org/doc/install#extra_versions
# goosList = "android darwin dragonfly freebsd linux nacl netbsd openbsd plan9 solaris windows"
# goarchList = "386 amd64 amd64p32 arm arm64 ppc64 ppc64le mips mipsle mips64 mips64le mips64p32 mips64p32leppc s390 s390x sparc sparc64"
include make/Makefile.common
GOOS=freebsd

42
make/Makefile.common

@ -0,0 +1,42 @@
TAGS=
.PHONY: fmt vet get clean dev setdev test ServerMovieNight
all: fmt vet test MovieNight static/main.wasm settings.json
server: ServerMovieNight static/main.wasm
ServerMovieNight: *.go common/*.go
GOOS=${GOOS} GOARCH=${ARCH} go$(GO_VERSION) build -o MovieNight $(TAGS)
setdev:
$(eval export TAGS=-tags "dev")
dev: setdev all
MovieNight: *.go common/*.go
GOOS=${GOOS} GOARCH=${ARCH} go$(GO_VERSION) build -o MovieNight${EXT} $(TAGS)
static/js/wasm_exec.js:
$$(go env GOROOT)/misc/wasm/wasm_exec.js $@
static/main.wasm: static/js/wasm_exec.js wasm/*.go common/*.go
GOOS=js GOARCH=wasm go$(GO_VERSION) build -o $@ $(TAGS) wasm/*.go
clean:
-rm MovieNight${EXT} ./static/main.wasm ./static/js/wasm_exec.js
fmt:
gofmt -w .
vet:
go$(GO_VERSION) vet $(TAGS) ./...
GOOS=js GOARCH=wasm go$(GO_VERSION) vet $(TAGS) ./...
test:
go$(GO_VERSION) test $(TAGS) ./...
# Do not put settings_example.json here as a prereq to avoid overwriting
# the settings if the example is updated.
settings.json:
cp settings_example.json settings.json
Loading…
Cancel
Save