accessibility/Jar_accessibility.mk | 15 +++++++------ accessibility/bridge/Makefile | 15 +------------ solenv/gbuild/Jar.mk | 40 ++++++++++++++++++++++++++++++++----- solenv/gbuild/JavaClassSet.mk | 15 +++++++++++++ 4 files changed, 60 insertions(+), 25 deletions(-)
New commits: commit e22fef6bebfb3a5bf3907115223650ff9425eced Author: David Tardon <dtar...@redhat.com> Date: Fri Dec 23 16:11:57 2011 +0100 use generated java source diff --git a/accessibility/Jar_accessibility.mk b/accessibility/Jar_accessibility.mk index ffb86ee..2eb0f72 100644 --- a/accessibility/Jar_accessibility.mk +++ b/accessibility/Jar_accessibility.mk @@ -31,15 +31,10 @@ $(eval $(call gb_Jar_add_jars,java_accessibility,\ $(OUTDIR)/bin/jurt.jar \ $(OUTDIR)/bin/ridl.jar \ $(OUTDIR)/bin/unoil.jar \ - $(WORKDIR)/CustomTarget/accessibility/bridge/classes \ )) $(eval $(call gb_Jar_set_packageroot,java_accessibility,org)) -$(eval $(call gb_Jar_add_packagedirs,java_accessibility,\ - $(WORKDIR)/CustomTarget/accessibility/bridge/classes/org \ -)) - $(eval $(call gb_Jar_add_sourcefiles,java_accessibility,\ accessibility/bridge/org/openoffice/java/accessibility/AbstractButton \ accessibility/bridge/org/openoffice/java/accessibility/AccessibleActionImpl \ @@ -88,9 +83,13 @@ $(eval $(call gb_Jar_add_sourcefiles,java_accessibility,\ accessibility/bridge/org/openoffice/java/accessibility/logging/XAccessibleTextLog \ )) +$(eval $(call gb_Jar_add_generated_sourcefiles,java_accessibility,\ + CustomTarget/accessibility/bridge/org/openoffice/java/accessibility/Build \ +)) + # Dummy dep. to satisfy make's depsolver: .../classes is created by a # custom target, so there is no dependency information for it here. # It also makes sure that the package is built before this jar .-) -$(WORKDIR)/CustomTarget/accessibility/bridge/classes :| $(call gb_Package_get_target,accessibility_bridge) +$(call gb_Jar_get_target,java_accessibility) :| $(call gb_Package_get_target,accessibility_bridge) # vim:set shiftwidth=4 softtabstop=4 expandtab: diff --git a/accessibility/bridge/Makefile b/accessibility/bridge/Makefile index 67792cd..9ed435a 100644 --- a/accessibility/bridge/Makefile +++ b/accessibility/bridge/Makefile @@ -26,10 +26,6 @@ # instead of those above. gb_PARTIALBUILD := T -include $(GBUILDDIR)/gbuild.mk - -TARGETDIR := $(WORKDIR)/CustomTarget/accessibility/bridge -PACKAGE := org/openoffice/java/accessibility ifeq ($(PRODUCT),) DEBUGSWITCH := true @@ -39,14 +35,7 @@ DEBUGSWITCH := false PRODUCTSWITCH := true endif -$(TARGETDIR)/done : $(TARGETDIR)/classes/$(PACKAGE)/Build.class - mkdir -p $(dir $@) && touch $@ - -$(TARGETDIR)/classes/$(PACKAGE)/Build.class : $(TARGETDIR)/src/$(PACKAGE)/Build.java | $(gb_JavaClassSet_JAVACCOMMAND) - mkdir -p $(dir $@) && \ - $(gb_JavaClassSet_JAVACCOMMAND) $(gb_JavaClassSet_JAVACDEBUG) -d $(TARGETDIR)/classes $^ - -$(TARGETDIR)/src/$(PACKAGE)/Build.java : +org/openoffice/java/accessibility/Build.java : mkdir -p $(dir $@) && (\ echo package org.openoffice.java.accessibility\; && \ echo public class Build \{ && \ @@ -58,6 +47,6 @@ $(TARGETDIR)/src/$(PACKAGE)/Build.java : .DEFAULT_GOAL := all .PHONY : all all : \ - $(TARGETDIR)/done + org/openoffice/java/accessibility/Build.java # vim: set ts=4 sw=4 et: commit a9afa2b27e1a19066a872b09df14f7a22c3c707b Author: David Tardon <dtar...@redhat.com> Date: Fri Dec 23 16:08:18 2011 +0100 allow use of generated files in gb_Jar diff --git a/solenv/gbuild/Jar.mk b/solenv/gbuild/Jar.mk index 295aa69..b5ba394 100644 --- a/solenv/gbuild/Jar.mk +++ b/solenv/gbuild/Jar.mk @@ -140,6 +140,16 @@ $(foreach sourcefile,$(2),$(call gb_Jar_add_sourcefile,$(1),$(sourcefile))) endef +define gb_Jar_add_generated_sourcefile +$(call gb_JavaClassSet_add_generated_sourcefile,$(call gb_Jar_get_classsetname,$(1)),$(2)) + +endef + +define gb_Jar_add_generated_sourcefiles +$(foreach sourcefile,$(2),$(call gb_Jar_add_generated_sourcefile,$(1),$(sourcefile))) + +endef + define gb_JarTest_set_classpath $(call gb_JavaClassSet_set_classpath,$(call gb_Jar_get_classsetname,$(1)),$(2)) diff --git a/solenv/gbuild/JavaClassSet.mk b/solenv/gbuild/JavaClassSet.mk index 61cb4e8..6befda1 100644 --- a/solenv/gbuild/JavaClassSet.mk +++ b/solenv/gbuild/JavaClassSet.mk @@ -69,6 +69,10 @@ define gb_JavaClassSet__get_sourcefile $(SRCDIR)/$(1).java endef +define gb_JavaClassSet__get_generated_sourcefile +$(WORKDIR)/$(1).java +endef + define gb_JavaClassSet_add_sourcefile $(call gb_JavaClassSet_get_target,$(1)) : $(call gb_JavaClassSet__get_sourcefile,$(2)) @@ -79,6 +83,17 @@ $(foreach sourcefile,$(2),$(call gb_JavaClassSet_add_sourcefile,$(1),$(sourcefil endef +define gb_JavaClassSet_add_generated_sourcefile +$(call gb_JavaClassSet_get_target,$(1)) : $(call gb_JavaClassSet__get_generated_sourcefile,$(2)) +$(call gb_JavaClassSet__get_generated_sourcefile,$(2)) : $(gb_Helper_PHONY) + +endef + +define gb_JavaClassSet_add_generated_sourcefiles +$(foreach sourcefile,$(2),$(call gb_JavaClassSet_add_generated_sourcefile,$(1),$(sourcefile))) + +endef + define gb_JavaClassSet_set_classpath $(call gb_JavaClassSet_get_target,$(1)) : T_CP := $(2) commit c50936d6a60b05228c036d829156bfa2270cc11a Author: David Tardon <dtar...@redhat.com> Date: Fri Dec 23 15:35:55 2011 +0100 avoid copying hack diff --git a/accessibility/Jar_accessibility.mk b/accessibility/Jar_accessibility.mk index 5f5737a..ffb86ee 100644 --- a/accessibility/Jar_accessibility.mk +++ b/accessibility/Jar_accessibility.mk @@ -36,6 +36,10 @@ $(eval $(call gb_Jar_add_jars,java_accessibility,\ $(eval $(call gb_Jar_set_packageroot,java_accessibility,org)) +$(eval $(call gb_Jar_add_packagedirs,java_accessibility,\ + $(WORKDIR)/CustomTarget/accessibility/bridge/classes/org \ +)) + $(eval $(call gb_Jar_add_sourcefiles,java_accessibility,\ accessibility/bridge/org/openoffice/java/accessibility/AbstractButton \ accessibility/bridge/org/openoffice/java/accessibility/AccessibleActionImpl \ @@ -84,11 +88,9 @@ $(eval $(call gb_Jar_add_sourcefiles,java_accessibility,\ accessibility/bridge/org/openoffice/java/accessibility/logging/XAccessibleTextLog \ )) -# XXX yes, I know this is a nasty hack. But it is the easiest way (and, -# from what I have tried so far, the only working one) to get the damned -# class file packed into the jar. -$(WORKDIR)/CustomTarget/accessibility/bridge/classes : $(call gb_Package_get_target,accessibility_bridge) - mkdir -p $(call gb_Jar_get_workdir,java_accessibility)/org/openoffice/java/accessibility && \ - $(call gb_Deliver_deliver,$(WORKDIR)/CustomTarget/accessibility/bridge/classes/org/openoffice/java/accessibility/Build.class,$(call gb_Jar_get_workdir,java_accessibility)/org/openoffice/java/accessibility) +# Dummy dep. to satisfy make's depsolver: .../classes is created by a +# custom target, so there is no dependency information for it here. +# It also makes sure that the package is built before this jar .-) +$(WORKDIR)/CustomTarget/accessibility/bridge/classes :| $(call gb_Package_get_target,accessibility_bridge) # vim:set shiftwidth=4 softtabstop=4 expandtab: commit f9ad9da6c9bc5050f8a1ed47b4f1cac053bb33d7 Author: David Tardon <dtar...@redhat.com> Date: Fri Dec 23 15:31:26 2011 +0100 work around deficiency in jar diff --git a/solenv/gbuild/Jar.mk b/solenv/gbuild/Jar.mk index 36e5112..295aa69 100644 --- a/solenv/gbuild/Jar.mk +++ b/solenv/gbuild/Jar.mk @@ -48,6 +48,12 @@ endef # creates the target folder of the jar file if it doesn't exist # creates the jar file # jar program does not remove the target in case of error, so rm it manually +# XXX: PACKAGEDIRS need special treatment, because sometimes we need to +# add into the jar another class hierarchy created outside of our class +# set (e.g., by javamaker). Because jar does not allow two same root dirs +# when creating the archive, we work around this deficiency by creating +# the archive with the main class hierarchy and then updating it from +# the other one(s), which seems to work .-) define gb_Jar__command $(call gb_Output_announce,$*,$(true),JAR,3) $(call gb_Helper_abbreviate_dirs_native,\ @@ -59,6 +65,7 @@ define gb_Jar__command mkdir -p $(dir $(2)) && cd $(call gb_Jar_get_workdir,$(1)) && \ $(gb_Jar_JARCOMMAND) cfm $(2) $(call gb_Jar_get_manifest_target,$(1)) \ META-INF $(PACKAGEROOTS) $(PACKAGEFILES) \ + $(foreach root,$(PACKAGEDIRS),&& $(gb_Jar_JARCOMMAND) uf $(2) -C $(dir $(root)) $(notdir $(root))) \ || (rm $(2); false) ) endef @@ -84,6 +91,7 @@ define gb_Jar_Jar $(call gb_Jar_get_target,$(1)) : MANIFEST := $(call gb_Jar_get_target,$(1)) : JARCLASSPATH := $(call gb_Jar_get_target,$(1)) : PACKAGEROOTS := +$(call gb_Jar_get_target,$(1)) : PACKAGEDIRS := $(call gb_Jar_get_target,$(1)) : PACKAGEFILES := $(call gb_JavaClassSet_JavaClassSet,$(call gb_Jar_get_classsetname,$(1))) $(call gb_JavaClassSet_set_classpath,$(call gb_Jar_get_classsetname,$(1)),$(value XCLASSPATH)) @@ -99,19 +107,31 @@ $(call gb_JavaClassSet_add_sourcefile,$(call gb_Jar_get_classsetname,$(1)),$(2)) endef -# PACKAGEROOTS is the list of all root folders to pack into the jar (without META-INF as this is added automatically) +# PACKAGEROOTS is the list of all root folders created by the JavaClassSet to pack into the jar (without META-INF as this is added automatically) define gb_Jar_set_packageroot $(call gb_Jar_get_target,$(1)) : PACKAGEROOTS := $(2) endef +# +# PACKAGEDIRS is the list of additional root directories to pack into the jar +define gb_Jar_add_packagedir +$(call gb_Jar_get_target,$(1)) : PACKAGEDIRS += $(2) + +endef + +define gb_Jar_add_packagedirs +$(foreach packagedir,$(2),$(call gb_Jar_add_packagedir,$(1),$(packagedir))) + +endef # PACKAGEFILES is the list of all root files to pack into the jar define gb_Jar_add_packagefile $(call gb_Jar_get_target,$(1)) : PACKAGEFILES += $(2) -$(call gb_Jar_get_target,$(1)) : $(call gb_Jar_get_workdir,$(1))/$(strip $(2)) -$(call gb_Jar_get_workdir,$(1))/$(strip $(2)) : $(3) $(call gb_JavaClassSet_get_target,$(call gb_Jar_get_classsetname,$(1))) - mkdir -p $$(dir $$@) - cp -rf $(3) $$@ + +endef + +define gb_Jar_add_packagefiles +$(foreach packagefile,$(2),$(call gb_Jar_add_packagefile,$(1),$(packagefile))) endef _______________________________________________ Libreoffice-commits mailing list Libreoffice-commits@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits