From 4e5211d33ec6542d926468c55cb15a84f65acb9c Mon Sep 17 00:00:00 2001 From: Pavel Raiskup Date: Thu, 23 Feb 2017 11:30:48 +0100 Subject: [PATCH] buildsystem: add autoconf/automake support Test by 'make distcheck'. --- .gitignore | 8 + Makefile.am | 22 +++ bootstrap | 3 + build_aux/build-selinux-module | 9 + build_aux/install-selinux-module.in | 40 +++++ configs/Makefile.inc | 11 ++ configure.ac | 39 +++++ dist-git.spec | 58 ++----- m4/_ax_text_tpl.m4 | 163 ++++++++++++++++++ scripts/dist-git/.gitignore | 4 + scripts/dist-git/Makefile.inc | 26 +++ .../{cgit_pkg_list => cgit_pkg_list.in} | 2 +- scripts/dist-git/{mkbranch => mkbranch.in} | 2 +- ...branch_branching => mkbranch_branching.in} | 2 +- ...setup_git_package => setup_git_package.in} | 2 +- scripts/httpd/.gitignore | 1 + scripts/httpd/Makefile.inc | 8 + scripts/httpd/{upload.cgi => upload.cgi.in} | 2 +- selinux/.gitignore | 1 + selinux/Makefile.inc | 30 ++++ 20 files changed, 380 insertions(+), 53 deletions(-) create mode 100644 Makefile.am create mode 100755 bootstrap create mode 100755 build_aux/build-selinux-module create mode 100644 build_aux/install-selinux-module.in create mode 100644 configs/Makefile.inc create mode 100644 configure.ac create mode 100644 m4/_ax_text_tpl.m4 create mode 100644 scripts/dist-git/.gitignore create mode 100644 scripts/dist-git/Makefile.inc rename scripts/dist-git/{cgit_pkg_list => cgit_pkg_list.in} (86%) rename scripts/dist-git/{mkbranch => mkbranch.in} (98%) mode change 100755 => 100644 rename scripts/dist-git/{mkbranch_branching => mkbranch_branching.in} (98%) mode change 100755 => 100644 rename scripts/dist-git/{setup_git_package => setup_git_package.in} (97%) mode change 100755 => 100644 create mode 100644 scripts/httpd/.gitignore create mode 100644 scripts/httpd/Makefile.inc rename scripts/httpd/{upload.cgi => upload.cgi.in} (99%) create mode 100644 selinux/.gitignore create mode 100644 selinux/Makefile.inc diff --git a/.gitignore b/.gitignore index 1377554..6e335e0 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,9 @@ +build_aux/ +install-selinux-module +configure +config.* +Makefile +*.pp.* +*.in *.swp +m4 diff --git a/Makefile.am b/Makefile.am new file mode 100644 index 0000000..616dd75 --- /dev/null +++ b/Makefile.am @@ -0,0 +1,22 @@ +CLEANFILES = +EXTRA_DIST = \ + COPYING \ + LICENSE \ + README.md \ + $(ac_aux_dir)/build-selinux-module \ + $(ac_aux_dir)/install-selinux-module.in + +# Define some variables here so included makefiles can just '+=' +pkgdata_SCRIPTS = +dist_libexec_SCRIPTS = + +nodist_noinst_SCRIPTS = install-selinux-module +install-selinux-module: $(ac_aux_dir)/install-selinux-module.in $(text_tpl_deps) + $(text_tpl_gen_script) + +DISTCLEANFILES = install-selinux-module + +include scripts/dist-git/Makefile.inc +include scripts/httpd/Makefile.inc +include configs/Makefile.inc +include selinux/Makefile.inc diff --git a/bootstrap b/bootstrap new file mode 100755 index 0000000..ca81602 --- /dev/null +++ b/bootstrap @@ -0,0 +1,3 @@ +#! /bin/sh + +autoreconf -vfi diff --git a/build_aux/build-selinux-module b/build_aux/build-selinux-module new file mode 100755 index 0000000..bcdd57f --- /dev/null +++ b/build_aux/build-selinux-module @@ -0,0 +1,9 @@ +#! /bin/sh + +module=$1 +target=$2 +where=$3 +variant=`echo "$target" | sed 's|.*\.||'` +make -j1 -C "$where" NAME="$variant" -f /usr/share/selinux/devel/Makefile \ +&& mv "$where/$module.pp" "$target" \ +&& make -j1 -C "$where" NAME="$variant" -f /usr/share/selinux/devel/Makefile diff --git a/build_aux/install-selinux-module.in b/build_aux/install-selinux-module.in new file mode 100644 index 0000000..93cef0e --- /dev/null +++ b/build_aux/install-selinux-module.in @@ -0,0 +1,40 @@ +#! /bin/sh + +install=: +DESTDIR= +selinux_dir=@selinuxmoduledir@ + +while test "$#" -gt 0 +do + case "$1" in + --uninstall) + install=false + shift + ;; + --destdir) + DESTDIR=$2 + shift 2 + ;; + --) + shift + break + ;; + *) + echo "ignored arg $arg" + shift + ;; + esac +done + +for module +do + variant=`echo "$module" | sed 's|.*\.||'` + rawmod=`echo "$module" | sed 's|\.[^\.]*$||'` + dir="$DESTDIR$selinux_dir/$variant" + mkdir -p "$dir" + if $install ; then + install -m 644 "$module" "$dir/$rawmod" + else + rm "$dir/$rawmod" + fi +done diff --git a/configs/Makefile.inc b/configs/Makefile.inc new file mode 100644 index 0000000..bfd909e --- /dev/null +++ b/configs/Makefile.inc @@ -0,0 +1,11 @@ +dist_distgit_conf_DATA = %D%/dist-git/dist-git.conf + +dist_apache_conf_DATA = %D%/httpd/dist-git.conf + +dist_apache_conf_distgit_DATA = \ + %D%/httpd/dist-git/git-smart-http.conf \ + %D%/httpd/dist-git/lookaside.conf + +dist_systemd_units_DATA = \ + %D%/systemd/dist-git@.service \ + %D%/systemd/dist-git.socket diff --git a/configure.ac b/configure.ac new file mode 100644 index 0000000..f7c9453 --- /dev/null +++ b/configure.ac @@ -0,0 +1,39 @@ +AC_INIT([dist-git], [0.13], [msuchy@redhat.com]) +AC_CONFIG_AUX_DIR([build_aux]) +AC_CONFIG_MACRO_DIR([m4]) + +AM_INIT_AUTOMAKE([-Wall foreign]) +AM_SILENT_RULES([yes]) + +_AX_TEXT_TPL_INIT +_AX_TEXT_TPL_SUBST([ac_aux_dir]) +_AX_TEXT_TPL_SUBST([distgit_confdir], [${sysconfdir}/dist-git]) +_AX_TEXT_TPL_SUBST([apache_confdir], [${sysconfdir}/httpd/conf.d]) +_AX_TEXT_TPL_SUBST([apache_conf_distgitdir], [${apache_confdir}/dist-git]) +# TODO! CGI script should be somewhere else, this directory is overmounted! +_AX_TEXT_TPL_SUBST([webdir], [${localstatedir}/lib/dist-git/web]) +_AX_TEXT_TPL_SUBST([systemd_unitsdir], [${prefix}/lib/systemd/system]) +_AX_TEXT_TPL_SUBST([selinuxmoduledir], [${datadir}/selinux]) + +_AX_TEXT_TPL_SUBST([selinux_module], [dist_git]) +SELINUX_VARIANTS= +AC_ARG_WITH([selinux-variants], + AS_HELP_STRING([--with-selinux-variants], + [Space separated list of SELinux variants to be built]), + [SELINUX_VARIANTS=$withval]) + +sp= +for variant in $SELINUX_VARIANTS +do + new_variants="$new_variants$sp$selinux_module.pp.$variant" + sp=' ' +done +SELINUX_VARIANTS=$new_variants + +_AX_TEXT_TPL_SUBST([SELINUX_VARIANTS]) + +SHELL_PARSE_CONFIG="eval \$\$(crudini --format=sh --get ${distgit_confdir}/dist-git.conf)" +_AX_TEXT_TPL_SUBST([SHELL_PARSE_CONFIG]) + +AC_CONFIG_FILES([Makefile]) +AC_OUTPUT diff --git a/dist-git.spec b/dist-git.spec index 99e7002..391811c 100644 --- a/dist-git.spec +++ b/dist-git.spec @@ -15,7 +15,7 @@ License: MIT and GPLv1 URL: https://github.com/release-engineering/dist-git # Source is created by # git clone https://github.com/release-engineering/dist-git.git -# cd dist-git +# cd dist-git && ./bootstrap && ./configure && make dist # tito build --tgz Source0: %{name}-%{version}.tar.gz BuildArch: noarch @@ -65,17 +65,10 @@ This package includes SELinux support. %build -# ------------------------------------------------------------------------------ -# SELinux -# ------------------------------------------------------------------------------ -cd selinux -for selinuxvariant in %{selinux_variants} -do - make NAME=${selinuxvariant} -f /usr/share/selinux/devel/Makefile - mv %{modulename}.pp %{modulename}.pp.${selinuxvariant} - make NAME=${selinuxvariant} -f /usr/share/selinux/devel/Makefile clean -done -cd - +%configure \ + --with-selinux-variants="%selinux_variants" + +make %_smp_mflags %pre @@ -87,48 +80,18 @@ getent group packager > /dev/null || \ %install -# ------------------------------------------------------------------------------ -# /usr/local/bin ........... scripts -# ------------------------------------------------------------------------------ -install -d %{buildroot}%{_datadir}/dist-git/ -cp -a scripts/dist-git/* %{buildroot}%{_datadir}/dist-git/ - -# ------------------------------------------------------------------------------ -# /etc/ .......... config files -# ------------------------------------------------------------------------------ -install -d %{buildroot}%{_sysconfdir}/dist-git -cp -a configs/dist-git/dist-git.conf %{buildroot}%{_sysconfdir}/dist-git/ -install -d %{buildroot}%{_sysconfdir}/httpd/conf.d/dist-git -mkdir -p %{buildroot}%{_unitdir} - -cp -a configs/httpd/dist-git.conf %{buildroot}%{_sysconfdir}/httpd/conf.d/ -cp -a configs/httpd/dist-git/* %{buildroot}%{_sysconfdir}/httpd/conf.d/dist-git/ -cp -a configs/systemd/* %{buildroot}%{_unitdir}/ +make install DESTDIR=%{buildroot} # ------------------------------------------------------------------------------ # /var/lib/ ...... dynamic persistent files # ------------------------------------------------------------------------------ +# TODO: Create those on the fly at runtime? install -d %{buildroot}%{installdir} install -d %{buildroot}%{installdir}/git install -d %{buildroot}%{installdir}/git/repositories install -d %{buildroot}%{installdir}/cache install -d %{buildroot}%{installdir}/cache/lookaside install -d %{buildroot}%{installdir}/cache/lookaside/pkgs -install -d %{buildroot}%{installdir}/web - -cp -a scripts/httpd/upload.cgi %{buildroot}%{installdir}/web/ - -# ------------------------------------------------------------------------------ -# SELinux -# ------------------------------------------------------------------------------ -cd selinux -for selinuxvariant in %{selinux_variants} -do - install -d %{buildroot}%{_datadir}/selinux/${selinuxvariant} - install -p -m 644 %{modulename}.pp.${selinuxvariant} \ - %{buildroot}%{_datadir}/selinux/${selinuxvariant}/%{modulename}.pp -done -cd - /usr/sbin/hardlink -cv %{buildroot}%{_datadir}/selinux @@ -189,16 +152,15 @@ fi %attr (2775, apache, apache) %{installdir}/cache/lookaside/pkgs # ------------------------------------------------------------------------------ -# /usr/share ...... executable files +# /usr/share/dist-git ...... executable files # ------------------------------------------------------------------------------ -%dir %{_datadir}/dist-git -%attr (775, -, -) %{_datadir}/dist-git/* +%{_datadir}/dist-git %files selinux %defattr(-,root,root,0755) -%doc selinux/* +%doc %{_pkgdocdir} %{_datadir}/selinux/*/%{modulename}.pp diff --git a/m4/_ax_text_tpl.m4 b/m4/_ax_text_tpl.m4 new file mode 100644 index 0000000..5f894d0 --- /dev/null +++ b/m4/_ax_text_tpl.m4 @@ -0,0 +1,163 @@ +# Text templating system with autoconf +# ==================================== +# +# Correctly generate files based on ./configure check results. The @variable@ +# substitution is usually done by config.status from *.in files, however +# substuing paths like @libexecdir@ can result into '${exec_prefix}/libexec' +# which is not desired for installed scripts, for example, where we need to have +# fully expanded paths. The aim of this script is to generalize steps users +# usually do to perform full expansion of configure variables. Currently we use +# sed substitution only. +# +# The easiest usage of this templating system is like this: +# $ cat configure.ac | "grep interresting lines" +# _AX_TEXT_TPL_INIT +# some_other_var="some other var content" +# _AX_TEXT_TPL_SUBST([some_other_var]) +# +# $ cat Makefile (or Makefile.am): +# generated_file: TEMPLATE.in $(text_tpl_deps) +# <>$(text_tpl_gen) +# +# Limitations: +# - this code is probably not terribly portable +# - substitutions should not contain '|' character (because we use sed rules +# spelled like 's|||'), you can do things like '\|', however you need to +# take into account that substitution done by 'sed' and by 'config.status' are +# not the same. Also be careful about escaping '\' caracter. +# - only single-line substitutions are expected; you may use '\n' however +# there is the same problem as with '|' and '\'. +# +# TODO: +# - we should do something similar to what config.status does (awk generated +# source code for substitutions), however even thought usually variable +# (macro) values are defined by ./configure, some may be defined like 'make +# VARIABLE=VALUE'. + +# sed_subst_var_pattern VARNAME (private macro) +# --------------------------------------------- +# Generate sed substitution rule to substitute @VARNAME@ with fully expaned +# value of $VARNAME. The trick is that we use 'make' to expand the value. +# The VARNAME must be AC_SUBST'ed (and all its sub-components like ${prefix}, +# etc.) to allow 'make' doing correct expansion. +m4_define([sed_subst_var_pattern], [\\ + -e 's|@$1[[@]]|\$($1)|g']) + +# _AX_TEXT_TPL_INIT +# ----------------- +# Initialize the templating system. +AC_DEFUN([_AX_TEXT_TPL_INIT], [ + +__ax_text_tpl_default_variables="\ + abs_builddir + abs_srcdir + abs_top_builddir + abs_top_srcdir + bindir + build_alias + builddir + datarootdir + datadir + docdir + dvidir + exec_prefix + host_alias + htmldir + includedir + infodir + libdir + libexecdir + localedir + localstatedir + mandir + oldincludedir + pdfdir + pkgdatadir + prefix + psdir + sbindir + sharedstatedir + srcdir + sysconfdir + target_alias + top_srcdir + PACKAGE + PACKAGE_BUGREPORT + PACKAGE_NAME + PACKAGE_STRING + PACKAGE_TARNAME + PACKAGE_URL + PACKAGE_VERSION + PATH_SEPARATOR + SHELL + VERSION +" + +__ax_text_tpl_sed_rules="" +for i in $__ax_text_tpl_default_variables +do +__ax_text_tpl_sed_rules="$__ax_text_tpl_sed_rules \ +sed_subst_var_pattern($i)" +done + +__ax_text_tpl_sed_rules="$__ax_text_tpl_sed_rules \\ + \$(__ax_text_tpl_user_sed_rules) \\ + \$(_AX_TEXT_ADDITIONAL_SED_SUBSTITUTIONS) \\ + \$\$ax_text_add_sed_substs \\ + -e 's|@__FILE__[[@]]|\@S|@@|g'" + +__ax_text_tpl_sed_call="\$(SED) \$(__ax_text_tpl_sed_rules)" +text_tpl_sed_call=$__ax_text_tpl_sed_call +m4_pattern_allow(AM_V_GEN) + +# Convenient snippet to clean & prepare for following build +text_tpl_gen_conv_verbose="rm -rf \@S|@@; \$(MKDIR_P) \$(@D)" +text_tpl_gen_conv="\$(AM_V_GEN)\$(text_tpl_gen_conv_verbose)" + +# Instantiate arbitrary data text file +text_tpl_gen_verbose="\$(text_tpl_gen_conv_verbose) && \$(__ax_text_tpl_sed_call) \$< > \@S|@@ && chmod -w \@S|@@" +text_tpl_gen="\$(AM_V_GEN)\$(text_tpl_gen_verbose)" + +# Instantiate script file +text_tpl_gen_script_verbose="\$(text_tpl_gen_verbose) && chmod +x \@S|@@" +text_tpl_gen_script="\$(AM_V_GEN)\$(text_tpl_gen_script_verbose) && chmod +x \@S|@@" + +# Make dependencies for targets of $(text_tpl_gen) and $(text_tpl_gen_script) +text_tpl_deps='$(top_builddir)/config.status Makefile' + +AC_PATH_PROG([SED], [sed]) +test -z "$ac_cv_path_SED" && + AC_MSG_ERROR([Sed is needed but not found.]) + +AC_SUBST([__ax_text_tpl_sed_call]) +AC_SUBST([__ax_text_tpl_sed_rules]) +AC_SUBST([__ax_text_tpl_user_sed_rules]) +AC_SUBST([text_tpl_deps]) +AC_SUBST([text_tpl_sed_call]) +AC_SUBST([text_tpl_gen]) +AC_SUBST([text_tpl_gen_verbose]) +AC_SUBST([text_tpl_gen_conv]) +AC_SUBST([text_tpl_gen_conv_verbose]) +AC_SUBST([text_tpl_gen_script]) +AC_SUBST([text_tpl_gen_script_verbose]) +]) + +# _AX_TEXT_TPL_SUBST SHELL_VARNAME [VALUE] +# ---------------------------------------- +# Do substitution of SHELL_VARNAME both by config.status, and by sed call +# in instantiation rules. +AC_DEFUN([_AX_TEXT_TPL_SUBST], [ +test x = x"$2" || $1=$2 +__ax_text_tpl_user_sed_rules="$__ax_text_tpl_user_sed_rules\ +sed_subst_var_pattern($1)" +AC_SUBST($1) +]) + + +# _AX_TEXT_TPL_ARG_VAR VARNAME DEFAULT DESCRIPTION +# ------------------------------------------------ +AC_DEFUN([_AX_TEXT_TPL_ARG_VAR], [ +AC_ARG_VAR([$1], [$3]) +test -z "$$1" && $1=$2 +_AX_TEXT_TPL_SUBST($1) +]) diff --git a/scripts/dist-git/.gitignore b/scripts/dist-git/.gitignore new file mode 100644 index 0000000..5607df7 --- /dev/null +++ b/scripts/dist-git/.gitignore @@ -0,0 +1,4 @@ +cgit_pkg_list +mkbranch +mkbranch_branching +setup_git_package diff --git a/scripts/dist-git/Makefile.inc b/scripts/dist-git/Makefile.inc new file mode 100644 index 0000000..f6824f3 --- /dev/null +++ b/scripts/dist-git/Makefile.inc @@ -0,0 +1,26 @@ +pkgdata_SCRIPTS += \ + %D%/cgit_pkg_list \ + %D%/mkbranch \ + %D%/mkbranch_branching \ + %D%/setup_git_package + +%D%/cgit_pkg_list: %D%/cgit_pkg_list.in $(text_tpl_deps) + $(text_tpl_gen_script) + +%D%/mkbranch: %D%/mkbranch.in $(text_tpl_deps) + $(text_tpl_gen_script) + +%D%/mkbranch_branching: %D%/mkbranch_branching.in $(text_tpl_deps) + $(text_tpl_gen_script) + +%D%/setup_git_package: %D%/setup_git_package.in $(text_tpl_deps) + $(text_tpl_gen_script) + +CLEANFILES += \ + $(pkgdata_SCRIPTS) + +EXTRA_DIST += \ + %D%/cgit_pkg_list.in \ + %D%/mkbranch.in \ + %D%/mkbranch_branching.in \ + %D%/setup_git_package.in diff --git a/scripts/dist-git/cgit_pkg_list b/scripts/dist-git/cgit_pkg_list.in similarity index 86% rename from scripts/dist-git/cgit_pkg_list rename to scripts/dist-git/cgit_pkg_list.in index 228fc4a..84dbc13 100755 --- a/scripts/dist-git/cgit_pkg_list +++ b/scripts/dist-git/cgit_pkg_list.in @@ -6,7 +6,7 @@ # Looking for git repos. # -eval "$(crudini --format=sh --get /etc/dist-git/dist-git.conf)" +@SHELL_PARSE_CONFIG@ destination=$gitroot_dir/pkgs-git-repos-list if [ -n "$1" ] diff --git a/scripts/dist-git/mkbranch b/scripts/dist-git/mkbranch.in old mode 100755 new mode 100644 similarity index 98% rename from scripts/dist-git/mkbranch rename to scripts/dist-git/mkbranch.in index 569eecd..2d721a3 --- a/scripts/dist-git/mkbranch +++ b/scripts/dist-git/mkbranch.in @@ -11,7 +11,7 @@ # Figure out the environment we're running in RUNDIR=$(cd "$(dirname "$0")" && pwd) -eval "$(crudini --format=sh --get /etc/dist-git/dist-git.conf)" +@SHELL_PARSE_CONFIG@ REPODIR=$gitroot_dir/repositories # check if a moron is driving me diff --git a/scripts/dist-git/mkbranch_branching b/scripts/dist-git/mkbranch_branching.in old mode 100755 new mode 100644 similarity index 98% rename from scripts/dist-git/mkbranch_branching rename to scripts/dist-git/mkbranch_branching.in index 3feeffa..887964e --- a/scripts/dist-git/mkbranch_branching +++ b/scripts/dist-git/mkbranch_branching.in @@ -11,7 +11,7 @@ # Figure out the environment we're running in RUNDIR=$(cd "$(dirname "$0")" && pwd) -eval "$(crudini --format=sh --get /etc/dist-git/dist-git.conf)" +@SHELL_PARSE_CONFIG@ REPODIR=$gitroot_dir/repositories # check if a moron is driving me diff --git a/scripts/dist-git/setup_git_package b/scripts/dist-git/setup_git_package.in old mode 100755 new mode 100644 similarity index 97% rename from scripts/dist-git/setup_git_package rename to scripts/dist-git/setup_git_package.in index 53e5d3a..e4f0cc9 --- a/scripts/dist-git/setup_git_package +++ b/scripts/dist-git/setup_git_package.in @@ -9,7 +9,7 @@ # Figure out the environment we're running in -eval "$(crudini --format=sh --get /etc/dist-git/dist-git.conf)" +@SHELL_PARSE_CONFIG@ REPODIR=$gitroot_dir/repositories : ${git_author="Undefined "} diff --git a/scripts/httpd/.gitignore b/scripts/httpd/.gitignore new file mode 100644 index 0000000..69ff911 --- /dev/null +++ b/scripts/httpd/.gitignore @@ -0,0 +1 @@ +upload.cgi diff --git a/scripts/httpd/Makefile.inc b/scripts/httpd/Makefile.inc new file mode 100644 index 0000000..785eb96 --- /dev/null +++ b/scripts/httpd/Makefile.inc @@ -0,0 +1,8 @@ +web_SCRIPTS = %D%/upload.cgi + +%D%/upload.cgi: %D%/upload.cgi.in $(text_tpl_deps) + $(text_tpl_gen_script) + +CLEANFILES += $(web_SCRIPTS) + +EXTRA_DIST += %D%/upload.cgi.in diff --git a/scripts/httpd/upload.cgi b/scripts/httpd/upload.cgi.in similarity index 99% rename from scripts/httpd/upload.cgi rename to scripts/httpd/upload.cgi.in index d550838..1a47b9c 100644 --- a/scripts/httpd/upload.cgi +++ b/scripts/httpd/upload.cgi.in @@ -93,7 +93,7 @@ def makedirs(dir_, username, mode=02755): def main(): config = ConfigParser() - config.read('/etc/dist-git/dist-git.conf') + config.read('@distgit_confdir@/dist-git.conf') os.umask(002) diff --git a/selinux/.gitignore b/selinux/.gitignore new file mode 100644 index 0000000..b8cdaf8 --- /dev/null +++ b/selinux/.gitignore @@ -0,0 +1 @@ +*.pp diff --git a/selinux/Makefile.inc b/selinux/Makefile.inc new file mode 100644 index 0000000..237ccf3 --- /dev/null +++ b/selinux/Makefile.inc @@ -0,0 +1,30 @@ +selinux_module = dist_git + +selinux_source_files = \ + %D%/$(selinux_module).fc \ + %D%/$(selinux_module).te \ + %D%/$(selinux_module).if + +EXTRA_DIST += $(selinux_source_files) + +noinst_DATA = $(SELINUX_VARIANTS) + +doc_DATA = \ + $(selinux_source_files) + +install-data-hook: + $(builddir)/install-selinux-module \ + --destdir $(DESTDIR) \ + -- $(SELINUX_VARIANTS) + +uninstall-hook: + $(builddir)/install-selinux-module \ + --uninstall \ + --destdir $(DESTDIR) \ + -- $(SELINUX_VARIANTS) + +# Parallel build causes issues here ATM +$(SELINUX_VARIANTS): $(selinux_source_files) + $(AM_V_GEN)flock . $(ac_aux_dir)/build-selinux-module $(selinux_module) $@ %D% + +CLEANFILES += $(SELINUX_VARIANTS)