1 ################################################################################
5 ################################################################################
7 LIBSELINUX_VERSION = 2.6
8 LIBSELINUX_SITE = https://raw.githubusercontent.com/wiki/SELinuxProject/selinux/files/releases/20161014
9 LIBSELINUX_LICENSE = Public Domain
10 LIBSELINUX_LICENSE_FILES = LICENSE
12 LIBSELINUX_DEPENDENCIES = libsepol pcre
14 LIBSELINUX_INSTALL_STAGING = YES
16 # Filter out D_FILE_OFFSET_BITS=64. This fixes errors caused by glibc 2.22.
17 LIBSELINUX_MAKE_OPTS = \
18 $(TARGET_CONFIGURE_OPTS) \
19 CFLAGS="$(filter-out -D_FILE_OFFSET_BITS=64,$(TARGET_CFLAGS))" \
20 LDFLAGS="$(TARGET_LDFLAGS) -lpcre -lpthread" \
23 define LIBSELINUX_BUILD_CMDS
24 # DESTDIR is needed during the compile to compute library and
26 $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) \
27 $(LIBSELINUX_MAKE_OPTS) DESTDIR=$(STAGING_DIR) all
30 define LIBSELINUX_INSTALL_STAGING_CMDS
31 $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) \
32 $(LIBSELINUX_MAKE_OPTS) DESTDIR=$(STAGING_DIR) install
35 define LIBSELINUX_INSTALL_TARGET_CMDS
36 $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) \
37 $(LIBSELINUX_MAKE_OPTS) DESTDIR=$(TARGET_DIR) install
38 # Create the selinuxfs mount point
39 if [ ! -d "$(TARGET_DIR)/selinux" ]; then mkdir $(TARGET_DIR)/selinux; fi
40 if ! grep -q "selinuxfs" $(TARGET_DIR)/etc/fstab; then \
41 echo "none /selinux selinuxfs noauto 0 0" >> $(TARGET_DIR)/etc/fstab ; fi
44 HOST_LIBSELINUX_DEPENDENCIES = \
45 host-libsepol host-pcre host-swig
47 ifeq ($(BR2_PACKAGE_PYTHON3),y)
48 HOST_LIBSELINUX_DEPENDENCIES += host-python3
49 HOST_LIBSELINUX_PYINC = -I$(HOST_DIR)/usr/include/python$(PYTHON3_VERSION_MAJOR)m/
50 HOST_LIBSELINUX_PYLIBVER = python$(PYTHON3_VERSION_MAJOR)
52 HOST_LIBSELINUX_DEPENDENCIES += host-python
53 HOST_LIBSELINUX_PYINC = -I$(HOST_DIR)/usr/include/python$(PYTHON_VERSION_MAJOR)/
54 HOST_LIBSELINUX_PYLIBVER = python$(PYTHON_VERSION_MAJOR)
57 HOST_LIBSELINUX_MAKE_OPTS = \
58 $(HOST_CONFIGURE_OPTS) \
59 LDFLAGS="$(HOST_LDFLAGS) -lpcre -lpthread" \
60 PYINC="$(HOST_LIBSELINUX_PYINC)" \
61 PYSITEDIR="$(HOST_DIR)/usr/lib/$(HOST_LIBSELINUX_PYLIBVER)/site-packages" \
62 SWIG_LIB="$(HOST_DIR)/usr/share/swig/$(SWIG_VERSION)/"
64 define HOST_LIBSELINUX_BUILD_CMDS
65 # DESTDIR is needed during the compile to compute library and
67 $(HOST_MAKE_ENV) $(MAKE1) -C $(@D) \
68 $(HOST_LIBSELINUX_MAKE_OPTS) DESTDIR=$(HOST_DIR) \
69 SHLIBDIR=$(HOST_DIR)/usr/lib all
70 # Generate python interface wrapper
71 $(HOST_MAKE_ENV) $(MAKE1) -C $(@D) \
72 $(HOST_LIBSELINUX_MAKE_OPTS) DESTDIR=$(HOST_DIR) swigify pywrap
75 define HOST_LIBSELINUX_INSTALL_CMDS
76 $(HOST_MAKE_ENV) $(MAKE) -C $(@D) \
77 $(HOST_LIBSELINUX_MAKE_OPTS) DESTDIR=$(HOST_DIR) \
78 SHLIBDIR=$(HOST_DIR)/usr/lib SBINDIR=$(HOST_DIR)/usr/sbin install
79 (cd $(HOST_DIR)/usr/lib; $(HOSTLN) -sf libselinux.so.1 libselinux.so)
80 # Install python interface wrapper
81 $(HOST_MAKE_ENV) $(MAKE) -C $(@D) \
82 $(HOST_LIBSELINUX_MAKE_OPTS) DESTDIR=$(HOST_DIR) install-pywrap
85 $(eval $(generic-package))
86 $(eval $(host-generic-package))