[Libreoffice-commits] .: solenv/gbuild
David Tardon
dtardon at kemper.freedesktop.org
Mon Jan 16 05:59:58 PST 2012
solenv/gbuild/LinkTarget.mk | 19 ++++++++++++++-----
solenv/gbuild/TargetLocations.mk | 3 ++-
solenv/gbuild/platform/WNT_INTEL_MSC.mk | 2 +-
solenv/gbuild/platform/com_GCC_defs.mk | 4 ++--
4 files changed, 19 insertions(+), 9 deletions(-)
New commits:
commit cf23f57ae6bb7af689a45e0a850c3c2f67a8f810
Author: David Tardon <dtardon at redhat.com>
Date: Mon Jan 16 14:55:57 2012 +0100
sort out dep problem with yacc-generated header (fdo#44707)
diff --git a/solenv/gbuild/LinkTarget.mk b/solenv/gbuild/LinkTarget.mk
index e8f9bab..227fe96 100644
--- a/solenv/gbuild/LinkTarget.mk
+++ b/solenv/gbuild/LinkTarget.mk
@@ -185,18 +185,28 @@ endif
gb_GenCxxObject_GenCxxObject =
# YaccTarget class
+
+# XXX: This is more complicated than necessary, but we cannot just use
+# the generated C++ file as the main target, because we need to let the
+# header depend on that to ensure the header is present before anything
+# tries to use it.
+
gb_YaccTarget_get_source = $(1)/$(2).y
.PHONY : $(call gb_YaccTarget_get_clean_target,%)
$(call gb_YaccTarget_get_clean_target,%) :
$(call gb_Output_announce,$(2),$(false),YAC,3)
$(call gb_Helper_abbreviate_dirs,\
- rm -f $(call gb_YaccTarget_get_header_target,$*) $(call gb_YaccTarget_get_target,$*))
+ rm -f $(call gb_YaccTarget_get_grammar_target,$*) $(call gb_YaccTarget_get_header_target,$*) $(call gb_YaccTarget_get_target,$*))
$(call gb_YaccTarget_get_target,%) : $(call gb_YaccTarget_get_source,$(SRCDIR),%)
- $(call gb_YaccTarget__command,$<,$*,$@,$(call gb_YaccTarget_get_header_target,$*))
+ $(call gb_YaccTarget__command,$<,$*,$@,$(call gb_YaccTarget_get_header_target,$*),$(call gb_YaccTarget_get_grammar_target,$*))
-gb_YaccTarget_YaccTarget =
+define gb_YaccTarget_YaccTarget
+$(call gb_YaccTarget_get_grammar_target,$(1)) :| $(call gb_YaccTarget_get_target,$(1))
+$(call gb_YaccTarget_get_header_target,$(1)) :| $(call gb_YaccTarget_get_target,$(1))
+
+endef
gb_YACC := bison
@@ -791,13 +801,12 @@ endef
# Add a bison grammar to the build.
# gb_LinkTarget_add_grammar(<component>,<grammar file>)
define gb_LinkTarget_add_grammar
+$(call gb_YaccTarget_YaccTarget,$(2))
$(call gb_LinkTarget_add_generated_cxx_object,$(1),YaccTarget/$(2))
$(call gb_LinkTarget_get_clean_target,$(1)) : $(call gb_YaccTarget_get_clean_target,$(2))
$(call gb_LinkTarget__add_internal_headers,$(1),$(call gb_YaccTarget_get_header_target,$(2)))
-
endef
-#$(call gb_YaccTarget_YaccTarget,$(2))
# Add bison grammars to the build.
# gb_LinkTarget_add_grammars(<component>,<grammar file> [<grammar file>*])
diff --git a/solenv/gbuild/TargetLocations.mk b/solenv/gbuild/TargetLocations.mk
index 58b581a..59ad239 100644
--- a/solenv/gbuild/TargetLocations.mk
+++ b/solenv/gbuild/TargetLocations.mk
@@ -122,8 +122,9 @@ gb_UnoApiTarget_get_header_target = $(WORKDIR)/UnoApiHeaders/$(1)
gb_WinResTarget_get_target = $(WORKDIR)/WinResTarget/$(1)$(gb_WinResTarget_POSTFIX)
# workdir targets: $(1) is prefix/path
gb_Configuration_get_target = $(WORKDIR)/Configuration/$(1).done
+gb_YaccTarget_get_grammar_target = $(WORKDIR)/YaccTarget/$(1).cxx
gb_YaccTarget_get_header_target = $(WORKDIR)/YaccTarget/$(1).hxx
-gb_YaccTarget_get_target = $(WORKDIR)/YaccTarget/$(1).cxx
+gb_YaccTarget_get_target = $(WORKDIR)/YaccTarget/$(1).done
gb_XcsTarget_get_target = $(WORKDIR)/XcsTarget/$(1)
gb_XcuDataTarget_get_target = $(WORKDIR)/XcuDataTarget/$(1)
gb_XcuLangpackTarget_get_target = $(WORKDIR)/XcuLangpackTarget/$(1)
diff --git a/solenv/gbuild/platform/WNT_INTEL_MSC.mk b/solenv/gbuild/platform/WNT_INTEL_MSC.mk
index af59807..b7b4e94 100644
--- a/solenv/gbuild/platform/WNT_INTEL_MSC.mk
+++ b/solenv/gbuild/platform/WNT_INTEL_MSC.mk
@@ -261,7 +261,7 @@ define gb_YaccTarget__command
$(call gb_Output_announce,$(2),$(true),YAC,3)
$(call gb_Helper_abbreviate_dirs,\
mkdir -p $(dir $(3)) && \
- $(gb_YACC) $(T_YACCFLAGS) --defines=$(4) -o $(3) $(1) )
+ $(gb_YACC) $(T_YACCFLAGS) --defines=$(4) -o $(5) $(1) && touch $(3) )
endef
diff --git a/solenv/gbuild/platform/com_GCC_defs.mk b/solenv/gbuild/platform/com_GCC_defs.mk
index 9e055ed..f2bf866 100644
--- a/solenv/gbuild/platform/com_GCC_defs.mk
+++ b/solenv/gbuild/platform/com_GCC_defs.mk
@@ -40,7 +40,7 @@ define gb_YaccTarget__command
$(call gb_Output_announce,$(2),$(true),YAC,3)
$(call gb_Helper_abbreviate_dirs,\
mkdir -p $(dir $(3)) && \
- $(gb_YACC) $(T_YACCFLAGS) -d -o $(3) $(1) && mv $(3).h $(4) )
+ $(gb_YACC) $(T_YACCFLAGS) -d -o $(5) $(1) && mv $(5).h $(4) && touch $(3) )
endef
@@ -49,7 +49,7 @@ define gb_YaccTarget__command
$(call gb_Output_announce,$(2),$(true),YAC,3)
$(call gb_Helper_abbreviate_dirs,\
mkdir -p $(dir $(3)) && \
- $(gb_YACC) $(T_YACCFLAGS) --defines=$(4) -o $(3) $(1) )
+ $(gb_YACC) $(T_YACCFLAGS) --defines=$(4) -o $(5) $(1) && touch $(3) )
endef
endif
More information about the Libreoffice-commits
mailing list