github.com/anonymouse64/snapd@v0.0.0-20210824153203-04c4c42d842d/cmd/Makefile.am (about) 1 2 EXTRA_DIST = VERSION snap-confine/PORTING 3 CLEANFILES = 4 TESTS = 5 libexec_PROGRAMS = 6 dist_man_MANS = 7 noinst_PROGRAMS = 8 noinst_LIBRARIES = 9 10 CHECK_CFLAGS = -Wall -Wextra -Wmissing-prototypes -Wstrict-prototypes \ 11 -Wno-missing-field-initializers -Wno-unused-parameter 12 13 # Make all warnings errors when building for unit tests 14 if WITH_UNIT_TESTS 15 CHECK_CFLAGS += -Werror 16 endif 17 18 if USE_INTERNAL_BPF_HEADERS 19 VENDOR_BPF_HEADERS_CFLAGS = -I$(srcdir)/libsnap-confine-private/bpf/vendor 20 endif 21 22 subdirs = \ 23 libsnap-confine-private \ 24 snap-confine \ 25 snap-device-helper \ 26 snap-discard-ns \ 27 snap-gdb-shim \ 28 snap-update-ns \ 29 snapd-env-generator \ 30 snapd-generator \ 31 system-shutdown 32 33 # Run check-syntax when checking 34 # TODO: conver those to autotools-style tests later 35 check: check-unit-tests 36 37 # Force particular coding style on all source and header files. 38 .PHONY: check-syntax-c 39 check-syntax-c: 40 echo "WARNING: check-syntax-c produces different results for different version of indent" 41 echo "Your version of indent: `indent --version`" 42 @d=`mktemp -d`; \ 43 trap 'rm -rf $d' EXIT; \ 44 for f in $(foreach dir,$(subdirs),$(wildcard $(srcdir)/$(dir)/*.[ch])) ; do \ 45 out="$$d/`basename $$f.out`"; \ 46 echo "Checking $$f ... "; \ 47 HOME=$(srcdir) indent "$$f" -o "$$out"; \ 48 diff -Naur "$$f" "$$out" || exit 1; \ 49 done; 50 51 .PHONY: check-unit-tests 52 if WITH_UNIT_TESTS 53 check-unit-tests: snap-confine/unit-tests system-shutdown/unit-tests libsnap-confine-private/unit-tests snap-device-helper/unit-tests 54 $(HAVE_VALGRIND) ./libsnap-confine-private/unit-tests 55 $(HAVE_VALGRIND) ./snap-confine/unit-tests 56 $(HAVE_VALGRIND) ./system-shutdown/unit-tests 57 $(HAVE_VALGRIND) ./snap-device-helper/unit-tests 58 else 59 check-unit-tests: 60 echo "unit tests are disabled (rebuild with --enable-unit-tests)" 61 endif 62 63 new_format = \ 64 libsnap-confine-private/cgroup-support.c \ 65 libsnap-confine-private/cgroup-support.h \ 66 libsnap-confine-private/cgroup-support-test.c \ 67 libsnap-confine-private/device-cgroup-support.c \ 68 libsnap-confine-private/device-cgroup-support.h \ 69 libsnap-confine-private/infofile-test.c \ 70 libsnap-confine-private/infofile.c \ 71 libsnap-confine-private/infofile.h \ 72 libsnap-confine-private/panic-test.h \ 73 libsnap-confine-private/panic.c \ 74 libsnap-confine-private/panic.h \ 75 snap-confine/seccomp-support-ext.c \ 76 snap-confine/seccomp-support-ext.h \ 77 snap-confine/selinux-support.c \ 78 snap-confine/selinux-support.h \ 79 snap-confine/snap-confine-invocation-test.c \ 80 snap-confine/snap-confine-invocation.c \ 81 snap-confine/snap-confine-invocation.h \ 82 snap-device-helper/main.c \ 83 snap-device-helper/snap-device-helper.c \ 84 snap-device-helper/snap-device-helper.h \ 85 snap-device-helper/snap-device-helper-test.c \ 86 snap-discard-ns/snap-discard-ns.c \ 87 snap-gdb-shim/snap-gdb-shim.c \ 88 snap-gdb-shim/snap-gdbserver-shim.c 89 90 # NOTE: clang-format is using project-wide .clang-format file. 91 .PHONY: fmt 92 fmt:: $(filter $(addprefix %,$(new_format)),$(foreach dir,$(subdirs),$(wildcard $(srcdir)/$(dir)/*.[ch]))) 93 clang-format -i $^ 94 95 fmt:: $(filter-out $(addprefix %,$(new_format)),$(foreach dir,$(subdirs),$(wildcard $(srcdir)/$(dir)/*.[ch]))) 96 HOME=$(srcdir) indent $^ 97 98 # The hack target helps developers work on snap-confine on their live system by 99 # installing a fresh copy of snap confine and the appropriate apparmor profile. 100 .PHONY: hack 101 hack: snap-confine/snap-confine-debug snap-confine/snap-confine.apparmor snap-update-ns/snap-update-ns snap-seccomp/snap-seccomp snap-discard-ns/snap-discard-ns snap-device-helper/snap-device-helper 102 sudo install -D -m 4755 snap-confine/snap-confine-debug $(DESTDIR)$(libexecdir)/snap-confine 103 if [ -d /etc/apparmor.d ]; then sudo install -m 644 snap-confine/snap-confine.apparmor $(DESTDIR)/etc/apparmor.d/$(patsubst .%,%,$(subst /,.,$(libexecdir))).snap-confine.real; fi 104 sudo install -d -m 755 $(DESTDIR)/var/lib/snapd/apparmor/snap-confine/ 105 if [ "$$(command -v apparmor_parser)" != "" ]; then sudo apparmor_parser -r snap-confine/snap-confine.apparmor; fi 106 sudo install -m 755 snap-update-ns/snap-update-ns $(DESTDIR)$(libexecdir)/snap-update-ns 107 sudo install -m 755 snap-discard-ns/snap-discard-ns $(DESTDIR)$(libexecdir)/snap-discard-ns 108 sudo install -m 755 snap-seccomp/snap-seccomp $(DESTDIR)$(libexecdir)/snap-seccomp 109 sudo install -m 755 snap-device-helper/snap-device-helper $(DESTDIR)$(libexecdir)/snap-device-helper 110 if [ "$$(command -v restorecon)" != "" ]; then sudo restorecon -R -v $(DESTDIR)$(libexecdir)/; fi 111 112 # for the hack target also: 113 snap-update-ns/snap-update-ns: snap-update-ns/*.go snap-update-ns/*.[ch] 114 cd snap-update-ns && GOPATH=$(or $(GOPATH),$(realpath $(srcdir)/../../../../..)) go build \ 115 -ldflags='-extldflags=-static -linkmode=external' -v 116 snap-seccomp/snap-seccomp: snap-seccomp/*.go 117 cd snap-seccomp && GOPATH=$(or $(GOPATH),$(realpath $(srcdir)/../../../../..)) go build -v 118 119 ## 120 ## libsnap-confine-private.a 121 ## 122 123 noinst_LIBRARIES += libsnap-confine-private.a 124 125 libsnap_confine_private_a_SOURCES = \ 126 libsnap-confine-private/apparmor-support.c \ 127 libsnap-confine-private/apparmor-support.h \ 128 libsnap-confine-private/cgroup-freezer-support.c \ 129 libsnap-confine-private/cgroup-freezer-support.h \ 130 libsnap-confine-private/cgroup-support.c \ 131 libsnap-confine-private/cgroup-support.h \ 132 libsnap-confine-private/device-cgroup-support.c \ 133 libsnap-confine-private/device-cgroup-support.h \ 134 libsnap-confine-private/classic.c \ 135 libsnap-confine-private/classic.h \ 136 libsnap-confine-private/cleanup-funcs.c \ 137 libsnap-confine-private/cleanup-funcs.h \ 138 libsnap-confine-private/error.c \ 139 libsnap-confine-private/error.h \ 140 libsnap-confine-private/fault-injection.c \ 141 libsnap-confine-private/fault-injection.h \ 142 libsnap-confine-private/feature.c \ 143 libsnap-confine-private/feature.h \ 144 libsnap-confine-private/infofile.c \ 145 libsnap-confine-private/locking.c \ 146 libsnap-confine-private/locking.h \ 147 libsnap-confine-private/mount-opt.c \ 148 libsnap-confine-private/mount-opt.h \ 149 libsnap-confine-private/mountinfo.c \ 150 libsnap-confine-private/mountinfo.h \ 151 libsnap-confine-private/panic.c \ 152 libsnap-confine-private/panic.h \ 153 libsnap-confine-private/privs.c \ 154 libsnap-confine-private/privs.h \ 155 libsnap-confine-private/secure-getenv.c \ 156 libsnap-confine-private/secure-getenv.h \ 157 libsnap-confine-private/snap.c \ 158 libsnap-confine-private/snap.h \ 159 libsnap-confine-private/string-utils.c \ 160 libsnap-confine-private/string-utils.h \ 161 libsnap-confine-private/tool.c \ 162 libsnap-confine-private/tool.h \ 163 libsnap-confine-private/utils.c \ 164 libsnap-confine-private/utils.h 165 libsnap_confine_private_a_CFLAGS = $(CHECK_CFLAGS) $(VENDOR_BPF_HEADERS_CFLAGS) 166 167 noinst_LIBRARIES += libsnap-confine-private-debug.a 168 libsnap_confine_private_debug_a_SOURCES = $(libsnap_confine_private_a_SOURCES) 169 libsnap_confine_private_debug_a_CFLAGS = $(CHECK_CFLAGS) $(VENDOR_BPF_HEADERS_CFLAGS) -DSNAP_CONFINE_DEBUG_BUILD=1 170 171 if WITH_UNIT_TESTS 172 noinst_PROGRAMS += libsnap-confine-private/unit-tests 173 libsnap_confine_private_unit_tests_SOURCES = \ 174 libsnap-confine-private/cgroup-support-test.c \ 175 libsnap-confine-private/classic-test.c \ 176 libsnap-confine-private/cleanup-funcs-test.c \ 177 libsnap-confine-private/error-test.c \ 178 libsnap-confine-private/fault-injection-test.c \ 179 libsnap-confine-private/feature-test.c \ 180 libsnap-confine-private/infofile-test.c \ 181 libsnap-confine-private/locking-test.c \ 182 libsnap-confine-private/mount-opt-test.c \ 183 libsnap-confine-private/mountinfo-test.c \ 184 libsnap-confine-private/panic-test.c \ 185 libsnap-confine-private/privs-test.c \ 186 libsnap-confine-private/secure-getenv-test.c \ 187 libsnap-confine-private/snap-test.c \ 188 libsnap-confine-private/string-utils-test.c \ 189 libsnap-confine-private/test-utils-test.c \ 190 libsnap-confine-private/test-utils.c \ 191 libsnap-confine-private/unit-tests-main.c \ 192 libsnap-confine-private/unit-tests.c \ 193 libsnap-confine-private/unit-tests.h \ 194 libsnap-confine-private/utils-test.c 195 196 libsnap_confine_private_unit_tests_CFLAGS = $(CHECK_CFLAGS) $(VENDOR_BPF_HEADERS_CFLAGS) $(GLIB_CFLAGS) 197 libsnap_confine_private_unit_tests_LDADD = $(GLIB_LIBS) 198 libsnap_confine_private_unit_tests_CFLAGS += -D_ENABLE_FAULT_INJECTION 199 libsnap_confine_private_unit_tests_STATIC = 200 201 if STATIC_LIBCAP 202 libsnap_confine_private_unit_tests_STATIC += -lcap 203 else 204 libsnap_confine_private_unit_tests_LDADD += -lcap 205 endif # STATIC_LIBCAP 206 207 # Use a hacked rule if we're doing static build. This allows us to inject the LIBS += .. rule below. 208 libsnap-confine-private/unit-tests$(EXEEXT): $(libsnap_confine_private_unit_tests_OBJECTS) $(libsnap_confine_private_unit_tests_DEPENDENCIES) $(EXTRA_libsnap_confine_private_unit_tests_DEPENDENCIES) libsnap-confine-private/$(am__dirstamp) 209 @rm -f libsnap-confine-private/unit-tests$(EXEEXT) 210 $(AM_V_CCLD)$(libsnap_confine_private_unit_tests_LINK) $(libsnap_confine_private_unit_tests_OBJECTS) $(libsnap_confine_private_unit_tests_LDADD) $(LIBS) 211 212 libsnap-confine-private/unit-tests$(EXEEXT): LIBS += -Wl,-Bstatic $(libsnap_confine_private_unit_tests_STATIC) -Wl,-Bdynamic 213 endif # WITH_UNIT_TESTS 214 215 ## 216 ## decode-mount-opts 217 ## 218 219 noinst_PROGRAMS += decode-mount-opts/decode-mount-opts 220 221 decode_mount_opts_decode_mount_opts_SOURCES = \ 222 decode-mount-opts/decode-mount-opts.c 223 decode_mount_opts_decode_mount_opts_LDADD = libsnap-confine-private.a 224 decode_mount_opts_decode_mount_opts_STATIC = 225 226 if STATIC_LIBCAP 227 decode_mount_opts_decode_mount_opts_STATIC += -lcap 228 else 229 decode_mount_opts_decode_mount_opts_LDADD += -lcap 230 endif # STATIC_LIBCAP 231 232 # XXX: this makes automake generate decode_mount_opts_decode_mount_opts_LINK 233 decode_mount_opts_decode_mount_opts_CFLAGS = -D_fake 234 235 # Use a hacked rule if we're doing static build. This allows us to inject the LIBS += .. rule below. 236 decode-mount-opts/decode-mount-opts$(EXEEXT): $(decode_mount_opts_decode_mount_opts_OBJECTS) $(decode_mount_opts_decode_mount_opts_DEPENDENCIES) $(EXTRA_decode_mount_opts_decode_mount_opts_DEPENDENCIES) libsnap-confine-private/$(am__dirstamp) 237 @rm -f decode-mount-opts/decode-mount-opts$(EXEEXT) 238 $(AM_V_CCLD)$(decode_mount_opts_decode_mount_opts_LINK) $(decode_mount_opts_decode_mount_opts_OBJECTS) $(decode_mount_opts_decode_mount_opts_LDADD) $(LIBS) 239 240 decode-mount-opts/decode-mount-opts$(EXEEXT): LIBS += -Wl,-Bstatic $(decode_mount_opts_decode_mount_opts_STATIC) -Wl,-Bdynamic 241 242 ## 243 ## snap-confine 244 ## 245 246 libexec_PROGRAMS += snap-confine/snap-confine 247 if HAVE_RST2MAN 248 dist_man_MANS += snap-confine/snap-confine.8 249 CLEANFILES += snap-confine/snap-confine.8 250 endif 251 EXTRA_DIST += snap-confine/snap-confine.rst 252 EXTRA_DIST += snap-confine/snap-confine.apparmor.in 253 254 snap_confine_snap_confine_SOURCES = \ 255 snap-confine/cookie-support.c \ 256 snap-confine/cookie-support.h \ 257 snap-confine/mount-support-nvidia.c \ 258 snap-confine/mount-support-nvidia.h \ 259 snap-confine/mount-support.c \ 260 snap-confine/mount-support.h \ 261 snap-confine/ns-support.c \ 262 snap-confine/ns-support.h \ 263 snap-confine/seccomp-support-ext.c \ 264 snap-confine/seccomp-support-ext.h \ 265 snap-confine/seccomp-support.c \ 266 snap-confine/seccomp-support.h \ 267 snap-confine/snap-confine-args.c \ 268 snap-confine/snap-confine-args.h \ 269 snap-confine/snap-confine-invocation.c \ 270 snap-confine/snap-confine-invocation.h \ 271 snap-confine/snap-confine.c \ 272 snap-confine/udev-support.c \ 273 snap-confine/udev-support.h \ 274 snap-confine/user-support.c \ 275 snap-confine/user-support.h 276 277 snap_confine_snap_confine_CFLAGS = $(CHECK_CFLAGS) $(AM_CFLAGS) -DLIBEXECDIR=\"$(libexecdir)\" -DNATIVE_LIBDIR=\"$(libdir)\" 278 snap_confine_snap_confine_LDFLAGS = $(AM_LDFLAGS) 279 snap_confine_snap_confine_LDADD = libsnap-confine-private.a 280 snap_confine_snap_confine_CFLAGS += $(LIBUDEV_CFLAGS) 281 snap_confine_snap_confine_LDADD += $(snap_confine_snap_confine_extra_libs) 282 # _STATIC is where we collect statically linked in libraries 283 snap_confine_snap_confine_STATIC = 284 # use a separate variable instead of snap_confine_snap_confine_LDADD to collect 285 # all external libraries, this way it can be reused in 286 # snap_confine_snap_confine_debug_LDADD withouth applying any text 287 # transformations 288 snap_confine_snap_confine_extra_libs = $(LIBUDEV_LIBS) 289 290 if STATIC_LIBCAP 291 snap_confine_snap_confine_STATIC += -lcap 292 else 293 snap_confine_snap_confine_extra_libs += -lcap 294 endif # STATIC_LIBCAP 295 296 # Use a hacked rule if we're doing static build. This allows us to inject the LIBS += .. rule below. 297 snap-confine/snap-confine$(EXEEXT): $(snap_confine_snap_confine_OBJECTS) $(snap_confine_snap_confine_DEPENDENCIES) $(EXTRA_snap_confine_snap_confine_DEPENDENCIES) libsnap-confine-private/$(am__dirstamp) 298 @rm -f snap-confine/snap-confine$(EXEEXT) 299 $(AM_V_CCLD)$(snap_confine_snap_confine_LINK) $(snap_confine_snap_confine_OBJECTS) $(snap_confine_snap_confine_LDADD) $(LIBS) 300 301 snap-confine/snap-confine$(EXEEXT): LIBS += -Wl,-Bstatic $(snap_confine_snap_confine_STATIC) -Wl,-Bdynamic -pthread 302 303 # This is here to help fix rpmlint hardening issue. 304 # https://en.opensuse.org/openSUSE:Packaging_checks#non-position-independent-executable 305 snap_confine_snap_confine_CFLAGS += $(SUID_CFLAGS) 306 snap_confine_snap_confine_LDFLAGS += $(SUID_LDFLAGS) 307 308 if APPARMOR 309 snap_confine_snap_confine_CFLAGS += $(APPARMOR_CFLAGS) 310 if STATIC_LIBAPPARMOR 311 snap_confine_snap_confine_STATIC += $(shell $(PKG_CONFIG) --static --libs libapparmor) 312 else 313 snap_confine_snap_confine_extra_libs += $(APPARMOR_LIBS) 314 endif # STATIC_LIBAPPARMOR 315 endif # APPARMOR 316 317 if SELINUX 318 snap_confine_snap_confine_SOURCES += \ 319 snap-confine/selinux-support.c \ 320 snap-confine/selinux-support.h 321 snap_confine_snap_confine_CFLAGS += $(SELINUX_CFLAGS) 322 if STATIC_LIBSELINUX 323 snap_confine_snap_confine_STATIC += $(shell $(PKG_CONFIG) --static --libs libselinux) 324 else 325 snap_confine_snap_confine_extra_libs += $(SELINUX_LIBS) 326 endif # STATIC_LIBSELINUX 327 endif # SELINUX 328 329 # an extra build that has additional debugging enabled at compile time 330 331 noinst_PROGRAMS += snap-confine/snap-confine-debug 332 snap_confine_snap_confine_debug_SOURCES = $(snap_confine_snap_confine_SOURCES) 333 snap_confine_snap_confine_debug_CFLAGS = $(snap_confine_snap_confine_CFLAGS) 334 snap_confine_snap_confine_debug_LDFLAGS = $(snap_confine_snap_confine_LDFLAGS) 335 snap_confine_snap_confine_debug_LDADD = libsnap-confine-private-debug.a $(snap_confine_snap_confine_extra_libs) 336 snap_confine_snap_confine_debug_CFLAGS += -DSNAP_CONFINE_DEBUG_BUILD=1 337 snap_confine_snap_confine_debug_STATIC = $(snap_confine_snap_confine_STATIC) 338 339 # Use a hacked rule if we're doing static build. This allows us to inject the LIBS += .. rule below. 340 snap-confine/snap-confine-debug$(EXEEXT): $(snap_confine_snap_confine_debug_OBJECTS) $(snap_confine_snap_confine_debug_DEPENDENCIES) $(EXTRA_snap_confine_snap_confine_debug_DEPENDENCIES) libsnap-confine-private/$(am__dirstamp) 341 @rm -f snap-confine/snap-confine-debug$(EXEEXT) 342 $(AM_V_CCLD)$(snap_confine_snap_confine_debug_LINK) $(snap_confine_snap_confine_debug_OBJECTS) $(snap_confine_snap_confine_debug_LDADD) $(LIBS) 343 344 snap-confine/snap-confine-debug$(EXEEXT): LIBS += -Wl,-Bstatic $(snap_confine_snap_confine_debug_STATIC) -Wl,-Bdynamic -pthread 345 346 if WITH_UNIT_TESTS 347 noinst_PROGRAMS += snap-confine/unit-tests 348 snap_confine_unit_tests_SOURCES = \ 349 libsnap-confine-private/test-utils.c \ 350 libsnap-confine-private/unit-tests-main.c \ 351 libsnap-confine-private/unit-tests.c \ 352 libsnap-confine-private/unit-tests.h \ 353 snap-confine/cookie-support-test.c \ 354 snap-confine/mount-support-test.c \ 355 snap-confine/ns-support-test.c \ 356 snap-confine/snap-confine-args-test.c \ 357 snap-confine/snap-confine-invocation-test.c 358 snap_confine_unit_tests_CFLAGS = $(snap_confine_snap_confine_CFLAGS) $(GLIB_CFLAGS) 359 snap_confine_unit_tests_LDADD = $(snap_confine_snap_confine_LDADD) $(GLIB_LIBS) 360 snap_confine_unit_tests_LDFLAGS = $(snap_confine_snap_confine_LDFLAGS) 361 snap_confine_unit_tests_STATIC = $(snap_confine_snap_confine_STATIC) 362 363 # Use a hacked rule if we're doing static build. This allows us to inject the LIBS += .. rule below. 364 snap-confine/unit-tests$(EXEEXT): $(snap_confine_unit_tests_OBJECTS) $(snap_confine_unit_tests_DEPENDENCIES) $(EXTRA_snap_confine_unit_tests_DEPENDENCIES) libsnap-confine-private/$(am__dirstamp) 365 @rm -f snap-confine/unit-tests$(EXEEXT) 366 $(AM_V_CCLD)$(snap_confine_unit_tests_LINK) $(snap_confine_unit_tests_OBJECTS) $(snap_confine_unit_tests_LDADD) $(LIBS) 367 368 snap-confine/unit-tests$(EXEEXT): LIBS += -Wl,-Bstatic $(snap_confine_unit_tests_STATIC) -Wl,-Bdynamic -pthread 369 endif # WITH_UNIT_TESTS 370 371 if HAVE_RST2MAN 372 %.8: %.rst 373 $(HAVE_RST2MAN) $^ > $@ 374 endif 375 376 snap-confine/snap-confine.apparmor: snap-confine/snap-confine.apparmor.in Makefile 377 sed -e 's,[@]LIBEXECDIR[@],$(libexecdir),g' -e 's,[@]SNAP_MOUNT_DIR[@],$(SNAP_MOUNT_DIR),g' <$< >$@ 378 379 # Install the apparmor profile 380 # 381 # NOTE: the funky make functions here just convert /foo/bar/froz into 382 # foo.bar.froz The inner subst replaces slashes with dots and the outer 383 # patsubst strips the leading dot 384 install-data-local:: snap-confine/snap-confine.apparmor 385 if APPARMOR 386 install -d -m 755 $(DESTDIR)/etc/apparmor.d/ 387 install -m 644 snap-confine/snap-confine.apparmor $(DESTDIR)/etc/apparmor.d/$(patsubst .%,%,$(subst /,.,$(libexecdir))).snap-confine 388 endif 389 install -d -m 755 $(DESTDIR)/var/lib/snapd/apparmor/snap-confine/ 390 391 # NOTE: The 'void' directory *has to* be chmod 111 392 install-data-local:: 393 install -d -m 111 $(DESTDIR)/var/lib/snapd/void 394 395 install-exec-hook:: 396 # Ensure that snap-confine is u+s (setuid) 397 chmod 4755 $(DESTDIR)$(libexecdir)/snap-confine 398 399 ## 400 ## snap-mgmt 401 ## 402 403 libexec_SCRIPTS = snap-mgmt/snap-mgmt 404 CLEANFILES += snap-mgmt/$(am__dirstamp) snap-mgmt/snap-mgmt 405 406 snap-mgmt/$(am__dirstamp): 407 mkdir -p $$(dirname $@) 408 touch $@ 409 410 snap-mgmt/snap-mgmt: snap-mgmt/snap-mgmt.sh.in Makefile snap-mgmt/$(am__dirstamp) 411 sed -e 's,[@]SNAP_MOUNT_DIR[@],$(SNAP_MOUNT_DIR),' <$< >$@ 412 413 if SELINUX 414 ## 415 ## snap-mgmt-selinux 416 ## 417 418 libexec_SCRIPTS += snap-mgmt/snap-mgmt-selinux 419 CLEANFILES += snap-mgmt/$(am__dirstamp) snap-mgmt/snap-mgmt-selinux 420 421 snap-mgmt/snap-mgmt-selinux: snap-mgmt/snap-mgmt-selinux.sh.in Makefile snap-mgmt/$(am__dirstamp) 422 sed -e 's,[@]SNAP_MOUNT_DIR[@],$(SNAP_MOUNT_DIR),' <$< >$@ 423 endif 424 425 ## 426 ## ubuntu-core-launcher 427 ## 428 429 install-exec-hook:: 430 install -d -m 755 $(DESTDIR)$(bindir) 431 ln -sf $(libexecdir)/snap-confine $(DESTDIR)$(bindir)/ubuntu-core-launcher 432 433 ## 434 ## snap-device-helper 435 ## 436 437 libexec_PROGRAMS += \ 438 snap-device-helper/snap-device-helper 439 440 snap_device_helper_snap_device_helper_SOURCES = \ 441 snap-device-helper/main.c \ 442 snap-device-helper/snap-device-helper.c 443 snap_device_helper_snap_device_helper_CFLAGS = $(CHECK_CFLAGS) $(AM_CFLAGS) 444 snap_device_helper_snap_device_helper_LDFLAGS = $(AM_LDFLAGS) 445 snap_device_helper_snap_device_helper_LDADD = libsnap-confine-private.a 446 447 if WITH_UNIT_TESTS 448 noinst_PROGRAMS += snap-device-helper/unit-tests 449 snap_device_helper_unit_tests_SOURCES = \ 450 libsnap-confine-private/test-utils.c \ 451 libsnap-confine-private/string-utils.c \ 452 libsnap-confine-private/utils.c \ 453 libsnap-confine-private/cleanup-funcs.c \ 454 libsnap-confine-private/panic.c \ 455 libsnap-confine-private/snap.c \ 456 libsnap-confine-private/error.c \ 457 libsnap-confine-private/unit-tests-main.c \ 458 libsnap-confine-private/unit-tests.c \ 459 libsnap-confine-private/unit-tests.h \ 460 snap-device-helper/snap-device-helper-test.c 461 snap_device_helper_unit_tests_CFLAGS = $(snap_device_helper_snap_device_helper_CFLAGS) $(GLIB_CFLAGS) 462 snap_device_helper_unit_tests_LDADD = $(GLIB_LIBS) 463 snap_device_helper_unit_tests_LDFLAGS =$(snap_device_helper_snap_device_helper_LDFLAGS) 464 465 endif # WITH_UNIT_TESTS 466 467 ## 468 ## snap-discard-ns 469 ## 470 471 libexec_PROGRAMS += snap-discard-ns/snap-discard-ns 472 if HAVE_RST2MAN 473 dist_man_MANS += snap-discard-ns/snap-discard-ns.8 474 CLEANFILES += snap-discard-ns/snap-discard-ns.8 475 endif 476 EXTRA_DIST += snap-discard-ns/snap-discard-ns.rst 477 478 snap_discard_ns_snap_discard_ns_SOURCES = \ 479 snap-discard-ns/snap-discard-ns.c 480 snap_discard_ns_snap_discard_ns_CFLAGS = $(CHECK_CFLAGS) $(AM_CFLAGS) 481 snap_discard_ns_snap_discard_ns_LDFLAGS = $(AM_LDFLAGS) 482 snap_discard_ns_snap_discard_ns_LDADD = libsnap-confine-private.a 483 snap_discard_ns_snap_discard_ns_STATIC = 484 485 # Use a hacked rule if we're doing static build. This allows us to inject the LIBS += .. rule below. 486 snap-discard-ns/snap-discard-ns$(EXEEXT): $(snap_discard_ns_snap_discard_ns_OBJECTS) $(snap_discard_ns_snap_discard_ns_DEPENDENCIES) $(EXTRA_snap_discard_ns_snap_discard_ns_DEPENDENCIES) snap-discard-ns/$(am__dirstamp) 487 @rm -f snap-discard-ns/snap-discard-ns$(EXEEXT) 488 $(AM_V_CCLD)$(snap_discard_ns_snap_discard_ns_LINK) $(snap_discard_ns_snap_discard_ns_OBJECTS) $(snap_discard_ns_snap_discard_ns_LDADD) $(LIBS) 489 490 snap-discard-ns/snap-discard-ns$(EXEEXT): LIBS += -Wl,-Bstatic $(snap_discard_ns_snap_discard_ns_STATIC) -Wl,-Bdynamic -pthread 491 492 ## 493 ## system-shutdown 494 ## 495 496 libexec_PROGRAMS += system-shutdown/system-shutdown 497 498 system_shutdown_system_shutdown_SOURCES = \ 499 system-shutdown/system-shutdown-utils.c \ 500 system-shutdown/system-shutdown-utils.h \ 501 system-shutdown/system-shutdown.c 502 system_shutdown_system_shutdown_LDADD = libsnap-confine-private.a 503 system_shutdown_system_shutdown_CFLAGS = $(CHECK_CFLAGS) $(filter-out -fPIE -pie,$(CFLAGS)) -static 504 system_shutdown_system_shutdown_LDFLAGS = $(filter-out -fPIE -pie,$(LDFLAGS)) -static 505 506 if WITH_UNIT_TESTS 507 noinst_PROGRAMS += system-shutdown/unit-tests 508 system_shutdown_unit_tests_SOURCES = \ 509 libsnap-confine-private/unit-tests-main.c \ 510 libsnap-confine-private/unit-tests.c \ 511 system-shutdown/system-shutdown-utils-test.c 512 system_shutdown_unit_tests_LDADD = libsnap-confine-private.a 513 system_shutdown_unit_tests_CFLAGS = $(GLIB_CFLAGS) 514 system_shutdown_unit_tests_LDADD += $(GLIB_LIBS) 515 endif 516 517 ## 518 ## snap-gdb-shim 519 ## 520 521 libexec_PROGRAMS += snap-gdb-shim/snap-gdb-shim 522 523 snap_gdb_shim_snap_gdb_shim_SOURCES = \ 524 snap-gdb-shim/snap-gdb-shim.c 525 526 snap_gdb_shim_snap_gdb_shim_LDADD = libsnap-confine-private.a 527 528 ## 529 ## snap-gdbserver-shim 530 ## 531 532 libexec_PROGRAMS += snap-gdb-shim/snap-gdbserver-shim 533 534 snap_gdb_shim_snap_gdbserver_shim_SOURCES = \ 535 snap-gdb-shim/snap-gdbserver-shim.c 536 537 snap_gdb_shim_snap_gdbserver_shim_LDADD = libsnap-confine-private.a 538 539 ## 540 ## snapd-generator 541 ## 542 543 systemdsystemgeneratordir = $(SYSTEMD_SYSTEM_GENERATOR_DIR) 544 systemdsystemgenerator_PROGRAMS = snapd-generator/snapd-generator 545 546 snapd_generator_snapd_generator_SOURCES = snapd-generator/main.c 547 snapd_generator_snapd_generator_LDADD = libsnap-confine-private.a 548 549 ## 550 ## snapd-env-generator 551 ## 552 553 systemdsystemenvgeneratordir=$(SYSTEMD_SYSTEM_ENV_GENERATOR_DIR) 554 systemdsystemenvgenerator_PROGRAMS = snapd-env-generator/snapd-env-generator 555 556 snapd_env_generator_snapd_env_generator_SOURCES = snapd-env-generator/main.c 557 snapd_env_generator_snapd_env_generator_LDADD = libsnap-confine-private.a 558 EXTRA_DIST += snapd-env-generator/snapd-env-generator.rst 559 560 if HAVE_RST2MAN 561 dist_man_MANS += snapd-env-generator/snapd-env-generator.8 562 CLEANFILES += snapd-env-generator/snapd-env-generator.8 563 endif 564 565 ## 566 ## snapd-apparmor 567 ## 568 569 EXTRA_DIST += snapd-apparmor/snapd-apparmor 570 571 install-exec-local:: 572 install -d -m 755 $(DESTDIR)$(libexecdir) 573 if APPARMOR 574 install -m 755 $(srcdir)/snapd-apparmor/snapd-apparmor $(DESTDIR)$(libexecdir) 575 endif