forked from livecode/livecode
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcommon.linux.makefile
More file actions
85 lines (68 loc) · 2.89 KB
/
Copy pathcommon.linux.makefile
File metadata and controls
85 lines (68 loc) · 2.89 KB
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
# Common template Makefile for all types
DEFINES=$(CUSTOM_DEFINES) $(TYPE_DEFINES) _LINUX TARGET_PLATFORM_POSIX
GLOBAL_PACKAGES=\
gtk+-2.0 \
gtk+-unix-print-2.0 \
gdk-2.0 \
freetype2 \
xft
GLOBAL_INCLUDES=\
$(SOLUTION_DIR)/engine/include \
$(SOLUTION_DIR)/libcore/include \
$(SOLUTION_DIR)/libexternal/include \
$(SOLUTION_DIR)/libgraphics/include \
$(SOLUTION_DIR)/thirdparty/libiodbc/include \
$(SOLUTION_DIR)/thirdparty/libjpeg/include \
$(SOLUTION_DIR)/thirdparty/libmysql/include \
$(SOLUTION_DIR)/thirdparty/libpcre/include \
$(SOLUTION_DIR)/thirdparty/libpng/include \
$(SOLUTION_DIR)/thirdparty/libgif/include \
$(SOLUTION_DIR)/thirdparty/libpq/include \
$(SOLUTION_DIR)/thirdparty/libsqlite/include \
$(SOLUTION_DIR)/thirdparty/libxml/include \
$(SOLUTION_DIR)/thirdparty/libxslt/include \
$(SOLUTION_DIR)/thirdparty/libz/include \
$(SOLUTION_DIR)/thirdparty/libzip/include \
$(SOLUTION_DIR)/thirdparty/libopenssl/include \
$(SOLUTION_DIR)/thirdparty/libcurl/include \
$(SOLUTION_DIR)/thirdparty/libskia/include/core \
$(SOLUTION_DIR)/thirdparty/libskia/include/config \
$(SOLUTION_DIR)/thirdparty/libskia/include/effects \
$(SOLUTION_DIR)/thirdparty/libskia/include/images \
$(SOLUTION_DIR)/thirdparty/libskia/include/pathops \
$(SOLUTION_DIR)/thirdparty/libskia/include/ports \
$(SOLUTION_DIR)/thirdparty/libskia/include/utils
GLOBAL_LIBS=\
$(PREBUILT_LIB_DIR)
ifeq ($(MODE),debug)
DEFINES+=_DEBUG
else
DEFINES+=_RELEASE NDEBUG
endif
DEFINES += __LITTLE_ENDIAN__
PACKAGE_INCLUDES=$(shell pkg-config --silence-errors --cflags-only-I $(GLOBAL_PACKAGES))
FALLBACK_INCLUDES=-I$(SOLUTION_DIR)/thirdparty/headers/linux/include -I$(SOLUTION_DIR)/thirdparty/headers/linux/include/cairo
INCLUDES=$(CUSTOM_INCLUDES) $(TYPE_INCLUDES) $(GLOBAL_INCLUDES)
ifeq ($(MODE),release)
CCFLAGS=$(CUSTOM_CCFLAGS) $(TYPE_CCFLAGS) -O2 -fvisibility=hidden -g
else
CCFLAGS=$(CUSTOM_CCFLAGS) $(TYPE_CCFLAGS) -g -fvisibility=hidden
endif
DEPS=$(addprefix $(BUILD_DIR)/, $(CUSTOM_DEPS))
SRC_OBJECTS=$(addprefix $(CACHE_DIR)/, $(addsuffix .o, $(basename $(SOURCES))))
OBJECTS=$(SRC_OBJECTS) $(CUSTOM_OBJECTS)
HDEPS:=$(SRC_OBJECTS:.o=.d)
-include $(HDEPS)
VPATH=./src $(SOURCE_DIRS) $(CACHE_DIR) $(BUILD_DIR)
$(CACHE_DIR)/%.o: %.cpp
mkdir -p $(CACHE_DIR)/$(dir $*)
$(CC) $(CCFLAGS) $(addprefix -I,$(INCLUDES)) $(PACKAGE_INCLUDES) $(FALLBACK_INCLUDES) $(addprefix -D,$(DEFINES)) -MMD -MF $(patsubst %.o,%.d,$@) -c -o$(CACHE_DIR)/$*.o ./src/$*.cpp
$(CACHE_DIR)/%.o: %.c
mkdir -p $(CACHE_DIR)/$(dir $*)
$(CC) $(CCFLAGS) $(addprefix -I,$(INCLUDES)) $(PACKAGE_INCLUDES) $(FALLBACK_INCLUDES) $(addprefix -D,$(DEFINES)) -MMD -MF $(patsubst %.o,%.d,$@) -c -o$(CACHE_DIR)/$*.o ./src/$*.c
$(CACHE_DIR)/%.o: %.s
mkdir -p $(CACHE_DIR)/$(dir $*)
$(CC) $(CCFLAGS) $(addprefix -I,$(INCLUDES)) $(PACKAGE_INCLUDES) $(FALLBACK_INCLUDES) $(addprefix -D,$(DEFINES)) -c -o$(CACHE_DIR)/$*.o ./src/$*.s
clean:
rm $(OBJECTS)
rm $(TARGET_PATH)