StikDebug/Makefile
2025-04-15 18:27:10 -04:00

83 lines
2.1 KiB
Makefile

# StikJIT Makefile
# By neoarz
# Path to code signing tool
TARGET_CODESIGN = $(shell which ldid)
# Build configuration settings
PLATFORM = iphoneos
NAME = StikJIT
SCHEME ?= 'StikJIT'
RELEASE = Release-iphoneos
CONFIGURATION = Release
# SDK paths for compilation
MACOSX_SYSROOT = $(shell xcrun -sdk macosx --show-sdk-path)
TARGET_SYSROOT = $(shell xcrun -sdk $(PLATFORM) --show-sdk-path)
# Temporary build directories
APP_TMP = $(TMPDIR)/$(NAME)
STAGE_DIR = $(APP_TMP)/stage
APP_DIR = $(APP_TMP)/Build/Products/$(RELEASE)/$(NAME).app
# Default target
all: package
# Main build target - compiles and packages the application
package:
# Clean any previous build artifacts
@rm -rf $(APP_TMP)
# Build the app with xcodebuild
# Uses parallel jobs to speed up compilation
@set -o pipefail; \
xcodebuild \
-jobs $(shell sysctl -n hw.ncpu) \
-project '$(NAME).xcodeproj' \
-scheme $(SCHEME) \
-configuration $(CONFIGURATION) \
-arch arm64 -sdk $(PLATFORM) \
-derivedDataPath $(APP_TMP) \
CODE_SIGNING_ALLOWED=NO \
DSTROOT=$(APP_TMP)/install \
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES=NO \
ONLY_ACTIVE_ARCH=NO \
CODE_SIGN_IDENTITY="" \
CODE_SIGNING_REQUIRED=NO \
SWIFT_OPTIMIZATION_LEVEL="-Onone" \
IPHONEOS_DEPLOYMENT_TARGET=17.4
# Prepare the directory structure for packaging
@rm -rf Payload
@rm -rf $(STAGE_DIR)/
@mkdir -p $(STAGE_DIR)/Payload
@mv $(APP_DIR) $(STAGE_DIR)/Payload/$(NAME).app
# Debug output - show paths for troubleshooting
@echo $(APP_TMP)
@echo $(STAGE_DIR)
# Remove Apple's code signature so we can use our own
@rm -rf $(STAGE_DIR)/Payload/$(NAME).app/_CodeSignature
# Set up symbolic link for packaging
@ln -sf $(STAGE_DIR)/Payload Payload
# Prepare packages directory
@rm -rf packages
@mkdir -p packages
# Create standard IPA package
# Using max compression level (9) for smaller file size
@zip -r9 packages/$(NAME).ipa Payload
@rm -rf Payload
# Clean target - removes all temporary files and build artifacts
clean:
@rm -rf $(STAGE_DIR)
@rm -rf packages
@rm -rf out.dmg
@rm -rf $(APP_TMP)
# Phony target declaration
.PHONY: apple-include