home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / cdrom.zip / DDK / BASE / SRC / DEV / DASD / CDROM / OS2CDROM / makefile < prev   
Makefile  |  1996-09-03  |  10KB  |  284 lines

  1. # SCCSID = @(#)makefile 6.6 92/05/04
  2.  
  3. #/***********************************************************************/
  4. #/*                                                                     */
  5. #/* Driver Name: OS2CDROM.DMD - OS/2 CD-ROM Device Manager              */
  6. #/*              -----------------------------------------              */
  7. #/*                                                                     */
  8. #/* Source File Name: MAKEFILE                                          */
  9. #/*                                                                     */
  10. #/* Descriptive Name: MAKEFILE for the OS/2 CD-ROM Device Manager       */
  11. #/*                                                                     */
  12. #/* Function:                                                           */
  13. #/*                                                                     */
  14. #/*                                                                     */
  15. #/*---------------------------------------------------------------------*/
  16. #/*                                                                     */
  17. #/* Copyright (C) 1992 IBM Corporation                                  */
  18. #/*                                                                     */
  19. #/* DISCLAIMER OF WARRANTIES.  The following [enclosed] code is         */
  20. #/* provided to you solely for the purpose of assisting you in          */
  21. #/* the development of your applications. The code is provided          */
  22. #/* "AS IS", without warranty of any kind. IBM shall not be liable      */
  23. #/* for any damages arising out of your use of this code, even if       */
  24. #/* they have been advised of the possibility of such damages.          */
  25. #/*                                                                     */
  26. #/*---------------------------------------------------------------------*/
  27. #/*                                                                     */
  28. #/* Change Log                                                          */
  29. #/*                                                                     */
  30. #/* Mark    Date      Programmer  Comment                               */
  31. #/* ----    ----      ----------  -------                               */
  32. #/* @133532 08/18/95  VBR         Added versioning                      */
  33. #/*                                                                     */
  34. #/*                                                                     */
  35. #/***********************************************************************/
  36.  
  37. #
  38. #       makefile for OS/2 2.0 Device Independent CD-ROM Device Manager
  39. #
  40. #       You can optionally generate the listing files for the device driver.
  41. #
  42. #          make  [option]
  43. #
  44. #            option:     list         -> create listings
  45. #                        os2cdrom.dmd -> create PS/2 386 RETAIL driver
  46. #
  47. #            default:  create os2cdrom.dmd
  48. #
  49. # ******  NOTE  ******
  50. #
  51. #        If you are using a SED command with TAB characters, many editors
  52. #        will expand tabs causing unpredictable results in other programs.
  53. #
  54. #        Documentation:
  55. #
  56. #        Using SED command with TABS. Besure to invoke set tab save option
  57. #        on your editor. If you don't, the program 'xyz' will not work
  58. #        correctly.
  59. #
  60.  
  61. #****************************************************************************
  62. #  Dot directive definition area (usually just suffixes)
  63. #****************************************************************************
  64.  
  65. .SUFFIXES:
  66. .SUFFIXES: .com .sys .exe .obj .mbj .asm .inc .def .lnk .lrf .crf .ref
  67. .SUFFIXES: .lst .sym .map .c .h .lib
  68.  
  69. #****************************************************************************
  70. #  Environment Setup for the component(s).
  71. #****************************************************************************
  72.  
  73. #
  74. # Conditional Setup Area and User Defined Macros
  75. #
  76.  
  77. #
  78. # Compiler Location w/ includes, libs and tools
  79. #
  80.  
  81. DOSINC = ..\..\..\..\dos\dosinc
  82. INIT   = ..\..\..\..\dos\init
  83. TASK   = ..\..\..\..\dos\task
  84. INC    = ..\..\..\..\..\inc
  85. H      = ..\..\..\..\..\h
  86. LIB    = ..\..\..\..\..\lib
  87. TOOLSPATH = ..\..\..\..\..\tools
  88. DISKH  = ..\..\diskh
  89. TOSHFLT = ..\toshiba
  90. NECFLT = ..\nec
  91. DASDH  = ..\..\os2dasd
  92. DHLIB  = ..\..\devhelp
  93.  
  94. #
  95. # Since the compiler/linker and other tools use environment
  96. # variables ( INCLUDE, LIB, etc ) in order to get the location of files,
  97. # the following line will check the environment for the LIFE of the
  98. # makefile and will be specific to this set of instructions. All MAKEFILES
  99. # are requested to use this format to insure that they are using the correct
  100. # level of files and tools.
  101. #
  102.  
  103. !if [set INCLUDE=.;$(DASDH);$(H);$(DISKH);$(DOSINC);$(TOSHFLT);$(NECFLT);$(DOSINC);$(INIT);$(INC)] || \
  104.    [set LIB=$(LIB);$(DHLIB)] || [set PATH=$(TOOLSPATH);$(DK_TOOLS)]
  105. !endif
  106.  
  107.  
  108. #
  109. # Compiler/tools Macros
  110. #
  111.  
  112. AS=masm
  113. CC=cl
  114. IMPLIB=implib
  115. IPF=ipfc
  116. LIBUTIL=lib
  117. LINK=link
  118. MAPSYM=mapsym
  119. RC=rc
  120.  
  121. #
  122. # Compiler and Linker Options
  123. #
  124.  
  125. AFLAGS = -MX -T -Z $(ENV)
  126. AINC   = -I. -I$(DOSINC) -I$(INIT) -I$(INC)
  127. #CINC   = -I$(DASDH) -I$(H) -I$(DISKH) -I$(TOSHFLT) -I$(NECFLT) -I$(MAKEDIR)
  128. #CFLAGS = /c /Fc /Zp /G2s /Answ /NT StaticCode $(ENV)
  129. CFLAGS = /c /Zp /G2s /Answ /nologo $(ENV)
  130. LFLAGS = /map /nod /exepack /packd /a:16 /far
  131. RFLAGS = -r
  132.  
  133. #LIBS  =  $(DHLIB)\dhcalls.lib libh.lib
  134. LIBS  =  $(DHLIB)\dhcalls.lib
  135.  
  136. #****************************************************************************
  137. # Set up Macros that will contain all the different dependencies for the
  138. # executables and dlls etc. that are generated.
  139. #****************************************************************************
  140.  
  141. #
  142. #
  143. #
  144. OBJ1 =  cdsegs.obj
  145. OBJ2 =  cdheader.obj cdstrat1.obj cdiorb.obj   cdasubr.obj  \
  146.         cdioctl.obj  cdioc80.obj  cdioc81.obj  cdqueue.obj  \
  147.         cdsony.obj   cdtosh.obj   cdchinon.obj cdnec.obj    \
  148.         cdhp.obj     cddata.obj
  149. OBJ3 =  ..\..\libobj\afuldiv.obj ..\..\libobj\afulrem.obj \
  150.         ..\..\libobj\anlmul.obj  ..\..\libobj\anuldiv.obj \
  151.         ..\..\libobj\anulrem.obj
  152. OBJ4 =  cdinit.obj
  153.  
  154. #
  155. #       LIST Files
  156. #
  157. LIST=   cdsegs.lst \
  158.         cdheader.lst cdstrat1.lst cdiorb.lst cdasubr.lst \
  159.         cdioctl.lst cdioc80.lst cdioc81.lst cdqueue.lst \
  160.         cdsony.lst cdtosh.lst cdchinon.lst cdnec.lst  \
  161.         cddata.lst \
  162.         cdinit.lst
  163.  
  164.  
  165. OBJS = $(OBJ1) $(OBJ2) $(OBJ3) $(OBJ4)
  166.  
  167. #****************************************************************************
  168. #   Setup the inference rules for compiling and assembling source code to
  169. #   object code.
  170. #****************************************************************************
  171.  
  172.  
  173. .asm.obj:
  174.         $(AS) $(AFLAGS) $(AINC) $*.asm;
  175.  
  176. .asm.mbj:
  177.         $(AS) $(AFLAGS) -DMMIOPH $(AINC) $*.asm $*.mbj;
  178.  
  179. .asm.lst:
  180.         $(AS) -l -n $(AFLAGS) $(AINC) $*.asm;
  181.  
  182. .c.obj:
  183.         $(CC) $(CFLAGS) $(CINC) $*.c
  184.  
  185. .c.lst:
  186.         $(CC) $(CFLAGS) /Fc $(CINC) $*.c
  187.         copy $*.cod $*.lst
  188.         del $*.cod
  189.  
  190.  
  191. #****************************************************************************
  192. #   Target Information
  193. #****************************************************************************
  194. #
  195. # This is a very important step. The following small amount of code MUST
  196. # NOT be removed from the program. The following directive will do
  197. # dependency checking every time this component is built UNLESS the
  198. # following is performed:
  199. #                    A specific tag is used -- ie. all
  200. #
  201. # This allows the developer as well as the B & I group to perform incremental
  202. # build with a degree of accuracy that has not been used before.
  203. # There are some instances where certain types of INCLUDE files must be
  204. # created first. This type of format will allow the developer to require
  205. # that file to be created first. In order to achive that, all that has to
  206. # be done is to make the DEPEND.MAK tag have your required target. Below is
  207. # an example:
  208. #
  209. #    depend.mak:   { your file(s) } dephold
  210. #
  211. # Please DON'T remove the following line
  212. #
  213.  
  214. !include      "$(H)\version.mak"
  215.  
  216. #
  217. # Should be the default tag for all general processing
  218. #
  219.  
  220. all:    os2cdrom.dmd
  221.  
  222. list: $(LIST)
  223.  
  224. clean:
  225.         if exist *.lnk  del *.lnk
  226.         if exist *.obj  del *.obj
  227.         if exist *.mbj  del *.mbj
  228.         if exist *.map  del *.map
  229.         if exist *.old  del *.old
  230.         if exist *.lst  del *.lst
  231.         if exist *.lsd  del *.lsd
  232.         if exist *.sym  del *.sym
  233.         if exist *.sys  del *.sys
  234.         if exist *.add  del *.dmd
  235.         if exist *.tff  del *.tff
  236.         if exist *.def  del *.def
  237.         if exist *.mak  del *.mak
  238.  
  239.  
  240. #*****************************************************************************
  241. #   Specific Description Block Information
  242. #*****************************************************************************
  243.  
  244. # This section would only be for specific direction as to how to create
  245. # unique elements that are necessary to the build process. This could
  246. # be compiling or assembling, creation of DEF files and other unique
  247. # files.
  248. # If all compiler and assembly rules are the same, use an inference rule to
  249. # perform the compilation.
  250. #
  251.  
  252. os2cdrom.dmd:  $(OBJS) $(LIBS)  makefile
  253.         Rem Create DEF file <<$*.def
  254. LIBRARY OS2CDROM
  255.  
  256. DESCRIPTION "$(FILEVER)  Device Manager Driver for CDROM"
  257.  
  258. PROTMODE
  259.  
  260. SEGMENTS
  261.  _DATA          CLASS 'DATA'
  262.  CONST          CLASS 'CONST'
  263.  _BSS           CLASS 'BSS'
  264.  'Code'         CLASS 'CODE' IOPL
  265.  _TEXT          CLASS 'CODE' IOPL
  266.  SwapCode       CLASS 'CODE' IOPL
  267. <<keep
  268.              $(LINK) $(LFLAGS) @<<$*.lnk
  269. $(OBJ1) +
  270. $(OBJ2) +
  271. $(OBJ3) +
  272. $(OBJ4)
  273. $*.dmd
  274. $*.map
  275. $(LIBS)
  276. $*.def
  277. <<keep
  278.              $(MAPSYM) $*.map
  279. #            trcust $*.tsf
  280.  
  281.  
  282.  
  283. #****************************************************************************
  284.