home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / ddkx86v5.zip / DDKX86 / SRC / ISOFONTS / MAKEFILE < prev    next >
Text File  |  1995-04-14  |  10KB  |  270 lines

  1. #******************************************************************************
  2. #  Makefile for the FONTS directory
  3. #
  4. #       SCCSID = @(#)makefile   6.7 92/02/25
  5. #
  6. #       IBM/Microsoft Confidential
  7. #
  8. #       Copyright (c) IBM Corporation 1987, 1989
  9. #       Copyright (c) Microsoft Corporation 1987, 1989
  10. #
  11. #       All Rights Reserved
  12. #
  13. #******************************************************************************
  14.  
  15. # This is a makefile template to be used for an OS/2 Component makefile.
  16. # The purpose of this template is to outline all the areas and items
  17. # that need to be covered. The following are some of those items
  18. #
  19. #     Handle Non Specific Machine Layouts - This will make the makefile
  20. #     -----------------------------------   more generic and portable
  21. #                                           regardless of the development
  22. #                                           tree. Macros should have
  23. #                                           relative paths to information
  24. #                                           in order for the makefiles to be
  25. #                                           more portable.
  26. #
  27. #
  28. #     National Language Support          -  The makefile will have to
  29. #     -------------------------             support all national language
  30. #                                           versions.  This applies to all
  31. #                                           modules that will contain trans-
  32. #                                           lations even if that translation
  33. #                                           is not the result of specific MRI
  34. #                                           which is part of the component.
  35. #
  36. #     Environment Setup                   - The makefile will setup the
  37. #     -----------------                     environment (ie. paths to tools,
  38. #                                           etc). This will insure that
  39. #                                           people involved can use the
  40. #                                           makefile without worrying
  41. #                                           about their local environment.
  42. #
  43. #     Use of Inline Response Files        - The makefile will dynamically
  44. #     ----------------------------          generate linker response files,
  45. #                                           def files etc. to support NLS,
  46. #                                           MMIO and other build variations.
  47. #
  48. # The following is a list of the order in which the makefile should be written.
  49. #
  50. #     Dot Directives - ie.
  51. #        .SUFFIXES:
  52. #        .SILENT:
  53. #        .IGNORE:
  54. #        .PRECIOUS:
  55. #
  56. #     Environment Setup
  57. #        Conditional setup and user defined macros
  58. #        Compiler Location w/ includes, libs and tools etc.
  59. #        Compiler/tools Macros
  60. #        Compiler/tools Options
  61. #        Additional user defined macros
  62. #
  63. #      Rules for Compiling and assembling
  64. #        .c.obj
  65. #        .asm.obj
  66. #        .exe.com
  67. #
  68. #      Common target information "common.mak" for dependency generation and
  69. #      nls processing
  70. #
  71. #      User Target Information
  72. #         all
  73. #         debug
  74. #
  75. #      Specific Description Blocks
  76. #
  77. #      Description block for dynamic dependencies generation "depend.mak"
  78. #
  79. #      Indirect Dependencies for SOURCE "depend.mak"
  80. #         .obj:   .c .h .inc
  81. #
  82. # It is very important to have the makefile in the above order to make both
  83. # the developers job and the build departments job that much easier.
  84. #
  85. # ******  NOTE  ******
  86. #
  87. #   Please make sure that the MAKEFILE is documented. There have been many
  88. #   occasions that someone other then people working on your component have
  89. #   had a chance to inquire about what the dependencies are and what files
  90. #   are created as a result.
  91. #
  92. #   The makefile should be a document in itself. It will discribe how to
  93. #   to create the component. It is VERY inportant that any special
  94. #   consideration be documented. The following is an example of a problem
  95. #   and its documentation.
  96. #
  97. #        If you are using a SED command with TAB characters, many editors
  98. #        will expand tabs causing unpredictable results in other programs.
  99. #
  100. #        Documentation:
  101. #
  102. #        Using SED command with TABS. Besure to invoke set tab save option
  103. #        on your editor. If you don't, the program 'xyz' will not work
  104. #        correctly.
  105. #
  106.  
  107. #****************************************************************************
  108. #  Dot directive definition area (usually just suffixes)
  109. #****************************************************************************
  110.  
  111. .SUFFIXES: .obj .exe .c .asm .h .inc .rc .res .lnk .fon
  112.  
  113. #
  114. # Compiler Location w/ includes, libs and tools
  115. #
  116.  
  117.  
  118. INC = ..\..\inc
  119. LIB =..\..\..\lib
  120. H = ..\..\h
  121. TOOLSPATH = ..\..\tools
  122.  
  123. #
  124. # Since the compiler/linker and other tools use environment
  125. # variables ( INCLUDE, LIB, etc ) in order to get the location of files,
  126. # the following line will check the environment for the LIFE of the
  127. # makefile and will be specific to this set of instructions. All MAKEFILES
  128. # are requested to use this format to insure that they are using the correct
  129. # level of files and tools.
  130. #
  131.  
  132. !if [set INCLUDE=$(H);$(INC)] || [set LIB=$(LIB)] || [set PATH=$(TOOLSPATH)]
  133. !endif
  134.  
  135. #
  136. # Compiler/tools Macros
  137. #
  138.  
  139. AS = masm
  140. LINK = link386
  141. RC = rc
  142.  
  143. #****************************************************************************
  144. # Set up Macros that will contain all the different dependencies for the
  145. # executables and dlls etc. that are generated.
  146. #****************************************************************************
  147.  
  148. COUR096  = COU08VGC.FNT COU09VGC.FNT COU10VGC.FNT COU12VGC.FNT
  149.  
  150. COUR120  = COU08BGC.FNT COU10BGC.FNT COU12BGC.FNT
  151.  
  152. HELV096  = HEL08VGC.FNT HEL09VGC.FNT HEL10VGC.FNT HEL12VGC.FNT \
  153.            HEL14VGC.FNT HEL18VGC.FNT HEL24VGC.FNT
  154.  
  155. HELV096B = HEL08VGC.FNT HEL09VGC.FNT HEL10BXC.FNT HEL12BXC.FNT \
  156.            HEL14BXC.FNT HEL18VGC.FNT HEL24VGC.FNT
  157.  
  158. HELV120  = HEL08BGC.FNT HEL09BGC.FNT HEL10BGC.FNT HEL12BGC.FNT \
  159.            HEL14BGC.FNT HEL18BGC.FNT HEL24BGC.FNT
  160.  
  161. TMS096   = TMS08VGC.FNT TMS09VGC.FNT TMS10VGC.FNT TMS12VGC.FNT \
  162.            TMS14VGC.FNT TMS18VGC.FNT TMS24VGC.FNT
  163.  
  164. TMS120   = TMS08BGC.FNT TMS10BGC.FNT TMS12BGC.FNT TMS14BGC.FNT \
  165.            TMS18BGC.FNT TMS24BGC.FNT
  166.  
  167. SYSMONO  = MON10VGC.FNT MON10BGC.FNT SYS09VGC.FNT
  168.  
  169. HELVI    = $(HELV096) $(HELV120)
  170.  
  171. COURIERI = $(COUR096) $(COUR120)
  172.  
  173. TIMESI   = $(TMS096) $(TMS120)
  174.  
  175. #DSPRES   = SYS10VGO.FNT SYS10BGO.FNT SYS12BGO.FNT \
  176. #           SYS10VGC.FNT SYS10BGC.FNT SYS12BGC.FNT VIO0512C.FNT \
  177. DSPRES   = SYS10VGO.FNT SYS10BGO.FNT SYS12BGO.FNT SYS10VGC.FNT \
  178.            SYS10BGC.FNT SYS12BGS.FNT SYS14BGS.FNT VIO0512C.FNT \
  179.            VIO0516C.FNT VIO0610C.FNT VIO0614C.FNT VIO0715C.FNT \
  180.            VIO0725C.FNT VIO0808C.FNT VIO0810C.FNT VIO0812C.FNT \
  181.            VIO0814C.FNT VIO0816C.FNT VIO0818C.FNT VIO1018C.FNT \
  182.            VIO1216C.FNT VIO1220C.FNT VIO1222C.FNT VIO1230C.FNT 
  183.  
  184.  
  185. ALLFONTS = HELVI.FON COURIERI.FON TIMESI.FON SYSMONO.FON \
  186.            HELV096B.FON  DSPRES.DLL
  187.  
  188. #****************************************************************************
  189. #   Setup the inference rules for compiling and assembling source code to
  190. #   obejct code.
  191. #****************************************************************************
  192.  
  193. .asm.obj:
  194.         $(AS) $*;
  195.  
  196. .lnk.fon:
  197.         $(LINK) @$*.lnk
  198.         $(RC) -x -p $*.rc $*.fon
  199.  
  200. .lnk.dll:
  201.         $(LINK) @$*.lnk
  202.         $(RC) -x -p $*.rc $*.dll
  203.  
  204. #****************************************************************************
  205. #   Target Information
  206. #****************************************************************************
  207. #
  208. # This is a very important step. The following small amount of code MUST
  209. # NOT be removed from the program. The following directive will do
  210. # dependency checking every time this component is built UNLESS the
  211. # following is performed:
  212. #                    A specific tag is used -- ie. all
  213. #
  214. # This allows the developer as well as the B & I group to perform incremental
  215. # build with a degree of accuracy that has not been used before.
  216. # There are some instances where certain types of INCLUDE files must be
  217. # created first. This type of format will allow the developer to require
  218. # that file to be created first. In order to achive that, all that has to
  219. # be done is to make the DEPEND.MAK tag have your required target. Below is
  220. # an example:
  221. #
  222. #    depend.mak:   { your file(s) } dephold
  223. #
  224. # Please DON'T remove the following line
  225. #
  226.  
  227.  
  228.  
  229. #
  230. # Should be the default tag for all general processing
  231. #
  232. all: $(ALLFONTS)
  233.  
  234. #
  235. # Specific Process Tag
  236. #
  237. clean:
  238.     del *.obj > nul 2>&1
  239.     del *.fon > nul 2>&1
  240.     del *.res > nul 2>&1
  241.  
  242. #*****************************************************************************
  243. #   Specific Description Block Information
  244. #*****************************************************************************
  245.  
  246. # This section would only be for specific direction as to how to create
  247. # unique elements that are necessary to the build process. This could
  248. # be compiling or assembling, creation of DEF files and other unique
  249. # files.
  250. # If all compiler and assembly rules are the same, use an inference rule to
  251. # perform the compilation.
  252. #
  253.  
  254. FONTS.OBJ: FONTS.ASM
  255.  
  256. COURIERI.FON:  $*.RC $*.LNK $*.DEF $(COURIERI) FONTS.OBJ
  257.  
  258. HELVI.FON:     $*.RC $*.LNK $*.DEF $(HELVI)    FONTS.OBJ
  259.  
  260. TIMESI.FON:    $*.RC $*.LNK $*.DEF $(TIMESI)   FONTS.OBJ
  261.  
  262. HELV096B.FON:  $*.RC $*.LNK $*.DEF $(HELV096B) FONTS.OBJ
  263.  
  264. SYSMONO.FON:   $*.RC $*.LNK $*.DEF $(SYSMONO)  FONTS.OBJ
  265.  
  266. DSPRES.DLL:    $*.RC $*.LNK $*.DEF $(DSPRES)   FONTS.OBJ
  267.  
  268.  
  269. #****************************************************************************
  270.