diff options
author | David Ostrovsky <David.Ostrovsky@gmx.de> | 2012-05-01 00:04:38 +0200 |
---|---|---|
committer | David Tardon <dtardon@redhat.com> | 2012-05-01 07:29:06 +0200 |
commit | 1bec43481eb6cbe58b22b8c2ce3688e858f5f92f (patch) | |
tree | c1414b8d47e34027de20c05f3f98ebd5099609b0 /solenv/gbuild | |
parent | b9d0e597a7bc328ca99a1bf338a609cac23a4284 (diff) |
build: cleaning up previously converted idlc module
Change-Id: Ic90495f677dc42c0430492548deaa9f9b10e4d44
Diffstat (limited to 'solenv/gbuild')
-rw-r--r-- | solenv/gbuild/Executable.mk | 2 | ||||
-rw-r--r-- | solenv/gbuild/Library.mk | 2 | ||||
-rw-r--r-- | solenv/gbuild/LinkTarget.mk | 49 | ||||
-rw-r--r-- | solenv/gbuild/TargetLocations.mk | 5 |
4 files changed, 58 insertions, 0 deletions
diff --git a/solenv/gbuild/Executable.mk b/solenv/gbuild/Executable.mk index 8d565b6ee0a6..2cb23fc90b6d 100644 --- a/solenv/gbuild/Executable.mk +++ b/solenv/gbuild/Executable.mk @@ -85,6 +85,8 @@ $(eval $(foreach method,\ add_objcxxobjects \ add_grammar \ add_grammars \ + add_scanner \ + add_scanners \ add_exception_objects \ add_noexception_objects \ add_generated_cobjects \ diff --git a/solenv/gbuild/Library.mk b/solenv/gbuild/Library.mk index 4ba764e13858..2c74d6e70d2b 100644 --- a/solenv/gbuild/Library.mk +++ b/solenv/gbuild/Library.mk @@ -167,6 +167,8 @@ $(eval $(foreach method,\ use_library_objects \ add_grammar \ add_grammars \ + add_scanner \ + add_scanners \ add_cflags \ set_cflags \ add_cxxflags \ diff --git a/solenv/gbuild/LinkTarget.mk b/solenv/gbuild/LinkTarget.mk index aa279bfb1c57..4b48f6784a26 100644 --- a/solenv/gbuild/LinkTarget.mk +++ b/solenv/gbuild/LinkTarget.mk @@ -28,6 +28,7 @@ #the following user-defined variables are supported: # YACCFLAGS +# LEXFLAGS # CPPFLAGS # CFLAGS # CXXFLAGS @@ -243,6 +244,34 @@ endef gb_YACC := bison +# LexTarget class + +gb_LexTarget_get_source = $(1)/$(2).l + +.PHONY : $(call gb_LexTarget_get_clean_target,%) +$(call gb_LexTarget_get_clean_target,%) : + $(call gb_Output_announce,$*,$(false),LEX,3) + $(call gb_Helper_abbreviate_dirs,\ + rm -f $(call gb_LexTarget_get_scanner_target,$*) $(call gb_LexTarget_get_target,$*)) + +$(call gb_LexTarget_get_target,%) : $(call gb_LexTarget_get_source,$(SRCDIR),%) + $(call gb_LexTarget__command,$<,$*,$@,$(call gb_LexTarget_get_scanner_target,$*)) + +# gb_LexTarget_LexTarget(scanner-file) +define gb_LexTarget_LexTarget +$(call gb_LexTarget_get_scanner_target,$(1)) :| $(call gb_LexTarget_get_target,$(1)) + +endef + +# gb_LexTarget__command(scanner-file, stem-for-message, done-pseudo-target, source-target) +define gb_LexTarget__command +$(call gb_Output_announce,$(2),$(true),LEX,3) +$(call gb_Helper_abbreviate_dirs,\ + mkdir -p $(dir $(3)) && \ + $(FLEX) $(T_LEXFLAGS) -o $(4) $(1) && touch $(3) ) +endef + + # ObjCxxObject class # @@ -453,6 +482,10 @@ $(call gb_LinkTarget_get_target,$(1)) : YACCOBJECT := $(call gb_LinkTarget_get_clean_target,$(1)) \ $(call gb_LinkTarget_get_target,$(1)) : T_YACCFLAGS := $$(gb_LinkTarget_YYACFLAGS) $(YACCFLAGS) $(call gb_LinkTarget_get_clean_target,$(1)) \ +$(call gb_LinkTarget_get_target,$(1)) : LEXOBJECT := +$(call gb_LinkTarget_get_clean_target,$(1)) \ +$(call gb_LinkTarget_get_target,$(1)) : T_LEXFLAGS := $$(gb_LinkTarget_LEXFLAGS) $(LEXFLAGS) +$(call gb_LinkTarget_get_clean_target,$(1)) \ $(call gb_LinkTarget_get_target,$(1)) : OBJCOBJECTS := $(call gb_LinkTarget_get_clean_target,$(1)) \ $(call gb_LinkTarget_get_target,$(1)) : OBJCXXOBJECTS := @@ -873,6 +906,22 @@ define gb_LinkTarget_add_grammars $(foreach grammar,$(2),$(call gb_LinkTarget_add_grammar,$(1),$(grammar),$(4))) endef +# Add a flex scanner to the build. +# gb_LinkTarget_add_scanner(<component>,<scanner file>) +define gb_LinkTarget_add_scanner +$(call gb_LexTarget_LexTarget,$(2)) +$(call gb_LinkTarget_add_generated_exception_object,$(1),LexTarget/$(2),$(3)) +$(call gb_LinkTarget_get_clean_target,$(1)) : $(call gb_LexTarget_get_clean_target,$(2)) + +endef + +# Add flex scanners to the build. +# gb_LinkTarget_add_scanners(<component>,<scanner file> [<scanner file>*]) +define gb_LinkTarget_add_scanners +$(foreach scanner,$(2),$(call gb_LinkTarget_add_scanner,$(1),$(scanner))) + +endef + define gb_LinkTarget_add_noexception_object $(call gb_LinkTarget_add_cxxobject,$(1),$(2),$(gb_LinkTarget_NOEXCEPTIONFLAGS) $(call gb_LinkTarget__get_cxxflags,$(3))) endef diff --git a/solenv/gbuild/TargetLocations.mk b/solenv/gbuild/TargetLocations.mk index df694b74b780..70ec351e379b 100644 --- a/solenv/gbuild/TargetLocations.mk +++ b/solenv/gbuild/TargetLocations.mk @@ -141,6 +141,10 @@ 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).done + +gb_LexTarget_get_scanner_target = $(WORKDIR)/LexTarget/$(1).cxx +gb_LexTarget_get_target = $(WORKDIR)/LexTarget/$(1).done + gb_XcsTarget_get_target = $(WORKDIR)/XcsTarget/$(1) gb_XcuDataTarget_get_target = $(WORKDIR)/XcuDataTarget/$(1) gb_XcuLangpackTarget_get_target = $(WORKDIR)/XcuLangpackTarget/$(1) @@ -194,6 +198,7 @@ $(eval $(call gb_Helper_make_clean_targets,\ UnoApiTarget \ WinResTarget \ YaccTarget \ + LexTarget \ Zip \ XcsTarget \ XcuDataTarget \ |