From 8df6a82b80e0ca02307506918ab75a9893fbc576 Mon Sep 17 00:00:00 2001 From: JailDoctor Date: Mon, 23 Oct 2023 17:24:43 +0200 Subject: [PATCH] - Updatat el makefile amb els releases de mac i linux. A provar quan me sente davant de un mac o un linux. --- Makefile | 83 +++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 79 insertions(+), 4 deletions(-) diff --git a/Makefile b/Makefile index 24966d4..cffd483 100644 --- a/Makefile +++ b/Makefile @@ -49,13 +49,62 @@ windows_release: powershell if (Test-Path "$(releaseFolder)") {Remove-Item "$(releaseFolder)" -Recurse -Force} macos: - clang++ $(source) -Wall -Os -std=c++11 -ffunction-sections -fdata-sections -lSDL2 -lSDL2_mixer -o "$(executable)" + clang++ $(source) -D VERSION=\"$(version)\" -Wall -Os -std=c++11 -ffunction-sections -fdata-sections -lSDL2 -lSDL2_mixer -o "$(executable)" macos_debug: - clang++ $(source) -D DEBUG -D VERSION=\"$(version)\" -g -Wall -Os -std=c++11 -ffunction-sections -fdata-sections -lSDL2 -lSDL2_mixer -o "$(executable)_debug" + clang++ $(source) -D DEBUG -D VERSION=\"$(version)\" -g -Wall -std=c++11 -lSDL2 -lSDL2_mixer -o "$(executable)_debug" + +macos_release: +# Remove data and possible data from previous builds + rm -rdf "$(releaseFolder)" + rm -rdf Frameworks + rm -f tmp.dmg + rm -f "$(macosIntelRelease)" + rm -f "$(macosAppleSiliconRelease)" + +# Create folders + mkdir -p "$(releaseFolder)/$(appName).app/Contents/Frameworks" + mkdir -p "$(releaseFolder)/$(appName).app/Contents/MacOS" + mkdir -p "$(releaseFolder)/$(appName).app/Contents/Resources" + mkdir -p Frameworks + +# Fem el paquetet + respak2 -p + +# Copy folders + cp data.jf2 "$(releaseFolder)/$(appName).app/Contents/Resources" + cp -R bin/*.framework "$(releaseFolder)/$(appName).app/Contents/Frameworks" + cp -R bin/*.framework Frameworks + +# Copy files + cp *.icns "$(releaseFolder)/$(appName).app/Contents/Resources" + cp Info.plist "$(releaseFolder)/$(appName).app/Contents" + cp versions.txt "$(releaseFolder)" + cp README.md "$(releaseFolder)" + +# Create links + ln -s /Applications "$(releaseFolder)"/Applications + +# Build INTEL + clang++ $(source) -D MACOS_BUNDLE -D VERSION=\"$(version)\" -Wall -Os -std=c++11 -framework SDL2 -framework SDL2_mixer -F ./Frameworks -ffunction-sections -fdata-sections -o "$(releaseFolder)/$(appName).app/Contents/MacOS/$(executable)" -rpath @executable_path/../Frameworks/ -target x86_64-apple-macos10.12 + +# Build INTEL DMG + hdiutil create tmp.dmg -ov -volname "$(appName)" -fs HFS+ -srcfolder "$(releaseFolder)" + hdiutil convert tmp.dmg -format UDZO -o "$(macosIntelRelease)" + rm -f tmp.dmg + +# Build APPLE SILICON + clang++ $(source) -D MACOS_BUNDLE -D VERSION=\"$(version)\" -std=c++11 -Wall -Os -framework SDL2 -framework SDL2_mixer -F ./Frameworks -ffunction-sections -fdata-sections -o "$(releaseFolder)/$(appName).app/Contents/MacOS/$(executable)" -rpath @executable_path/../Frameworks/ -target arm64-apple-macos11 + +# Build APPLE SILICON DMG + hdiutil create tmp.dmg -ov -volname "$(appName)" -fs HFS+ -srcfolder "$(releaseFolder)" + hdiutil convert tmp.dmg -format UDZO -o "$(macosAppleSiliconRelease)" + rm -f tmp.dmg + +# Remove data + rm -rdf Frameworks + rm -rdf "$(releaseFolder)" -macos_bundle: - clang++ $(source) -D MACOS_BUNDLE -D VERSION=\"$(version)\" -Wall -Os -std=c++11 -framework SDL2 -framework SDL2_mixer -F /Library/Frameworks -ffunction-sections -fdata-sections -o mini_bundle -rpath @executable_path/../Frameworks/ -target x86_64-apple-macos10.12 linux: g++ $(source) -D VERSION=\"$(version)\" -Wall -Os -ffunction-sections -fdata-sections -Wl,--gc-sections -lSDL2 -lSDL2_mixer -o "$(executable)" @@ -63,3 +112,29 @@ linux: linux_debug: g++ $(source) -D DEBUG -D VERSION=\"$(version)\" -g -Wall -fvar-tracking -lSDL2 -lSDL2_mixer -o "$(executable)_debug" + +linux_release: +# Remove data + rm -rdf "$(releaseFolder)" + +# Create folders + mkdir -p "$(releaseFolder)" + +# Fem el paquetet + respak2 -p + +# Copy data + cp data.jf2 "$(releaseFolder)" + cp versions.txt "$(releaseFolder)" + cp README.md "$(releaseFolder)" + +# Build + g++ $(source) -D VERSION=\"$(version)\" -Wall -Os -ffunction-sections -fdata-sections -Wl,--gc-sections -lSDL2 -lSDL2_mixer -o "$(releaseFolder)/$(executable)" + strip -s -R .comment -R .gnu.version --strip-unneeded "$(releaseFolder)/$(executable)" + +# Pack files + rm -f "$(linuxRelease)" + cd "$(releaseFolder)" && tar -czvf "../$(linuxRelease)" * + +# Remove data + rm -rdf "$(releaseFolder)"