From 6e6841d2d5d0e9177afdae70a115c83c01df659f Mon Sep 17 00:00:00 2001 From: Egor Date: Fri, 13 Jun 2025 08:17:58 +0300 Subject: [PATCH] add precompiled header build option --- .gitignore | 2 ++ Makefile.am | 9 +++++++++ configure.ac | 10 ++++++++++ 3 files changed, 21 insertions(+) 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]) -- 2.56.0