< prev index next >

make/common/RMICompilation.gmk

Print this page

        

@@ -33,10 +33,11 @@
 #   CLASSES_DIR:=Directory where to look for classes
 #   STUB_CLASSES_DIR:=Directory in where to put stub classes
 #   RUN_V11:=Set to run rmic with -v1.1
 #   RUN_V12:=Set to run rmic with -v1.2
 #   KEEP_GENERATED:=Set to keep generated sources around
+#   STUB_SOURCES_DIR:=Directory to put generated sources in
 SetupRMICompilation = $(NamedParamsMacroTemplate)
 define SetupRMICompilationBody
 
   $1_DEP_FILE := $$($1_STUB_CLASSES_DIR)/_the.$1_rmic.generated
 

@@ -56,13 +57,20 @@
 
   $1_TIE_BASE_FILES := $$(foreach f,$$($1_CLASSES_SLASH),$$(dir $$f)_$$(notdir $$f))
   $1_TIE_FILES := $$(addprefix $$($1_STUB_CLASSES_DIR)/org/omg/stub/,$$(addsuffix _Tie.class,$$($1_TIE_BASE_FILES)))
   $1_TIE_STDPKG_FILES := $$(addprefix $$($1_STUB_CLASSES_DIR)/,$$(addsuffix _Tie.class,$$($1_TIE_BASE_FILES)))
 
-  ifneq (,$$($1_KEEP_GENERATED))
+  ifneq ($$($1_KEEP_GENERATED), )
     $1_ARGS += -keepgenerated
-    $1_TARGETS += $$(subst .class,.java,$$($1_TARGETS))
+    $1_JAVA_TARGETS := $$(subst .class,.java,$$($1_TARGETS))
+    ifneq ($$($1_STUB_SOURCES_DIR), )
+      # This is where the java files are created by rmic
+      $1_JAVA_TARGETS_REL := $$(subst $$($1_STUB_CLASSES_DIR),, $$($1_JAVA_TARGETS))
+      # This is where the caller wants the java files
+      $1_JAVA_TARGETS := $$(addprefix $$($1_STUB_SOURCES_DIR), $$($1_JAVA_TARGETS_REL))
+    endif
+    $1_TARGETS += $$($1_JAVA_TARGETS)
   endif
 
   $1_DOLLAR_SAFE_CLASSES := $$(subst $$$$,\$$$$,$$($1_CLASSES))
 
   $$($1_TARGETS): $$($1_DEP_FILE) $$($1_CLASS_FILES)

@@ -70,15 +78,16 @@
   $$($1_DEP_FILE): $$($1_CLASS_FILES)
         $$(call LogInfo, Running rmic $$($1_ARGS) for $$($1_DOLLAR_SAFE_CLASSES))
         $$(call MakeDir, $$($1_STUB_CLASSES_DIR))
         $(RMIC) $$($1_ARGS) -classpath "$$($1_CLASSES_DIR)" \
             -d $$($1_STUB_CLASSES_DIR) $$($1_DOLLAR_SAFE_CLASSES); \
-        if [ "x$$($1_ARGS2)" != "x" ]; then \
-          $(ECHO) $(LOG_INFO) Running rmic $$($1_ARGS2) for $$($1_DOLLAR_SAFE_CLASSES) && \
-          $(RMIC) $$($1_ARGS2) -classpath "$$($1_CLASSES_DIR)" \
-              -d $$($1_STUB_CLASSES_DIR) $$($1_DOLLAR_SAFE_CLASSES); \
-        fi; \
+        $$(if $$($1_STUB_SOURCES_DIR), \
+          $$(foreach f, $$($1_JAVA_TARGETS_REL), \
+            $(MKDIR) -p $$(dir $$($1_STUB_SOURCES_DIR)/$$f) ; \
+            $(MV) $$($1_STUB_CLASSES_DIR)/$$f $$($1_STUB_SOURCES_DIR)/$$f ; \
+          ) \
+        ) \
         $(TOUCH) $$@
 
 
   $1 := $$($1_TARGETS) $$($1_DEP_FILE)
 
< prev index next >