Skip to content

Commit

Permalink
Update build scripts to successfully build iPhone application bundle …
Browse files Browse the repository at this point in the history
…(added many missing frameworks). Include architecture and sysroot settings when linking on OS X.
  • Loading branch information
NewCreature committed Feb 25, 2018
1 parent 450e6d9 commit 433e6f6
Show file tree
Hide file tree
Showing 3 changed files with 61 additions and 35 deletions.
86 changes: 56 additions & 30 deletions template/src/makefile.default_config
Original file line number Diff line number Diff line change
@@ -1,33 +1,59 @@
####################
# Android Settings #
####################
ANDROID_SDK_ROOT = $(HOME)/Development/Tools/android-sdk-macosx
ANDROID_NDK_ROOT = $(HOME)/Development/Tools/android-ndk-r9d
ANDROID_TOOLCHAIN_ROOT = $(HOME)/Development/Tools/android-toolchain
ALLEGRO_SRC_ROOT = $(HOME)/Development/Libraries/allegro5
CC = i586-mingw32msvc-gcc
CFLAGS = $(GLOBAL_CFLAGS) $(APP_CFLAGS) $(MINGW_CROSS_CFLAGS)
LFLAGS = -mwindows
LIB_SUFFIX = -static
PLATFORM_OBJECTS = t3f/menu.o t3f/windows.o icon.o $(MINGW_CROSS_PLATFORM_OBJECTS)
PLATFORM_LIBS = -lallegro_dialog$(LIB_SUFFIX) $(MINGW_CROSS_PLATFORM_LIBS)
DEPEND_LIBS = $(MINGW_CROSS_DEPEND_LIBS) -luuid -lkernel32 -lwinmm -lpsapi\
-lopengl32 -lglu32 -luser32 -lcomdlg32 -lgdi32 -lshell32 -lole32\
-ladvapi32 -lws2_32 -lshlwapi -lvorbisfile -lvorbis -logg -ldumb\
-lfreetype -lpng -lz -ld3d9 -ldsound -lstdc++
DEL_COMMAND = rm -f
DEL_FOLDER_COMMAND = rm -rf
SED_COMMAND = sed -i
EXE_SUFFIX = .exe
COPY_COMMAND = cp
PATH_SEPARATOR = /

#####################
# Mac OS X Settings #
#####################
MACOSX_ARCHITECURES = -arch i386 -arch x86_64
MACOSX_SYS_ROOT = -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk
MACOSX_MIN_VERSION = -mmacosx-version-min=10.6
MACOSX_COMPILER_SETTINGS = -I/usr/local/include
MACOSX_LINKER_SETTINGS = -L/usr/local/lib
MACOSX_CC = /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc
MACOSX_CXX = /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++
include makefile.common

####################
# Windows Settings #
####################
INNO_SETUP_COMPILER = ~/.wine/drive_c/Program\ Files/Inno\ Setup\ 5/Compil32.exe
#DLLS_DIR =
icon.o : ../icons/windows_icon.ico ../win32/icon.rc
i586-mingw32msvc-windres --include-dir=../icons -o icon.o ../win32/icon.rc

###################
# iPhone Settings #
###################
IPHONE_ARCHITECTURES = -arch armv7 -arch arm64
IPHONE_SYS_ROOT = -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk
IPHONE_MIN_VERSION = -miphoneos-version-min=10.6
IPHONE_COMPILER_SETTINGS = -I/usr/local/iphone/include
IPHONE_LINKER_SETTINGS = -L/usr/local/iphone/lib
../win32/info_fixer: ../win32/info_fixer.o
$(CC) $(GLOBAL_CFLAGS) ../win32/info_fixer.o -o ../win32/info_fixer

#making a Windows package automatically requires adding some extra variables through the command line
#DLLS_DIR is the location of the DLLs that are to be included in the installer
#INNO_SETUP_COMPILER is the path to the compiler executable
windows_package: $(APP_EXE_NAME) ../win32/info_fixer
ifndef INNO_SETUP_COMPILER
@echo Usage: "make windows_package INNO_SETUP_COMPILER=path_to_compiler"
else
@cp ../win32/installer.iss installer_final.iss
@sed -i "s|T3F_APP_NAME|$(APP_TITLE)|" installer_final.iss
@sed -i "s|T3F_APP_VERSION|$(APP_VERSION)|" installer_final.iss
@sed -i "s|T3F_APP_COPYRIGHT|$(APP_COPYRIGHT)|" installer_final.iss
@sed -i "s|T3F_APP_PUBLISHER|$(APP_PUBLISHER)|" installer_final.iss
@sed -i "s|T3F_APP_URL|$(APP_URL)|" installer_final.iss
@../win32/info_fixer ../docs/copyright ../win32/copyright
@../win32/info_fixer ../docs/README ../win32/README
@sed -i "s|T3F_APP_LICENSE_FILE|../win32/copyright|" installer_final.iss
@sed -i "s|T3F_APP_README_FILE|../win32/README|" installer_final.iss
@sed -i "s|T3F_APP_INSTALLER_DIR|../|" installer_final.iss
@sed -i "s|T3F_APP_INSTALLER_NAME|$(APP_PACKAGE_NAME)-installer|" installer_final.iss
@sed -i "s|T3F_APP_DATA_DIR|../bin/data|" installer_final.iss
@sed -i "s|T3F_APP_DOCS_DIR|../docs|" installer_final.iss
@sed -i "s|T3F_APP_LIBS_DIR|$(DLLS_DIR)|" installer_final.iss
@sed -i "s|T3F_APP_USER_LIBS_DIR|$(USER_DLLS_DIR)|" installer_final.iss
@sed -i "s|T3F_APP_EXECUTABLE|$(APP_NAME)$(EXE_SUFFIX)|" installer_final.iss
@wine $(INNO_SETUP_COMPILER) /cc installer_final.iss
@rm installer_final.iss
@rm ../win32/copyright
@rm ../win32/README
@rm ../win32/info_fixer
endif

windows_zip: $(APP_EXE_NAME)
@cd ../bin; zip -9 -r ../$(APP_NAME)-$(APP_VERSION)-windows.zip *; cd ..; cp -a docs win32; cd win32/docs; mv changelog history.txt; mv README readme.txt; mv copyright license.txt; cd ..; zip -9 -r ../$(APP_NAME)-$(APP_VERSION)-windows.zip docs; rm -rf docs
@echo Windows package created!
8 changes: 4 additions & 4 deletions template/src/makefile.iphone
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
CC = gcc
CFLAGS = $(T3F_CFLAGS) $(GLOBAL_CFLAGS) $(IPHONE_ARCHITECURES) $(IPHONE_COMPILER_SETTINGS) $(IPHONE_SYS_ROOT) $(IPHONE_MIN_VERSION) $(APP_CFLAGS) $(IPHONE_CFLAGS)
CFLAGS = $(T3F_CFLAGS) $(GLOBAL_CFLAGS) $(IPHONE_ARCHITECTURES) $(IPHONE_COMPILER_SETTINGS) $(IPHONE_SYS_ROOT) $(IPHONE_MIN_VERSION) $(APP_CFLAGS) $(IPHONE_CFLAGS)
CXX = g++
CXXFLAGS = $(CFLAGS)
LFLAGS = $(IPHONE_LINKER_SETTINGS)
LFLAGS = $(IPHONE_LINKER_SETTINGS) $(IPHONE_ARCHITECTURES) $(IPHONE_SYS_ROOT) $(IPHONE_MIN_VERSION)
PLATFORM_OBJECTS = t3f/menu.o $(IPHONE_PLATFORM_OBJECTS)
PLATFORM_LIBS = -framework IOKit -framework AudioToolbox -framework OpenGL -framework OpenAL -framework Cocoa -lallegro_dialog$(LIB_SUFFIX) -lallegro_main-static $(IPHONE_PLATFORM_LIBS)
PLATFORM_LIBS = -framework IOKit -framework AudioToolbox -framework OpenGLES -framework OpenAL -framework CoreGraphics -framework Foundation -framework QuartzCore -framework UIKit -framework MobileCoreServices -lallegro_dialog$(LIB_SUFFIX) -lallegro_main-static $(IPHONE_PLATFORM_LIBS)
PLATFORM_TARGET = $(APP_PACKAGE_DIR)/$(APP_TITLE).app
LIB_SUFFIX = -static
DEPEND_LIBS = -lz -lpng -ljpeg -lFLAC -lvorbis -logg -lvorbisfile -ldumb -lfreetype $(IPHONE_DEPEND_LIBS)
DEPEND_LIBS = -lz -lpng -lvorbisidec -ldumb -lfreetype $(IPHONE_DEPEND_LIBS)
DEL_COMMAND = rm -f
DEL_FOLDER_COMMAND = rm -rf
SED_COMMAND = sed -i ''
Expand Down
2 changes: 1 addition & 1 deletion template/src/makefile.macosx
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ CC = $(MACOSX_CC)
CFLAGS = $(T3F_CFLAGS) $(GLOBAL_CFLAGS) $(MACOSX_ARCHITECURES) $(MACOSX_COMPILER_SETTINGS) $(MACOSX_SYS_ROOT) $(MACOSX_MIN_VERSION) $(APP_CFLAGS) $(MACOSX_CFLAGS)
CXX = $(MACOSX_CXX)
CXXFLAGS = $(CFLAGS)
LFLAGS = $(MACOSX_LINKER_SETTINGS)
LFLAGS = $(MACOSX_LINKER_SETTINGS) $(MACOSX_ARCHITECTURES) $(MACOSX_SYS_ROOT)
PLATFORM_OBJECTS = t3f/menu.o $(MACOSX_PLATFORM_OBJECTS)
PLATFORM_LIBS = -framework IOKit -framework AudioToolbox -framework OpenGL -framework OpenAL -framework Cocoa -lallegro_dialog$(LIB_SUFFIX) -lallegro_main-static $(MACOSX_PLATFORM_LIBS)
PLATFORM_TARGET = $(APP_PACKAGE_DIR)/$(APP_TITLE).app
Expand Down

0 comments on commit 433e6f6

Please sign in to comment.