github.com/nevalang/neva@v0.23.1-0.20240507185603-7696a9bb8dda/Makefile (about) 1 # === Development === 2 3 # build neva cli for host OS and put to the PATH as well as replaces stdlib 4 .PHONY: install 5 install: 6 @go build -ldflags="-s -w" ./cmd/neva && \ 7 rm -rf $HOME/neva/std && \ 8 rm -rf /usr/local/bin/neva && \ 9 mv neva /usr/local/bin/neva 10 11 # generate go parser from antlr grammar 12 .PHONY: antlr 13 antlr: 14 @cd internal/compiler/parser && \ 15 antlr4 -Dlanguage=Go -no-visitor -package parsing ./neva.g4 -o generated 16 17 # generate ts types from go src pkg 18 .PHONY: tygo 19 tygo: 20 @tygo generate 21 22 # === Release Artifacts === 23 24 # build neva cli for all target platforms 25 .PHONY: build 26 build: 27 $(MAKE) build-darwin-amd64 28 $(MAKE) build-darwin-arm64 29 $(MAKE) build-linux-amd64 30 $(MAKE) build-linux-arm64 31 $(MAKE) build-linux-loong64 32 $(MAKE) build-windows-amd64 33 $(MAKE) build-windows-arm64 34 35 # build neva cli for amd64 mac 36 .PHONY: build-darwin-amd64 37 build-darwin-amd64: 38 @GOOS=darwin GOARCH=amd64 go build -ldflags="-s -w" -o neva-darwin-amd64 ./cmd/neva 39 40 # build neva cli for arm64 mac 41 .PHONY: build-darwin-arm64 42 build-darwin-arm64: 43 @GOOS=darwin GOARCH=arm64 go build -ldflags="-s -w" -o neva-darwin-arm64 ./cmd/neva 44 45 # build neva cli for amd64 linux 46 .PHONY: build-linux-amd64 47 build-linux-amd64: 48 @GOOS=linux GOARCH=amd64 go build -ldflags="-s -w" -o neva-linux-amd64 ./cmd/neva 49 50 # build neva cli for arm64 linux 51 .PHONY: build-linux-arm64 52 build-linux-arm64: 53 @GOOS=linux GOARCH=arm64 go build -ldflags="-s -w" -o neva-linux-arm64 ./cmd/neva 54 55 # build neva cli for loong64 linux 56 .PHONY: build-linux-loong64 57 build-linux-loong64: 58 @GOOS=linux GOARCH=loong64 go build -ldflags="-s -w" -o neva-linux-loong64 ./cmd/neva 59 60 # build neva cli for amd64 windows 61 .PHONY: build-windows-amd64 62 build-windows-amd64: 63 @GOOS=windows GOARCH=amd64 go build -ldflags="-s -w" -o neva-windows-amd64.exe ./cmd/neva 64 65 # build neva cli for arm64 windows 66 .PHONY: build-windows-arm64 67 build-windows-arm64: 68 @GOOS=windows GOARCH=arm64 go build -ldflags="-s -w" -o neva-windows-arm64.exe ./cmd/neva 69 70 # === Tool Artifacts === 71 72 # build neva lsp for all target platforms 73 .PHONY: build-lsp 74 build-lsp: 75 $(MAKE) build-lsp-darwin-amd64 76 $(MAKE) build-lsp-darwin-arm64 77 $(MAKE) build-lsp-linux-amd64 78 $(MAKE) build-lsp-linux-arm64 79 $(MAKE) build-lsp-linux-loong64 80 $(MAKE) build-lsp-windows-amd64 81 $(MAKE) build-lsp-windows-arm64 82 83 # build neva lsp for amd64 mac 84 .PHONY: build-lsp-darwin-amd64 85 build-lsp-darwin-amd64: 86 @GOOS=darwin GOARCH=amd64 go build -ldflags="-s -w" -o neva-lsp-darwin-amd64 ./cmd/lsp 87 88 # build neva lsp for arm64 mac 89 .PHONY: build-lsp-darwin-arm64 90 build-lsp-darwin-arm64: 91 @GOOS=darwin GOARCH=arm64 go build -ldflags="-s -w" -o neva-lsp-darwin-arm64 ./cmd/lsp 92 93 # build neva lsp for amd64 linux 94 .PHONY: build-lsp-linux-amd64 95 build-lsp-linux-amd64: 96 @GOOS=linux GOARCH=amd64 go build -ldflags="-s -w" -o neva-lsp-linux-amd64 ./cmd/lsp 97 98 # build neva lsp for arm64 linux 99 .PHONY: build-lsp-linux-arm64 100 build-lsp-linux-arm64: 101 @GOOS=linux GOARCH=arm64 go build -ldflags="-s -w" -o neva-lsp-linux-arm64 ./cmd/lsp 102 103 # build neva lsp for loong64 linux 104 .PHONY: build-lsp-linux-loong64 105 build-lsp-linux-loong64: 106 @GOOS=linux GOARCH=loong64 go build -ldflags="-s -w" -o neva-lsp-linux-loong64 ./cmd/lsp 107 # build neva lsp for amd64 windows 108 109 .PHONY: build-lsp-windows-amd64 110 build-lsp-windows-amd64: 111 @GOOS=windows GOARCH=amd64 go build -ldflags="-s -w" -o neva-lsp-windows-amd64.exe ./cmd/lsp 112 113 # build neva lsp for arm64 windows 114 .PHONY: build-lsp-windows-arm64 115 build-lsp-windows-arm64: 116 @GOOS=windows GOARCH=arm64 go build -ldflags="-s -w" -o neva-lsp-windows-arm64.exe ./cmd/lsp