From 5950f7d95d670c798ebb26984805de63d45a2538 Mon Sep 17 00:00:00 2001 From: Tim Warren Date: Wed, 29 Apr 2015 13:10:52 -0400 Subject: [PATCH] Update Makefile for static building --- Makefile | 62 +++++++++++++++++++------------ resources/platform/osx/Info.plist | 2 + 2 files changed, 40 insertions(+), 24 deletions(-) diff --git a/Makefile b/Makefile index f3dd224..85d8003 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,3 @@ -CXX += -I include -I. - SOURCES = $(wildcard include/**/*.cpp include/*.cpp src/network/*.cpp src/settings/*.cpp) OBJECTS = $(patsubst %.cpp,%.o, $(SOURCES)) TYRO_LIB = build/Tyro.a @@ -10,33 +8,47 @@ PROGRAM_SRC = $(wildcard src/*.cpp src/widgets/*.cpp) PROGRAM = build/Tyro PROGRAM_OBJECTS = $(patsubst %.cpp,%.o, $(PROGRAM_SRC)) -WX_LDLIBS = $(shell wx-config --libs base core aui stc adv) -WX_CXXFLAGS = $(shell wx-config --cxxflags) WX_RES = $(shell wx-config --rescomp) -DEV_CXXFLAGS = -g -Wall -Wextra -DDEBUG -DSTATIC_BUILD -CXXFLAGS = -Os -DNDEBUG -DSTATIC_BUILD +DEV_CXXFLAGS = -g -Wall -Wextra -DDEBUG +CXXFLAGS = -Os -DNDEBUG TEST_SRC = $(wildcard tests/*.cpp) TESTS = $(patsubst %.cpp,%,$(TEST_SRC)) -OS ?= $(shell uname -s) - LDLIBS = +OS ?= $(shell uname -s) + +# Get static version of libs to link to on platforms that support it +ifneq ($(OS),Linux) + WX_CXXFLAGS = $(shell wx-config --static --cxxflags) + WX_LDLIBS = $(shell wx-config --static --libs base core aui stc adv) +else + WX_CXXFLAGS = $(shell wx-config --cxxflags) + WX_LDLIBS = $(shell wx-config --libs base core aui stc adv) +endif + ifeq ($(OS),Darwin) - CXX += -std=c++98 -mmacosx-version-min=10.5 + LDLIBS += /usr/local/lib/libssh2.a +else + LDLIBS += -lssh2 +endif + +# Platform compiler flags +ifeq ($(OS),Darwin) + CXX = clang++ -std=c++98 -mmacosx-version-min=10.5 endif ifeq ($(OS),Linux) CXX += -std=c++11 endif ifeq ($(OS),Windows_NT) - CXXFLAGS = -DNDEBUG -DSTATIC_BUILD + CXXFLAGS = -DNDEBUG -DSTATIC_BUILD -static CXX += -I/include -DWIN32 LDLIBS += -L/lib -lwsock32 endif -LDLIBS += -lssh2 +CXX += -I include -I. all: build json_wrapper $(TYRO_LIB) $(PROGRAM) @@ -57,7 +69,7 @@ $(TYRO_LIB): build $(OBJECTS) ranlib $@ -$(PROGRAM): CXXFLAGS += $(WX_CXXFLAGS) $(TYRO_LIB) +$(PROGRAM): CXXFLAGS += $(WX_CXXFLAGS) $(PROGRAM): $(CXX) $(CXXFLAGS) $(PROGRAM_SRC) $(TYRO_LIB) $(WX_LDLIBS) $(LDLIBS) -o $(PROGRAM) @@ -73,6 +85,7 @@ run-grind: # Make optimized and striped executable release: ifeq ($(OS),Darwin) + make all strip -SXx $(PROGRAM) make Tyro.app endif @@ -93,18 +106,19 @@ exe: LDLIBS += resource.res exe: json_wrapper_build json_wrapper $(TYRO_LIB) exe: msw_resource $(PROGRAM) -# OS X application bundle -Tyro.app: all resources/platform/osx/Info.plist +# OS X application bundle +Tyro.app: CXXFLAGS += -static +Tyro.app: all SetFile -t APPL $(TYRO_LIB) - -mkdir Tyro.app - -mkdir Tyro.app/Contents - -mkdir Tyro.app/Contents/MacOS - -mkdir Tyro.app/Contents/Resources - -mkdir Tyro.app/Contents/Resources/English.lproj - cp resources/platform/osx/Info.plist Tyro.app/Contents/ - echo -n 'APPL????' > Tyro.app/Contents/PkgInfo - cp build/Tyro Tyro.app/Contents/MacOS/Tyro - cp resources/platform/osx/tyro.icns Tyro.app/Contents/Resources/ + -mkdir -p build/Tyro.app + -mkdir -p build/Tyro.app/Contents + -mkdir -p build/Tyro.app/Contents/MacOS + -mkdir -p build/Tyro.app/Contents/Resources + -mkdir -p build/Tyro.app/Contents/Resources/English.lproj + cp resources/platform/osx/Info.plist build/Tyro.app/Contents/ + echo -n 'APPL????' > build/Tyro.app/Contents/PkgInfo + cp build/Tyro build/Tyro.app/Contents/MacOS/Tyro + cp resources/platform/osx/tyro.icns build/Tyro.app/Contents/Resources/ $(TESTS): $(TYRO_LIB) $(foreach var, $(TEST_SRC), $(CXX) $(CXXFLAGS) $(var) $(TYRO_LIB) $(LDLIBS) -o $(patsubst %.cpp,%, $(var));) @@ -119,7 +133,7 @@ clean: rm -f config/json2c.exe rm -f config/*_json.h rm -rf *.o - rm -rf Tyro.app + rm -rf build/Tyro.app rm -rf build $(OBJECTS) $(PROGRAM) $(TYRO_LIB) $(TESTS) find . -name "*.gc*" -exec rm {} \; rm -rf `find . -name "*.dSYM" -print` diff --git a/resources/platform/osx/Info.plist b/resources/platform/osx/Info.plist index c74b1ff..f084876 100644 --- a/resources/platform/osx/Info.plist +++ b/resources/platform/osx/Info.plist @@ -8,5 +8,7 @@ Tyro CFBundleIconFile tyro.icns + CFBundleIdentifier + net.timshomepage.Tyro