diff options
author | akolb <none@none> | 2008-02-27 15:35:58 -0800 |
---|---|---|
committer | akolb <none@none> | 2008-02-27 15:35:58 -0800 |
commit | 98157a7002f4f2cf7978f3084ca5577f0a1d72b2 (patch) | |
tree | b9197a5e5d68f4b223ca5d89fbd61cac7f7ca582 /usr/src/uts/Makefile | |
parent | 5c69b57a7f8e939d5a14dace8725c53fae6e12d8 (diff) | |
download | illumos-joyent-98157a7002f4f2cf7978f3084ca5577f0a1d72b2.tar.gz |
6591892 ipf/netinet/Makefile incorrectly tries to install ip_icmp.h
6591900 Various sun4u platforms try to install sys symlink in usr/share/src/uts in parallel
6592974 Kernel can compile in parallel with libraries
6592975 Sparc platforms can be compiled in parallel
6592976 Intel platforms can be compiled in parallel
6592977 sun4u sub-platforms can be compiled in parallel
6621861 src/tools can be built in parallel
Diffstat (limited to 'usr/src/uts/Makefile')
-rw-r--r-- | usr/src/uts/Makefile | 62 |
1 files changed, 55 insertions, 7 deletions
diff --git a/usr/src/uts/Makefile b/usr/src/uts/Makefile index 82b011f368..6c6eb8850f 100644 --- a/usr/src/uts/Makefile +++ b/usr/src/uts/Makefile @@ -19,7 +19,7 @@ # CDDL HEADER END # # -# Copyright 2007 Sun Microsystems, Inc. All rights reserved. +# Copyright 2008 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # # ident "%Z%%M% %I% %E% SMI" @@ -30,14 +30,46 @@ include ../Makefile.master # # List of architectures to build as part of the standard build. # -# Note that sparc must trail the individual platforms so that sparc -# lint targets will have the unix lint libraries to compare against. +# Some of these architectures are built in parallel (see i386_PARALLEL and +# sparc_PARALLEL). This requires building some parts first before parallel build +# can start. Platform make files know what should be built as a prerequisite for +# the parallel build to work. The i386_PREREQ and sparc_PREREQ variables tell +# which platform directory to enter to start making prerequisite dependencies. # sparc_ARCHITECTURES = sun4v sun4u sparc -i386_ARCHITECTURES = i86pc -i386_ARCHITECTURES += i86xpv -i386_ARCHITECTURES += intel +i386_ARCHITECTURES = i86pc i86xpv intel + +# +# For i386 all architectures can be compiled in parallel. +# +# intel/Makefile knows how to build prerequisites needed for parallel build. +# +i386_PREREQ = intel +i386_PARALLEL = $(i386_ARCHITECTURES) + +# +# For sparc all architectures can be compiled in parallel. +# +# sun4/Makefile knows how to build prerequisites needed for parallel build. +# can start. +# +sparc_PREREQ = sun4 +sparc_PARALLEL = $(sparc_ARCHITECTURES) + +# +# Platforms defined in $(MACH)_PARALLEL are built in parallel. DUMMY is placed +# at the end in case $(MACH)_PARALLEL is empty to prevent everything going in +# parallel. +# +.PARALLEL: $($(MACH)_PARALLEL) DUMMY + +# +# For build prerequisites we use a special target which is constructed by adding +# '.prereq' suffix to the $(MACH)_PREREQ. +# +PREREQ_TARGET = $($(MACH)_PREREQ:%=%.prereq) + def := TARGET= def all := TARGET= all @@ -69,7 +101,23 @@ install_dirs: @cd ..; pwd; $(MAKE) rootdirs @pwd -$($(MACH)_ARCHITECTURES): FRC +# +# Rule to build prerequisites. The left part of the pattern will match +# PREREQ_TARGET. +# +# The location of the Makefile is determined by strippinng '.prereq' suffix from +# the target name. We add '.prereq' suffix to the target passed to the child +# Makefile so that it can distinguish prerequisite build from the regular one. +# +# +%.prereq: + @cd $(@:%.prereq=%); pwd; $(MAKE) $(NO_STATE) $(TARGET).prereq + +# +# Rule to build architecture files. Build all required prerequisites and then +# build the rest (potentially in parallel). +# +$($(MACH)_ARCHITECTURES): $(PREREQ_TARGET) FRC @cd $@; pwd; $(MAKE) $(NO_STATE) $(TARGET) $(PMTMO_FILE) pmtmo_file: $(PATCH_MAKEUP_TABLE) |