mirror of
https://github.com/StikDebug/StikDebug.git
synced 2026-10-15 20:10:30 +00:00
83 lines
2.1 KiB
Makefile
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
|