From: Egor Date: Fri, 13 Jun 2025 05:17:58 +0000 (+0300) Subject: add precompiled header build option X-Git-Url: https://git.patchysicp.xyz/?a=commitdiff_plain;h=6e6841d2d5d0e9177afdae70a115c83c01df659f;p=patchyircd.git add precompiled header build option --- diff --git a/.gitignore b/.gitignore index 7012246..97dc476 100644 --- a/.gitignore +++ b/.gitignore @@ -25,3 +25,5 @@ /ircd /setpass /patchysicp-*.tar.gz +*.pch +*.gch diff --git a/Makefile.am b/Makefile.am index c4cec10..68db307 100644 --- a/Makefile.am +++ b/Makefile.am @@ -48,3 +48,12 @@ EXTRA_DIST = \ .PHONY: valgrind valgrind: ircd valgrind --leak-check=full --show-leak-kinds=all -s --suppressions=$(srcdir)/libtls.supp ./ircd + +.PHONY: pch +if ENABLE_PCH +CLEANFILES = common.h.@PCHEXT@ +AM_CPPFLAGS = -Winvalid-pch `test -f common.h.@PCHEXT@ && printf @PCHOPT@ "common.h"` +common.h.@PCHEXT@: src/common.h + $(RM) $@; $(CXXCOMPILE) -x c++-header -o $@ $< +pch: common.h.@PCHEXT@ +endif diff --git a/configure.ac b/configure.ac index b046aba..249cd79 100644 --- a/configure.ac +++ b/configure.ac @@ -33,6 +33,16 @@ AC_ARG_ENABLE([data-in-prefix], [AS_HELP_STRING([--enable-data-in-prefix], [look for data and lua scripts in prefix])]) AM_CONDITIONAL([DATA_IN_PREFIX], [test "x$enable_data_in_prefix" = xyes]) +AC_ARG_ENABLE([pch], + [AS_HELP_STRING([--enable-pch], [enable precompiled headers])]) +AM_CONDITIONAL([ENABLE_PCH], [test "x$enable_pch" = xyes]) +AS_IF([test "x$enable_pch" = xyes], + [AS_CASE(["$CXX"], [*clang*], + [AC_SUBST([PCHEXT], [pch]) + AC_SUBST([PCHOPT], ['" -include-pch %s.pch\n"'])], + [AC_SUBST([PCHEXT], [gch]) + AC_SUBST([PCHOPT], ['" -include %s\n"'])])]) + PKG_CHECK_MODULES(LIBUV, [libuv]) PKG_HAVE_DEFINE_WITH_MODULES(LIBTLS, [libtls]) PKG_HAVE_DEFINE_WITH_MODULES(LUA, [lua5.4])