]> PatchyGit - patchyircd.git/commitdiff
add precompiled header build option
authorEgor <egor@patchysicp.xyz>
Fri, 13 Jun 2025 05:17:58 +0000 (08:17 +0300)
committerEgor <egor@patchysicp.xyz>
Fri, 13 Jun 2025 05:17:58 +0000 (08:17 +0300)
.gitignore
Makefile.am
configure.ac

index 7012246..97dc476 100644 (file)
@@ -25,3 +25,5 @@
 /ircd
 /setpass
 /patchysicp-*.tar.gz
+*.pch
+*.gch
index c4cec10..68db307 100644 (file)
@@ -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
index b046aba..249cd79 100644 (file)
@@ -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])