home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 4 Drivers / 04-Drivers.zip / scsiopt2.zip / makefile < prev    next >
Makefile  |  1998-03-04  |  7KB  |  294 lines

  1. # -*- Mode: makefile -*-
  2. # $Source: d:/source/driver/perf/RCS/makefile,v $
  3. #
  4. # $Revision: 1.5 $
  5. # $Date: 1998/03/04 02:13:51 $
  6. # $Locker:  $
  7. #
  8. # Driver Name: SCSOpt.flt - modify performance related mode pages
  9. #
  10. # Usage: DMake [debug] [all]
  11. #
  12. # $Log: makefile,v $
  13. # Revision 1.5  1998/03/04 02:13:51  vitus
  14. # - changed DDK location
  15. # - new version 0.71
  16. #
  17. # Revision 1.4  1997/12/16 02:28:17  vitus
  18. # - renamed driver
  19. # - added generation of SCSIOpt.exe
  20. #
  21. # Revision 1.3  1997/12/08 23:06:34  vitus
  22. # - removed traces from DSKSleep and LOCKDRV
  23. #
  24. # Revision 1.2  1997/12/06 01:01:54  vitus
  25. # - enabled support for WatCom C
  26. #
  27. # Revision 1.1  1997/10/28 02:10:24  vitus
  28. # Initial revision
  29. #
  30.  
  31.  
  32. # Set defaults if not passed on commandline
  33. #
  34. LIST *= 0
  35.  
  36. VERSION = 0
  37. SUBVERSION = 71
  38.  
  39.  
  40.  
  41.  
  42. # Locations w/ includes, libs and tools
  43. #
  44. DDK = D:\Ddk\Base
  45. DDKTOOLS = D:\Ddk\Tools
  46.  
  47.  
  48. INC    = $(DDK)\Inc
  49. H      = $(DDK)\H
  50. LIB    = $(DDK)\Lib
  51. DISKH  = $(DDK)\Src\Dev\dasd\Diskh
  52. DHLIB  = $(DDK)\Src\Dev\Dasd\Devhelp
  53. ADDLIB = $(DDK)\Src\Dev\Dasd\Addcalls
  54. HFLAGS= -d -f -w -s
  55.  
  56.  
  57. # Compiler and other tools
  58. # Compiler are assumed to be installed so that they can
  59. # compile applications (header, libraries, etc).  Special
  60. # settings for driver development will be accounted for.
  61. # If environment variable WATCOM isn't set we assume MicroSoft C 5.1
  62. # or higher (tested with 6.0).
  63.  
  64. .IF $(WATCOM) == $(NULL)
  65. CC = cl -nologo -c
  66. AS = ml -nologo -c
  67. .ELSE
  68. CC = wcc -zq
  69. AS =  $(DDKTOOLS)\Alp -Mb
  70. .ENDIF
  71. LINK = $(DDK)\Tools\Link /ba
  72. MAPSYM = mapsym
  73. H2INC = h2inc
  74.  
  75.  
  76. # Compiler and Linker Options
  77.  
  78. .IF $(WATCOM) == $(NULL)
  79. AINC    = -I$(INC)
  80. AFLAGS    = -Cp
  81. ADFLAGS    = -Zm -Cp -DDEBUG
  82. CINC    = -I$(H) -I$(DISKH)
  83. CDEF    =  -DVERSION=$(VERSION) -DSUBVERSION=$(SUBVERSION)
  84. CFLAGS    = -Zp1 -G2ms -ASw -W3 -Ox
  85. CDFLAGS    = -Zp1 -G2ms -ASw -W3 -DDEBUG -Oi
  86.  
  87. LIBS    = $(DHLIB)\Dhcalls.lib $(ADDLIB)\Addcalls.lib
  88.  
  89. .ELSE
  90. AINC    = -I:$(INC)
  91. AFLAGS    = -D:WATCOMC
  92. ADFLAGS    = -D:WATCOMC -D:DEBUG
  93. CINC    = -i=$(H) -i=$(DISKH)
  94. CDEF    = -dVERSION=$(VERSION) -dSUBVERSION=$(SUBVERSION)
  95. CFLAGS    = -ms -zu -zdp -zff -zgf -5 -oxs -s -wx -zl -zp1 -d1+
  96. CDFLAGS    = -ms -zu -zdp -zff -zgf -zc -3 -oi -s -wx -zl -zp1 -hc -d1+ -DDEBUG
  97.  
  98. LIBS    = 
  99.  
  100. .ENDIF
  101.  
  102. LFLAGS    = /map /nod /exepack /packd /a:16 /far
  103. RFLAGS    = -r
  104.  
  105.  
  106.  
  107. #****************************************************************************
  108. # Set up Macros that will contain all the different dependencies for the
  109. # executables and dlls etc. that are generated.
  110. #****************************************************************************
  111.  
  112.  
  113. # OBJ files
  114. #
  115. OBJ1 =  o\Startup.obj o\data.obj o\Str1.obj
  116. OBJ2 =  o\Ioctl.obj o\Init1.obj o\Printk.obj
  117. OBJ3 =    o\Cmdparse.obj
  118.  
  119. #       Debug files
  120. #
  121. DBJ1 =    $(OBJ1:s/obj/dbj/) o\Dprintf.dbj
  122. DBJ2 =    $(OBJ2:s/obj/dbj/)
  123. DBJ3 =    $(OBJ3:s/obj/dbj/)
  124.  
  125. # Complete lists
  126. #
  127. OBJS =    $(OBJ1) $(OBJ2) $(OBJ3)
  128. DBJS =    $(DBJ1) $(DBJ2) $(DBJ3)
  129.  
  130. .IF $(WATCOM) == $(NULL)
  131. CLIB =    anulrem.obj anfauldi.obj anuldiv.obj
  132. .ELSE
  133. CLIB =    i4d.obj
  134. .ENDIF
  135.  
  136.  
  137.  
  138. #****************************************************************************
  139. #   Setup the inference rules for compiling and assembling source code to
  140. #   obejct code.
  141. #****************************************************************************
  142.  
  143.  
  144. .IF $(WATCOM) == $(NULL)
  145. o\%.obj : %.asm
  146.     $(AS) $(AFLAGS) $(AINC) -Fllist\$*.cod -Fo$@ $*.asm
  147.  
  148. o\%.dbj : %.asm
  149.     $(AS) $(ADFLAGS) $(AINC) -Fllist\$*.dod -Fo$@ $*.asm
  150.  
  151. o\%.obj : %.c 'scsiopt.h' 'proto.h' 'extern.h'
  152.     $(CC) $(CFLAGS) $(CINC) -Fllist\$*.cod -Fo$@ $*.c
  153.  
  154. o\%.dbj : %.c 'scsiopt.h' 'proto.h' 'extern.h'
  155.     $(CC) $(CDFLAGS) $(CINC) -Fllist\$*.dod -Fo$@ $*.c
  156.  
  157. .ELSE
  158.  
  159. o\%.obj : %.asm
  160.     $(AS) $(AFLAGS) $(AINC) $*.asm -Fl:list\$*.cod -Fo:$@
  161.  
  162. o\%.dbj : %.asm
  163.     $(AS) $(ADFLAGS) $(AINC) $*.asm -Fl:list\$*.dod -Fo:$@
  164.  
  165. o\%.obj : %.c 'scsiopt.h' 'proto.h' 'extern.h'
  166.     $(CC) $(CFLAGS) $(CINC) $(CDEF) -fo=$@ $*.c
  167.     wdisasm -b -l=list\$*.cod -s=$*.c $@
  168.  
  169. o\%.dbj : %.c 'scsiopt.h' 'proto.h' 'extern.h'
  170.     $(CC) $(CDFLAGS) $(CINC) $(CDEF) -fo=$@ $*.c
  171.     wdisasm -b -l=list\$*.dod -s=$*.c $@
  172. .ENDIF
  173.  
  174. %.inc : %.h
  175.     $(H2INC) $(HFLAGS) $*.h -o $*.inc
  176.  
  177.  
  178.  
  179.  
  180. #****************************************************************************
  181. #   Target Information
  182. #****************************************************************************
  183.  
  184. # to be scanned by bldlevel.exe (but doesn't work?)
  185.  
  186. FILEVER = @\#Vitus Jensen:0.70\#@
  187.  
  188.  
  189.  
  190. # Should be the default tag for all general processing
  191.  
  192. .IF $(WATCOM) == $(NULL)
  193. all: scsiopt.flt
  194. .ELSE
  195. all: scsiopt.flt scsiopt.exe
  196. .ENDIF
  197.  
  198. debug: scsioptd.flt
  199.  
  200. scsiopt.exe: scsiopt.c scsioptpub.h
  201.     wcl386 -zq -bt=OS2 -oax -i=$(WATCOM)\H\OS2 scsiopt.c
  202.  
  203.  
  204. clean:
  205.     +if exist *.lnk        del *.lnk
  206.     +if exist o\*.obj    del o\*.obj
  207.     +if exist o\*.dbj    del o\*.dbj
  208.     +if exist list\*.cod    del list\*.cod
  209.     +if exist list\*.dod    del list\*.dod
  210.     +if exist *.sym        del *.sym
  211.     +if exist *.sys        del *.sys
  212.     +if exist *.tff        del *.tff
  213.  
  214.  
  215. #****************************************************************************
  216. #   OBJ dependant  rules for compiling and assembling source code
  217. #****************************************************************************
  218.  
  219. o\Cmdparse.obj o\Cmdparse.dbj : cmdparse.c cmdproto.h \
  220.     cmdphdr.h cmdparse.h cmdpdefs.h
  221.  
  222. o\Init1.obj o\Init1.dbj : init1.c modepages.h cmdphdr.h cmdparse.h cmdpdefs.h
  223.  
  224. o\Ioctl.obj o\Ioctl.dbj : ioctl.c scsioptpub.h
  225.  
  226.  
  227.  
  228.  
  229.  
  230. #*****************************************************************************
  231. #   Linker commands
  232. #*****************************************************************************
  233.  
  234.  
  235. scsiopt.flt: $(OBJS) $(LIBS) makefile
  236.     $(LINK) $(LFLAGS) @$(mktmp,$*.lnk    \
  237.         $(OBJ1) +            \n\
  238.         $(CLIB) +            \n\
  239.         $(OBJ2) +            \n\
  240.         $(OBJ3)                \n\
  241.         $*.flt                \n\
  242.         $*.map                \n\
  243.         $(LIBS)                \n\
  244.         $(mktmp,$*.def            \
  245.             LIBRARY SCSIOpt        \n\
  246.             DESCRIPTION "$(FILEVER) SCSI Optimizer" \n\
  247.             PROTMODE            \n\
  248.             SEGMENTS            \n\
  249.              DDHeader    CLASS 'CONST'    \n\
  250.              CONST        CLASS 'CONST'    \n\
  251.              CONST        CLASS 'DATA'    \n\
  252.              CONST2        CLASS 'DATA'    \n\
  253.              LIBDATA    CLASS 'DATA'    \n\
  254.              _DATA        CLASS 'DATA'    \n\
  255.              _BSS        CLASS 'BSS'    \n\
  256.              LIBCODE    CLASS 'CODE'    \n\
  257.              'Code'        CLASS 'CODE'    \n\
  258.              _TEXT        CLASS 'CODE'    \n\
  259.              SwapData    CLASS 'FAR_DATA' IOPL    \n\
  260.              INITDATA    CLASS 'FAR_DATA'\n); )
  261.     $(MAPSYM) $*.map
  262.  
  263.  
  264. scsioptd.flt: $(DBJS) $(LIBS) makefile
  265.     $(LINK) $(LFLAGS) @$(mktmp,$*.lnk    \
  266.         $(DBJ1) +            \n\
  267.         $(CLIB) +            \n\
  268.         $(DBJ2) +            \n\
  269.         $(DBJ3)                \n\
  270.         $*.flt                \n\
  271.         $*.map                \n\
  272.         $(LIBS)                \n\
  273.         $(mktmp,$*.def            \
  274.             LIBRARY SCSIOpt        \n\
  275.             DESCRIPTION "$(FILEVER) SCSI Optimizer" \n\
  276.             PROTMODE            \n\
  277.             SEGMENTS            \n\
  278.              DDHeader    CLASS 'CONST'    \n\
  279.              CONST        CLASS 'CONST'    \n\
  280.              CONST        CLASS 'DATA'    \n\
  281.              CONST2        CLASS 'DATA'    \n\
  282.              LIBDATA    CLASS 'DATA'    \n\
  283.              _DATA        CLASS 'DATA'    \n\
  284.              _BSS        CLASS 'BSS'    \n\
  285.              LIBCODE    CLASS 'CODE'    \n\
  286.              'Code'        CLASS 'CODE'    \n\
  287.              _TEXT        CLASS 'CODE'    \n\
  288.              SwapData    CLASS 'FAR_DATA' IOPL    \n\
  289.              INITDATA    CLASS 'FAR_DATA'\n); )
  290.     $(MAPSYM) $*.map
  291.  
  292.  
  293. #****************************************************************************
  294.