]> git.ipfire.org Git - thirdparty/systemd.git/blob - src/journal/meson.build
dynamically load compression libraries
[thirdparty/systemd.git] / src / journal / meson.build
1 # SPDX-License-Identifier: LGPL-2.1-or-later
2
3 sources = files(
4 'journald-audit.c',
5 'journald-client.c',
6 'journald-console.c',
7 'journald-context.c',
8 'journald-kmsg.c',
9 'journald-native.c',
10 'journald-rate-limit.c',
11 'journald-server.c',
12 'journald-stream.c',
13 'journald-syslog.c',
14 'journald-wall.c',
15 'journald-socket.c',
16 )
17
18 sources += custom_target(
19 'journald-gperf.c',
20 input : 'journald-gperf.gperf',
21 output : 'journald-gperf.c',
22 command : [gperf, '@INPUT@', '--output-file', '@OUTPUT@'])
23
24 libjournal_core = static_library(
25 'journal-core',
26 sources,
27 include_directories : includes,
28 dependencies: [threads,
29 userspace],
30 build_by_default : false)
31
32 if get_option('link-journalctl-shared')
33 journalctl_link_with = [libshared]
34 else
35 journalctl_link_with = [
36 libbasic_gcrypt,
37 libshared_static,
38 libsystemd_static,
39 ]
40 endif
41
42 journal_test_template = test_template + {
43 'link_with' : [
44 libjournal_core,
45 libshared,
46 ],
47 }
48
49 journal_fuzz_template = fuzz_template + {
50 'link_with' : [
51 libjournal_core,
52 libshared,
53 ],
54 'dependencies' : libselinux,
55 }
56
57 executables += [
58 libexec_template + {
59 'name' : 'systemd-journald',
60 'sources' : files('journald.c'),
61 'link_with' : [
62 libjournal_core,
63 libshared,
64 ],
65 'dependencies' : [
66 liblz4_cflags,
67 libselinux,
68 libxz_cflags,
69 libzstd_cflags,
70 threads,
71 ],
72 },
73 libexec_template + {
74 'name' : 'systemd-bsod',
75 'public' : true,
76 'conditions' : ['HAVE_QRENCODE'],
77 'sources' : files('bsod.c'),
78 'link_with' : libshared,
79 'dependencies' : libqrencode,
80 },
81 executable_template + {
82 'name' : 'systemd-cat',
83 'public' : true,
84 'sources' : files('cat.c'),
85 'link_with' : [
86 libjournal_core,
87 libshared,
88 ],
89 'dependencies' : threads,
90 },
91 executable_template + {
92 'name' : 'journalctl',
93 'public' : true,
94 'sources' : files('journalctl.c'),
95 'link_with' : journalctl_link_with,
96 'dependencies' : [
97 libdl,
98 liblz4_cflags,
99 libxz_cflags,
100 libzstd_cflags,
101 threads,
102 ],
103 },
104 journal_test_template + {
105 'sources' : files('test-journald-config.c'),
106 'dependencies' : [
107 liblz4_cflags,
108 libselinux,
109 libxz_cflags,
110 ],
111 },
112 journal_test_template + {
113 'sources' : files('test-journald-syslog.c'),
114 'dependencies' : [
115 liblz4_cflags,
116 libselinux,
117 libxz_cflags,
118 threads,
119 ],
120 },
121 journal_test_template + {
122 'sources' : files('test-journald-tables.c'),
123 'dependencies' : [
124 libselinux,
125 ],
126 },
127 journal_fuzz_template + {
128 'sources' : files(
129 'fuzz-journald-audit.c',
130 'fuzz-journald.c',
131 ),
132 },
133 journal_fuzz_template + {
134 'sources' : files(
135 'fuzz-journald-kmsg.c',
136 'fuzz-journald.c',
137 ),
138 },
139 journal_fuzz_template + {
140 'sources' : files(
141 'fuzz-journald-native.c',
142 'fuzz-journald.c',
143 ),
144 },
145 journal_fuzz_template + {
146 'sources' : files(
147 'fuzz-journald-native-fd.c',
148 'fuzz-journald.c',
149 ),
150 },
151 journal_fuzz_template + {
152 'sources' : files(
153 'fuzz-journald-stream.c',
154 'fuzz-journald.c',
155 ),
156 },
157 journal_fuzz_template + {
158 'sources' : files(
159 'fuzz-journald-syslog.c',
160 'fuzz-journald.c',
161 ),
162 },
163 ]
164
165 if install_sysconfdir_samples
166 install_data('journald.conf',
167 install_dir : pkgconfigfiledir)
168 endif
169
170 if get_option('create-log-dirs')
171 install_emptydir('/var/log/journal',
172 install_mode : 'rwxr-xr-x')
173 if get_option('adm-group')
174 meson.add_install_script(
175 sh, '-c',
176 'setfacl -nm g:adm:rx,d:g:adm:rx $DESTDIR/var/log/journal || :')
177 endif
178 if get_option('wheel-group')
179 meson.add_install_script(
180 sh, '-c',
181 'setfacl -nm g:wheel:rx,d:g:wheel:rx $DESTDIR/var/log/journal || :')
182 endif
183 endif