diff --git a/Makefile b/Makefile index 4b152e3587..d380271765 100644 --- a/Makefile +++ b/Makefile @@ -241,7 +241,6 @@ include $(SRC_PATH)/Makefile.objs endif dummy := $(call unnest-vars,, \ - authz-obj-y \ chardev-obj-y \ block-obj-y \ block-obj-m \ diff --git a/Makefile.objs b/Makefile.objs index 84bfa2a61a..0bc361d338 100644 --- a/Makefile.objs +++ b/Makefile.objs @@ -9,7 +9,8 @@ ifeq ($(call lor,$(CONFIG_SOFTMMU),$(CONFIG_TOOLS)),y) chardev-obj-y = chardev/ -authz-obj-y = authz/ +authz-obj-y = authz/libauthz.fa +authz/libauthz.fa-libs = $(if $(CONFIG_AUTH_PAM),-lpam) block-obj-y = block/ nbd/ scsi/ block-obj-y += block.o blockjob.o job.o diff --git a/Makefile.target b/Makefile.target index 1e04551a8e..79b6e02bed 100644 --- a/Makefile.target +++ b/Makefile.target @@ -192,9 +192,9 @@ common-obj-m := include $(SRC_PATH)/Makefile.objs dummy := $(call fix-paths,../,, \ + authz-obj-y \ qom-obj-y) dummy := $(call unnest-vars,.., \ - authz-obj-y \ block-obj-y \ block-obj-m \ chardev-obj-y \ diff --git a/authz/Makefile.objs b/authz/Makefile.objs deleted file mode 100644 index ed7b273596..0000000000 --- a/authz/Makefile.objs +++ /dev/null @@ -1,7 +0,0 @@ -authz-obj-y += base.o -authz-obj-y += simple.o -authz-obj-y += list.o -authz-obj-y += listfile.o -authz-obj-$(CONFIG_AUTH_PAM) += pamacct.o - -pamacct.o-libs = -lpam diff --git a/authz/meson.build b/authz/meson.build new file mode 100644 index 0000000000..516d71f2e2 --- /dev/null +++ b/authz/meson.build @@ -0,0 +1,19 @@ +authz_ss = ss.source_set() +authz_ss.add(genh) +authz_ss.add(files( + 'base.c', + 'list.c', + 'listfile.c', + 'simple.c', +)) + +authz_ss.add(when: ['CONFIG_AUTH_PAM', pam], if_true: files('pamacct.c')) + +authz_ss = authz_ss.apply(config_host, strict: false) +libauthz = static_library('authz', authz_ss.sources() + genh, + dependencies: [authz_ss.dependencies()], + name_suffix: 'fa', + build_by_default: false) + +authz = declare_dependency(link_whole: libauthz, + dependencies: qom) diff --git a/meson.build b/meson.build index 658d45c4c6..34363bff19 100644 --- a/meson.build +++ b/meson.build @@ -103,6 +103,10 @@ if 'CONFIG_GNUTLS' in config_host endif pixman = declare_dependency(compile_args: config_host['PIXMAN_CFLAGS'].split(), link_args: config_host['PIXMAN_LIBS'].split()) +pam = not_found +if 'CONFIG_AUTH_PAM' in config_host + pam = cc.find_library('pam') +endif libattr = not_found if 'CONFIG_ATTR' in config_host libattr = declare_dependency(link_args: config_host['LIBATTR_LIBS'].split()) @@ -341,6 +345,7 @@ qemuutil = declare_dependency(link_with: libqemuutil, sources: genh + version_res) subdir('qom') +subdir('authz') subdir('fsdev') # Other build targets