xmake.lua 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. package("libsepol")
  2. set_homepage("https://github.com/SELinuxProject/selinux")
  3. set_description("SELinux binary policy manipulation library.")
  4. set_license("LGPL-2.1")
  5. add_urls("https://github.com/SELinuxProject/selinux/releases/download/$(version)/libsepol-$(version).tar.gz")
  6. add_versions("3.9", "ba630b59e50c5fbf9e9dd45eb3734f373cf78d689d8c10c537114c9bd769fa2e")
  7. add_configs("cil", {description = "Build with CIL support.", default = true, type = "boolean"})
  8. add_configs("utils", {description = "Build utilities.", default = true, type = "boolean"})
  9. on_load(function (package)
  10. if package:config("cil") then
  11. package:add("deps", "flex")
  12. end
  13. end)
  14. on_install("linux", function (package)
  15. import("package.tools.make")
  16. local configs = {"PREFIX="}
  17. table.insert(configs, "DEBUG=" .. (package:is_debug() and "1" or "0"))
  18. table.insert(configs, "DESTDIR=" .. package:installdir())
  19. table.insert(configs, "DISABLE_SHARED=" .. (package:config("shared") and "n" or "y"))
  20. if package:config("shared") then
  21. io.replace("src/Makefile", "all: $(LIBA)", "all:", {plain = true})
  22. io.replace("src/Makefile", "install -m 644 $(LIBA) $(DESTDIR)$(LIBDIR)", "", {plain = true})
  23. end
  24. table.insert(configs, "DISABLE_CIL=" .. (package:config("cil") and "n" or "y"))
  25. if not package:config("utils") then
  26. io.replace("Makefile", "$(MAKE) -C utils install", "", {plain = true})
  27. io.replace("Makefile", "$(MAKE) -C utils", "", {plain = true})
  28. end
  29. io.replace("Makefile", "$(MAKE) -C man install", "", {plain = true})
  30. -- fix pkg-config
  31. io.replace("src/Makefile", "s:@prefix@:$(PREFIX):; s:@libdir@:$(LIBDIR):; s:@includedir@:$(INCLUDEDIR):", "s:@prefix@:$(DESTDIR):; s:@libdir@:$(DESTDIR)$(LIBDIR):; s:@includedir@:$(DESTDIR)$(INCLUDEDIR):", {plain = true})
  32. local envs = make.buildenvs(package)
  33. local cflags = {}
  34. if package:config("pic") then
  35. table.insert(cflags, "-fPIC")
  36. end
  37. envs.CFLAGS = envs.CFLAGS .. " " .. table.concat(cflags, " ")
  38. make.build(package, configs, {envs = envs})
  39. table.insert(configs, "install")
  40. make.make(package, configs, {envs = envs})
  41. end)
  42. on_test(function (package)
  43. assert(package:has_cfuncs("sepol_set_policydb_from_file", {includes = {"sepol/sepol.h"}}))
  44. end)