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