summaryrefslogtreecommitdiff
path: root/RealtimeSync/makefile
blob: d84c425f6316c984fdcf31bd7f2ef43de53de13c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
BLAH_BLUBB_123=
#for some buggy reason the first row in the make file has no effect on Suse Linux! => make sure there's no important command
APPNAME = RealtimeSync
prefix = /usr
BINDIR = $(DESTDIR)$(prefix)/bin

CXXFLAGS  = -std=c++11 -Wall -pipe -O3 -DNDEBUG -DwxUSE_UNICODE -DWXINTL_NO_GETTEXT_MACRO -I.. -include "zen/i18n.h" -include "zen/warn_static.h"
LINKFLAGS =

#distinguish Linux/Mac builds
OPERATING_SYSTEM_NAME := $(shell uname)

#################### Linux ############################
ifeq ($(OPERATING_SYSTEM_NAME), Linux)
COMPILER_BIN=g++ -pthread
CXXFLAGS += -DZEN_LINUX

#Gtk - support "no button border"
CXXFLAGS  += `pkg-config --cflags gtk+-2.0`
LINKFLAGS += `pkg-config --libs   gtk+-2.0`

ifeq ($(BUILD),Launchpad)
#default build/Launchpad
CXXFLAGS  += `wx-config --cxxflags --debug=no`
LINKFLAGS += `wx-config --libs     --debug=no` -lboost_thread -lboost_system -lz
else
#static wxWidgets and boost library linkage for precompiled release
WX_CONFIG_BIN =$(HOME)/Desktop/wxGTK-2.8.12/lib/release/bin/wx-config
CXXFLAGS  += -I$(HOME)/Desktop/boost_1_54_0
BOOST_LIB_DIR =$(HOME)/Desktop/boost_1_54_0/stage/lib

CXXFLAGS  += `$(WX_CONFIG_BIN) --cxxflags --debug=no --static=yes`
LINKFLAGS += `$(WX_CONFIG_BIN) --libs     --debug=no --static=yes` $(BOOST_LIB_DIR)/libboost_thread.a $(BOOST_LIB_DIR)/libboost_system.a -lX11
endif

endif
#################### OS X ############################
ifeq ($(OPERATING_SYSTEM_NAME), Darwin)
COMPILER_BIN=clang++ -stdlib=libc++
CXXFLAGS += -DZEN_MAC

WX_CONFIG_BIN =$(HOME)/Desktop/wxWidgets-2.9.4/lib/release/bin/wx-config
CXXFLAGS  += -I$(HOME)/Desktop/boost_1_54_0
BOOST_LIB_DIR =$(HOME)/Desktop/boost_1_54_0/stage/lib
MACOS_SDK     =-mmacosx-version-min=10.7 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk
#-Wl,-Bstatic not supported on OSX!

# link wxWidgets and boost statically -> check dependencies with: otool -L RealtimeSync
CXXFLAGS  += $(MACOS_SDK) `$(WX_CONFIG_BIN) --cxxflags --debug=no --static=yes`
LINKFLAGS += $(MACOS_SDK) `$(WX_CONFIG_BIN) --libs     --debug=no --static=yes` $(BOOST_LIB_DIR)/libboost_thread.a $(BOOST_LIB_DIR)/libboost_system.a

endif
#####################################################################################################

CPP_LIST= #internal list of all *.cpp files needed for compilation
CPP_LIST+=application.cpp
CPP_LIST+=gui_generated.cpp
CPP_LIST+=main_dlg.cpp
CPP_LIST+=resources.cpp
CPP_LIST+=tray_menu.cpp
CPP_LIST+=monitor.cpp
CPP_LIST+=xml_ffs.cpp
CPP_LIST+=xml_proc.cpp
CPP_LIST+=../structures.cpp
CPP_LIST+=../ui/dir_name.cpp
CPP_LIST+=../ui/folder_history_box.cpp
CPP_LIST+=../lib/localization.cpp
CPP_LIST+=../lib/process_xml.cpp
CPP_LIST+=../lib/resolve_path.cpp
CPP_LIST+=../lib/xml_base.cpp
CPP_LIST+=../lib/ffs_paths.cpp
CPP_LIST+=../zen/dir_watcher.cpp
CPP_LIST+=../zen/file_handling.cpp
CPP_LIST+=../zen/file_io.cpp
CPP_LIST+=../zen/file_traverser.cpp
CPP_LIST+=../zen/zstring.cpp
CPP_LIST+=../wx+/button.cpp

#list of all *.o files (we need the "RTS" subdirectory to handle "../*.cpp" files
OBJECT_LIST=$(CPP_LIST:%.cpp=../OBJ/RTS_GCC_Make_Release/RTS/%.o)

all: RealtimeSync

../OBJ/RTS_GCC_Make_Release/RTS/%.o : %.cpp
	mkdir -p $(dir $@)
	$(COMPILER_BIN) $(CXXFLAGS) -c $< -o $@

RealtimeSync: $(OBJECT_LIST)
	$(COMPILER_BIN) -o ../BUILD/$(APPNAME) $(OBJECT_LIST) $(LINKFLAGS)

clean:
	rm -rf ../OBJ/RTS_GCC_Make_Release
	rm -f ../BUILD/$(APPNAME)
	rm -f ../wx+/pch.h.gch

install:
	mkdir -p $(BINDIR)
	cp ../BUILD/$(APPNAME) $(BINDIR)
bgstack15