Skip to content

Latest commit

 

History

History
132 lines (99 loc) · 2.38 KB

Makefile

File metadata and controls

132 lines (99 loc) · 2.38 KB
 
1
2
3
4
5
# -*- Mode: makefile-gmake -*-
.PHONY: all debug release clean
# Required packages
Jan 18, 2019
Jan 18, 2019
6
PKGS = libglibutil gio-unix-2.0 gio-2.0 glib-2.0
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
LIB_PKGS = $(PKGS)
#
# Default target
#
all: debug release
#
# Sources
#
SRC = mms-send.c
GEN_SRC = org.nemomobile.MmsEngine.c
#
# Directories
#
SRC_DIR = .
SPEC_DIR = ../mms-engine
BUILD_DIR = build
GEN_DIR = $(BUILD_DIR)
DEBUG_BUILD_DIR = $(BUILD_DIR)/debug
RELEASE_BUILD_DIR = $(BUILD_DIR)/release
#
# Tools and flags
#
CC = $(CROSS_COMPILE)gcc
LD = $(CC)
DEBUG_FLAGS = -g
RELEASE_FLAGS = -O2
DEBUG_DEFS = -DDEBUG
RELEASE_DEFS =
WARN = -Wall
CFLAGS = $(shell pkg-config --cflags $(PKGS)) -I. -I$(GEN_DIR) -MMD
LIBS = $(shell pkg-config --libs $(LIB_PKGS))
ifndef KEEP_SYMBOLS
KEEP_SYMBOLS = 0
endif
ifneq ($(KEEP_SYMBOLS),0)
RELEASE_FLAGS += -g
endif
DEBUG_CFLAGS = $(DEBUG_FLAGS) $(DEBUG_DEFS) $(CFLAGS)
RELEASE_CFLAGS = $(RELEASE_FLAGS) $(RELEASE_DEFS) $(CFLAGS)
#
# Files
#
DEBUG_OBJS = \
$(GEN_SRC:%.c=$(DEBUG_BUILD_DIR)/%.o) \
$(SRC:%.c=$(DEBUG_BUILD_DIR)/%.o)
RELEASE_OBJS = \
$(GEN_SRC:%.c=$(RELEASE_BUILD_DIR)/%.o) \
$(SRC:%.c=$(RELEASE_BUILD_DIR)/%.o)
Mar 21, 2014
Mar 21, 2014
68
69
GEN_FILES = $(GEN_SRC:%=$(GEN_DIR)/%)
.PRECIOUS: $(GEN_FILES)
70
71
72
73
74
75
76
77
78
79
80
81
#
# Dependencies
#
DEPS = $(DEBUG_OBJS:%.o=%.d) $(RELEASE_OBJS:%.o=%.d)
ifneq ($(MAKECMDGOALS),clean)
ifneq ($(strip $(DEPS)),)
-include $(DEPS)
endif
endif
Mar 21, 2014
Mar 21, 2014
82
83
84
85
$(GEN_FILES): | $(GEN_DIR)
$(DEBUG_OBJS): | $(DEBUG_BUILD_DIR)
$(RELEASE_OBJS): | $(RELEASE_BUILD_DIR)
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
#
# Rules
#
EXE = mms-send
DEBUG_EXE = $(DEBUG_BUILD_DIR)/$(EXE)
RELEASE_EXE = $(RELEASE_BUILD_DIR)/$(EXE)
debug: $(DEBUG_EXE)
release: $(RELEASE_EXE)
clean:
rm -fr $(BUILD_DIR) $(SRC_DIR)/*~
Mar 21, 2014
Mar 21, 2014
101
102
103
$(GEN_DIR):
mkdir -p $@
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
$(DEBUG_BUILD_DIR):
mkdir -p $@
$(RELEASE_BUILD_DIR):
mkdir -p $@
$(GEN_DIR)/%.c: $(SPEC_DIR)/%.xml
gdbus-codegen --generate-c-code $(@:%.c=%) $<
$(DEBUG_BUILD_DIR)/%.o : $(SRC_DIR)/%.c
$(CC) -c $(WARN) $(DEBUG_CFLAGS) -MT"$@" -MF"$(@:%.o=%.d)" $< -o $@
$(RELEASE_BUILD_DIR)/%.o : $(SRC_DIR)/%.c
$(CC) -c $(WARN) $(RELEASE_CFLAGS) -MT"$@" -MF"$(@:%.o=%.d)" $< -o $@
$(DEBUG_BUILD_DIR)/%.o : $(GEN_DIR)/%.c
$(CC) -c $(DEBUG_CFLAGS) -MT"$@" -MF"$(@:%.o=%.d)" $< -o $@
$(RELEASE_BUILD_DIR)/%.o : $(GEN_DIR)/%.c
$(CC) -c $(RELEASE_CFLAGS) -MT"$@" -MF"$(@:%.o=%.d)" $< -o $@
Mar 21, 2014
Mar 21, 2014
125
126
$(DEBUG_EXE): $(DEBUG_OBJS)
$(LD) $(DEBUG_FLAGS) $^ $(LIBS) -o $@
Mar 21, 2014
Mar 21, 2014
128
129
$(RELEASE_EXE): $(RELEASE_OBJS)
$(LD) $(RELEASE_FLAGS) $^ $(LIBS) -o $@
130
131
132
ifeq ($(KEEP_SYMBOLS),0)
strip $@
endif