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

  1. #******************************************************************************
  2. #
  3. #  Makefile for the svgapmi directory
  4. #
  5. #       IBM Confidential
  6. #
  7. #       Copyright (c) IBM Corporation 1991
  8. #
  9. #       All Rights Reserved
  10. #
  11. #  09/10/94  @V2.2TSU00  96178   Add module versioning-ID to base v executables
  12. #  09/23/94  @V3.0YEE01          new S3 files for 864ICD and Lacuna
  13. #******************************************************************************
  14.  
  15. #******************************************************************************
  16. #  Dot directive definition area (usually just suffixes)
  17. #******************************************************************************
  18.  
  19. .SUFFIXES:
  20. .SUFFIXES: .c .asm .obj .lst .def .lnk .exe .h .inc .thk
  21.  
  22. #******************************************************************************
  23. #  Environment Setup for the component(s).
  24. #******************************************************************************
  25.  
  26. #
  27. # Conditional Setup Area and User Defines Macros
  28. #
  29.  
  30. !ifndef LANG
  31. LANG=us
  32. !endif
  33.  
  34. #
  35. # Compiler Location w/ includes, libs and tools
  36. #
  37.  
  38. H=..\..\h
  39. H386=..\..\h386
  40. IBMH=..\..\ibmh
  41. INC=..\..\inc
  42. LIB=..\..\lib
  43. TOOLSPATH=..\..\tools
  44.  
  45. LOCALE  =..\..\ibmc\clocale
  46. IBMCINC =..\..\ibmc\cinclude
  47. IBMCLIB =..\..\ibmc\clib
  48. IBMCBIN =..\..\ibmc\cbin
  49. IBMCHELP=..\..\ibmc\chelp
  50.  
  51. CINC    = -I$(IBMH) -I$(H386) -I$(H) -I.
  52. AINC    = -I. -I$(INC)
  53. LIB386  = $(LIB)\os2386.lib
  54. LIBP    = $(LIB)\os2386p.lib
  55. LIBDDE  = $(IBMCLIB)\dde4mbs.lib $(IBMCLIB)\dde4mbso.lib
  56. LIBS    = $(LIBDDE) $(LIB386) $(LIBP)
  57.  
  58. DPATH   = $(LOCALE);$(IBMCHELP);
  59.  
  60. !ifdef SVGADEBUG
  61. OBJEXT  = obd
  62. !else
  63. OBJEXT  = obj
  64. !endif
  65.  
  66. OBJPMI  = ipmidata.$(OBJEXT) ipmimain.$(OBJEXT) ipmimisc.$(OBJEXT)
  67. OBJATI  = atimain.$(OBJEXT) #atidata.$(OBJEXT)
  68. OBJS3   = s3864icd.$(OBJEXT) s3lacuna.$(OBJEXT) #s3main.$(OBJEXT) #s3data.$(OBJEXT)
  69. OBJCIR  = cirmain.$(OBJEXT) cirdata.$(OBJEXT)
  70. OBJS    = $(OBJPMI) $(OBJATI) $(OBJS3) #(OBJCIR)
  71.  
  72. #
  73. # Since the compiler/linker and other tools use environment
  74. # variables ( INCLUDE, LIB, etc ) in order to get the location of files,
  75. # the following line will check the environment for the LIFE of the
  76. # makefile and will be specific to this set of instructions. All MAKEFILES
  77. # are requested to use this format to insure that they are using the correct
  78. # level of files and tools.
  79. #
  80.  
  81. !if [SET HELP=$(IBMCHELP)] || \
  82.     [SET LIB=$(IBMCLIB);$(LIB);.] || \
  83.     [SET PATH=$(IBMCBIN);$(TOOLSPATH)] || \
  84.     [SET INCLUDE=$(IBMCINC);$(IBMH);$(H386);$(H);$(INC);..]
  85. !endif
  86. #
  87.  
  88. #
  89. # Compiler/tools Macros
  90. #
  91.  
  92. CC=     icc
  93. ASM=    masm
  94. LINK=   link386
  95.  
  96. #
  97. # Compiler and Linker Options
  98. #
  99.  
  100. #CFLAGS= -nologo -c -W3 -Ox -G3sc -Asn -X $(CINC)
  101. CFLAGS= /C+ /Ge- /Gm+ /Fm+ /Sp1 /Ss+ /O- /Gd- /Ms /Sr- /Se
  102. AFLAGS= -Ml -t -Z -W1
  103. LFLAGS= /noi /noe /map /nol /nod /exepack /packcode /packdata /nofar /align:32
  104. TFLAGS= -y
  105.  
  106. #******************************************************************************
  107. # Set up Macros that will contain all the different dependencies for the
  108. # executables and dlls etc. that are generated.
  109. #******************************************************************************
  110.  
  111.  
  112. #******************************************************************************
  113. #   Setup the inference rules for compiling and assembling source code to
  114. #   object code.
  115. #******************************************************************************
  116.  
  117. .asm.obj:
  118.         $(ASM) $(AFLAGS) $(AINC) $*.asm,$@;
  119.  
  120. .asm.obd:
  121.         $(ASM) $(AFLAGS) $(AINC) -DSVGADEBUG $*.asm,$@;
  122.  
  123. .asm.lst:
  124.         $(ASM) -l -n $(AFLAGS) $(AINC) $*.asm,nul,$@;
  125.  
  126. .thk.asm:
  127.         $(THUNK) $(TFLAGS) $*.thk $*.asm
  128.  
  129. .c.obj:
  130.         $(CC) $(CFLAGS) -Fo$@ $*.c
  131.  
  132. .c.obd:
  133.         $(CC) $(CFLAGS) -Fo$@ -DSVGADEBUG $*.c
  134.  
  135. .c.cod:
  136.         $(CC) $(CFLAGS) -Fo$*.obj -Fc$@ $*.c
  137.  
  138. .h.inc:
  139.         tabify -d $*.h | sed -f $(TOOLSPATH)\h2inc32.sed | tabify >$*.inc
  140.  
  141.  
  142. #******************************************************************************
  143. #   Target Information
  144. #******************************************************************************
  145. #
  146. # This is a very important step. The following small amount of code MUST
  147. # NOT be removed from the program. The following directive will do
  148. # dependency checking every time this component is built UNLESS the
  149. # following is performed:
  150. #                    A specific tag is used -- ie. all
  151. #
  152. # This allows the developer as well as the B & I group to perform incremental
  153. # build with a degree of accuracy that has not been used before.
  154. # There are some instances where certain types of INCLUDE files must be
  155. # created first. This type of format will allow the developer to require
  156. # that file to be created first. In order to achive that, all that has to
  157. # be done is to make the DEPEND.MAK tag have your required target. Below is
  158. # an example:
  159. #
  160. #    depend.mak:   { your file(s) } dephold
  161. #
  162. # Please DON'T remove the following line
  163. #
  164.  
  165. !include      "$(H)\version.mak"   #@V2.2TSU00
  166.  
  167. #******************************************************************************
  168. # Should be the default tag for all general processing
  169. #******************************************************************************
  170.  
  171. debug:
  172.     $(MAKE) all SVGADEBUG= LANG=db
  173.  
  174. all: ibmgpmi.d$(LANG) $(DDLIBS)
  175.  
  176. #******************************************************************************
  177. #   Specific Description Block Information
  178. #******************************************************************************
  179.  
  180. # This section would only be for specific direction as to how to create
  181. # unique elements that are necessary to the build process. This could
  182. # be compiling or assembling, creation of DEF files and other unique
  183. # files.
  184. # If all compiler and assembly rules are the same, use an inference rule to
  185. # perform the compilation.
  186. #
  187.  
  188. #------------------------------------------------------------------------
  189. # Build device dependant PMI handler
  190. #------------------------------------------------------------------------
  191.  
  192. ibmgpmi.d$(LANG): $(OBJS) $(LIBS) $(DDLIBS) ibmgpmi.l$(LANG) ibmgpmi.def
  193.                   $(LINK) $(LFLAGS) @ibmgpmi.l$(LANG);
  194.                   mapsym $*
  195.  
  196. #
  197. # The following create the linker list files, *.LNK, and the *.DEF files
  198. # for the associated DLL dynamically when the MAKEFILE changes.
  199. #
  200.  
  201. ibmgpmi.l$(LANG): makefile
  202.     @ECHO  >$@ $(OBJS)
  203.     @ECHO >>$@ $*.d$(LANG)
  204.     @ECHO >>$@ $*.map $(LFLAGS)
  205.     @ECHO >>$@ $(LIBS) $(DDLIBS)
  206.     @ECHO >>$@ $*.def
  207.     @ECHO >>$@ ; $@ end of generated file (see makefile)
  208.  
  209. ibmgpmi.def: makefile
  210.     @ECHO  >$@ LIBRARY $* INITGLOBAL
  211.     @ECHO >>$@ PROTMODE
  212.     @ECHO >>$@ DESCRIPTION '$(FILEVER) Generic Chip PMI-Handler'   ;@V2.2TSU00
  213.     @ECHO >>$@ CODE LOADONCALL
  214.     @ECHO >>$@ DATA LOADONCALL
  215.     @ECHO >>$@ SEGMENTS
  216.     @ECHO >>$@      CODE32 CLASS 'CODE' IOPL CONFORMING NONDISCARDABLE
  217.     @ECHO >>$@ EXPORTS
  218.     @ECHO >>$@      pfnPMIIdentifyAdapter       ;
  219.     @ECHO >>$@      pfnPMISetMonitorTimings     ;
  220.     @ECHO >>$@      pfnPMIFixupClock     ;
  221.     @ECHO >>$@      pfnPMISetMode               ;
  222.     @ECHO >>$@ ; $@ end of generated file (see makefile)
  223.  
  224.  
  225. #******************************************************************************
  226.