xref: /OK3568_Linux_fs/buildroot/package/policycoreutils/policycoreutils.mk (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun################################################################################
2*4882a593Smuzhiyun#
3*4882a593Smuzhiyun# policycoreutils
4*4882a593Smuzhiyun#
5*4882a593Smuzhiyun################################################################################
6*4882a593Smuzhiyun
7*4882a593SmuzhiyunPOLICYCOREUTILS_VERSION = 3.2
8*4882a593SmuzhiyunPOLICYCOREUTILS_SITE = https://github.com/SELinuxProject/selinux/releases/download/$(POLICYCOREUTILS_VERSION)
9*4882a593SmuzhiyunPOLICYCOREUTILS_LICENSE = GPL-2.0
10*4882a593SmuzhiyunPOLICYCOREUTILS_LICENSE_FILES = COPYING
11*4882a593SmuzhiyunPOLICYCOREUTILS_CPE_ID_VENDOR = selinuxproject
12*4882a593Smuzhiyun
13*4882a593SmuzhiyunPOLICYCOREUTILS_DEPENDENCIES = libsemanage libcap-ng $(TARGET_NLS_DEPENDENCIES)
14*4882a593SmuzhiyunPOLICYCOREUTILS_MAKE_OPTS = LDLIBS=$(TARGET_NLS_LIBS)
15*4882a593Smuzhiyun
16*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_LINUX_PAM),y)
17*4882a593SmuzhiyunPOLICYCOREUTILS_DEPENDENCIES += linux-pam
18*4882a593SmuzhiyunPOLICYCOREUTILS_MAKE_OPTS += NAMESPACE_PRIV=y
19*4882a593Smuzhiyundefine POLICYCOREUTILS_INSTALL_TARGET_LINUX_PAM_CONFS
20*4882a593Smuzhiyun	$(INSTALL) -D -m 0644 $(@D)/newrole/newrole-lspp.pamd $(TARGET_DIR)/etc/pam.d/newrole
21*4882a593Smuzhiyun	$(INSTALL) -D -m 0644 $(@D)/run_init/run_init.pamd $(TARGET_DIR)/etc/pam.d/run_init
22*4882a593Smuzhiyunendef
23*4882a593Smuzhiyunendif
24*4882a593Smuzhiyun
25*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_AUDIT),y)
26*4882a593SmuzhiyunPOLICYCOREUTILS_DEPENDENCIES += audit
27*4882a593SmuzhiyunPOLICYCOREUTILS_MAKE_OPTS += AUDIT_LOG_PRIV=y USE_AUDIT=y
28*4882a593Smuzhiyunendif
29*4882a593Smuzhiyun
30*4882a593Smuzhiyun# Enable LSPP_PRIV if both audit and linux pam are enabled
31*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_LINUX_PAM)$(BR2_PACKAGE_AUDIT),yy)
32*4882a593SmuzhiyunPOLICYCOREUTILS_MAKE_OPTS += LSPP_PRIV=y
33*4882a593Smuzhiyunendif
34*4882a593Smuzhiyun
35*4882a593Smuzhiyun# Undefining _FILE_OFFSET_BITS here because of a "bug" with glibc fts.h
36*4882a593Smuzhiyun# large file support.
37*4882a593Smuzhiyun# See https://bugzilla.redhat.com/show_bug.cgi?id=574992 for more information
38*4882a593SmuzhiyunPOLICYCOREUTILS_MAKE_OPTS += \
39*4882a593Smuzhiyun	$(TARGET_CONFIGURE_OPTS) \
40*4882a593Smuzhiyun	CFLAGS="$(TARGET_CFLAGS) -U_FILE_OFFSET_BITS" \
41*4882a593Smuzhiyun	CPPFLAGS="$(TARGET_CPPFLAGS) -U_FILE_OFFSET_BITS"
42*4882a593Smuzhiyun
43*4882a593SmuzhiyunPOLICYCOREUTILS_MAKE_DIRS = \
44*4882a593Smuzhiyun	load_policy newrole run_init \
45*4882a593Smuzhiyun	secon semodule sestatus setfiles \
46*4882a593Smuzhiyun	setsebool scripts
47*4882a593Smuzhiyun
48*4882a593Smuzhiyun# We need to pass DESTDIR at build time because it's used by
49*4882a593Smuzhiyun# policycoreutils build system to find headers and libraries.
50*4882a593Smuzhiyundefine POLICYCOREUTILS_BUILD_CMDS
51*4882a593Smuzhiyun	$(foreach d,$(POLICYCOREUTILS_MAKE_DIRS),
52*4882a593Smuzhiyun		$(MAKE) -C $(@D)/$(d) $(POLICYCOREUTILS_MAKE_OPTS) \
53*4882a593Smuzhiyun			DESTDIR=$(STAGING_DIR) all
54*4882a593Smuzhiyun	)
55*4882a593Smuzhiyunendef
56*4882a593Smuzhiyun
57*4882a593Smuzhiyundefine POLICYCOREUTILS_INSTALL_TARGET_CMDS
58*4882a593Smuzhiyun	$(foreach d,$(POLICYCOREUTILS_MAKE_DIRS),
59*4882a593Smuzhiyun		$(MAKE) -C $(@D)/$(d) $(POLICYCOREUTILS_MAKE_OPTS) \
60*4882a593Smuzhiyun			DESTDIR=$(TARGET_DIR) install
61*4882a593Smuzhiyun	)
62*4882a593Smuzhiyunendef
63*4882a593Smuzhiyun
64*4882a593SmuzhiyunHOST_POLICYCOREUTILS_DEPENDENCIES = host-libsemanage
65*4882a593Smuzhiyun
66*4882a593Smuzhiyun# Undefining _FILE_OFFSET_BITS here because of a "bug" with glibc fts.h
67*4882a593Smuzhiyun# large file support.
68*4882a593Smuzhiyun# See https://bugzilla.redhat.com/show_bug.cgi?id=574992 for more information
69*4882a593Smuzhiyun# We also need to pass PREFIX because it defaults to $(DESTDIR)/usr
70*4882a593SmuzhiyunHOST_POLICYCOREUTILS_MAKE_OPTS = \
71*4882a593Smuzhiyun	$(HOST_CONFIGURE_OPTS) \
72*4882a593Smuzhiyun	CFLAGS="$(HOST_CFLAGS) -U_FILE_OFFSET_BITS" \
73*4882a593Smuzhiyun	CPPFLAGS="$(HOST_CPPFLAGS) -U_FILE_OFFSET_BITS" \
74*4882a593Smuzhiyun	PREFIX=$(HOST_DIR) \
75*4882a593Smuzhiyun	ETCDIR=$(HOST_DIR)/etc \
76*4882a593Smuzhiyun	SBINDIR=$(HOST_DIR)/sbin
77*4882a593Smuzhiyun
78*4882a593Smuzhiyun# Note: We are only building the programs required by the refpolicy build
79*4882a593SmuzhiyunHOST_POLICYCOREUTILS_MAKE_DIRS = \
80*4882a593Smuzhiyun	load_policy newrole run_init \
81*4882a593Smuzhiyun	secon semodule sestatus setfiles \
82*4882a593Smuzhiyun	setsebool
83*4882a593Smuzhiyun
84*4882a593Smuzhiyundefine HOST_POLICYCOREUTILS_BUILD_CMDS
85*4882a593Smuzhiyun	$(foreach d,$(HOST_POLICYCOREUTILS_MAKE_DIRS),
86*4882a593Smuzhiyun		$(MAKE) -C $(@D)/$(d) $(HOST_POLICYCOREUTILS_MAKE_OPTS) all
87*4882a593Smuzhiyun	)
88*4882a593Smuzhiyunendef
89*4882a593Smuzhiyun
90*4882a593Smuzhiyundefine HOST_POLICYCOREUTILS_INSTALL_CMDS
91*4882a593Smuzhiyun	$(foreach d,$(HOST_POLICYCOREUTILS_MAKE_DIRS),
92*4882a593Smuzhiyun		$(MAKE) -C $(@D)/$(d) $(HOST_POLICYCOREUTILS_MAKE_OPTS) install
93*4882a593Smuzhiyun	)
94*4882a593Smuzhiyunendef
95*4882a593Smuzhiyun
96*4882a593Smuzhiyun$(eval $(generic-package))
97*4882a593Smuzhiyun$(eval $(host-generic-package))
98