Skip to content

Latest commit

 

History

History
371 lines (298 loc) · 12.1 KB

Makefile.custom

File metadata and controls

371 lines (298 loc) · 12.1 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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
# ----------------------------------------------------------- -*- mode: sh -*-
# Package version
VERSION := 0.86.0
# Dummy default install dir - override from packaging scripts
DESTDIR ?= /tmp/usb-moded-test-install
# ----------------------------------------------------------------------------
# Standard directories
# ----------------------------------------------------------------------------
_PREFIX ?= /usr# # /usr
_INCLUDEDIR ?= $(_PREFIX)/include# # /usr/include
_EXEC_PREFIX ?= $(_PREFIX)# # /usr
_BINDIR ?= $(_EXEC_PREFIX)/bin# # /usr/bin
_SBINDIR ?= $(_EXEC_PREFIX)/sbin# # /usr/sbin
_LIBEXECDIR ?= $(_EXEC_PREFIX)/libexec# # /usr/libexec
_LIBDIR ?= $(_EXEC_PREFIX)/lib# # /usr/lib
_SYSCONFDIR ?= /etc# # /etc
_DATADIR ?= $(_PREFIX)/share# # /usr/share
_MANDIR ?= $(_DATADIR)/man# # /usr/share/man
_INFODIR ?= $(_DATADIR)/info# # /usr/share/info
_DEFAULTDOCDIR ?= $(_DATADIR)/doc# # /usr/share/doc
_LOCALSTATEDIR ?= /var# # /var
_UNITDIR ?= /lib/systemd/system#
_TESTSDIR ?= /opt/tests# # /opt/tests
# ----------------------------------------------------------------------------
# Install directories
# ----------------------------------------------------------------------------
USB_MODED_SBIN_PATH ?= $(_SBINDIR)
# ----------------------------------------------------------------------------
# Files to build / install
# ----------------------------------------------------------------------------
TARGETS_SBIN += usb_moded
TARGETS_SBIN += usb_moded_util
TARGETS_ALL += $(TARGETS_PLUGIN) $(TARGETS_SBIN) $(TARGETS_BIN)
TARGETS_ALL += udev-search
# ----------------------------------------------------------------------------
# Top level targets
# ----------------------------------------------------------------------------
.PHONY: build install clean distclean mostlyclean
build:: $(TARGETS_ALL)
install:: build
clean:: mostlyclean
$(RM) $(TARGETS_ALL)
distclean:: clean
mostlyclean::
$(RM) *.o *~ *.bak */*.o */*~ */*.bak
install :: install_main
install_main::
# sbin executables
install -d -m 755 $(DESTDIR)$(USB_MODED_SBIN_PATH)
install -m 755 $(TARGETS_SBIN) $(DESTDIR)$(USB_MODED_SBIN_PATH)
# config directories and files
install -d -m 755 $(DESTDIR)/etc
# /etc/udhcpd.conf
install -d -m 755 $(DESTDIR)/etc/usb-moded/
install -d -m 755 $(DESTDIR)/etc/usb-moded/dyn-modes
install -d -m 755 $(DESTDIR)/etc/usb-moded/run
install -d -m 755 $(DESTDIR)/etc/modprobe.d
# /etc/modprobe.d/g_ether.conf
# /etc/modprobe.d/usb_moded.conf
install -d -m 755 $(DESTDIR)/etc/tmpfiles.d
# /etc/tmpfiles.d/usb-moded.conf
install -d -m 755 $(DESTDIR)/etc/dbus-1/system.d
install -m 644 debian/usb_moded.conf $(DESTDIR)/etc/dbus-1/system.d/
# ----------------------------------------------------------------------------
# Build rules
# ----------------------------------------------------------------------------
%.pic.o : %.c ; $(CC) -o $@ -c $< -fPIC $(CPPFLAGS) $(CFLAGS)
%.so : %.pic.o ; $(CC) -shared -o $@ $^ $(LDFLAGS) $(LDLIBS)
%.o : %.c ; $(CC) -o $@ -c $< $(CPPFLAGS) $(CFLAGS)
% : %.o ; $(CC) -o $@ $^ $(LDFLAGS) $(LDLIBS)
%.a : ; $(AR) ru $@ $^
# ----------------------------------------------------------------------------
# Preprocessor options
# ----------------------------------------------------------------------------
# Preprocessor Defaults
CPPFLAGS += -D_GNU_SOURCE
CPPFLAGS += -D_FILE_OFFSET_BITS=64
CPPFLAGS += -D_FORTIFY_SOURCE=2
# usb-moded specific options
CPPFLAGS += -DSTATIC_CONFIG
CPPFLAGS += -DSYSTEMD
CPPFLAGS += -DCONNMAN
CPPFLAGS += -DAPP_SYNC
CPPFLAGS += -DUSE_MER_SSU
CPPFLAGS += -DMEEGOLOCK
CPPFLAGS += -DDEBUG
# ----------------------------------------------------------------------------
# Compiler options
# ----------------------------------------------------------------------------
CFLAGS += -std=c99
CFLAGS += -O2
CFLAGS += -g
CFLAGS += -Wall
CFLAGS += -Wwrite-strings
CFLAGS += -Wmissing-prototypes
#CFLAGS += -Wextra
#CFLAGS += -Werror
# ----------------------------------------------------------------------------
# Linker options
# ----------------------------------------------------------------------------
LDFLAGS += -pthread
LDFLAGS += -g
LDFLAGS += -pthread
LDFLAGS += -Wl,--as-needed
LDLIBS += -ldl
# ----------------------------------------------------------------------------
# Flags from pkg-config
# ----------------------------------------------------------------------------
PKG_NAMES += dbus-1
PKG_NAMES += dbus-glib-1
PKG_NAMES += glib-2.0
PKG_NAMES += libudev
PKG_NAMES += libkmod
PKG_NAMES += libsystemd
PKG_NAMES += ssu-sysinfo
PKG_NAMES += dsme
maintenance = normalize clean distclean mostlyclean
maintenance += protos-post
intersection = $(strip $(foreach w,$1, $(filter $w,$2)))
ifneq ($(call intersection,$(maintenance),$(MAKECMDGOALS)),)
PKG_CONFIG ?= true
endif
ifneq ($(strip $(PKG_NAMES)),)
PKG_CONFIG ?= pkg-config
PKG_CFLAGS := $(shell $(PKG_CONFIG) --cflags $(PKG_NAMES))
PKG_LDLIBS := $(shell $(PKG_CONFIG) --libs $(PKG_NAMES))
PKG_CPPFLAGS := $(filter -D%,$(PKG_CFLAGS)) $(filter -I%,$(PKG_CFLAGS))
PKG_CFLAGS := $(filter-out -I%, $(filter-out -D%, $(PKG_CFLAGS)))
endif
CPPFLAGS += $(PKG_CPPFLAGS)
CFLAGS += $(PKG_CFLAGS)
LDLIBS += $(PKG_LDLIBS)
# ----------------------------------------------------------------------------
# usb_moded
# ----------------------------------------------------------------------------
usb_moded-OBJS += src/usb_moded.o
173
174
usb_moded-OBJS += src/usb_moded-android.o
usb_moded-OBJS += src/usb_moded-appsync.o
176
177
usb_moded-OBJS += src/usb_moded-config.o
usb_moded-OBJS += src/usb_moded-configfs.o
179
180
181
182
183
184
185
186
187
usb_moded-OBJS += src/usb_moded-dbus.o
usb_moded-OBJS += src/usb_moded-devicelock.o
usb_moded-OBJS += src/usb_moded-dsme.o
usb_moded-OBJS += src/usb_moded-dyn-config.o
usb_moded-OBJS += src/usb_moded-log.o
usb_moded-OBJS += src/usb_moded-mac.o
usb_moded-OBJS += src/usb_moded-modesetting.o
usb_moded-OBJS += src/usb_moded-modules.o
usb_moded-OBJS += src/usb_moded-network.o
189
190
191
192
usb_moded-OBJS += src/usb_moded-ssu.o
usb_moded-OBJS += src/usb_moded-systemd.o
usb_moded-OBJS += src/usb_moded-trigger.o
usb_moded-OBJS += src/usb_moded-udev.o
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
usb_moded : $(usb_moded-OBJS)
$(CC) -o $@ $^ $(LDFLAGS) $(LDLIBS)
# ----------------------------------------------------------------------------
# udev-search
# ----------------------------------------------------------------------------
udev-search-OBJS += utils/udev-search.o
udev-search : $(udev-search-OBJS)
$(CC) -o $@ $^ $(LDFLAGS) $(LDLIBS)
# ----------------------------------------------------------------------------
# usb_moded_util
# ----------------------------------------------------------------------------
usb_moded_util-OBJS += src/usb_moded-util.o
usb_moded_util : $(usb_moded_util-OBJS)
$(CC) -o $@ $^ $(LDFLAGS) $(LDLIBS)
# ----------------------------------------------------------------------------
# SOURCE FILES
# ----------------------------------------------------------------------------
# Files without whitespace issues
CLEAN_SOURCES += src/usb_moded-android.c
CLEAN_SOURCES += src/usb_moded-appsync-dbus.c
CLEAN_SOURCES += src/usb_moded-appsync.c
226
227
CLEAN_SOURCES += src/usb_moded-config.c
CLEAN_SOURCES += src/usb_moded-configfs.c
229
230
231
232
233
234
235
236
237
CLEAN_SOURCES += src/usb_moded-dbus.c
CLEAN_SOURCES += src/usb_moded-devicelock.c
CLEAN_SOURCES += src/usb_moded-dsme.c
CLEAN_SOURCES += src/usb_moded-dyn-config.c
CLEAN_SOURCES += src/usb_moded-log.c
CLEAN_SOURCES += src/usb_moded-mac.c
CLEAN_SOURCES += src/usb_moded-modesetting.c
CLEAN_SOURCES += src/usb_moded-modules.c
CLEAN_SOURCES += src/usb_moded-network.c
239
240
241
242
243
CLEAN_SOURCES += src/usb_moded-ssu.c
CLEAN_SOURCES += src/usb_moded-systemd.c
CLEAN_SOURCES += src/usb_moded-trigger.c
CLEAN_SOURCES += src/usb_moded-udev.c
CLEAN_SOURCES += src/usb_moded-util.c
245
246
247
248
249
250
251
252
CLEAN_SOURCES += src/usb_moded.c
CLEAN_SOURCES += utils/udev-search.c
CLEAN_HEADERS += src/usb_moded-android.h
CLEAN_HEADERS += src/usb_moded-appsync-dbus-private.h
CLEAN_HEADERS += src/usb_moded-appsync-dbus.h
CLEAN_HEADERS += src/usb_moded-appsync.h
CLEAN_HEADERS += src/usb_moded-config-private.h
254
255
CLEAN_HEADERS += src/usb_moded-config.h
CLEAN_HEADERS += src/usb_moded-configfs.h
257
258
259
260
261
262
263
264
265
266
267
CLEAN_HEADERS += src/usb_moded-dbus-private.h
CLEAN_HEADERS += src/usb_moded-dbus.h
CLEAN_HEADERS += src/usb_moded-devicelock.h
CLEAN_HEADERS += src/usb_moded-dsme.h
CLEAN_HEADERS += src/usb_moded-dyn-config.h
CLEAN_HEADERS += src/usb_moded-log.h
CLEAN_HEADERS += src/usb_moded-mac.h
CLEAN_HEADERS += src/usb_moded-modes.h
CLEAN_HEADERS += src/usb_moded-modesetting.h
CLEAN_HEADERS += src/usb_moded-modules.h
CLEAN_HEADERS += src/usb_moded-network.h
269
270
271
272
CLEAN_HEADERS += src/usb_moded-ssu.h
CLEAN_HEADERS += src/usb_moded-systemd.h
CLEAN_HEADERS += src/usb_moded-trigger.h
CLEAN_HEADERS += src/usb_moded-udev.h
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
CLEAN_HEADERS += src/usb_moded.h
# Files with whitespace issues
# DIRTY_SOURCES += foo.c
# DIRTY_HEADERS += foo.h
# Files that will not pass preprocessor / compiler ...
# BROKEN_SOURCES += foo.c foo.h
ALL_SOURCES += $(CLEAN_SOURCES) $(DIRTY_SOURCES)
ALL_HEADERS += $(CLEAN_HEADERS) $(DIRTY_HEADERS)
# ----------------------------------------------------------------------------
# Source code normalization
# ----------------------------------------------------------------------------
.PHONY: normalize
normalize::
normalize_whitespace -M Makefile.custom
normalize_whitespace -a $(CLEAN_SOURCES) $(CLEAN_HEADERS)
normalize_whitespace -e -s $(DIRTY_SOURCES) $(DIRTY_HEADERS)
# ----------------------------------------------------------------------------
# AUTOMATIC HEADER DEPENDENCIES
# ----------------------------------------------------------------------------
.PHONY: depend
depend::
@echo "Updating .depend"
$(CC) -MM $(CPPFLAGS) $(CLEAN_SOURCES) $(DIRTY_SOURCES) |\
./depend_filter.py > .depend
ifneq ($(MAKECMDGOALS),depend) # not while: make depend
ifneq (,$(wildcard .depend)) # not if .depend does not exist
include .depend
endif
endif
# ----------------------------------------------------------------------------
# AUTOMATIC PROTOTYPE GENERFATION
# ----------------------------------------------------------------------------
.SUFFIXES: .q .p .g
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
.PRECIOUS: .q
PROTO_CPPFLAGS += -DAPP_SYNC
PROTO_CPPFLAGS += -DAPP_SYNC_DBUS
PROTO_CPPFLAGS += -DCONNMAN
PROTO_CPPFLAGS += -DDEAD_CODE
PROTO_CPPFLAGS += -DDEBIAN
PROTO_CPPFLAGS += -DMEEGOLOCK
PROTO_CPPFLAGS += -DOFONO
PROTO_CPPFLAGS += -DSYSTEMD
PROTO_CPPFLAGS += -DUSE_MER_SSU
PROTO_CPPFLAGS += -DCONNMAN_WORKS_BETTER=1
PROTO_CPPFLAGS += -DVERBOSE_WAKELOCKING=1
%.q : CPPFLAGS += $(PROTO_CPPFLAGS)
%.q : %.c ; $(CC) -o $@ -E $< $(CPPFLAGS) -O
%.p : %.q prettyproto.groups ; cproto -s < $< | prettyproto.py > $@
%.g : %.q prettyproto.groups ; cproto < $< | prettyproto.py > $@
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
clean::
$(RM) *.[qpg] src/*.[qpg] utils/*.[qpg]
protos-pre: $(patsubst %.c,%.q,$(ALL_SOURCES))
touch $@
protos-post: $(patsubst %.c,%.p,$(ALL_SOURCES)) $(patsubst %.c,%.g,$(ALL_SOURCES))
touch $@
clean::
$(RM) protos-pre protos-post
# ----------------------------------------------------------------------------
# REMOVE FLUFF LEFT BY MB2 BUILDS
# ----------------------------------------------------------------------------
distclean::
$(RM) -r RPMS installroot
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
.SUFFIXES: %.trim
.PRECIOUS: %.trim
include_trim:: include_trim_headers include_trim_sources
%.trim : %
find_unneeded_includes.py $(CPPFLAGS) $(CFLAGS) -- $<
touch $@
include_trim_headers: $(patsubst %,%.trim,$(ALL_HEADERS))
include_trim_sources: $(patsubst %,%.trim,$(ALL_SOURCES))
distclean::
$(RM) *.trim */*.trim