diff -r 8d9d430b4244 -r a0c23c1c010f jdk/makefiles/Makefile --- 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)