Version 6.4.0.3, tag libreoffice-6.4.0.3
[LibreOffice.git] / odk / CustomTarget_allheaders.mk
blobb432317c4a722d78ac7e7ac1587bd696d5d31567
1 # -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
3 # This file is part of the LibreOffice project.
5 # This Source Code Form is subject to the terms of the Mozilla Public
6 # License, v. 2.0. If a copy of the MPL was not distributed with this
7 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
10 $(eval $(call gb_CustomTarget_CustomTarget,odk/allheaders))
12 odk_allheaders_DIR := $(call gb_CustomTarget_get_workdir,odk/allheaders)
14 $(call gb_CustomTarget_get_target,odk/allheaders) : \
15 $(odk_allheaders_DIR)/allheaders.hxx
17 define odk_genincludesheader
18 // Generated list of sal includes
19 #ifdef _WIN32
20 #include <windows.h>
21 #endif
23 endef
25 define odk_geninclude
26 $(if $(2),#ifdef _WIN32)
27 #include <$(subst $(INSTDIR)/$(SDKDIRNAME)/include/,,$(1))>
28 $(if $(2),#endif)
30 endef
32 $(odk_allheaders_DIR)/allheaders.hxx : \
33 $(call gb_Package_get_target,odk_headers) \
34 $(call gb_Package_get_target,odk_headers_generated) \
35 | $(odk_allheaders_DIR)/.dir
36 $(call gb_Output_announce,$(subst $(WORKDIR)/,,$@),$(true),ECH,1)
37 ifeq ($(HAVE_GNUMAKE_FILE_FUNC),)
38 printf '// Generated list of sal includes\n' > $@ && \
39 printf '#ifdef _WIN32\n' >> $@ && \
40 printf '#include <windows.h>\n' >> $@ && \
41 printf '#endif\n' >> $@ \
42 $(foreach file,$(shell cat $^),\
43 $(if $(findstring /win32/,$(file)),&& printf '#ifdef _WIN32\n' >> $@) \
44 && printf '#include <%s>\n' $(subst $(INSTDIR)/$(SDKDIRNAME)/include/,,$(file)) >> $@ \
45 $(if $(findstring /win32/,$(file)),&& printf '#endif // WNT\n' >> $@) \
47 else
48 $(file >$@,\
49 $(call odk_genincludesheader) \
50 $(foreach file,$(shell cat $^),$(call odk_geninclude,$(file),$(findstring /win32/,$(file)))))
51 endif
53 # vim: set noet sw=4 ts=4: