makerules.4
上传用户:xiejiait
上传日期:2007-01-06
资源大小:881k
文件大小:22k
源码类别:

SCSI/ASPI

开发平台:

MultiPlatform

  1. . " @(#)makerules.4 1.2 97/02/14 Copyr 1996 J. Schilling
  2. . " System Manual page for makefile system
  3. . "
  4. .if t .ds a v'-0.55m'h'0.00n'z.h'0.40n'z.v'0.55m'h'-0.40n'a
  5. .if t .ds o v'-0.55m'h'0.00n'z.h'0.45n'z.v'0.55m'h'-0.45n'o
  6. .if t .ds u v'-0.55m'h'0.00n'z.h'0.40n'z.v'0.55m'h'-0.40n'u
  7. .if t .ds A v'-0.77m'h'0.25n'z.h'0.45n'z.v'0.77m'h'-0.70n'A
  8. .if t .ds O v'-0.77m'h'0.25n'z.h'0.45n'z.v'0.77m'h'-0.70n'O
  9. .if t .ds U v'-0.77m'h'0.30n'z.h'0.45n'z.v'0.77m'h'-.75n'U
  10. .if t .ds s (*b
  11. .if t .ds S SS
  12. .if n .ds a ae
  13. .if n .ds o oe
  14. .if n .ds u ue
  15. .if n .ds s sz
  16. .TH makefiles 4L "14. February 1997" "J*org Schilling" "Schily's FILE FORMATS"
  17. .".TH makerules 4L "14. February 1997" "J*org Schilling" "GMD FOKUS FILE FORMATS"
  18. .SH NAME
  19. makerules - system programmers guide for compiling projects on different platforms
  20. .SH SYNOPSIS
  21. .B "SRCROOT= .|.
  22. .br
  23. .B "RULESDIR= RULES
  24. .br
  25. .B "include $(SRCROOT)/$(RULESDIR)/rules.top
  26. .br
  27. .I "local defines are here
  28. .br
  29. .B "include $(SRCROOT)/$(RULESDIR)/rules.*
  30. .PP
  31. See chapter CURRENTLY SUPPORTED TARGET TYPES for possible values of
  32. .BR "rules.*" .
  33. .SH DESCRIPTION
  34. Makerules is a set of rules that allows compiling of structured
  35. projects with small and uniformly structured makefiles.
  36. All rules are located in a central directory.
  37. Compiling the projects on different platforms can be done without
  38. the need to modify any of the makefiles that are located
  39. in the projects directories.
  40. .PP
  41. Three make programs are currently supported:
  42. .IR "Sunpro make" , 
  43. .I "GNU make"
  44. and
  45. .IR smake .
  46. If you want to add support for other make programs, read the 
  47. sections about the minimum requirements for a make program
  48. and about the structure of the 
  49. .B "make rule 
  50. system.
  51. .PP
  52. This manual will help programmers who need to make modifications
  53. on the make rule system itself. If you want to know something 
  54. on how to use the 
  55. .B "makefile system
  56. have a look at 
  57. .BR makefiles (4).
  58. .PP
  59. The main design goal was to have no definition on more than place
  60. in the make rules. This implies that system programmers who
  61. want to add or modify rules must follow this goal in order not to
  62. destroy functionality in other places.
  63. .PP
  64. The visible result for the user is a set of small and easy to read
  65. makefiles, each located in the project's leaf directory and therefore 
  66. called
  67. .IR leaf -makefile.
  68. .PP
  69. Each of these 
  70. .IR leaf -makefiles,
  71. in fact contains no rule at all. It simply defines some macros
  72. for the 
  73. .IR make -program
  74. and includes two files from a central make rule depository.
  75. These included files define the rules that are needed to compile
  76. the project.
  77. .PP
  78. Each 
  79. .IR leaf -makefile
  80. is formed in a really simple way:
  81. .TP
  82. (bu
  83. It first defines two macros that define the relative location
  84. of the project's root directory and the name of the directory
  85. that contains the complete set of of rules and then includes
  86. the rule file 
  87. .I rules.top
  88. from the directory that forms the central rule depository.
  89. You only have to edit the macro
  90. .I SRCROOT
  91. to reflect the relative location of the project's root directory.
  92. .TP
  93. (bu
  94. The next part of a 
  95. .IR leaf -makefile
  96. defines macros that describe the target and the source.
  97. You can only have one target per 
  98. .IR leaf -makefile.
  99. Of course, there may be many source files, that are needed to create
  100. that target.
  101. If you want to make more than one target in a specific directory,
  102. you have to put more than one makefile into that directory.
  103. This is the part of a makefile that describes a unique target.
  104. Edit this part to contain all source files, all local include files
  105. and all non global compile time flags that are needed for your target.
  106. For a typical target this is as simple as filling in a form.
  107. .TP
  108. (bu
  109. Each
  110. .IR leaf -makefile
  111. finally includes a file from the rules directory that contains
  112. rules for the appropriate type of target that is to be made
  113. from this 
  114. .IR leaf -makefile.
  115. .PP
  116. The makefile in each directory has to be called
  117. .IR Makefile .
  118. If you want to have more than one makefile in a specific directory,
  119. you have to choose different names for the other makefiles.
  120. .SH "Currently Supported Target Types
  121. .PP
  122. There are rules for the following type of targets:
  123. .TP 20
  124. commands
  125. The make rules for user level commands like
  126. .IR cat ", " ls 
  127. etc. are located in the file 
  128. .I rules.cmd
  129. .TP
  130. drivers
  131. The make rules for device drivers
  132. are located in the file 
  133. .I rules.drv
  134. .TP
  135. libraries
  136. The make rules for non shared libraries
  137. are located in the file 
  138. .I rules.lib
  139. .TP
  140. shared libraries
  141. The make rules for shared libraries
  142. are located in the file 
  143. .I rules.shl
  144. .TP
  145. localized files
  146. The make rules for localized files
  147. are located in the file 
  148. .I rules.loc
  149. .TP
  150. nonlocalized files
  151. The make rules for non localized files
  152. are located in the file 
  153. .I rules.aux
  154. .TP
  155. shell scripts
  156. The make rules for shell scripts (a variant of localized files)
  157. are located in the file 
  158. .I rules.scr
  159. .TP
  160. manual pages
  161. The make rules for manual pages (a variant of localized files)
  162. are located in the file 
  163. .I rules.man
  164. .TP
  165. diverted makefiles
  166. The make rules for projects that need to have more than
  167. one makefile in a specific directory
  168. are located in the file 
  169. .I rules.mks
  170. It contains a rule that diverts to the listed sub makefiles.
  171. Each sub makefile may be of any type.
  172. .TP
  173. directories
  174. The make rules for sub directories
  175. are located in the file 
  176. .I rules.dir
  177. .SH "Minimum Requirements For A Make Program
  178. The make rules currently have support for
  179. .IR "Sunpro make" , 
  180. .I "GNU make"
  181. and
  182. .IR smake .
  183. If you like to add support for other make programs, 
  184. they need to have some minimal features that go
  185. beyond the capabilities of the standard 
  186. .SM "UNIX
  187. .B make
  188. program.
  189. .I BSDmake
  190. could be supported if it supports pattern matching rules correctly.
  191. .TP 20
  192. include
  193. The make program must be able to recursively include other files
  194. from within a 
  195. .I makefile.
  196. The name if the file to include must be allowed to be a macro.
  197. The make program must be able to do this in a way that
  198. if the file that should be included may be a result of make rule.
  199. e.g if the file to be included does not exist or is outdated,
  200. it should be built before an attempt is made to actually include it.
  201. .TP
  202. appending to a macro
  203. A macro reference of the form:
  204. .sp
  205. .B "macro += addval
  206. .sp
  207. should append
  208. .B addval
  209. to the string that is currently in
  210. .BR macro .
  211. .TP
  212. suffix macro replacement
  213. A macro reference of the form:
  214. .sp
  215. .B "out= $(macro|:|string1|=|string2)
  216. .sp
  217. should replace a suffix
  218. .I string1
  219. to
  220. .I string2
  221. in all words that are in
  222. .BR macro ,
  223. where string1 is either a suffix, or a word to be replaced
  224. in the macro definition, and string2 is the replacement 
  225. suffix or word.
  226. .I String1
  227. and
  228. .I string2
  229. must be replaced correctly even if they are macros themselves.
  230. Words in a macro value are separated by SPACE, 
  231. TAB, and escaped NEWLINE characters.
  232. .TP
  233. pattern macro replacement
  234. A macro reference of the form:
  235. .sp
  236. .B "out= $(macro|:|op%os|=|np%ns)
  237. .sp
  238. should replace a central pattern in 
  239. .BR macro ,
  240. where 
  241. .B op 
  242. is the existing (old) prefix and 
  243. .B os
  244. is the existing
  245. (old) suffix,
  246. .B np 
  247. and 
  248. .B ns 
  249. are the new prefix and new suffix,
  250. respectively, and the pattern matched by % (a string of zero
  251. or more characters), is carried forward from the value being
  252. replaced.
  253. For example:
  254. .sp
  255. .B "PROGRAM=fabricate
  256. .br
  257. .B "DEBUG= $(PROGRAM:%=tmp/%-g)
  258. .sp
  259. sets the value of DEBUG to tmp/fabricate-g.
  260. .IR Op ", " os ", " 
  261. .IR np " and " ns
  262. must be replaced correctly even if they are macros themselves.
  263. .SH "Understanding Basic Algorithms
  264. One of the basic algorithms used in the make rule system
  265. is needed to set an undefined macro to a guaranteed default value.
  266. Because not all make programs have support for
  267. .I "if then else
  268. structures, a different method has to be used.
  269. .PP
  270. The method used in
  271. .B "make rules
  272. is implemented by using
  273. .B "suffix macro replacement
  274. and
  275. .BR "pattern macro replacement" .
  276. .PP
  277. .ne 5
  278. First, a macro that contains a unique suffix is defined:
  279. .sp
  280. .B " # Define magic unique cookie
  281. .br
  282. .B " _UNIQ=  .XxZzy-
  283. .sp
  284. This macro is used for all places where it is necessary to have
  285. a macro with a guaranteed default value.
  286. The following example shows the basic algorithm that is used to
  287. implement the phrase:
  288. .B If 
  289. .I $(MAKE_NAME)
  290. contains a value, 
  291. .B then
  292. .I $(XMAKEPROG)
  293. will be set to
  294. .I $(MAKE_NAME)
  295. .B else
  296. .I $(XMAKEPROG)
  297. will be set to
  298. .IR $(MAKEPROG) .
  299. .sp
  300. .B " _MAKEPROG= $(_UNIQ)$(MAKE_NAME)
  301. .br
  302. .B " __MAKEPROG= $(_MAKEPROG:$(_UNIQ)=$(MAKEPROG))
  303. .br
  304. .B " XMAKEPROG= $(__MAKEPROG:$(_UNIQ)%=%)
  305. .sp
  306. The first line in this example, sets the macro
  307. .I _MAKEPROG
  308. to the concatenation of the value of
  309. .I MAKE_NAME
  310. and
  311. .BR .XxZzy- .
  312. If the macro
  313. .I MAKE_NAME
  314. is empty at this time, 
  315. .I _MAKEPROG
  316. will contain only 
  317. .BR .XxZzy- .
  318. .PP
  319. In the second line, 
  320. .I __MAKEPROG
  321. is set to the value of
  322. .IR _MAKEPROG .
  323. If 
  324. .I _MAKEPROG
  325. contains only 
  326. .B .XxZzy-
  327. this implies, that
  328. .B .XxZzy-
  329. is the suffix. This suffix is then replaced
  330. by the value of
  331. .IR MAKEPROG ,
  332. in this case
  333. .I __MAKEPROG
  334. will contain the unmodified value of
  335. .IR MAKEPROG .
  336. If 
  337. .I _MAKEPROG
  338. contains a concatenation of
  339. .B .XxZzy-
  340. and something else, 
  341. .B .XxZzy-
  342. will not be a suffix, but a prefix of 
  343. .I _MAKEPROG
  344. and for this reason
  345. .I __MAKEPROG
  346. will contain the unmodified value of
  347. .IR _MAKEPROG ,
  348. which is a concatenation of
  349. .B .XxZzy-
  350. and the value of
  351. .IR MAKE_NAME .
  352. .PP
  353. In the third line, 
  354. .I XMAKEPROG
  355. is set to the value of
  356. .IR __MAKEPROG .
  357. If 
  358. .I __MAKEPROG
  359. has the prefix
  360. .B .XxZzy- 
  361. at this time, 
  362. .B .XxZzy-
  363. is stripped of.
  364. .SH "The Structure in Make Macro names
  365. .PP
  366. The names used for 
  367. .B "make macros
  368. are structured in a way that allows to use 
  369. .BR grep (1)
  370. to look for the names in the 
  371. .B make rules.
  372. To allow this, no name must be a substring of another name.
  373. .PP
  374. If a command needs options that have to be specified
  375. in macros, there is a 
  376. .B "make macro
  377. that is named
  378. .I XXXFLAGS.
  379. This is compliant to usual make file rules.
  380. The are internal 
  381. .B "make macros
  382. called
  383. .I XXXOPTS
  384. and
  385. .I XXXOPTX
  386. that will be combined for 
  387. .IR XXXFLAGS :
  388. .sp
  389. .B "LDFLAGS= $(LDOPTS) $(LDOPTX)
  390. .sp
  391. Where 
  392. .I XXXOPTS
  393. is the name of the macro that is used internally
  394. and 
  395. .I XXXOPTX
  396. is the name of the macro that may be used from the
  397. command line of the make program.
  398. .I XXXOPTX
  399. therefore is used to append to the content of 
  400. .I XXXFLAGS
  401. If the value of
  402. .I XXXFLAGS
  403. need to be overwritten, 
  404. .I XXXOPTS
  405. may be used within the command line flags of the make program.
  406. .SH "The Structure Of The Make Rule System
  407. .SH "The Structure Of The Basic Rules in rules.top
  408. The file 
  409. .B RULES/rules.top
  410. first includes a rule file that depends on the 
  411. make program that is used.
  412. The name of this file is
  413. .BI RULES/mk- makeprog .id
  414. where
  415. .I makeprog
  416. has to be replaced by the real name of
  417. the makeprogram e.g.
  418. .BR make ", " gmake ", " smake .
  419. The purpose of this file is to set up a list of macros
  420. that identify the system where the project is currently built.
  421. These macros have values that contain only lower case letters and define:
  422. .TP 28
  423. the processor architecture
  424. If two systems run the same operating system, this
  425. is a unique value if a simple user level program will
  426. not need to be recompiled in order to run on the other system.
  427. Possible values are 
  428. .BR sparc ", " mc68020 ", " pentium .
  429. This is the output of
  430. .BR "uname -p" .
  431. The value is stored in
  432. .BR P_ARCH .
  433. .TP
  434. the kernel architecture
  435. If two systems may use the same value for 
  436. .B P_ARCH
  437. but a heavily system dependent user level program
  438. need to be recompiled in order to run on the other
  439. system, These two systems have different 
  440. kernel architectures.
  441. This is the output of
  442. .BR "uname -m" .
  443. Possible values are 
  444. .BR sun3 ", " sun4c ", " sun4m .
  445. The value is stored in
  446. .BR K_ARCH .
  447. .TP
  448. the machine architecture
  449. An outdated macro that is useful only on sun systems.
  450. Do not use this, use 
  451. .B P_ARCH 
  452. instead.
  453. This is the output of
  454. .BR arch .
  455. Possible values are 
  456. .BR sun3 ", " sun4 .
  457. The value is stored in
  458. .BR M_ARCH .
  459. .TP
  460. the hostname
  461. The name of the machine where the compilation takes place.
  462. This is the output of
  463. .BR "uname -n" .
  464. The value is stored in
  465. .BR HOSTNAME .
  466. .TP
  467. the name of the operating system
  468. This is the output of
  469. .BR "uname -s" .
  470. Possible values are 
  471. .BR sunos ", " dgux ", " hp-ux ", " irix .
  472. The value is stored in
  473. .BR OSNAME .
  474. .TP
  475. the release of the operating system
  476. This is the output of
  477. .BR "uname -r" .
  478. Possible values are 
  479. .BR 5.5 ", " 4.1.4 .
  480. The value is stored in
  481. .BR OSREL .
  482. .PP
  483. The next file to be included from
  484. .B RULES/rules.top
  485. is
  486. .BI RULES/os- "operating system" .id .
  487. It defines the macros
  488. .B O_ARCH
  489. and
  490. .B -O_ARCH 
  491. and may modify one of the macros that are defined
  492. in
  493. .BI RULES/mk- makeprog .id .
  494. The macros
  495. .B O_ARCH
  496. and
  497. .B -O_ARCH 
  498. are used to distinguish between different operating systems.
  499. The names of the compiler configuration files have
  500. .B -O_ARCH 
  501. as a central part.
  502. On some operating systems e.g. 
  503. .B SunOS
  504. and
  505. .B DG-UX
  506. it is necessary to distinguish between 
  507. .B "SunOS 4.x
  508. and
  509. .B "SunOS 5.x
  510. or
  511. .B "DG-UX 3.x
  512. and 
  513. .B "DG-UX 4.x.
  514. .PP
  515. The next file to be included from
  516. .B RULES/rules.top
  517. is
  518. .BR Defaults .
  519. It defines the macros
  520. .B DEFCCOM
  521. ,
  522. .B DEFINCDIRS
  523. ,
  524. .B LDPATH
  525. ,
  526. .B RUNPATH
  527. ,
  528. .B INS_BASE
  529. and 
  530. .BR INS_KBASE .
  531. If the definitions have to be different on
  532. different systems, this file may contain a line int the form:
  533. .sp
  534. .BI include  " $(SRCROOT)" /Defaults. $(O_ARCH)
  535. .sp
  536. The actual definitions then have to be moved into
  537. these files.
  538. .PP
  539. Next, after setting up some internal defaults,
  540. .B RULES/rules.top
  541. includes the compiler configuration file with
  542. the name:
  543. .sp
  544. .I $(SRCROOT)/$(RULESDIR)/$(XARCH).rul
  545. .sp
  546. This file contains all necessary 
  547. .B system dependent 
  548. stuff that is needed to configure the C-compiler 
  549. on the appropriate system.
  550. It is a bad idea to create a new one from scratch.
  551. Have a look at the other compiler configuration
  552. files and modify a similar file for your needs.
  553. Note that there are basically two criterias to
  554. that are important in a compiler configuration file.
  555. One is whether the system uses the
  556. .I ELF
  557. header format or not. 
  558. The other is whether the system uses
  559. .I shared libraries
  560. or not.
  561. .SH "The Structure Of The Application Specific Rules
  562. .PP
  563. The application specific rule files are designed in
  564. such a way that they include all necessary stuff that
  565. is needed for that specific task. The application specific
  566. rule files are:
  567. .TP 25
  568. $(RULES)/rules.aux
  569. Rules for installing non localized auxiliary files.
  570. .TP
  571. $(RULES)/rules.cmd
  572. Rules for commands like 
  573. .I sh.
  574. .TP
  575. $(RULES)/rules.dir
  576. Rules for sub directories.
  577. .TP
  578. $(RULES)/rules.drv
  579. Rules for lodable drivers.
  580. .TP
  581. $(RULES)/rules.lib
  582. Rules for static libraries.
  583. .TP
  584. $(RULES)/rules.loc
  585. Rules for installing localized auxiliary files.
  586. .TP
  587. $(RULES)/rules.man
  588. Rules for installing localized manual pages.
  589. .TP
  590. $(RULES)/rules.mks
  591. Rules for sub makefiles.
  592. .TP
  593. $(RULES)/rules.mod
  594. Rules for lodable stream modules.
  595. .TP
  596. $(RULES)/rules.scr
  597. Rules for installing localized shell scripts.
  598. .TP
  599. $(RULES)/rules.shl
  600. Rules for shared libraries.
  601. .SH "Understanding The Structure Of The Make Rule System
  602. .PP
  603. To understand the structure of the 
  604. .B "make rule
  605. system while doing changes, try to use the 
  606. .B -xM
  607. flag
  608. in the
  609. .B smake
  610. program.
  611. This flag will print out the include dependency list
  612. (i.e. a list that tell you which make rules is included
  613. from which other rule).
  614. .PP
  615. Note that some of the rules are make program dependent.
  616. If you want to make changes to these rules you may need to
  617. place the definitions into separate rule files
  618. each for the appropriate make program.
  619. Have a look into the
  620. .B RULES
  621. directory
  622. for some examples.
  623. .SH FILES
  624. &.|.|./RULES/*
  625. .br
  626. &.|.|./DEFAULTS/*
  627. .br
  628. &.|.|./TARGETS/*
  629. .br
  630. &.|.|./TEMPLATES/*
  631. .SH "SEE ALSO"
  632. .BR makefiles (4),
  633. .BR make (1),
  634. .BR gmake (1),
  635. .BR smake (1).
  636. .SH DIAGNOSTICS
  637. Diagnostic messages depend on the make program.
  638. Have a look at the appropriate man page.
  639. .SH NOTES
  640. .PP
  641. The make rules
  642. can be used with 
  643. .IR "Sunpro make" ", " "Gnu make"
  644. and 
  645. .IR smake .
  646. Although Gnu make runs on many platforms, it has no useful debug
  647. output.
  648. .PP
  649. Use
  650. .IR "Sunpro make" " or " "smake"
  651. if you have problems with a makefile.
  652. .IR "Sunpro make" " and " "smake" ,
  653. both have a -D flag, that allows you to watch the makefiles
  654. after the first expansion. Use this option, if you are in doubt
  655. if your makefile gets expanded the right way and if the right
  656. rules are included.
  657. There is also a -d option that gives debugging output while 
  658. make is running. If you want more output, use -dd, -ddd and so on.
  659. .PP
  660. .I Smake
  661. has an option -xM that shows you the include dependency for
  662. make rules.
  663. .SH BUGS
  664. .SH "Source Tree Hierarchy
  665. .LP
  666. The following outline gives a quick tour through a typical
  667. source hierarchy:
  668. .LP
  669. .na
  670. .nh
  671. .PD 0
  672. .TP
  673. .B .../
  674. root directory of the source tree
  675. .
  676. .RS
  677. .TP
  678. .B Makefile
  679. the top Makefile
  680. .TP
  681. .B Defaults
  682. default definitions for that source tree. System dependent
  683. definitions are in 
  684. .B .../DEFAULTS/
  685. .TP
  686. .B Targetdirs
  687. a file containing a list of directories that are needed
  688. for that project.
  689. If the system needs different target lists depending
  690. on the target system architecture , use target specific files in
  691. .B .../TARGETS/
  692. .TP
  693. &.|.|.
  694. .RE
  695. .
  696. .TP
  697. .B .../RULES/
  698. the location of makefiles (included rules)
  699. .
  700. .RS
  701. .TP
  702. .B rules.top
  703. the mandatory include rules (needed to setup basic rules)
  704. .TP
  705. .B rules.aux
  706. rules needed to install a non localized auxiliary file
  707. .TP
  708. .B rules.cmd
  709. rules needed to make an ordinary command (like /bin/sh)
  710. .TP
  711. .B rules.drv
  712. rules needed to make a device driver
  713. .TP
  714. .B rules.lib
  715. rules needed to make a standard (nonshared) library
  716. .TP
  717. .B rules.loc
  718. rules needed to install a localized auxiliary file
  719. .TP
  720. .B rules.man
  721. rules needed to install a localized manual page
  722. .TP
  723. .B rules.scr
  724. rules needed to install a localized shell script
  725. .TP
  726. .B rules.shl
  727. rules needed to make a shared library
  728. .TP
  729. .B rules.mks
  730. rules needed to make more than one target in a specific directory
  731. .TP
  732. .B rules.dir
  733. rules needed to make targets that are located in sub directories
  734. to the current directory
  735. .TP
  736. &.|.|.
  737. .RE
  738. .
  739. .TP
  740. .B .../DEFAULTS/
  741. default definitions for various target architectures are
  742. located in this directory. Templates for some architectures can
  743. be found in the
  744. .I .../TEMPLATES/
  745. directory.
  746. .TP
  747. .B .../TARGETS/
  748. target list definitions for various target architectures are
  749. located in this directory.
  750. .TP
  751. .B .../TEMPLATES/
  752. templates that should be used inside the project
  753. (rename to Makefile, if it is the only makefile on that directory, 
  754. rename to
  755. .I target.mk,
  756. if there is more than one target in that directory)
  757. .
  758. .RS
  759. .TP
  760. .B Defaults
  761. Defaults file for the source root directory
  762. .TP
  763. .B Defaults.linux
  764. Defaults file for 
  765. .IR linux .
  766. This sould be installed in the 
  767. .B .../DEFAULTS/
  768. directory.
  769. .TP
  770. .B Makefile.root
  771. Makefile for the source root directory
  772. .TP
  773. .B Makefile.aux
  774. Makefile for a non localized auxiliary file
  775. .TP
  776. .B Makefile.cmd
  777. Makefile for an ordinary command (like /bin/sh)
  778. .TP
  779. .B Makefile.lib
  780. Makefile for a standard (nonshared) library
  781. .TP
  782. .B Makefile.loc
  783. Makefile for a localized auxiliary file
  784. .TP
  785. .B Makefile.man
  786. Makefile for a localized manual page
  787. .TP
  788. .B Makefile_de.man
  789. Makefile for a localized manual page in the german locale
  790. .TP
  791. .B Makefile.scr
  792. Makefile for a localized shell script
  793. .TP
  794. .B Makefile.shl
  795. Makefile for a shared library
  796. .TP
  797. .B Makefile.drv
  798. Makefile for a device driver
  799. .TP
  800. .B Makefile.mks
  801. Makefile for more than one target in a specific directory
  802. .TP
  803. .B Makefile.dir
  804. Makefile for targets that are located in sub directories
  805. to the current directory
  806. .TP
  807. &.|.|.
  808. .RE
  809. .
  810. .TP
  811. .B .../cmd/
  812. source tree for normal commands
  813. .
  814. .RS
  815. .TP
  816. .B Makefile
  817. the makefile for the 
  818. .I cmd 
  819. sub directory
  820. .TP
  821. .B Targetdirs.sun4m
  822. a file containing a list of directories like 
  823. .I myprog 
  824. (see below) that are needed
  825. for that specific architecture.
  826. .TP
  827. .B myprog/
  828. directory where the sources for a specific command are located
  829. .
  830. .RS
  831. .TP
  832. Makefile
  833. makefile for
  834. .I myprog
  835. .TP
  836. Makefile.man
  837. makefile for the manual page of
  838. .I myprog
  839. .TP
  840. mprog.c
  841. source for myprog
  842. .TP
  843. mprog.tr
  844. troff source for the manual page of myprog
  845. .TP
  846. .B OBJ/
  847. directory where system specific sub directories are located
  848. .
  849. .RS
  850. .TP
  851. .B sparc-sunos5-cc/
  852. directory for binaries that belong to a specific system
  853. .TP
  854. &.|.|.
  855. .RE
  856. .TP
  857. &.|.|.
  858. .RE
  859. .br
  860. .TP
  861. &.|.|.
  862. .RE
  863. .br
  864. .ne 5
  865. .TP
  866. .B .../lib/
  867. directory where the sources for a libraries are located
  868. .
  869. .RS
  870. .TP
  871. .B Makefile
  872. the makefile for the 
  873. .I lib 
  874. sub directory
  875. .TP
  876. .B Targetdirs.sun4m
  877. a file containing a list of directories like 
  878. .I libfoo
  879. (see below) that are needed
  880. for that specific architecture.
  881. .TP
  882. .B libfoo/
  883. directory where all source files for libfoo are located
  884. .TP
  885. &.|.|.
  886. .RE
  887. .
  888. .TP
  889. .B .../kernel
  890. directory for kernel modules
  891. .
  892. .RS
  893. .TP
  894. .B Makefile
  895. the makefile for the 
  896. .I kernel
  897. sub directory
  898. .TP
  899. .B Targetdirs.sun4m
  900. a file containing a list of directories like 
  901. .I drv 
  902. (see below) that are needed
  903. for that specific architecture.
  904. .TP
  905. .B drv/
  906. directory where drivers are located
  907. .
  908. .RS
  909. .TP
  910. .B Makefile
  911. the makefile for the 
  912. .I drv
  913. sub directory
  914. .TP
  915. .B Targetdirs.sun4m
  916. a file containing a list of directories like 
  917. .I mydrv
  918. (see below) that are needed
  919. for that specific architecture.
  920. .TP
  921. .B mydrv/
  922. source for a specific driver
  923. .TP
  924. &.|.|.
  925. .RE
  926. .
  927. .TP
  928. &.|.|.
  929. .RE
  930. .
  931. .TP
  932. .B .../include
  933. directory for global include files that are used in that project
  934. .
  935. .TP
  936. .B .../bins
  937. directory for binary programs that are created/needed while compiling
  938. the project
  939. .RS
  940. .TP
  941. .B sparc-sunos5-cc/
  942. directory for binaries that belong to a specific system
  943. .TP
  944. &.|.|.
  945. .RE
  946. .
  947. .TP
  948. .B .../libs
  949. directory for libraries that are created/needed while compiling
  950. the project
  951. .RS
  952. .TP
  953. .B sparc-sunos5-cc/
  954. directory for libraries that belong to a specific system
  955. .TP
  956. &.|.|.
  957. .RE
  958. .
  959. .TP
  960. .B .../incs
  961. directory for include files that are created/needed while compiling
  962. the project
  963. .RS
  964. .TP
  965. .B sparc-sunos5-cc/
  966. directory for include files that belong to a specific system
  967. .TP
  968. &.|.|.
  969. .RE
  970. .TP
  971. &.|.|.
  972. .RE
  973. .
  974. .ad
  975. .PD
  976. .SH AUTHOR
  977. .nf
  978. J*org Schilling
  979. Seestr. 110
  980. D-13353 Berlin
  981. Germany
  982. .fi
  983. .PP
  984. Mail bugs and suggestions to:
  985. .PP
  986. .B
  987. joerg@schily.isdn.cs.tu-berlin.de
  988. or
  989. .B
  990. js@cs.tu-berlin.de
  991. or
  992. .B
  993. jes@fokus.gmd.de