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