Introduction
Introduction Statistics Contact Development Disclaimer Help
Makefile - fingered - Fingerd protocol daemon, allowing custom responses.
git clone git://jay.scot/fingered
Log
Files
Refs
README
LICENSE
---
Makefile (1348B)
---
1 # Makefile
2
3 .PHONY: all fmt lint test build clean install
4
5 BIN := bin
6 NAME := fingered
7 VER := 0.1.0
8
9 BUILD_FLAGS := -ldflags="-s -w"
10
11 # List of target platforms
12 PLATFORMS := \
13 linux_amd64 \
14 linux_386 \
15 darwin_amd64 \
16 freebsd_amd64 \
17 freebsd_386 \
18 openbsd_amd64 \
19 openbsd_386
20
21 # Generate binary paths
22 BINS := $(addprefix $(BIN)/$(NAME)_$(VER)_,$(PLATFORMS))
23
24 # Installation path
25 INSTALL_PATH := /usr/local/bin
26
27 # Detect current platform and architecture
28 GOOS := $(shell go env GOOS)
29 GOARCH := $(shell go env GOARCH)
30
31 # Default target: format, lint, build
32 all: fmt lint build
33
34 fmt:
35 @echo "Formatting code..."
36 go fmt ./...
37
38 lint:
39 @echo "Running linters..."
40 golangci-lint run
41
42 test:
43 @echo "Running tests..."
44 go test ./tests
45
46 # Build binaries for target platforms
47 build: $(BINS)
48
49 $(BIN)/$(NAME)_$(VER)_%: main.go
50 @echo "Building for $*..."
51 GOARCH=$(word 2,$(subst _, ,$*)) GOOS=$(word 1,$(subst _, ,$*)) …
52
53 # Clean up artifacts
54 clean:
55 go clean
56 rm -f $(BINS)
57
58 # Install the binary for the current platform and architecture
59 install: $(BIN)/$(NAME)_$(VER)_$(GOOS)_$(GOARCH)
60 @echo "Installing binary to $(INSTALL_PATH)..."
61 mkdir -p $(INSTALL_PATH)
62 cp -f $(BIN)/$(NAME)_$(VER)_$(GOOS)_$(GOARCH) $(INSTALL_PATH)/$(…
63 chmod +x $(INSTALL_PATH)/$(NAME)
64
65 run: build
66 ./$(BIN)/$(NAME)_$(VER)_linux_amd64
You are viewing proxied material from jay.scot. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.