Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-4985129

Cleanup path definitions in Makefiles (isolate use of cygpath or dosname and CD/PWD)

XMLWordPrintable

    • b50
    • generic
    • generic

      In make/common/Defs.gmk, instead of the crufty:

      ifndef USING_CYGWIN
         JDK_IMAGE_DIR := $(shell $(CD) $(OUTPUTDIR); $(PWD))/j2sdk-image
         JDK_DEBUG_IMAGE_DIR := $(shell $(CD) $(OUTPUTDIR); $(PWD))/j2sdk-debug-image
         JRE_IMAGE_DIR := $(shell $(CD) $(OUTPUTDIR); $(PWD))/j2re-image
      else
         dummy := $(shell $(CD) $(OUTPUTDIR); $(PWD))
         JDK_IMAGE_DIR := $(subst \,/,$(shell $(CYGPATH) -u $(dummy)/j2sdk-image))
         JDK_DEBUG_IMAGE_DIR := $(subst \,/,$(shell $(CYGPATH) -u $(dummy)/j2sdk-debug-image))
         JRE_IMAGE_DIR := $(subst \,/,$(shell $(CYGPATH) -u $(dummy)/j2re-image))
      endif

      simply the following is sufficient:

      JDK_IMAGE_DIR := $(ABS_OUTPUTDIR)/j2sdk-image
      JDK_DEBUG_IMAGE_DIR := $(ABS_OUTPUTDIR)/j2sdk-debug-image
      JRE_IMAGE_DIR := $(ABS_OUTPUTDIR)/jre-image


      In make/sun/io/Makefile, instead of the crufty
      ifndef USING_CYGWIN
         ABS_TMPDIR := $(shell $(CD) $(TMPDIR); $(PWD))
         ABS_BINDIR := $(shell $(CD) $(BINDIR); $(PWD))
         ABS_BUILDDIR := $(shell $(CD) $(BUILDDIR); $(PWD))
         ABS_CHARSETS_JAR := $(shell $(CD) $(LIBDIR); $(PWD))/charsets.jar
         REORDER_DIR = $(ABS_TMPDIR)/reorder/file_list
      else

      # cygpath.exe bug? `$(CYGPATH) -w -a $(BINDIR)` returns
      # d:\j2se\build\windows-i586\tmp\build\windows-i586\bin instead of
      # d:\j2se\build\windows-i586\bin
      # so we get the absolute path this way:
         ABS_BINDIR := $(subst \,/,$(shell $(CYGPATH) -w $(shell $(CD) $(BINDIR); $(PWD))))
         ABS_TMPDIR := $(subst \,/,$(shell $(CYGPATH) -w $(shell $(CD) $(TMPDIR); $(PWD))))
         ABS_BUILDDIR := $(subst \,/,$(shell $(CYGPATH) -w $(shell $(CD) $(BUILDDIR); $(PWD))))

      # windows versions of the following paths are needed because without this
      # processing they get converted by the cygwin shell to a path that the
      # jar command does not understand.
         ABS_CHARSETS_JAR := $(subst \,/,$(shell $(CYGPATH) -u $(shell $(CD) $(LIBDIR); $(PWD)))/charsets.jar
         REORDER_DIR := $(subst \,/,$(shell $(CYGPATH) -u $(shell $(CD) $(TMPDIR); $(PWD)))/reorder/file_list

      endif

      simply the following should be sufficient:

      ABS_CHARSETS_JAR := $(ABS_LIBDIR)/charsets.jar
      REORDER_DIR := $(ABS_TMPDIR)/reorder/file_list

      This makefile has no business defining variables like ABS_LIBDIR;
      if those are needed, they should be defined in a higher-level
      Makefile. Indeed, ABS_LIBDIR is already defined in common/Release.gmk.

      I don't believe the comment about #cygpath.exe bug.
      We are already dependent on the construct $(shell $(CYGPATH) -u -a ...)
      working correctly elsewhere.

      Similarly, the following code in make/common/Release.gmk is in need of cleanup:

      # absolute directory names: note, these must exist prior to build
      # time - they are created in the main Makefile.
      ifndef USING_CYGWIN
         ABS_BUILDDIR := $(shell $(CD) $(BUILDDIR); $(PWD))
         ifdef USE_ONLY_BOOTDIR_TOOLS
           ABS_BINDIR := $(shell $(CD) $(BOOTDIR); $(PWD))/bin
         else
           ABS_BINDIR := $(shell $(CD) $(BINDIR); $(PWD))
         endif
         ABS_LIBDIR := $(shell $(CD) $(LIBDIR); $(PWD))
         ABS_TMPDIR := $(shell $(CD) $(TMPDIR); $(PWD))
         ABS_HTMLCONVERTER := $(shell $(CD) $(BINDIR); $(PWD))/HtmlConverter$(EXE_SUFFIX)
         JRE_IMAGE_BINDIR = $(JRE_IMAGE_DIR)/bin
         JRE_IMAGE_THREADIR = $(JRE_IMAGE_DIR)/bin/*/native_threads
      else
         ABS_BUILDDIR := $(subst \,/,$(shell $(CYGPATH) -w -a $(BUILDDIR)))
         ifdef USE_ONLY_BOOTDIR_TOOLS
           ABS_BINDIR := $(subst \,/,$(shell $(CYGPATH) -w -a $(BOOTDIR)/bin))
         else
           ABS_BINDIR := $(subst \,/,$(shell $(CYGPATH) -w -a $(BINDIR)))
         endif
         ABS_TMPDIR := $(subst \,/,$(shell $(CYGPATH) -w -a $(TMPDIR)))
         ABS_HTMLCONVERTER := $(subst \,/,$(shell $(CYGPATH) -w -a $(BIDDIR)/HtmlConverter$(EXE_SUFFIX)))
         ABS_LIBDIR := $(subst \,/,$(shell $(CYGPATH) -w -a $(LIBDIR)))
         JRE_IMAGE_BINDIR := $(subst \,/,$(shell $(CYGPATH) -w -a $(JRE_IMAGE_DIR)))/bin
         JRE_IMAGE_THREADIR := $(subst \,/,$(shell $(CYGPATH) -w -a $(JRE_IMAGE_DIR)))/bin/*/native_threads
      endif

      ###@###.### 2004-01-28

            ohair Kelly Ohair (Inactive)
            martin Martin Buchholz
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: