1 |
158 |
chris |
#
|
2 |
208 |
chris |
# $Id: README,v 1.2 2001-09-27 12:02:50 chris Exp $
|
3 |
158 |
chris |
#
|
4 |
|
|
|
5 |
|
|
make/README
|
6 |
|
|
|
7 |
|
|
This file describes the layout and conventions of the application
|
8 |
|
|
makefile support for RTEMS applications. Internally, RTEMS uses
|
9 |
|
|
GNU-style autoconf/automake Makefiles as much as possible to
|
10 |
|
|
ease integration with other GNU tools.
|
11 |
|
|
|
12 |
|
|
All of these "make" trees are substantially similar; however this
|
13 |
|
|
file documents the current state of the RTEMS Application Makefile
|
14 |
|
|
support.
|
15 |
|
|
|
16 |
|
|
This make tree is based on a build system originally developed
|
17 |
|
|
to simplify porting projects between various OS's. The primary
|
18 |
|
|
goals were:
|
19 |
|
|
|
20 |
|
|
. simple *and* customizable individual makefiles
|
21 |
|
|
|
22 |
|
|
. use widely available GNU make. There is no pre-processing or
|
23 |
|
|
automatic generation of Makefiles.
|
24 |
|
|
|
25 |
|
|
. Same makefiles work on *many* host OS's due to portability
|
26 |
|
|
of GNU make and the host OS config files.
|
27 |
|
|
|
28 |
|
|
. Support for different compilers and operating systems
|
29 |
|
|
on a per-user basis. Using the same sources (including
|
30 |
|
|
Makefiles) one developer can develop and test under SVR4,
|
31 |
|
|
another under 4.x, another under HPUX.
|
32 |
|
|
|
33 |
|
|
. Builtin support for compiling "variants" such as debug,
|
34 |
|
|
profile, and tcov versions. These variants can be built
|
35 |
|
|
recursively.
|
36 |
|
|
|
37 |
|
|
. Control of system dependencies. "hidden" dependencies on
|
38 |
|
|
environment variables (such as PATH)
|
39 |
|
|
have been removed whenever possible. No matter what your
|
40 |
|
|
PATH variable is set to, you should get the same thing
|
41 |
|
|
when you 'make' as everyone else on the project.
|
42 |
|
|
|
43 |
|
|
This Makefile system has evolved into its present form and as it
|
44 |
|
|
exists in RTEMS today, its sole goal is to build RTEMS applications.
|
45 |
|
|
The use of these Makefiles hides the complexity of producing
|
46 |
|
|
executables for a wide variety of embedded CPU families and target
|
47 |
|
|
BSPs. Switching between RTEMS BSPs is accomplished via setting
|
48 |
|
|
the environment variable "RTEMS_MAKEFILE_PATH."
|
49 |
|
|
|
50 |
|
|
This description attempts to cover all aspects of the Makefile tree. Most
|
51 |
|
|
of what is described here is maintained automatically by the configuration
|
52 |
|
|
files.
|
53 |
|
|
|
54 |
|
|
The example makefiles in make/Templates should be used as a starting
|
55 |
|
|
point for new directories.
|
56 |
|
|
|
57 |
|
|
There are 2 main types of Makefile:
|
58 |
|
|
|
59 |
|
|
directory and leaf.
|
60 |
|
|
|
61 |
|
|
Directory Makefiles
|
62 |
|
|
-------------------
|
63 |
|
|
|
64 |
|
|
A Makefile in a source directory with sub-directories is called a
|
65 |
|
|
"directory" Makefile.
|
66 |
|
|
|
67 |
|
|
Directory Makefile's are simply responsible for acting as "middle-men"
|
68 |
|
|
and recursing into their sub-directories and propagating the make.
|
69 |
|
|
|
70 |
|
|
For example, directory src/bin will contain only a Makefile and
|
71 |
|
|
sub-directories. No actual source code will reside in the directory.
|
72 |
|
|
The following commands:
|
73 |
|
|
|
74 |
|
|
$ cd src/bin
|
75 |
|
|
$ make all
|
76 |
|
|
|
77 |
|
|
would descend into all the subdirectories of 'src/bin' and recursively
|
78 |
|
|
perform a 'make all'.
|
79 |
|
|
|
80 |
|
|
A 'make debug' will recurse thru sub-directories as a debug build.
|
81 |
|
|
|
82 |
|
|
A template directory Makefile which should work in almost all
|
83 |
|
|
cases is in make/Templates/Makefile.dir
|
84 |
|
|
|
85 |
|
|
|
86 |
|
|
Leaf Makefiles
|
87 |
|
|
--------------
|
88 |
|
|
|
89 |
|
|
Source directories that contain source code for libraries or
|
90 |
|
|
programs use a "leaf" Makefile.
|
91 |
|
|
|
92 |
|
|
These makefiles contain the rules necessary to build programs
|
93 |
|
|
(or libraries).
|
94 |
|
|
|
95 |
|
|
A template leaf Makefile is in Templates/Makefile.leaf . A template
|
96 |
|
|
leaf Makefile for building libraries is in Templates/Makefile.lib .
|
97 |
|
|
|
98 |
|
|
|
99 |
|
|
NOTE: To simplify nested makefile's and source maintenance, we disallow
|
100 |
|
|
combining source and directories (that make(1) would be expected to
|
101 |
|
|
recurse into) in one source directory. Ie., a directory in the source
|
102 |
|
|
tree may contain EITHER source files OR recursive sub directories, but NOT
|
103 |
|
|
both. This assumption is generally shared with GNU automake.
|
104 |
|
|
|
105 |
|
|
Variants (where objects go)
|
106 |
|
|
---------------------------
|
107 |
|
|
|
108 |
|
|
All binary targets are placed in a sub-directory whose name is (for
|
109 |
|
|
example):
|
110 |
|
|
|
111 |
|
|
o-optimize/ -- optimized binaries
|
112 |
|
|
o-debug/ -- debug binaries
|
113 |
|
|
o-profile/ -- profiling binaries
|
114 |
|
|
|
115 |
|
|
Using the template Makefiles, this will all happen automatically.
|
116 |
|
|
The contents of these directories are specific to a BSP.
|
117 |
|
|
|
118 |
|
|
Within a Makefile, the ${ARCH} variable is set to o-optimize,
|
119 |
|
|
o-debug, etc., as appropriate.
|
120 |
|
|
|
121 |
|
|
HISTORICAL NOTE: Prior to version 4.5, the name of the sub-directory
|
122 |
|
|
in which objects were placed included the BSP name.
|
123 |
|
|
|
124 |
|
|
Typing 'make' will place objects in o-optimize.
|
125 |
|
|
'make debug' will place objects in o-debug.
|
126 |
|
|
'make profile' will place objects in o-profile.
|
127 |
|
|
|
128 |
|
|
The debug and profile targets are equivalent to 'all' except that
|
129 |
|
|
CFLAGS and/or LDFLAGS are modified as per the compiler config file for
|
130 |
|
|
debug and profile support.
|
131 |
|
|
|
132 |
|
|
The targets debug, profile, etc., can be invoked recursively at
|
133 |
|
|
the directory make level. So from the top of a tree, one could
|
134 |
|
|
install a debug version of everything under that point by:
|
135 |
|
|
|
136 |
|
|
$ cd src/lib
|
137 |
|
|
$ gmake debug
|
138 |
|
|
$ gmake install
|
139 |
|
|
|
140 |
|
|
When building a command that is linked with a generated library, the
|
141 |
|
|
appropriate version of the library will be linked in.
|
142 |
|
|
|
143 |
|
|
For example, the following fragments link the normal, debug, or
|
144 |
|
|
profile version of "libmine.a" as appropriate:
|
145 |
|
|
|
146 |
|
|
LD_LIBS += $(LIBMINE)
|
147 |
|
|
LIBMINE = ../libmine/${ARCH}/libmine.a
|
148 |
|
|
|
149 |
|
|
${ARCH}/pgm: $(LIBMINE) ${OBJS}
|
150 |
|
|
$(make-exe)
|
151 |
|
|
|
152 |
|
|
If we do 'gmake debug', then the library in
|
153 |
|
|
../libmine/o-debug/libmine.a will be linked in. If $(LIBMINE)
|
154 |
|
|
might not exist (or might be out of date) at this point, we could add
|
155 |
|
|
|
156 |
|
|
${LIBMINE}: FORCEIT
|
157 |
|
|
cd ../libmine; ${MAKE} ${VARIANT_VA}
|
158 |
|
|
|
159 |
|
|
The above would generate the following command to build libmine.a:
|
160 |
|
|
|
161 |
|
|
cd ../libmine; gmake debug
|
162 |
|
|
|
163 |
|
|
The macro reference ${VARIANT_VA} converts ${ARCH} to the word 'debug'
|
164 |
|
|
(in this example) and thus ensures the proper version of the library
|
165 |
|
|
is built.
|
166 |
|
|
|
167 |
|
|
|
168 |
|
|
Targets
|
169 |
|
|
-------
|
170 |
|
|
|
171 |
|
|
All Makefile's support the following targets:
|
172 |
|
|
|
173 |
|
|
all -- make "everything"
|
174 |
|
|
install -- install "everything"
|
175 |
|
|
|
176 |
|
|
The following targets are provided automatically by
|
177 |
|
|
the included config files:
|
178 |
|
|
|
179 |
|
|
clean -- delete all targets
|
180 |
|
|
depend -- build a make dependency file
|
181 |
|
|
"variant targets" -- special variants, see below
|
182 |
|
|
|
183 |
|
|
|
184 |
|
|
All directory Makefiles automatically propagate all these targets. If
|
185 |
|
|
you don't wish to support 'all' or 'install' in your source directory,
|
186 |
|
|
you must leave the rules section empty, as the parent directory Makefile
|
187 |
|
|
will attempt it on recursive make's.
|
188 |
|
|
|
189 |
|
|
|
190 |
|
|
Configuration
|
191 |
|
|
-------------
|
192 |
|
|
|
193 |
|
|
All the real work described here happens in file(s) included
|
194 |
|
|
from your Makefile.
|
195 |
|
|
|
196 |
|
|
All Makefiles include a customization file which is used to select
|
197 |
|
|
compiler and host operating system. The environment variable
|
198 |
|
|
RTEMS_MAKEFILE_PATH must point to the directory containing this file; eg:
|
199 |
|
|
|
200 |
|
|
export RTEMS_MAKEFILE_PATH=/.../pc386/
|
201 |
|
|
|
202 |
|
|
All leaf Makefile's also include either 'make/leaf.cfg' (or
|
203 |
|
|
'make/lib.cfg' for building libraries). These config files provide
|
204 |
|
|
default rules and set up the command macros as appropriate.
|
205 |
|
|
|
206 |
|
|
All directory Makefiles include 'make/directory.cfg'. directory.cfg
|
207 |
|
|
provides all the rules for recursing through sub directories.
|
208 |
|
|
|
209 |
|
|
The Makefile templates already perform these include's.
|
210 |
|
|
|
211 |
|
|
'make/leaf.cfg' (or directory.cfg) in turn includes:
|
212 |
|
|
|
213 |
|
|
a file specifying general purpose rules appropriate for
|
214 |
|
|
both leaf and directory makefiles.
|
215 |
|
|
( make/main.cfg )
|
216 |
|
|
|
217 |
|
|
personality modules specified by the customization file for:
|
218 |
|
|
compiler ( make/compilers/??.cfg )
|
219 |
|
|
|
220 |
|
|
|
221 |
|
|
generic rules file
|
222 |
|
|
------------------
|
223 |
|
|
|
224 |
|
|
[ make/main.cfg ]
|
225 |
|
|
included by leaf.cfg or directory.cfg.
|
226 |
|
|
|
227 |
|
|
This file contains some standard rules and variable assignments
|
228 |
|
|
that all Makefiles need.
|
229 |
|
|
|
230 |
|
|
It also includes the FORCEIT: pseudo target.
|
231 |
|
|
|
232 |
|
|
|
233 |
|
|
OS config file for host machine
|
234 |
|
|
-------------------------------
|
235 |
|
|
|
236 |
|
|
[ make/os/OS-NAME.cfg ]
|
237 |
|
|
included by main.cfg
|
238 |
|
|
|
239 |
|
|
Figures out the target architecture and specifies command names
|
240 |
|
|
for the OS tools including RCS/CVS (but NOT for the compiler tools).
|
241 |
|
|
|
242 |
|
|
|
243 |
|
|
Compiler configuration for the target
|
244 |
|
|
-------------------------------------
|
245 |
|
|
|
246 |
|
|
[ compilers/COMPILER-NAME.cfg ]
|
247 |
|
|
included by leaf.cfg
|
248 |
|
|
|
249 |
|
|
Specifies the names of tools for compiling programs.
|
250 |
|
|
Names in here should be fully qualified, and NOT depend on $PATH.
|
251 |
|
|
|
252 |
|
|
Also specifies compiler flags to be used to generate optimized,
|
253 |
|
|
debugging and profile versions, as well as rules to compile
|
254 |
|
|
assembly language and make makefile dependencies.
|
255 |
|
|
|
256 |
|
|
|
257 |
|
|
Configuration Variables
|
258 |
|
|
-----------------------
|
259 |
|
|
|
260 |
|
|
Variables you have to set in the environment or in your Makefile.
|
261 |
|
|
Note: the RTEMS module files set RTEMS_ROOT and RTEMS_CUSTOM
|
262 |
|
|
for you.
|
263 |
|
|
|
264 |
|
|
Makefile Variables
|
265 |
|
|
------------------
|
266 |
|
|
|
267 |
|
|
RTEMS_BSP -- name of your 'bsp' eg: pc386, mvme136
|
268 |
|
|
|
269 |
|
|
RTEMS_CPU -- CPU architecture e.g.: i386, m68k
|
270 |
|
|
|
271 |
|
|
RTEMS_CPU_FAMILY -- CPU model e.g.: i486dx, m68020
|
272 |
|
|
|
273 |
|
|
RTEMS_ROOT -- The root of your source tree.
|
274 |
|
|
All other file names are derived from this.
|
275 |
|
|
[ eg: % setenv RTEMS_ROOT $HOME/work/RTEMS ]
|
276 |
|
|
|
277 |
|
|
RTEMS_CUSTOM -- name of your config files in make/custom
|
278 |
|
|
Example:
|
279 |
|
|
$(RTEMS_ROOT)/make/custom/$(RTEMS_BSP).cfg
|
280 |
|
|
|
281 |
|
|
The value RTEMS_ROOT is used in the custom
|
282 |
|
|
files to generate the make(1) variables:
|
283 |
|
|
|
284 |
|
|
PROJECT_RELEASE
|
285 |
|
|
PROJECT_BIN
|
286 |
|
|
PROJECT_INCLUDE
|
287 |
|
|
PROJECT_TOOLS
|
288 |
|
|
|
289 |
|
|
etc., which are used within the make config files themselves.
|
290 |
|
|
(The files in make/*.cfg try to avoid use of word RTEMS so
|
291 |
|
|
they can be more easily shared by other projects)
|
292 |
|
|
|
293 |
|
|
Preset variables
|
294 |
|
|
----------------
|
295 |
|
|
|
296 |
|
|
Aside from command names set by the OS and compiler config files,
|
297 |
|
|
a number of MAKE variables are automatically set and maintained by
|
298 |
|
|
the config files.
|
299 |
|
|
|
300 |
|
|
PROJECT_RELEASE
|
301 |
|
|
-- release/install directory
|
302 |
|
|
[ $(PROJECT_ROOT) ]
|
303 |
|
|
|
304 |
|
|
PROJECT_BIN
|
305 |
|
|
-- directory for installed binaries
|
306 |
|
|
[ $(PROJECT_ROOT)/bin ]
|
307 |
|
|
|
308 |
|
|
PROJECT_TOOLS
|
309 |
|
|
-- directory for build environment commands
|
310 |
|
|
[ eg: $(PROJECT_ROOT)/build-tools ]
|
311 |
|
|
|
312 |
|
|
ARCH -- target sub-directory for object code
|
313 |
|
|
[ eg: o-optimize or o-debug ]
|
314 |
|
|
|
315 |
|
|
VARIANTS -- full list of all possible values for $(ARCH);
|
316 |
|
|
used mainly for 'make clean'
|
317 |
|
|
[ eg: "o-optimize o-debug o-profile" ]
|
318 |
|
|
|
319 |
|
|
VARIANT_VA -- Variant name.
|
320 |
|
|
Normally "", but for 'make debug' it is "debug",
|
321 |
|
|
for 'make profile', "profile, etc.
|
322 |
|
|
|
323 |
|
|
see make/leaf.cfg for more info.
|
324 |
|
|
|
325 |
|
|
|
326 |
|
|
Preset compilation variables
|
327 |
|
|
----------------------------
|
328 |
|
|
|
329 |
|
|
This is a list of some of the compilation variables.
|
330 |
|
|
Refer to the compiler config files for the complete list.
|
331 |
|
|
|
332 |
|
|
CFLAGS_OPTIMIZE_V -- value of optimize flag for compiler
|
333 |
|
|
[ eg: -O ]
|
334 |
|
|
|
335 |
|
|
CFLAGS_DEBUG_V -- value of debug flag for compiler
|
336 |
|
|
[ eg: -g ]
|
337 |
|
|
|
338 |
|
|
CFLAGS_PROFILE_V -- compiler profile flags
|
339 |
|
|
[ eg: -pg ]
|
340 |
|
|
|
341 |
|
|
CFLAGS_DEBUG_OPTIMIZE_V
|
342 |
|
|
-- optimize flag if compiling for debug
|
343 |
|
|
[ eg: "" ]
|
344 |
|
|
|
345 |
|
|
CFLAGS_DEBUG
|
346 |
|
|
CFLAGS_PROFILE
|
347 |
|
|
CFLAGS_OPTIMIZE -- current values for each depending
|
348 |
|
|
on make variant.
|
349 |
|
|
|
350 |
|
|
LDFLAGS_STATIC_LIBRARIES_V
|
351 |
|
|
-- ld option for static libraries
|
352 |
|
|
-Bstatic or -dy (svr4)
|
353 |
|
|
|
354 |
|
|
LDFLAGS_SHARED_LIBRARIES_V
|
355 |
|
|
-- ld option for dynamic libraries
|
356 |
|
|
-Bdynamic or -dn (svr4)
|
357 |
|
|
|
358 |
|
|
Makefile Variables
|
359 |
|
|
------------------
|
360 |
|
|
|
361 |
|
|
The following variables may be set in a typical Makefile.
|
362 |
|
|
|
363 |
|
|
C_PIECES -- File names of your .c files without '.c' suffix.
|
364 |
|
|
[ eg: C_PIECES=main funcs stuff ]
|
365 |
|
|
|
366 |
|
|
CC_PIECES -- ditto, except for .cc files
|
367 |
|
|
|
368 |
|
|
S_PIECES -- ditto, except for .S files.
|
369 |
|
|
|
370 |
|
|
LIB -- target library name in leaf library makefiles.
|
371 |
|
|
[ eg: LIB=${ARCH}/libmine.a ]
|
372 |
|
|
|
373 |
|
|
H_FILES -- your .h files in this directory.
|
374 |
|
|
[ eg: H_FILES=stuff.h extra.h ]
|
375 |
|
|
|
376 |
|
|
DEFINES -- cc -D items. Included in CPPFLAGS.
|
377 |
|
|
leaf Makefiles.
|
378 |
|
|
[ eg: DEFINES += -DUNIX ]
|
379 |
|
|
|
380 |
|
|
CPPFLAGS -- -I include directories.
|
381 |
|
|
leaf Makefiles.
|
382 |
|
|
[ eg: CPPFLAGS += -I../include ]
|
383 |
|
|
|
384 |
|
|
LD_PATHS -- arguments to -L for ld.
|
385 |
|
|
Will be prefixed with '-L' or '-L ' as appropriate
|
386 |
|
|
and included in LDFLAGS.
|
387 |
|
|
|
388 |
|
|
LDFLAGS -- -L arguments to ld; more may be ADDed.
|
389 |
|
|
|
390 |
|
|
LD_LIBS -- libraries to be linked in.
|
391 |
|
|
[ eg: LDLIBS += ../libfoo/${ARCH}/libfoo.a ]
|
392 |
|
|
|
393 |
|
|
XCFLAGS -- "extra" CFLAGS for special needs. Pre-pended
|
394 |
|
|
to CFLAGS.
|
395 |
|
|
Not set or used by Makefiles.
|
396 |
|
|
Can be set on command line to pass extra flags
|
397 |
|
|
to the compiler.
|
398 |
|
|
|
399 |
|
|
XCPPFLAGS -- ditto for CPPFLAGS
|
400 |
|
|
Can be set on command line to pass extra flags
|
401 |
|
|
to the preprocessor.
|
402 |
|
|
|
403 |
|
|
XCCPPFLAGS -- same as XCPPFLAGS for C++.
|
404 |
|
|
|
405 |
|
|
XCCFLAGS -- same as XCFLAGS for C++.
|
406 |
|
|
|
407 |
|
|
SUBDIRS -- list of sub directories for make recursion.
|
408 |
|
|
directory Makefiles only.
|
409 |
|
|
[ eg: SUBDIRS=cpu bsp ]
|
410 |
|
|
|
411 |
|
|
CLEAN_ADDITIONS
|
412 |
|
|
-- list of files or directories that should
|
413 |
|
|
be deleted by 'make clean'
|
414 |
|
|
[ eg: CLEAN_ADDITIONS += y.tab.c ]
|
415 |
|
|
|
416 |
|
|
See 'leaf.cfg' for the 'clean:' rule and its
|
417 |
|
|
default deletions.
|
418 |
|
|
|
419 |
|
|
CLOBBER_ADDITIONS
|
420 |
|
|
-- list of files or directories that should
|
421 |
|
|
be deleted by 'make clobber'
|
422 |
|
|
Since 'make clobber' includes 'make clean',
|
423 |
|
|
you don't need to duplicate items in both.
|
424 |
|
|
|
425 |
|
|
Command names
|
426 |
|
|
-------------
|
427 |
|
|
|
428 |
|
|
The following commands should only be called
|
429 |
|
|
as make variables:
|
430 |
|
|
|
431 |
|
|
MAKE,INSTALL,INSTALL_VARIANT,SHELL
|
432 |
|
|
|
433 |
|
|
ECHO,CAT,CP,MV,LN,MKDIR,CHMOD
|
434 |
|
|
|
435 |
|
|
SED
|
436 |
|
|
|
437 |
|
|
CC,CPP,AS,AR,LD,NM,SIZE,RANLIB,MKLIB,
|
438 |
|
|
YACC,LEX,LINT,CTAGS,ETAGS
|
439 |
|
|
|
440 |
|
|
In addition, the following commands specifically support
|
441 |
|
|
the installation of libraries, executables, header files,
|
442 |
|
|
and other things that need to be installed:
|
443 |
|
|
|
444 |
|
|
INSTALL_CHANGE - install a file only if the source
|
445 |
|
|
file is actually different than
|
446 |
|
|
the installed copy or if there is
|
447 |
|
|
no installed copy. USAGE:
|
448 |
|
|
|
449 |
|
|
usage: install-if-change [ -vmV ] file [ file ... ] dest-directory-or-file
|
450 |
|
|
-v -- verbose
|
451 |
|
|
-V suffix -- suffix to append to targets (before any . suffix)
|
452 |
|
|
eg: -V _g would change 'foo' to 'foo_g' and
|
453 |
|
|
'libfoo.a' to 'libfoo_g.a'
|
454 |
|
|
-m mode -- mode for new file(s)
|
455 |
|
|
|
456 |
|
|
INSTALL_VARIANT - installs the built file using the
|
457 |
|
|
proper variant suffix (e.g. _g
|
458 |
|
|
for debug turns libmine.a into libmine_g.a)
|
459 |
|
|
This is implemented as a macro that
|
460 |
|
|
invokes install-if-change with the
|
461 |
|
|
appropriate -V argument setting.
|
462 |
|
|
|
463 |
|
|
Special Directory Makefile Targets
|
464 |
|
|
----------------------------------
|
465 |
|
|
|
466 |
|
|
all_WRAPUP
|
467 |
|
|
clean_WRAPUP
|
468 |
|
|
install_WRAPUP
|
469 |
|
|
clean_WRAPUP
|
470 |
|
|
clobber_WRAPUP
|
471 |
|
|
depend_WRAPUP
|
472 |
|
|
-- Specify additional commands for recursive
|
473 |
|
|
(directory level) targets.
|
474 |
|
|
|
475 |
|
|
This is handy in certain cases where you need
|
476 |
|
|
to do bit of work *after* a recursive make.
|
477 |
|
|
|
478 |
|
|
make/Templates
|
479 |
|
|
--------------
|
480 |
|
|
|
481 |
|
|
This directory contains Makefile and source file templates that
|
482 |
|
|
should help in creating or converting makefiles.
|
483 |
|
|
|
484 |
|
|
Makefile.leaf
|
485 |
|
|
Template leaf Makefiles.
|
486 |
|
|
|
487 |
|
|
Makefile.lib
|
488 |
|
|
Template leaf library Makefiles.
|
489 |
|
|
|
490 |
|
|
Makefile.dir
|
491 |
|
|
Template "directory" makefile.
|
492 |
|
|
|
493 |
|
|
|
494 |
|
|
|
495 |
|
|
|