59
Makefile
59
Makefile
@@ -7,48 +7,59 @@ all: build-release
|
||||
build-dev:
|
||||
GOOS=darwin GOARCH=arm64 fyne package
|
||||
@echo "Copying additional resources to app bundle..."
|
||||
@mkdir -p TurtleSilicon.app/Contents/Resources/rosettax87
|
||||
@mkdir -p TurtleSilicon.app/Contents/Resources/winerosetta
|
||||
@cp -R rosettax87/* TurtleSilicon.app/Contents/Resources/rosettax87/
|
||||
@cp -R winerosetta/* TurtleSilicon.app/Contents/Resources/winerosetta/
|
||||
@cp -R Icon.png TurtleSilicon.app/Contents/Resources/
|
||||
@mkdir -p EpochSilicon.app/Contents/Resources/rosettax87
|
||||
@mkdir -p EpochSilicon.app/Contents/Resources/winerosetta
|
||||
@cp -R rosettax87/* EpochSilicon.app/Contents/Resources/rosettax87/
|
||||
@cp -R winerosetta/* EpochSilicon.app/Contents/Resources/winerosetta/
|
||||
@cp -R Icon.png EpochSilicon.app/Contents/Resources/
|
||||
@echo "Development build complete!"
|
||||
|
||||
build: build-dev
|
||||
|
||||
build-release:
|
||||
@rm -rf ./EpochSilicon.app
|
||||
@echo "Building optimized release version..."
|
||||
CGO_ENABLED=1 GOOS=darwin GOARCH=arm64 go build \
|
||||
-ldflags="-s -w -X main.appVersion=$$(grep Version FyneApp.toml | cut -d'"' -f2)" \
|
||||
-trimpath \
|
||||
-tags=release \
|
||||
-o turtlesilicon .
|
||||
-o epochsilicon .
|
||||
@echo "Packaging with fyne..."
|
||||
GOOS=darwin GOARCH=arm64 fyne package --release --executable turtlesilicon
|
||||
GOOS=darwin GOARCH=arm64 fyne package --release --executable epochsilicon
|
||||
@echo "Copying additional resources to app bundle..."
|
||||
@mkdir -p TurtleSilicon.app/Contents/Resources/rosettax87
|
||||
@mkdir -p TurtleSilicon.app/Contents/Resources/winerosetta
|
||||
@cp -R rosettax87/* TurtleSilicon.app/Contents/Resources/rosettax87/
|
||||
@cp -R winerosetta/* TurtleSilicon.app/Contents/Resources/winerosetta/
|
||||
@cp -R Icon.png TurtleSilicon.app/Contents/Resources/
|
||||
@mkdir -p EpochSilicon.app/Contents/Resources/rosettax87
|
||||
@mkdir -p EpochSilicon.app/Contents/Resources/winerosetta
|
||||
@cp -R rosettax87/* EpochSilicon.app/Contents/Resources/rosettax87/
|
||||
@cp -R winerosetta/* EpochSilicon.app/Contents/Resources/winerosetta/
|
||||
@cp -R Icon.png EpochSilicon.app/Contents/Resources/
|
||||
@echo "Stripping additional symbols..."
|
||||
strip -x TurtleSilicon.app/Contents/MacOS/turtlesilicon
|
||||
strip -x EpochSilicon.app/Contents/MacOS/epochsilicon
|
||||
@echo "Optimized release build complete!"
|
||||
@echo "Binary size: $$(ls -lah TurtleSilicon.app/Contents/MacOS/turtlesilicon | awk '{print $$5}')"
|
||||
@echo "Binary size: $$(ls -lah EpochSilicon.app/Contents/MacOS/epochsilicon | awk '{print $$5}')"
|
||||
|
||||
# Clean build artifacts
|
||||
clean:
|
||||
rm -rf TurtleSilicon.app
|
||||
rm -f TurtleSilicon.dmg
|
||||
rm -f turtlesilicon
|
||||
rm -rf EpochSilicon.app
|
||||
rm -f EpochSilicon.dmg
|
||||
rm -f EpochSilicon.zip
|
||||
rm -f epochsilicon
|
||||
|
||||
dmg: build-release
|
||||
@echo "Preparing DMG staging directory..."
|
||||
sign: build-release
|
||||
codesign --timestamp --options runtime -s "Developer ID Application: Evan Burkey (2TXG4AP658)" ./EpochSilicon.app/Contents/Resources/rosettax87/rosettax87
|
||||
codesign --timestamp --options runtime -s "Developer ID Application: Evan Burkey (2TXG4AP658)" ./EpochSilicon.app/Contents/Resources/rosettax87/libRuntimeRosettax87
|
||||
codesign --timestamp --options runtime -s "Developer ID Application: Evan Burkey (2TXG4AP658)" ./EpochSilicon.app
|
||||
@/usr/bin/ditto -c -k -rsrc --sequesterRsrc --keepParent ./EpochSilicon.app EpochSilicon.zip
|
||||
xcrun notarytool submit --keychain-profile "EpochSilicon" --wait ./EpochSilicon.zip
|
||||
xcrun stapler staple ./EpochSilicon.app
|
||||
|
||||
dmg: build-release sign
|
||||
echo "Preparing DMG staging directory..."
|
||||
@rm -rf dmg-staging
|
||||
@mkdir dmg-staging
|
||||
@cp -R TurtleSilicon.app dmg-staging/
|
||||
@/usr/bin/ditto --rsrc ./EpochSilicon.app dmg-staging/EpochSilicon.app
|
||||
@ln -s /Applications dmg-staging/Applications
|
||||
@echo "Creating DMG file..."
|
||||
@hdiutil create -volname TurtleSilicon -srcfolder dmg-staging -ov -format UDZO TurtleSilicon.dmg
|
||||
@echo "DMG created: TurtleSilicon.dmg"
|
||||
@rm -rf dmg-staging
|
||||
hdiutil create -volname EpochSilicon -srcfolder dmg-staging -ov -format UDZO EpochSilicon.dmg
|
||||
@rm -rf dmg-staging
|
||||
codesign --timestamp -i com.burkey.epochsilicon -s "Developer ID Application: Evan Burkey (2TXG4AP658)" ./EpochSilicon.dmg
|
||||
xcrun notarytool submit --keychain-profile "EpochSilicon" --wait ./EpochSilicon.dmg
|
||||
xcrun stapler staple ./EpochSilicon.dmg
|
||||
|
Reference in New Issue
Block a user