xref: /illumos-gate/usr/src/uts/README (revision a237e38e9161f0acd6451439d4a7dd597e66291d)
17c478bd9Sstevel@tonic-gate#
27c478bd9Sstevel@tonic-gate# CDDL HEADER START
37c478bd9Sstevel@tonic-gate#
47c478bd9Sstevel@tonic-gate# The contents of this file are subject to the terms of the
5*a237e38eSth199096# Common Development and Distribution License (the "License").
6*a237e38eSth199096# You may not use this file except in compliance with the License.
77c478bd9Sstevel@tonic-gate#
87c478bd9Sstevel@tonic-gate# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
97c478bd9Sstevel@tonic-gate# or http://www.opensolaris.org/os/licensing.
107c478bd9Sstevel@tonic-gate# See the License for the specific language governing permissions
117c478bd9Sstevel@tonic-gate# and limitations under the License.
127c478bd9Sstevel@tonic-gate#
137c478bd9Sstevel@tonic-gate# When distributing Covered Code, include this CDDL HEADER in each
147c478bd9Sstevel@tonic-gate# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
157c478bd9Sstevel@tonic-gate# If applicable, add the following below this CDDL HEADER, with the
167c478bd9Sstevel@tonic-gate# fields enclosed by brackets "[]" replaced with your own identifying
177c478bd9Sstevel@tonic-gate# information: Portions Copyright [yyyy] [name of copyright owner]
187c478bd9Sstevel@tonic-gate#
197c478bd9Sstevel@tonic-gate# CDDL HEADER END
207c478bd9Sstevel@tonic-gate#
21*a237e38eSth199096
22*a237e38eSth199096#
23*a237e38eSth199096# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
247c478bd9Sstevel@tonic-gate# Use is subject to license terms.
257c478bd9Sstevel@tonic-gate#
267c478bd9Sstevel@tonic-gate# ident	"%Z%%M%	%I%	%E% SMI"
277c478bd9Sstevel@tonic-gate
287c478bd9Sstevel@tonic-gateKERNEL MAKEFILE STRUCTURE
297c478bd9Sstevel@tonic-gate-------------------------
307c478bd9Sstevel@tonic-gate
317c478bd9Sstevel@tonic-gateThe advent of dynamic loading of kernel modules has obsoleted the
327c478bd9Sstevel@tonic-gate4.x kernel configuration scheme which was centered around a derived
337c478bd9Sstevel@tonic-gateMakefile and a collection of derived header files generated by the
347c478bd9Sstevel@tonic-gateconfig(8) program. This file describes the structure of the replacement
357c478bd9Sstevel@tonic-gate"static" set of Makefiles.
367c478bd9Sstevel@tonic-gate
377c478bd9Sstevel@tonic-gateSome additional secondary goals were associated with the generation
387c478bd9Sstevel@tonic-gateof these Makefiles.  It should be noted that the ability to properly
397c478bd9Sstevel@tonic-gatedeal with derived Makefiles is an explicit non-goal of the ongoing
407c478bd9Sstevel@tonic-gateNSE enhancements, so this project is a necessary consequence of that
417c478bd9Sstevel@tonic-gatedecision.
427c478bd9Sstevel@tonic-gate
437c478bd9Sstevel@tonic-gateAll project goals are enumerated below:
447c478bd9Sstevel@tonic-gate
457c478bd9Sstevel@tonic-gate1]  To provide a set of static Makefiles to support kernel build
467c478bd9Sstevel@tonic-gate    and installation.
477c478bd9Sstevel@tonic-gate
487c478bd9Sstevel@tonic-gate2]  To provide a set of static Makefiles which conform to the
497c478bd9Sstevel@tonic-gate    "Makefiles Guidelines".  (This document is currently available
507c478bd9Sstevel@tonic-gate    on-line as "terminator:/usr/integration/doc/make.std")
517c478bd9Sstevel@tonic-gate
527c478bd9Sstevel@tonic-gate3]  To completely eliminate the config(8) program.
537c478bd9Sstevel@tonic-gate
547c478bd9Sstevel@tonic-gate4]  To provide a framework for linting the kernel (so that "lint free"
557c478bd9Sstevel@tonic-gate    can be made an integration criterion, in addition to being general
567c478bd9Sstevel@tonic-gate    good hygiene).
577c478bd9Sstevel@tonic-gate
587c478bd9Sstevel@tonic-gate5]  To eliminate the need for the small headers generated by config(8).
597c478bd9Sstevel@tonic-gate    In the ddi/dki world this need is completely eliminated as drivers
607c478bd9Sstevel@tonic-gate    will be expected to dynamically configure themselves. Interim support
617c478bd9Sstevel@tonic-gate    for existing drivers will be provided.
627c478bd9Sstevel@tonic-gate
637c478bd9Sstevel@tonic-gate6]  To be able to "acquire" only the files needed to build a specific
647c478bd9Sstevel@tonic-gate    module, if that is all that is needed.
657c478bd9Sstevel@tonic-gate
667c478bd9Sstevel@tonic-gate7]  To provide a framework suitable for the production of "implementation
677c478bd9Sstevel@tonic-gate    architecture" independent modules.
687c478bd9Sstevel@tonic-gate
697c478bd9Sstevel@tonic-gate8]  To restructure the assembly language files to support the generation
707c478bd9Sstevel@tonic-gate    of "lint-libraries" from them.
717c478bd9Sstevel@tonic-gate
727c478bd9Sstevel@tonic-gate9]  To provide support for the incidental Makefile targets many developers
737c478bd9Sstevel@tonic-gate    are accustomed to (such as cscope and tags). These can be added to the
747c478bd9Sstevel@tonic-gate    Makefiles asd required. (cscope is currently supported.)
757c478bd9Sstevel@tonic-gate
767c478bd9Sstevel@tonic-gate
777c478bd9Sstevel@tonic-gateGENERAL STRUCTURE
787c478bd9Sstevel@tonic-gate-----------------
797c478bd9Sstevel@tonic-gate
807c478bd9Sstevel@tonic-gateThe source code layout is not generally effected by the Makefiles. However,
817c478bd9Sstevel@tonic-gatethe location of the generated files has changed dramatically.
827c478bd9Sstevel@tonic-gate
837c478bd9Sstevel@tonic-gate"Implementation architecture" independent modules are produced in
847c478bd9Sstevel@tonic-gateindividual directories (one per module) under the "instruction-set
857c478bd9Sstevel@tonic-gatearchitecture" directory (i.e.: sparc). Similarly, "implementation
867c478bd9Sstevel@tonic-gatearchitecture" dependent modules are produced in individual directories
877c478bd9Sstevel@tonic-gateunder the "implementation architecture" directory (i.e.: sun4, sun4c).
887c478bd9Sstevel@tonic-gateIt should be noted that currently (4/14/91) no implementation architecture
897c478bd9Sstevel@tonic-gatemodules exist. This situation is expected to change shortly.
907c478bd9Sstevel@tonic-gate
917c478bd9Sstevel@tonic-gateThe driving Makefile for any module is located in the leaf directory
927c478bd9Sstevel@tonic-gatewhere the module (and associated objects) are built. After a 'make
937c478bd9Sstevel@tonic-gateclobber' operation, the Makefile is the only file remaining in that
947c478bd9Sstevel@tonic-gatedirectory. Common definitions and rules are contained in suffixed
957c478bd9Sstevel@tonic-gateMakefiles in non-leaf directories which are included in the leaf
967c478bd9Sstevel@tonic-gateMakefiles. Non-suffixed Makefiles in non-leaf directories generally
977c478bd9Sstevel@tonic-gateinvoke lower level Makefiles to perform the actual tasks.
987c478bd9Sstevel@tonic-gate
997c478bd9Sstevel@tonic-gateuts/Makefile
1007c478bd9Sstevel@tonic-gateuts/sparc/Makefile
1017c478bd9Sstevel@tonic-gateuts/sun4c/Makefile
1027c478bd9Sstevel@tonic-gateuts/sun4c/svvs/Makefile
1037c478bd9Sstevel@tonic-gate	These Makefiles generally are cognizant of the components
1047c478bd9Sstevel@tonic-gate	made in subdirectories and invoke Makefiles in those sub-
1057c478bd9Sstevel@tonic-gate	directories to perform the actual build. Some targets (or
1067c478bd9Sstevel@tonic-gate	pseudo-targets) may be directly built at this level (such
1077c478bd9Sstevel@tonic-gate	as the cscope databases).
1087c478bd9Sstevel@tonic-gate
1097c478bd9Sstevel@tonic-gateuts/Makefile.uts
1107c478bd9Sstevel@tonic-gate	Contains common definitions for all possible architectures.
1117c478bd9Sstevel@tonic-gate
1127c478bd9Sstevel@tonic-gateuts/Makefile.targ
1137c478bd9Sstevel@tonic-gate	Contains common targets for all possible architectures.
1147c478bd9Sstevel@tonic-gate
1157c478bd9Sstevel@tonic-gateuts/common/Makefile.files
1167c478bd9Sstevel@tonic-gateuts/sun/Makefile.files
1177c478bd9Sstevel@tonic-gateuts/sparc/Makefile.files
1187c478bd9Sstevel@tonic-gateuts/sun4c/Makefile.files
1197c478bd9Sstevel@tonic-gateuts/sun4/Makefile.files
1207c478bd9Sstevel@tonic-gate	These Makefiles are divided into two sections. The first
1217c478bd9Sstevel@tonic-gate	section can be viewed as the equivalent of the "files" (sparc
1227c478bd9Sstevel@tonic-gate	and sun4c) and "files.cmn" (common and sun) files. These
1237c478bd9Sstevel@tonic-gate	define the object lists which define each module. The second
1247c478bd9Sstevel@tonic-gate	section defines the appropriate header search paths and other
1257c478bd9Sstevel@tonic-gate	machine specific global build parameters.
1267c478bd9Sstevel@tonic-gate
1277c478bd9Sstevel@tonic-gateuts/common/Makefile.rules
1287c478bd9Sstevel@tonic-gateuts/sun/Makefile.rules
1297c478bd9Sstevel@tonic-gateuts/sparc/Makefile.rules
1307c478bd9Sstevel@tonic-gateuts/sun4c/Makefile.rules
1317c478bd9Sstevel@tonic-gateuts/sun4/Makefile.rules
1327c478bd9Sstevel@tonic-gate	The files provide build rules (targets) which allow make to function
1337c478bd9Sstevel@tonic-gate	in a multiple directory environment. Each source tree below the
1347c478bd9Sstevel@tonic-gate	directory containing the Makefile has a build rule in the file.
1357c478bd9Sstevel@tonic-gate
1367c478bd9Sstevel@tonic-gateuts/sun4c/Makefile.sun4c
1377c478bd9Sstevel@tonic-gateuts/sun4/Makefile.sun4
1387c478bd9Sstevel@tonic-gate	These Makefile contains the definitions specific (defaults) to
1397c478bd9Sstevel@tonic-gate	the obvious "implementation architecture". These rules can be
1407c478bd9Sstevel@tonic-gate	overridden in specific leaf node Makefiles if necessary.
1417c478bd9Sstevel@tonic-gate
1427c478bd9Sstevel@tonic-gateuts/sun4c/unix/Makefile
1437c478bd9Sstevel@tonic-gate	Main driving Makefile for building /unix.
1447c478bd9Sstevel@tonic-gate
1457c478bd9Sstevel@tonic-gateuts/sun4c/MODULE/Makefile (for MODULE in arp, aoutexec, ...)
1467c478bd9Sstevel@tonic-gate	Main driving Makefile for building MODULE.kmod.
1477c478bd9Sstevel@tonic-gate
1487c478bd9Sstevel@tonic-gateuts/sun4c/unix.static/Makefile
1497c478bd9Sstevel@tonic-gate	Main driving Makefile for building a static unix (for development
1507c478bd9Sstevel@tonic-gate	work only). This Makefile is known to NSE, but its targets are
1517c478bd9Sstevel@tonic-gate	not. This makefile may be copied to additional parallel directories
1527c478bd9Sstevel@tonic-gate	to build multiple configurations. This configuration is roughly
1537c478bd9Sstevel@tonic-gate	equivalent to the GENERIC kernel of SunOS 4.x.
1547c478bd9Sstevel@tonic-gate
155fb9f9b97Skupferuts/*/Makefile.?.shared
156fb9f9b97Skupfer	These denote Makefile contents which are shared between open and
157fb9f9b97Skupfer	closed builds.
158fb9f9b97Skupfer
1597c478bd9Sstevel@tonic-gateThe Makefiles are verbosely commented. It is desired that they should
1607c478bd9Sstevel@tonic-gatestay this way.
1617c478bd9Sstevel@tonic-gate
1627c478bd9Sstevel@tonic-gate
1637c478bd9Sstevel@tonic-gateUSE
1647c478bd9Sstevel@tonic-gate---
1657c478bd9Sstevel@tonic-gate
1667c478bd9Sstevel@tonic-gateIssuing the command 'make' in the uts directory will cause all supported,
1677c478bd9Sstevel@tonic-gatemodularized kernels and modules to be built.
1687c478bd9Sstevel@tonic-gate
1697c478bd9Sstevel@tonic-gateIssuing the command 'make' in a uts/ARCHITECTURE directory (i.e.: uts/sparc)
1707c478bd9Sstevel@tonic-gatewill cause all supported, "implementation architecture" independent modules
1717c478bd9Sstevel@tonic-gatefor ARCHITECTURE to be built.
1727c478bd9Sstevel@tonic-gate
1737c478bd9Sstevel@tonic-gateIssuing the command 'make' in a uts/MACHINE directory (i.e.: uts/sun4c)
1747c478bd9Sstevel@tonic-gatewill cause that kernel and all supported, "implementation architecture"
1757c478bd9Sstevel@tonic-gatedependent modules for MACHINE to be built.
1767c478bd9Sstevel@tonic-gate
1777c478bd9Sstevel@tonic-gateIssuing the command 'make' in the uts/MACHINE/unix directory will cause the
1787c478bd9Sstevel@tonic-gatekernel for MACHINE to be built (and unix.o).
1797c478bd9Sstevel@tonic-gate
1807c478bd9Sstevel@tonic-gateIssuing the command 'make' in a uts/MACHINE/MODULE or a uts/ARCHITECTURE/MODULE
1817c478bd9Sstevel@tonic-gatedirectory will cause MODULE.kmod to be built.
1827c478bd9Sstevel@tonic-gate
1837c478bd9Sstevel@tonic-gate
1847c478bd9Sstevel@tonic-gateLINT
1857c478bd9Sstevel@tonic-gate----
1867c478bd9Sstevel@tonic-gate
1877c478bd9Sstevel@tonic-gateLinting is fairly similar to the builds, but it has an additional complication.
1887c478bd9Sstevel@tonic-gateIn order to get meaningful output from lint pass2, all the modules must be
1897c478bd9Sstevel@tonic-gatelinted together. This is accomplished by each module being responsible to
1907c478bd9Sstevel@tonic-gateproduce its own pass1 output (file.ln, one per .c/.s file). It is also
1917c478bd9Sstevel@tonic-gateresponsible for placing the a lint-library (llib-lMODULE) in the
1927c478bd9Sstevel@tonic-gateuts/MACHINE/lint-libs directory. The final full lint is accomplished by the
1937c478bd9Sstevel@tonic-gateMakefile in the uts/MACHINE directory by linting all the lint-libraries
1947c478bd9Sstevel@tonic-gateagainst each other.
1957c478bd9Sstevel@tonic-gate
1967c478bd9Sstevel@tonic-gateNote that there is no equivalent to Locore.c in the current source base.
1977c478bd9Sstevel@tonic-gateThe C prototypes are in the .s files. As example:
1987c478bd9Sstevel@tonic-gate
1997c478bd9Sstevel@tonic-gate	#if defined(lint)
2007c478bd9Sstevel@tonic-gate	int
2017c478bd9Sstevel@tonic-gate	blort(int, int)
2027c478bd9Sstevel@tonic-gate	{ return 0 }
2037c478bd9Sstevel@tonic-gate	#else	/* lint */
2047c478bd9Sstevel@tonic-gate
2057c478bd9Sstevel@tonic-gate		ENTRY(blort)
2067c478bd9Sstevel@tonic-gate		ld	[%i0],....
2077c478bd9Sstevel@tonic-gate		....
2087c478bd9Sstevel@tonic-gate		SET_SIZE(blort)
2097c478bd9Sstevel@tonic-gate
2107c478bd9Sstevel@tonic-gate	#endif	/* lint */
2117c478bd9Sstevel@tonic-gate
2127c478bd9Sstevel@tonic-gate
2137c478bd9Sstevel@tonic-gateCOMPONENT HIERARCHY
2147c478bd9Sstevel@tonic-gate------------------
2157c478bd9Sstevel@tonic-gate
2167c478bd9Sstevel@tonic-gateThe component hierarchy has been restructured to allow the acquisition of
2177c478bd9Sstevel@tonic-gatemore finely grained objects; specificly a kernel module. The basic component
2187c478bd9Sstevel@tonic-gatestructure is:
2197c478bd9Sstevel@tonic-gate
2207c478bd9Sstevel@tonic-gate	:src:uts.all --+--> :sparc --+--> :MODULES... (none currently)
2217c478bd9Sstevel@tonic-gate		       |
2227c478bd9Sstevel@tonic-gate		       +--> :sun4c --+--> :unix
2237c478bd9Sstevel@tonic-gate		       |             |
2247c478bd9Sstevel@tonic-gate		       |             +--> :MODULES...
2257c478bd9Sstevel@tonic-gate		       |             |
2267c478bd9Sstevel@tonic-gate		       |             +--> :unix.static
2277c478bd9Sstevel@tonic-gate		       |
2287c478bd9Sstevel@tonic-gate		       +--> :sun4 ---+--> :unix
2297c478bd9Sstevel@tonic-gate		       |             |
2307c478bd9Sstevel@tonic-gate		       |             +--> :MODULES...
2317c478bd9Sstevel@tonic-gate		       |             |
2327c478bd9Sstevel@tonic-gate		       |             +--> :unix.static
2337c478bd9Sstevel@tonic-gate		       ...
2347c478bd9Sstevel@tonic-gate
2357c478bd9Sstevel@tonic-gateThe above diagram does not reflect the full component tree. The full component
2367c478bd9Sstevel@tonic-gatetree may be displayed with the "nsecomp list -r :src:uts.all" command.
2377c478bd9Sstevel@tonic-gate
2387c478bd9Sstevel@tonic-gate
2397c478bd9Sstevel@tonic-gateCOMMON OPERATIONS
2407c478bd9Sstevel@tonic-gate-----------------
2417c478bd9Sstevel@tonic-gate
2427c478bd9Sstevel@tonic-gateAdding a New Kernel Module
2437c478bd9Sstevel@tonic-gate--------------------------
2447c478bd9Sstevel@tonic-gate
2457c478bd9Sstevel@tonic-gate    0]  Create the source files (and directories) as usual.
2467c478bd9Sstevel@tonic-gate
247*a237e38eSth199096    1]  Edit uts/*/Makefile.files to define the set of objects. By convention
2487c478bd9Sstevel@tonic-gate	the symbolic name of this set is of the form MODULE_OBJS, where
2497c478bd9Sstevel@tonic-gate	MODULE is the module name (i.e.: namefs). The files in each subtree
2507c478bd9Sstevel@tonic-gate	should be defined in the Makefile.files in the root directory of that
2517c478bd9Sstevel@tonic-gate	subtree. Note that they are defined using the += operator, so that
2527c478bd9Sstevel@tonic-gate	the set can be built across multiple files. As example:
2537c478bd9Sstevel@tonic-gate
2547c478bd9Sstevel@tonic-gate		NAMEFS_OBJS +=	namevfs.o namevno.o
2557c478bd9Sstevel@tonic-gate
2567c478bd9Sstevel@tonic-gate	Each source file needs a build rule in the corresponding Makefile.rules
2577c478bd9Sstevel@tonic-gate	file (compilation and lint). A typical pair of entries would be:
2587c478bd9Sstevel@tonic-gate
2597c478bd9Sstevel@tonic-gate		$(OBJS_DIR)/mem.o:		$(UTSBASE)/sun4c/io/mem.c
2607c478bd9Sstevel@tonic-gate			$(COMPILE.c) -o $@ $(UTSBASE)/sun4c/io/mem.c
2617c478bd9Sstevel@tonic-gate
2627c478bd9Sstevel@tonic-gate		$(LINTS_DIR)/mem.ln:		$(UTSBASE)/sun4c/io/mem.c
2637c478bd9Sstevel@tonic-gate			@($(LHEAD) $(LINT.c) $(UTSBASE)/sun4c/io/mem.c $(LTAIL))
2647c478bd9Sstevel@tonic-gate
2657c478bd9Sstevel@tonic-gate    2]	Create build directories in the appropriate places. If the module
2667c478bd9Sstevel@tonic-gate	can be built in a machine independent way, this would be in the
2677c478bd9Sstevel@tonic-gate	"instruction set architecture" directory (i.e.: sparc). If not, these
2687c478bd9Sstevel@tonic-gate	directories would be created for all appropriate "implementation
2697c478bd9Sstevel@tonic-gate	architecture" dependent directories (i.e.: sun4, sun4c).
2707c478bd9Sstevel@tonic-gate
2717c478bd9Sstevel@tonic-gate    3]  In each build directory, create a Makefile. This can usually be
2727c478bd9Sstevel@tonic-gate	accomplished by copying a Makefile from a parallel directory and
2737c478bd9Sstevel@tonic-gate	editing the following lines (in addition to comments).
2747c478bd9Sstevel@tonic-gate
2757c478bd9Sstevel@tonic-gate		MODULE		= namefs
2767c478bd9Sstevel@tonic-gate			- replace with module name
2777c478bd9Sstevel@tonic-gate		OBJECTS		= $(NAMEFS_OBJS:%=$(OBJS_DIR)/%)
2787c478bd9Sstevel@tonic-gate		LINTS		= $(NAMEFS_OBJS:%.o=$(LINTS_DIR)/%.ln)
2797c478bd9Sstevel@tonic-gate			- replace with MODULE_OBJS
2807c478bd9Sstevel@tonic-gate		ROOTMODULE	= $(ROOT_FS_DIR)/$(MODULE).kmod
2817c478bd9Sstevel@tonic-gate			- replace directory part with the appropriate
2827c478bd9Sstevel@tonic-gate			  installation directory name (see Makefile.uts)
2837c478bd9Sstevel@tonic-gate
2847c478bd9Sstevel@tonic-gate	If a custom version of modstubs.o is needed to check the undefines
2857c478bd9Sstevel@tonic-gate	for this routine, the following lines need to appear in the
2867c478bd9Sstevel@tonic-gate	Makefile (after the inclusion of Makefile.mach (i.e.: Makefile.sun4c)).
2877c478bd9Sstevel@tonic-gate
2887c478bd9Sstevel@tonic-gate		MODSTUBS_DIR	 = $(OBJS_DIR)
2897c478bd9Sstevel@tonic-gate		$(MODSTUBS_O)	:= AS_CPPFLAGS += -DNAMEFS_MODULE
2907c478bd9Sstevel@tonic-gate			- replace "-DNAMEFS_MODULE" with the appropriate flag
2917c478bd9Sstevel@tonic-gate			  for the modstubs.o assembly.
2927c478bd9Sstevel@tonic-gate		CLEANFILES	+= $(MODSTUBS_O)
2937c478bd9Sstevel@tonic-gate
2947c478bd9Sstevel@tonic-gate    4]  Edit the parent Makefile.mach (i.e.: Makefile.sun4c) to know about
2957c478bd9Sstevel@tonic-gate	the new module:
2967c478bd9Sstevel@tonic-gate
2977c478bd9Sstevel@tonic-gate		FS_KMODS	+= fd fifo namefs nfs proc spec ufs
2987c478bd9Sstevel@tonic-gate					   ------
2997c478bd9Sstevel@tonic-gateAny additional questions can be easily answered by looking at the many
3007c478bd9Sstevel@tonic-gateexisting examples.
3017c478bd9Sstevel@tonic-gate
3027c478bd9Sstevel@tonic-gate
3037c478bd9Sstevel@tonic-gateMoving a Module to the "Implementation Architecture" Independent Build
3047c478bd9Sstevel@tonic-gate----------------------------------------------------------------------
3057c478bd9Sstevel@tonic-gate
3067c478bd9Sstevel@tonic-gate    1]  Create the build directory under the appropriate "instruction
3077c478bd9Sstevel@tonic-gate	set architecture" build directory (i.e.: sparc/MODULE).
3087c478bd9Sstevel@tonic-gate
3097c478bd9Sstevel@tonic-gate    2]  Move the Makefile from the "implementation architecture" build
3107c478bd9Sstevel@tonic-gate	directory (i.e.: sun4c/MODULE) to the directory created above.
3117c478bd9Sstevel@tonic-gate	Edit this Makefile to reflect the change of parent (trivial:
3127c478bd9Sstevel@tonic-gate	comments, paths and includes).
3137c478bd9Sstevel@tonic-gate
3147c478bd9Sstevel@tonic-gate    3]  Edit the "implementation architecture" directory Makefile (i.e.:
3157c478bd9Sstevel@tonic-gate	Makefile.sun4c) to *not* know about this module and edit the
3167c478bd9Sstevel@tonic-gate	"instruction set architecture" directory Makefile (i.e.:
3177c478bd9Sstevel@tonic-gate	Makefile.sparc) to know about it.
3187c478bd9Sstevel@tonic-gate
319