1- .PHONY : all linux windows macos run clean install-deps
1+ .PHONY : all linux windows macos run clean install-deps docker-image macos clean-deps
22
33APP_NAME := snap-memory-downloader
44BUILD_DIR := bin
55SRC_DIR := .
6+ DOCKER_IMAGE := smd-osxcross:darwin
67
78all : linux windows macos
89
910linux :
10- @echo " Building for Linux..."
11- go build -o $(BUILD_DIR ) /$(APP_NAME ) $(SRC_DIR ) /gui_main.go
11+ @echo " Building for Linux using fyne-cross..."
12+ fyne-cross linux -arch=amd64 -app-id=" com.snapmemory.downloader"
13+ mkdir -p $(BUILD_DIR )
14+ mv fyne-cross/bin/linux-amd64/$(APP_NAME ) $(BUILD_DIR ) /$(APP_NAME ) || true
1215 @echo " Linux build complete: $( BUILD_DIR) /$( APP_NAME) "
1316
1417windows :
15- @echo " Building for Windows..."
16- GOOS=windows go build -ldflags -H=windowsgui -o $(BUILD_DIR ) /$(APP_NAME ) .exe $(SRC_DIR ) /gui_main.go
18+ @echo " Building for Windows using fyne-cross..."
19+ fyne-cross windows -arch=amd64 -app-id=" com.snapmemory.downloader"
20+ mkdir -p $(BUILD_DIR )
21+ mv fyne-cross/bin/windows-amd64/$(APP_NAME ) .exe $(BUILD_DIR ) /$(APP_NAME ) .exe || mv fyne-cross/bin/windows-amd64/$(APP_NAME ) $(BUILD_DIR ) /$(APP_NAME ) .exe
1722 @echo " Windows build complete: $( BUILD_DIR) /$( APP_NAME) .exe"
1823
19- macos :
20- @echo " Building for macOS ..."
21- go build -o $(BUILD_DIR ) / $( APP_NAME ) $( SRC_DIR ) /gui_main.go
22- @echo " macOS build complete : $( BUILD_DIR ) / $( APP_NAME ) "
24+ docker-image :
25+ @echo " Building Docker image: $( DOCKER_IMAGE ) (without source code) ..."
26+ docker build -t $(DOCKER_IMAGE ) -f Dockerfile .
27+ @echo " Docker image built : $( DOCKER_IMAGE ) "
2328
24- run :
29+ macos : docker-image
30+ @echo " Building darwin binary using Docker container..."
31+ mkdir -p $(BUILD_DIR )
32+ docker run --rm -v $$(pwd ) :/root/src $(DOCKER_IMAGE ) bash -c " cd /root/src && GOFLAGS=-mod=vendor GOOS=darwin CGO_ENABLED=1 go build -o $( BUILD_DIR) /$( APP_NAME) -darwin -buildvcs=false ./gui_main.go"
33+ @echo " Darwin build complete: $( BUILD_DIR) /$( APP_NAME) -mac"
34+
35+ run : linux
2536 @echo " Running application..."
26- go run gui_main.go
37+ bin/snap-memory-downloader
2738
2839clean :
2940 @echo " Cleaning up..."
3041 rm -rf $(BUILD_DIR )
3142 @echo " Cleanup complete."
3243
44+ clean-deps :
45+ @echo " Removing vendored dependencies..."
46+ rm -rf vendor/
47+ @echo " Vendor folder cleaned."
48+
3349install-deps :
34- @echo " Installing dependencies..."
50+ @echo " Installing dependencies to local vendor folder ..."
3551 go mod download
36- go mod tidy
37- @echo " Dependencies installed."
52+ go mod vendor
53+ @echo " Dependencies installed to vendor ."
0 commit comments