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

  1. #******************************************************************************
  2. #  Makefile for the ATCOM directory
  3. #
  4. #       SCCSID = @(#)makefile   6.9 92/02/15
  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. #
  16. # ******  NOTE  ******
  17. #
  18. #        If you are using a SED command with TAB characters, many editors
  19. #        will expand tabs causing unpredictable results in other programs.
  20. #
  21. #        Documentation:
  22. #
  23. #        Using SED command with TABS. Besure to invoke set tab save option
  24. #        on your editor. If you don't, the program 'xyz' will not work
  25. #        correctly.
  26. #
  27. #
  28. #       When building the AT asynch driver it is possible to do
  29. #       so with a number of assembler flags defined. The flags that
  30. #       you wish to define should be set up in your environment with
  31. #       the 'set' command. For example,
  32. #
  33. #               A> set COMFLAGS=-DCISTRICT -DRLPSTRICT
  34. #
  35. #       Currently the defined flags are:
  36. #
  37. #         - COMDEBUG    enables 'int 3' instruction throughtout the driver
  38. #         - DEVHLP      enables 'int 3' to occur before every DevHlp call
  39. #         - ALLSTRICT   CISTRICT RPLSTRICT RPTSTRICT RPSTRICT
  40. #         - CISTRICT    verifies pointers to the ComInfo structure
  41. #         - RPLSTRICT   verifies pointers to the RP_List structure
  42. #         - RPTSTRICT   verifies request packets are of the expected type
  43. #         - RPSTRICT    verifies pointers to request packets
  44. #         - MESSAGES    ComErr messages will be included in non-debugging
  45. #                       (messages are always in debugging version)
  46. #         - COM2_1F8    make COM2 port address 1F8 (specially modifed COM card)
  47. #                       so COM1, COM2 and the kernel debugger can all be used.
  48. #                       This requires a machine with 3 COM boards:
  49. #                        COM1 - 3F8
  50. #                        COM2 - 1F8  2F8 with A8 and A9 crossed from bus
  51. #                        KDB  - 2F8  (normal COM2 address)
  52. #
  53. #       WARNING: Be sure to do a clean build after changing any flags.
  54. #
  55.  
  56. #****************************************************************************
  57. #  Dot directive definition area (usually just suffixes)
  58. #****************************************************************************
  59.  
  60. .SUFFIXES:      .asm .obj .obd .lst .lsd .def .lnk .lrf .sys .sym .xbj .xbd
  61.  
  62. #****************************************************************************
  63. #  Environment Setup for the component(s).
  64. #****************************************************************************
  65.  
  66.  
  67. #
  68. # Compiler Location w/ includes, libs and tools
  69. #
  70.  
  71. H         = ..\..\..\h
  72. INC       = ..\..\..\inc
  73. RMINC     = ..\resource\rsm_h
  74. DOSINC   = ..\..\dos\dosinc
  75. LIB       = ..\..\..\lib
  76. RMLIBP    = ..\resource\rmcalls
  77. TOOLSPATH =..\..\..\tools
  78.  
  79. LIBS      = $(RMLIBP)\rmcalls.lib $(LIB)\doscalls.lib
  80. DEF       = com01.def
  81. DEF2      = com01x.def
  82.  
  83. #
  84. # Since the compiler/linker and other tools use environment
  85. # variables ( INCLUDE, LIB, etc ) in order to get the location of files,
  86. # the following line will check the environment for the LIFE of the
  87. # makefile and will be specific to this set of instructions. All MAKEFILES
  88. # are requested to use this format to insure that they are using the correct
  89. # level of files and tools.
  90.  
  91.  
  92. !if [set INCLUDE=.;$(RMINC);$(INC);$(DOSINC);$(H)] || [set LIB=$(LIB)] ||\
  93.   [set PATH=$(TOOLSPATH)]
  94. !endif
  95.  
  96.  
  97. #
  98. # Compiler/tools Macros
  99. #
  100.  
  101. AS=masm
  102. CC=cl
  103. IMPLIB=implib
  104. IPF=ipfc
  105. LIBUTIL=lib
  106. LINK=link
  107. MAPSYM=mapsym
  108. RC=rc
  109.  
  110. #
  111. # Compiler and Linker Options
  112. #
  113. CFLAGS = -W3 -c -Asnw -G2s -Zl -Zp -Ox -nologo
  114. CINC   = -I$(H) -I$(RMINC)
  115.  
  116. !ifndef smp
  117. AFLAGS = -Mx -t $(COMFLAGS)
  118. !else
  119. AFLAGS = -Mx -t $(COMFLAGS) -DSMP
  120. !endif
  121. AINC   = -I$(INC) -I$(DOSINC) -I$(MAKEDIR)
  122. LFLAGS = /noe /nod /map /noi /EXEPACK /ALIGN:16 /FAR
  123. RFLAGS = -r
  124.  
  125. #****************************************************************************
  126. # Set up Macros that will contain all the different dependencies for the
  127. # executables and dlls etc. that are generated.
  128. #****************************************************************************
  129.  
  130. # WARNING: the order of the objects in the .lnk file is VERY important.
  131. # 'atcom.obj' MUST be first so the device driver headers are the first
  132. # thing in the data segment.
  133. # 'atinit.obj' MUST be next to last  and 'ateisai.obj' MUST be last so init
  134. # code can be released memory after initalization.
  135. # Do not change their order unless you thoroughly understand the effects.
  136.  
  137. # !!!atcom.obj MUST be first, atinit.obj then ateisai.obj MUST be last!!!
  138. OBJ1 = atcom.obj
  139. OBJ2 = atintrpt.obj atsub.obj atioctl.obj atmvdm.obj
  140. OBJ3 = atqueue.obj
  141. OBJ4 = atinit.obj rmhelp.obj ateisai.obj
  142. OBJS = $(OBJ1) $(OBJ2) $(OBJ3) $(OBJ4)
  143.  
  144. # !!!atcom.pbj MUST be first, atinit.pbj then ateisai.pbj MUST be last!!!
  145. PBJ1 = atcom.pbj
  146. PBJ2 = atintrpt.pbj atsub.pbj atioctl.pbj atmvdm.pbj
  147. PBJ3 = atqueue.pbj
  148. PBJ4 = atinit.pbj rmhelp.obj ateisai.pbj
  149. PBJS = $(PBJ1) $(PBJ2) $(PBJ3) $(PBJ4)
  150.  
  151. # !!!atcom.obd MUST be first, atinit.obd then ateisai.obd MUST be last!!!
  152. OBD1 = atcom.obd
  153. OBD2 = atintrpt.obd atsub.obd atioctl.obd atmvdm.obd
  154. OBD3 = atqueue.obd
  155. OBD4 = atinit.obd rmhelp.obj ateisai.obd
  156. OBDS = $(OBD1) $(OBD2) $(OBD3) $(OBD4)
  157.  
  158. # !!!atcom.PBD MUST be first, atinit.PBD then ateisai.PBD MUST be last!!!
  159. PBD1 = atcom.PBD
  160. PBD2 = atintrpt.PBD atsub.PBD atioctl.PBD atmvdm.PBD
  161. PBD3 = atqueue.PBD
  162. PBD4 = atinit.PBD rmhelp.obj ateisai.PBD
  163. PBDS = $(PBD1) $(PBD2) $(PBD3) $(PBD4)
  164.  
  165. # Only atinit.??? changes from OBJ version
  166. XBJ4 = atinit.xbj rmhelp.obj ateisai.obj
  167. XBJS = $(OBJ1) $(OBJ2) $(OBJ3) $(XBJ4)
  168.  
  169. # Only atinit.??? changes from OBD version
  170. XBD4 = atinit.xbd rmhelp.obj ateisai.obd
  171. XBDS = $(OBD1) $(OBD2) $(OBD3) $(XBD4)
  172.  
  173.  
  174.  
  175. #****************************************************************************
  176. #   Setup the inference rules for compiling and assembling source code to
  177. #   obejct code.
  178. #****************************************************************************
  179. .c.obj:
  180.         $(CC) $(CFLAGS) $(CINC) $*.c
  181.  
  182. .c.lst:
  183.         $(CC) $(CFLAGS) /Fc $(CINC) $*.c
  184.         copy $*.cod $*.lst
  185.         del $*.cod
  186.  
  187. .asm.obj:
  188.         $(AS) $(AFLAGS) $(AINC) $*.asm;
  189.  
  190. .asm.pbj:
  191.         $(AS) $(AFLAGS) $(AINC) -DPERFVIEW $*.asm,$*.pbj;
  192.  
  193. .asm.obd:
  194.         $(AS) $(AFLAGS) -DCOMDEBUG $(AINC) $*.asm,$*.obd;
  195.  
  196. .asm.pbd:
  197.         $(AS) $(AFLAGS) -DCOMDEBUG -DPERFVIEW $(AINC) $*.asm,$*.pbd;
  198.  
  199. .asm.lst:
  200.         $(AS) -n $(AFLAGS) $(AINC) $*.asm,,$*.lst;
  201.  
  202. .asm.lsd:
  203.         $(AS) -n $(AFLAGS) -DCOMDEBUG $(AINC) $*.asm,,$*.lsd;
  204.  
  205. .asm.pst:
  206.         $(AS) -n $(AFLAGS) $(AINC) -DPERFVIEW $*.asm,,$*.pst;
  207.  
  208. .asm.psd:
  209.         $(AS) -n $(AFLAGS) -DCOMDEBUG -DPERFVIEW $(AINC) $*.asm,,$*.psd;
  210.  
  211. .asm.xbj:
  212.         $(AS) $(AFLAGS) -DCOM2_1F8 $(AINC) $*.asm,$*.xbj;
  213.  
  214. .asm.xbd:
  215.         $(AS) $(AFLAGS) -DCOM2_1F8 -DCOMDEBUG $(AINC) $*.asm,$*.xbd;
  216.  
  217. .sys.sym:
  218.         $(MAPSYM) $*.map
  219.  
  220.  
  221. #****************************************************************************
  222. #   Target Information
  223. #****************************************************************************
  224. #
  225. # This is a very important step. The following small amount of code MUST
  226. # NOT be removed from the program. The following directive will do
  227. # dependency checking every time this component is built UNLESS the
  228. # following is performed:
  229. #                    A specific tag is used -- ie. all
  230. #
  231. # This allows the developer as well as the B & I group to perform incremental
  232. # build with a degree of accuracy that has not been used before.
  233. # There are some instances where certain types of INCLUDE files must be
  234. # created first. This type of format will allow the developer to require
  235. # that file to be created first. In order to achive that, all that has to
  236. # be done is to make the DEPEND.MAK tag have your required target. Below is
  237. # an example:
  238. #
  239. #    depend.mak:   { your file(s) } dephold
  240. #
  241. # Please DON'T remove the following line
  242. #
  243.  
  244.  
  245.  
  246. # default, just build retail COMDD
  247. all:    com comp
  248.  
  249. com:    com.sys com.sym
  250.  
  251. comp:   comp.sys comp.sym
  252.  
  253. comd:   comd.sys comd.sym
  254.  
  255. compd:  comp.sys compd.sym
  256.  
  257. comx:   comx.sys comx.sym
  258.  
  259. comdx:  comdx.sys comdx.sym
  260.  
  261. clean:
  262.         if exist *.lnk  del *.lnk
  263.         if exist *.obj  del *.obj
  264.         if exist *.pbj  del *.pbj
  265.         if exist *.pbd  del *.pbd
  266.         if exist *.obd  del *.obd
  267.         if exist *.xbj  del *.xbj
  268.         if exist *.xbd  del *.xbd
  269.         if exist *.map  del *.map
  270.         if exist *.old  del *.old
  271.         if exist *.lst  del *.lst
  272.         if exist *.lsd  del *.lsd
  273.         if exist *.sym  del *.sym
  274.         if exist *.sys  del *.sys
  275.  
  276.  
  277. #*****************************************************************************
  278. #   Specific Description Block Information
  279. #*****************************************************************************
  280.  
  281. # This section would only be for specific direction as to how to create
  282. # unique elements that are necessary to the build process. This could
  283. # be compiling or assembling, creation of DEF files and other unique
  284. # files.
  285. # If all compiler and assembly rules are the same, use an inference rule to
  286. # perform the compilation.
  287. #
  288.  
  289.  
  290. com01.def: makefile
  291.         @echo Make .DEF file
  292.         @echo ; ***************************************************************************  > com01.def
  293.         @echo ; *                                                                           >> com01.def
  294.         @echo ; *                       IBM/Microsoft Confidential                          >> com01.def
  295.         @echo ; *                                                                           >> com01.def
  296.         @echo ; *                 Copyright (c) IBM Corporation  1987, 1990                 >> com01.def
  297.         @echo ; *                 Copyright (c) Microsoft Corp.  1987, 1990                 >> com01.def
  298.         @echo ; *                           All Rights Reserved                             >> com01.def
  299.         @echo ; *                                                                           >> com01.def
  300.         @echo ; *************************************************************************** >> com01.def
  301.         @echo LIBRARY COM                               >> com01.def
  302.         @echo PROTMODE                                  >> com01.def
  303.         @echo CODE    PRELOAD                           >> com01.def
  304.         @echo DATA    PRELOAD                           >> com01.def
  305.         @echo SEGMENTS                                  >> com01.def
  306.         @echo    HSEG     CLASS 'RESDATA'               >> com01.def
  307.         @echo    RSEG     CLASS 'RESCODE'               >> com01.def
  308.         @echo    DSEG     CLASS 'DATA'       IOPL       >> com01.def
  309.         @echo    _DATA    CLASS 'DATA'       IOPL       >> com01.def
  310.         @echo    CONST    CLASS 'CONST'      IOPL       >> com01.def
  311.         @echo    c_common CLASS 'BSS'        IOPL       >> com01.def
  312.         @echo    _BSS     CLASS 'BSS'        IOPL       >> com01.def
  313.         @echo    CSEG     CLASS 'CODE'       IOPL       >> com01.def
  314.         @echo    'RMCode' CLASS 'CODE'       IOPL       >> com01.def
  315.         @echo    _TEXT    CLASS 'CODE'       IOPL       >> com01.def
  316.         @echo IMPORTS                                   >> com01.def
  317.         @echo    DOSIODELAYCNT=DOSCALLS.427             >> com01.def
  318.  
  319.  
  320. com01x.def: makefile
  321.         @echo Make .DEF file
  322.         @echo ; ***************************************************************************  > com01x.def
  323.         @echo ; *                                                                           >> com01x.def
  324.         @echo ; *                       IBM/Microsoft Confidential                          >> com01x.def
  325.         @echo ; *                                                                           >> com01x.def
  326.         @echo ; *                 Copyright (c) IBM Corporation  1987, 1990                 >> com01x.def
  327.         @echo ; *                 Copyright (c) Microsoft Corp.  1987, 1990                 >> com01x.def
  328.         @echo ; *                           All Rights Reserved                             >> com01x.def
  329.         @echo ; *                                                                           >> com01x.def
  330.         @echo ; *************************************************************************** >> com01x.def
  331.         @echo LIBRARY COMDMA                            >> com01x.def
  332.         @echo PROTMODE                                  >> com01x.def
  333.         @echo CODE    PRELOAD                           >> com01x.def
  334.         @echo DATA    PRELOAD                           >> com01x.def
  335.         @echo SEGMENTS                                  >> com01x.def
  336.         @echo    HSEG     CLASS 'RESDATA'                >> com01x.def
  337.         @echo    RSEG     CLASS 'RESCODE'                >> com01x.def
  338.         @echo    DSEG     CLASS 'DATA'       IOPL       >> com01x.def
  339.         @echo    _DATA    CLASS 'DATA'       IOPL       >> com01x.def
  340.         @echo    CONST    CLASS 'CONST'      IOPL       >> com01.def
  341.         @echo    c_common CLASS 'BSS'        IOPL       >> com01.def
  342.         @echo    _BSS     CLASS 'BSS'        IOPL       >> com01.def
  343.         @echo    CSEG     CLASS 'CODE'       IOPL       >> com01x.def
  344.         @echo    'RMCode' CLASS 'CODE'       IOPL       >> com01.def
  345.         @echo    _TEXT    CLASS 'CODE'       IOPL       >> com01.def
  346.         @echo IMPORTS                                   >> com01x.def
  347.         @echo    DOSIODELAYCNT=DOSCALLS.427             >> com01x.def
  348.  
  349.  
  350.  
  351. # Standard Non-Debugging COM driver
  352. com.sys:   $(OBJS) $(LIBS) $(DEF) makefile
  353.         $(LINK) $(LFLAGS) @<<$(@B).lnk
  354. $(OBJ1) +
  355. $(OBJ2) +
  356. $(OBJ3) +
  357. $(OBJ4)
  358. $@
  359. $*.map
  360. $(LIBS)
  361. $(DEF)
  362. <<keep
  363.  
  364. comp.sys:   $(PBJS) $(LIBS) $(DEF) makefile
  365.         $(LINK) $(LFLAGS) @<<$(@B).lnk
  366. $(PBJ1) +
  367. $(PBJ2) +
  368. $(PBJ3) +
  369. $(PBJ4)
  370. $@
  371. $*.map
  372. $(LIBS)
  373. $(DEF)
  374. <<keep
  375.  
  376. #comdma.sys:   $(OBJS) $(LIBS) $(DEF2) makefile
  377. #        $(LINK) $(LFLAGS) @<<$(@B).lnk
  378. #$(OBJ1) +
  379. #$(OBJ2) +
  380. #$(OBJ3) +
  381. #$(OBJ4)
  382. #$@
  383. #$*.map
  384. #$(LIBS)
  385. #$(DEF2)
  386. #<<keep
  387.  
  388. #comdma.sym: comdma.sys
  389. #        mapsym comdma.map
  390. #        move comdma.sy* ..\rucom
  391.  
  392. # Debugging COM driver
  393. comd.sys:  $(OBDS) $(LIBS) $(DEF)  makefile
  394.         $(LINK) $(LFLAGS) @<<$(@B).lnk
  395. $(OBD1) +
  396. $(OBD2) +
  397. $(OBD3) +
  398. $(OBD4)
  399. $@
  400. $*.map
  401. $(LIBS)
  402. $(DEF)
  403. <<keep
  404.  
  405. # Debugging COM driver
  406. compd.sys:  $(PBDS) $(LIBS) $(DEF)  makefile
  407.         $(LINK) $(LFLAGS) @<<$(@B).lnk
  408. $(PDBD1) +
  409. $(PDBD2) +
  410. $(PDBD3) +
  411. $(PDBD4)
  412. $@
  413. $*.map
  414. $(LIBS)
  415. $(DEF)
  416. <<keep
  417.  
  418. # Non-Debugging COM driver with COM2 at 1F8
  419. comx.sys:  $(XBJS) $(LIBS) $(DEF) makefile
  420.         $(LINK) $(LFLAGS) @<<$(@B).lnk
  421. $(OBJ1) +
  422. $(OBJ2) +
  423. $(OBJ3) +
  424. $(XBJ4)
  425. $@
  426. $*.map
  427. $(LIBS)
  428. $(DEF)
  429. <<keep
  430.  
  431. # Debugging COM driver with COM2 at 1F8
  432. comdx.sys: $(XBDS) $(LIBS) $(DEF) makefile
  433.         $(LINK) $(LFLAGS) @<<$(@B).lnk
  434. $(OBD1) +
  435. $(OBD2) +
  436. $(OBD3) +
  437. $(XBD4)
  438. $@
  439. $*.map
  440. $(LIBS)
  441. $(DEF)
  442. <<keep
  443.  
  444.  
  445. #****************************************************************************
  446.