-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
37 lines (32 loc) · 1.1 KB
/
Makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
PROJECT_NAME := network-scan
PLATFORMS := darwin/amd64 darwin/arm64 linux/386 linux/amd64 linux/arm linux/arm64 windows/386 windows/amd64
EXECUTABLES_DIR := executables
.PHONY: all build setup clean
all: setup build
build:
@mkdir -p $(EXECUTABLES_DIR)
@for platform in $(PLATFORMS); do \
IFS='/' read -r -a array <<< "$$platform"; \
GOOS=$${array[0]}; \
GOARCH=$${array[1]}; \
if [ $$GOOS = "windows" ]; then \
OUTPUT_NAME=$(PROJECT_NAME)_$${GOOS}_$${GOARCH}.exe; \
else \
OUTPUT_NAME=$(PROJECT_NAME)_$${GOOS}_$${GOARCH}; \
fi; \
echo "Building for $$GOOS $$GOARCH"; \
env GOOS=$$GOOS GOARCH=$$GOARCH go build -o $(EXECUTABLES_DIR)/$$OUTPUT_NAME || exit 1; \
done
setup:
@rm -f standards-oui.ieee.org.txt
@echo "Downloading OUI data..."
@wget -q https://raw.githubusercontent.com/wbrijesh/network-scan/refs/heads/main/standards-oui.ieee.org.txt -O standards-oui.ieee.org.txt
@if [ $$? -eq 0 ]; then \
echo "✅ Successfully downloaded OUI data"; \
else \
echo "Error: Failed to download OUI data"; \
exit 1; \
fi
clean:
@rm -rf $(EXECUTABLES_DIR)
@rm -f standards-oui.ieee.org.txt