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