Blame view

buildroot/buildroot-2016.08.1/package/systemd/systemd.mk 9.95 KB
6b13f685e   김민수   BSP 최초 추가
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
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
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
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
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
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
  ################################################################################
  #
  # systemd
  #
  ################################################################################
  
  SYSTEMD_VERSION = 231
  SYSTEMD_SITE = $(call github,systemd,systemd,v$(SYSTEMD_VERSION))
  SYSTEMD_LICENSE = LGPLv2.1+, GPLv2+ (udev), Public Domain (few source files, see README)
  SYSTEMD_LICENSE_FILES = LICENSE.GPL2 LICENSE.LGPL2.1 README
  SYSTEMD_INSTALL_STAGING = YES
  SYSTEMD_DEPENDENCIES = \
  	host-intltool \
  	libcap \
  	util-linux \
  	kmod \
  	host-gperf
  
  SYSTEMD_PROVIDES = udev
  SYSTEMD_AUTORECONF = YES
  
  # Make sure that systemd will always be built after busybox so that we have
  # a consistent init setup between two builds
  ifeq ($(BR2_PACKAGE_BUSYBOX),y)
  SYSTEMD_DEPENDENCIES += busybox
  endif
  
  SYSTEMD_CONF_OPTS += \
  	--with-rootprefix= \
  	--enable-blkid \
  	--enable-static=no \
  	--disable-manpages \
  	--disable-selinux \
  	--disable-pam \
  	--disable-ima \
  	--disable-libcryptsetup \
  	--disable-efi \
  	--disable-gnuefi \
  	--disable-ldconfig \
  	--disable-tests \
  	--disable-coverage \
  	--with-default-dnssec=no \
  	--without-python
  
  SYSTEMD_CFLAGS = $(TARGET_CFLAGS) -fno-lto
  
  # Override path to kmod, used in kmod-static-nodes.service
  SYSTEMD_CONF_ENV = \
  	CFLAGS="$(SYSTEMD_CFLAGS)" \
  	ac_cv_path_KMOD=/usr/bin/kmod
  
  define SYSTEMD_RUN_INTLTOOLIZE
  	cd $(@D) && $(HOST_DIR)/usr/bin/intltoolize --force --automake
  endef
  SYSTEMD_PRE_CONFIGURE_HOOKS += SYSTEMD_RUN_INTLTOOLIZE
  
  ifeq ($(BR2_PACKAGE_ACL),y)
  SYSTEMD_CONF_OPTS += --enable-acl
  SYSTEMD_DEPENDENCIES += acl
  else
  SYSTEMD_CONF_OPTS += --disable-acl
  endif
  
  ifeq ($(BR2_PACKAGE_AUDIT),y)
  SYSTEMD_CONF_OPTS += --enable-audit
  SYSTEMD_DEPENDENCIES += audit
  else
  SYSTEMD_CONF_OPTS += --disable-audit
  endif
  
  ifeq ($(BR2_PACKAGE_LIBIDN),y)
  SYSTEMD_CONF_OPTS += --enable-libidn
  SYSTEMD_DEPENDENCIES += libidn
  else
  SYSTEMD_CONF_OPTS += --disable-libidn
  endif
  
  ifeq ($(BR2_PACKAGE_LIBSECCOMP),y)
  SYSTEMD_CONF_OPTS += --enable-seccomp
  SYSTEMD_DEPENDENCIES += libseccomp
  else
  SYSTEMD_CONF_OPTS += --disable-seccomp
  endif
  
  ifeq ($(BR2_PACKAGE_LIBXKBCOMMON),y)
  SYSTEMD_CONF_OPTS += --enable-xkbcommon
  SYSTEMD_DEPENDENCIES += libxkbcommon
  else
  SYSTEMD_CONF_OPTS += --disable-xkbcommon
  endif
  
  ifeq ($(BR2_PACKAGE_SYSTEMD_KDBUS),y)
  SYSTEMD_CONF_OPTS += --enable-kdbus
  else
  SYSTEMD_CONF_OPTS += --disable-kdbus
  endif
  
  ifeq ($(BR2_PACKAGE_BZIP2),y)
  SYSTEMD_DEPENDENCIES += bzip2
  SYSTEMD_CONF_OPTS += --enable-bzip2
  else
  SYSTEMD_CONF_OPTS += --disable-bzip2
  endif
  
  ifeq ($(BR2_PACKAGE_LZ4),y)
  SYSTEMD_DEPENDENCIES += lz4
  SYSTEMD_CONF_OPTS += --enable-lz4
  else
  SYSTEMD_CONF_OPTS += --disable-lz4
  endif
  
  ifeq ($(BR2_PACKAGE_XZ),y)
  SYSTEMD_DEPENDENCIES += xz
  SYSTEMD_CONF_OPTS += --enable-xz
  else
  SYSTEMD_CONF_OPTS += --disable-xz
  endif
  
  ifeq ($(BR2_PACKAGE_ZLIB),y)
  SYSTEMD_DEPENDENCIES += zlib
  SYSTEMD_CONF_OPTS += --enable-zlib
  else
  SYSTEMD_CONF_OPTS += --disable-zlib
  endif
  
  ifeq ($(BR2_PACKAGE_LIBCURL),y)
  SYSTEMD_DEPENDENCIES += libcurl
  SYSTEMD_CONF_OPTS += --enable-libcurl
  else
  SYSTEMD_CONF_OPTS += --disable-libcurl
  endif
  
  ifeq ($(BR2_PACKAGE_LIBGCRYPT),y)
  SYSTEMD_DEPENDENCIES += libgcrypt
  SYSTEMD_CONF_OPTS += \
  	--enable-gcrypt	\
  	--with-libgcrypt-prefix=$(STAGING_DIR)/usr \
  	--with-libgpg-error-prefix=$(STAGING_DIR)/usr
  else
  SYSTEMD_CONF_OPTS += --disable-gcrypt
  endif
  
  ifeq ($(BR2_PACKAGE_SYSTEMD_JOURNAL_GATEWAY),y)
  SYSTEMD_DEPENDENCIES += libmicrohttpd
  SYSTEMD_CONF_OPTS += --enable-microhttpd
  ifeq ($(BR2_PACKAGE_LIBQRENCODE),y)
  SYSTEMD_CONF_OPTS += --enable-qrencode
  SYSTEMD_DEPENDENCIES += libqrencode
  else
  SYSTEMD_CONF_OPTS += --disable-qrencode
  endif
  else
  SYSTEMD_CONF_OPTS += --disable-microhttpd --disable-qrencode
  endif
  
  ifeq ($(BR2_PACKAGE_SYSTEMD_HWDB),y)
  SYSTEMD_CONF_OPTS += --enable-hwdb
  else
  SYSTEMD_CONF_OPTS += --disable-hwdb
  endif
  
  ifeq ($(BR2_PACKAGE_SYSTEMD_BINFMT),y)
  SYSTEMD_CONF_OPTS += --enable-binfmt
  else
  SYSTEMD_CONF_OPTS += --disable-binfmt
  endif
  
  ifeq ($(BR2_PACKAGE_SYSTEMD_VCONSOLE),y)
  SYSTEMD_CONF_OPTS += --enable-vconsole
  else
  SYSTEMD_CONF_OPTS += --disable-vconsole
  endif
  
  ifeq ($(BR2_PACKAGE_SYSTEMD_QUOTACHECK),y)
  SYSTEMD_CONF_OPTS += --enable-quotacheck
  else
  SYSTEMD_CONF_OPTS += --disable-quotacheck
  endif
  
  ifeq ($(BR2_PACKAGE_SYSTEMD_TMPFILES),y)
  SYSTEMD_CONF_OPTS += --enable-tmpfiles
  else
  SYSTEMD_CONF_OPTS += --disable-tmpfiles
  endif
  
  ifeq ($(BR2_PACKAGE_SYSTEMD_SYSUSERS),y)
  SYSTEMD_CONF_OPTS += --enable-sysusers
  else
  SYSTEMD_CONF_OPTS += --disable-sysusers
  endif
  
  ifeq ($(BR2_PACKAGE_SYSTEMD_FIRSTBOOT),y)
  SYSTEMD_CONF_OPTS += --enable-firstboot
  else
  SYSTEMD_CONF_OPTS += --disable-firstboot
  endif
  
  ifeq ($(BR2_PACKAGE_SYSTEMD_RANDOMSEED),y)
  SYSTEMD_CONF_OPTS += --enable-randomseed
  else
  SYSTEMD_CONF_OPTS += --disable-randomseed
  endif
  
  ifeq ($(BR2_PACKAGE_SYSTEMD_BACKLIGHT),y)
  SYSTEMD_CONF_OPTS += --enable-backlight
  else
  SYSTEMD_CONF_OPTS += --disable-backlight
  endif
  
  ifeq ($(BR2_PACKAGE_SYSTEMD_RFKILL),y)
  SYSTEMD_CONF_OPTS += --enable-rfkill
  else
  SYSTEMD_CONF_OPTS += --disable-rfkill
  endif
  
  ifeq ($(BR2_PACKAGE_SYSTEMD_LOGIND),y)
  SYSTEMD_CONF_OPTS += --enable-logind
  else
  SYSTEMD_CONF_OPTS += --disable-logind
  endif
  
  ifeq ($(BR2_PACKAGE_SYSTEMD_MACHINED),y)
  SYSTEMD_CONF_OPTS += --enable-machined
  else
  SYSTEMD_CONF_OPTS += --disable-machined
  endif
  
  ifeq ($(BR2_PACKAGE_SYSTEMD_IMPORTD),y)
  SYSTEMD_CONF_OPTS += --enable-importd
  else
  SYSTEMD_CONF_OPTS += --disable-importd
  endif
  
  ifeq ($(BR2_PACKAGE_SYSTEMD_HOSTNAMED),y)
  SYSTEMD_CONF_OPTS += --enable-hostnamed
  else
  SYSTEMD_CONF_OPTS += --disable-hostnamed
  endif
  
  ifeq ($(BR2_PACKAGE_SYSTEMD_MYHOSTNAME),y)
  SYSTEMD_CONF_OPTS += --enable-myhostname
  else
  SYSTEMD_CONF_OPTS += --disable-myhostname
  endif
  
  ifeq ($(BR2_PACKAGE_SYSTEMD_TIMEDATED),y)
  SYSTEMD_CONF_OPTS += --enable-timedated
  else
  SYSTEMD_CONF_OPTS += --disable-timedated
  endif
  
  ifeq ($(BR2_PACKAGE_SYSTEMD_LOCALED),y)
  SYSTEMD_CONF_OPTS += --enable-localed
  else
  SYSTEMD_CONF_OPTS += --disable-localed
  endif
  
  ifeq ($(BR2_PACKAGE_SYSTEMD_COREDUMP),y)
  SYSTEMD_CONF_OPTS += --enable-coredump
  SYSTEMD_COREDUMP_USER = systemd-coredump -1 systemd-coredump -1 * /var/lib/systemd/coredump - - Core Dumper
  else
  SYSTEMD_CONF_OPTS += --disable-coredump
  endif
  
  ifeq ($(BR2_PACKAGE_SYSTEMD_POLKIT),y)
  SYSTEMD_CONF_OPTS += --enable-polkit
  else
  SYSTEMD_CONF_OPTS += --disable-polkit
  endif
  
  ifeq ($(BR2_PACKAGE_SYSTEMD_NETWORKD),y)
  SYSTEMD_CONF_OPTS += --enable-networkd
  SYSTEMD_NETWORKD_USER = systemd-network -1 systemd-network -1 * - - - Network Manager
  define SYSTEMD_INSTALL_RESOLVCONF_HOOK
  	ln -sf ../run/systemd/resolve/resolv.conf \
  		$(TARGET_DIR)/etc/resolv.conf
  endef
  else
  SYSTEMD_CONF_OPTS += --disable-networkd
  define SYSTEMD_INSTALL_SERVICE_NETWORK
  	$(INSTALL) -D -m 644 package/systemd/network.service \
  		$(TARGET_DIR)/etc/systemd/system/network.service
  	mkdir -p $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants
  	ln -fs ../network.service \
  		$(TARGET_DIR)/etc/systemd/system/multi-user.target.wants/network.service
  endef
  endif
  
  ifeq ($(BR2_PACKAGE_SYSTEMD_RESOLVED),y)
  SYSTEMD_CONF_OPTS += --enable-resolved
  SYSTEMD_RESOLVED_USER = systemd-resolve -1 systemd-resolve -1 * - - - Network Name Resolution Manager
  else
  SYSTEMD_CONF_OPTS += --disable-resolved
  endif
  
  ifeq ($(BR2_PACKAGE_SYSTEMD_TIMESYNCD),y)
  SYSTEMD_CONF_OPTS += --enable-timesyncd
  SYSTEMD_TIMESYNCD_USER = systemd-timesync -1 systemd-timesync -1 * - - - Network Time Synchronization
  define SYSTEMD_INSTALL_SERVICE_TIMESYNC
  	mkdir -p $(TARGET_DIR)/etc/systemd/system/sysinit.target.wants
  	ln -sf ../../../../lib/systemd/system/systemd-timesyncd.service \
  		$(TARGET_DIR)/etc/systemd/system/sysinit.target.wants/systemd-timesyncd.service
  endef
  else
  SYSTEMD_CONF_OPTS += --disable-timesyncd
  endif
  
  ifeq ($(BR2_PACKAGE_SYSTEMD_SMACK_SUPPORT),y)
  SYSTEMD_CONF_OPTS += --enable-smack
  else
  SYSTEMD_CONF_OPTS += --disable-smack
  endif
  
  ifeq ($(BR2_PACKAGE_SYSTEMD_HIBERNATE),y)
  SYSTEMD_CONF_OPTS += --enable-hibernate
  else
  SYSTEMD_CONF_OPTS += --disable-hibernate
  endif
  
  define SYSTEMD_INSTALL_INIT_HOOK
  	ln -fs ../lib/systemd/systemd $(TARGET_DIR)/sbin/init
  	ln -fs ../bin/systemctl $(TARGET_DIR)/sbin/halt
  	ln -fs ../bin/systemctl $(TARGET_DIR)/sbin/poweroff
  	ln -fs ../bin/systemctl $(TARGET_DIR)/sbin/reboot
  
  	ln -fs ../../../lib/systemd/system/multi-user.target \
  		$(TARGET_DIR)/etc/systemd/system/default.target
  endef
  
  define SYSTEMD_INSTALL_MACHINEID_HOOK
  	touch $(TARGET_DIR)/etc/machine-id
  endef
  
  SYSTEMD_POST_INSTALL_TARGET_HOOKS += \
  	SYSTEMD_INSTALL_INIT_HOOK \
  	SYSTEMD_INSTALL_MACHINEID_HOOK \
  	SYSTEMD_INSTALL_RESOLVCONF_HOOK
  
  define SYSTEMD_USERS
  	- - input -1 * - - - Input device group
  	- - systemd-journal -1 * - - - Journal
  	systemd-bus-proxy -1 systemd-bus-proxy -1 * - - - Proxy D-Bus messages to/from a bus
  	systemd-journal-gateway -1 systemd-journal-gateway -1 * /var/log/journal - - Journal Gateway
  	systemd-journal-remote -1 systemd-journal-remote -1 * /var/log/journal/remote - - Journal Remote
  	systemd-journal-upload -1 systemd-journal-upload -1 * - - - Journal Upload
  	$(SYSTEMD_COREDUMP_USER)
  	$(SYSTEMD_NETWORKD_USER)
  	$(SYSTEMD_RESOLVED_USER)
  	$(SYSTEMD_TIMESYNCD_USER)
  endef
  
  define SYSTEMD_DISABLE_SERVICE_TTY1
  	rm -f $(TARGET_DIR)/etc/systemd/system/getty.target.wants/getty@tty1.service
  endef
  
  ifneq ($(call qstrip,$(BR2_TARGET_GENERIC_GETTY_PORT)),)
  # systemd needs getty.service for VTs and serial-getty.service for serial ttys
  # also patch the file to use the correct baud-rate, the default baudrate is 115200 so look for that
  define SYSTEMD_INSTALL_SERVICE_TTY
  	if echo $(BR2_TARGET_GENERIC_GETTY_PORT) | egrep -q 'tty[0-9]*$$'; \
  	then \
  		SERVICE="getty"; \
  	else \
  		SERVICE="serial-getty"; \
  	fi; \
  	ln -fs ../../../../lib/systemd/system/$${SERVICE}@.service \
  		$(TARGET_DIR)/etc/systemd/system/getty.target.wants/$${SERVICE}@$(BR2_TARGET_GENERIC_GETTY_PORT).service; \
  	if [ $(call qstrip,$(BR2_TARGET_GENERIC_GETTY_BAUDRATE)) -gt 0 ] ; \
  	then \
  		$(SED) 's,115200,$(BR2_TARGET_GENERIC_GETTY_BAUDRATE),' $(TARGET_DIR)/lib/systemd/system/$${SERVICE}@.service; \
  	fi
  endef
  endif
  
  define SYSTEMD_INSTALL_INIT_SYSTEMD
  	$(SYSTEMD_DISABLE_SERVICE_TTY1)
  	$(SYSTEMD_INSTALL_SERVICE_TTY)
  	$(SYSTEMD_INSTALL_SERVICE_NETWORK)
  	$(SYSTEMD_INSTALL_SERVICE_TIMESYNC)
  endef
  
  $(eval $(autotools-package))