jdk/makefiles/Makefile
changeset 14231 a0c23c1c010f
parent 13702 efd6a05935b2
child 20547 453837141fac
--- a/jdk/makefiles/Makefile	Wed Jul 05 18:26:51 2017 +0200
+++ b/jdk/makefiles/Makefile	Fri Oct 26 14:23:29 2012 -0700
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 1995, 2012, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -23,102 +23,27 @@
 # questions.
 #
 
-# This must be the first rule
-default: all
-
-# Inclusion of this pseudo-target will cause make to execute this file
-# serially, regardless of -j. Recursively called makefiles will not be
-# affected, however. This is required for correct dependency management.
-.NOTPARALLEL:
-
-include $(SPEC)
-include MakeBase.gmk
-include JavaCompilation.gmk
-include NativeCompilation.gmk
-
-# Setup the java compilers for the JDK build.
-include Setup.gmk
-
-# Setup the build tools.
-include Tools.gmk
-
-import: $(BUILD_TOOLS) import-only
-import-only:
-#       Import (corba jaxp jaxws langtools hotspot)
-	+$(MAKE) -f Import.gmk
-
-gensrc: import gensrc-only
-gensrc-only:
-	+$(MAKE) -f GenerateJavaSources.gmk
-#       Ok, now gensrc is fully populated.
+# Locate this Makefile
+ifeq ($(filter /%,$(lastword $(MAKEFILE_LIST))),)
+    makefile_path:=$(CURDIR)/$(lastword $(MAKEFILE_LIST))
+else
+    makefile_path:=$(lastword $(MAKEFILE_LIST))
+endif
+repo_dir:=$(patsubst %/makefiles/Makefile,%,$(makefile_path))
 
-gendata: gensrc gendata-only
-gendata-only:
-	+$(MAKE) -f GenerateData.gmk
-
-classes: gendata classes-only
-classes-only:
-	+$(MAKE) -f CompileJavaClasses.gmk
-#       The classes are now built and
-#       any javah files have now been generated.
-
-libs: classes libs-only
-libs-only:
-	+$(MAKE) -f CompileNativeLibraries.gmk
+# What is the name of this subsystem (langtools, corba, etc)?
+subsystem_name:=$(notdir $(repo_dir))
 
-launchers: libs launchers-only
-launchers-only:
-#       Finally compile the launchers.
-	+$(MAKE) -f CompileLaunchers.gmk
-
-genclasses: launchers genclasses-only
-genclasses-only:
-#	Generate classes that have other sources. Needs
-#       to execute launchers.
-	+$(MAKE) -f GenerateClasses.gmk
-
-demos: genclasses demos-only
-demos-only:
-#       Now we have a complete jdk, which you can run.
-#       It is not yet wrapped up as an installed image.
-#       The demos are compiled against this jdk.
-ifndef NO_DEMOS
-	+$(MAKE) -f CompileDemos.gmk
+# Try to locate top-level makefile
+top_level_makefile:=$(repo_dir)/../common/makefiles/Makefile
+ifneq ($(wildcard $(top_level_makefile)),)
+  $(info Will run $(subsystem_name) target on top-level Makefile)
+  $(info WARNING: This is a non-recommended way of building!)
+  $(info ===================================================)
+else
+  $(info Cannot locate top-level Makefile. Is this repo not checked out as part of a complete forest?)
+  $(error Build from top-level Makefile instead)
 endif
 
-samples: demos samples-only
-samples-only:
-#	Now copy the sample sources into the jdk.
-ifndef NO_SAMPLES
-	+$(MAKE) -f CopySamples.gmk
-endif
-
-# The all target builds the JDK, but not the images
-all: import gensrc gendata classes libs launchers genclasses demos samples
-
-.PHONY: all images install overlay-images import-only gensrc-only gendata-only classes-only 
-.PHONY: libs-only launchers-only genclasses-only demos-only samples-only
-
-# Create the final jdk and jre images, to be wrapped up
-# into packages, or installed.
-images:
-	+$(MAKE) -f CreateJars.gmk
-	+$(MAKE) -f Images.gmk 
-
-overlay-images:
-	+$(MAKE) -f CompileLaunchers.gmk OVERLAY_IMAGES=true
-	+$(MAKE) -f Images.gmk overlay-images
-
-BINARIES:=$(shell if test -d $(IMAGES_OUTPUTDIR)/j2sdk-image/bin; then cd $(IMAGES_OUTPUTDIR)/j2sdk-image/bin && $(LS) ; fi)
-INSTALLDIR:=openjdk-$(RELEASE)
-
-# Install the jdk image, in a very crude way. Not taking into
-# account, how to install properly on macosx or windows etc.
-install: images
-	echo Installing jdk image into $(INSTALL_PREFIX)/jvm/$(INSTALLDIR)
-	echo and creating $(words $(BINARIES)) links from $(INSTALL_PREFIX)/bin into the jdk.
-	$(MKDIR) -p $(INSTALL_PREFIX)/jvm/$(INSTALLDIR)
-	$(RM) -r $(INSTALL_PREFIX)/jvm/$(INSTALLDIR)/*
-	$(CP) -rp $(IMAGES_OUTPUTDIR)/j2sdk-image/* $(INSTALL_PREFIX)/jvm/$(INSTALLDIR)
-	$(RM) $(addprefix $(INSTALL_PREFIX)/bin/,$(BINARIES))
-	$(foreach b,$(BINARIES),$(LN) -s $(INSTALL_PREFIX)/jvm/$(INSTALLDIR)/bin/$b $(INSTALL_PREFIX)/bin/$b &&) true
+all:
+	@$(MAKE) -f $(top_level_makefile) $(subsystem_name)