2
0

xmake.lua 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. package("secilc")
  2. set_kind("binary")
  3. set_homepage("https://github.com/SELinuxProject/selinux")
  4. set_description("SELinux Common Intermediate Language Compiler")
  5. add_urls("https://github.com/SELinuxProject/selinux/releases/download/$(version)/secilc-$(version).tar.gz")
  6. add_versions("3.10", "6658071d6f1044184d3973062a798187537ae1c3ddb4c31afd417df333316c10")
  7. add_versions("3.9", "c53fb7218ac158c05f28de186e48404857eb191bd4f9415802f85449fdf6da7f")
  8. on_load(function (package)
  9. package:add("deps", "libsepol >=" .. package:version_str())
  10. end)
  11. on_install("linux", function (package)
  12. import("package.tools.make")
  13. local configs = {"PREFIX="}
  14. table.insert(configs, "DEBUG=" .. (package:is_debug() and "1" or "0"))
  15. table.insert(configs, "DESTDIR=" .. package:installdir())
  16. local envs = make.buildenvs(package)
  17. local cflags = {}
  18. local ldflags = {}
  19. for _, dep in ipairs(package:orderdeps()) do
  20. local fetchinfo = dep:fetch()
  21. if fetchinfo then
  22. for _, includedir in ipairs(fetchinfo.includedirs or fetchinfo.sysincludedirs) do
  23. table.insert(cflags, "-I" .. includedir)
  24. end
  25. for _, linkdir in ipairs(fetchinfo.linkdirs) do
  26. table.insert(ldflags, "-L" .. linkdir)
  27. end
  28. end
  29. end
  30. envs.CFLAGS = envs.CFLAGS .. " " .. table.concat(cflags, " ")
  31. envs.LDFLAGS = envs.LDFLAGS .. " " .. table.concat(ldflags, " ")
  32. io.replace("Makefile", "$(SECIL2TREE) man", "$(SECIL2TREE)", {plain = true})
  33. io.replace("Makefile", "install: all man", "install: all", {plain = true})
  34. io.replace("Makefile", "-mkdir -p $(DESTDIR)$(MANDIR)/man8", "", {plain = true})
  35. io.replace("Makefile", [[ install -m 644 $(SECILC_MANPAGE) $(DESTDIR)$(MANDIR)/man8
  36. install -m 644 $(SECIL2CONF_MANPAGE) $(DESTDIR)$(MANDIR)/man8
  37. install -m 644 $(SECIL2TREE_MANPAGE) $(DESTDIR)$(MANDIR)/man8]], "", {plain = true})
  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(os.isexec(package:installdir("bin/secilc")), "secilc executable not found!")
  44. end)