home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1998 May / Pcwk5b98.iso / Borland / Cplus45 / BC45 / BOCOLE.PAK / MAKE.INC < prev    next >
Text File  |  1995-08-29  |  5KB  |  214 lines

  1. # $Header:   N:\admin\ocf\source\bocole\make.inv   2.0.1.0   10 Apr 1995 18:05:34   CQUINN  $
  2. #-----------------------------------------------------------------------------
  3. # ObjectComponents - (C) Copyright 1991, 1993 by Borland International
  4. #
  5. # MAKEFILE for ObjectComponents BOcOle Dlls
  6. #
  7. #  BCROOT  = Borland compiler root directory, parent of BIN, LIB, INCLUDE
  8. #  APP     = name of application, used for .DLL
  9. #  DEFNAME = name of .def, .res file
  10. #  OBJS    = list of object files for link, each with .obj extension
  11. #  LIBS    = list of library files to be searched in addition to standard ones
  12. #  OBJDIR  = name of build directory, child of source directory
  13. #  DLL     = defined if making a DLL, not defined for EXE
  14. #------------------------------------------------------------------------
  15.  
  16. MAKEINC = ..\make.inc
  17.  
  18. .SUFFIXES: .OBJ .RC .DEF .CPP .C .ASM
  19.  
  20. !if !$d(TARGET_EXT)
  21. !if $d(DLL)
  22. TARGET_EXT = DLL
  23. WSWITCH    = DE
  24. !else
  25. TARGET_EXT = EXE
  26. WSWITCH    = S
  27. !endif
  28. !endif
  29.  
  30. !ifdef DIAGS
  31. DEBUG = 1
  32. TRACE = 1
  33. WARN  = 1
  34. !endif
  35.  
  36. !if !$d(BCROOT)
  37.   BCROOT = $(MAKEDIR)\..   # default bcroot to parent of dir where make lives
  38. !endif
  39.  
  40. !ifdef WIN32
  41. #OLEINC    = $(SRCDIR)\..\boleui32
  42. #OLELIB    = $(OLEROOT)\LIB;$(SRCDIR)\..\boleui32;
  43. OLEINC    = $(SRCDIR)\boleui32
  44. LIBPATH   = $(RELDIR);$(SRCDIR)\boleui32;$(BCROOT)\LIB
  45. CONFIG    = bcc32.cfg
  46. CPP       = @$(BCROOT)\BIN\BCC32
  47. LINK      = $(BCROOT)\BIN\TLINK32
  48. BRC       = $(BCROOT)\BIN\BRC32 -w32
  49. !else
  50. #OLEINC    = $(SRCDIR)\..\boleui
  51. #OLELIB    = $(OLEROOT)\LIB;$(OLEROOT)\SAMP\LIB
  52. OLEINC    = $(SRCDIR)\boleui
  53. LIBPATH   = $(RELDIR);$(SRCDIR)\boleui;$(BCROOT)\LIB
  54. CONFIG    = turboc.cfg
  55. CPP       = @$(BCROOT)\BIN\BCC
  56. LINK      = $(BCROOT)\BIN\TLINK
  57. BRC       = $(BCROOT)\BIN\BRC
  58. !endif
  59.  
  60. SRCDIR    = ..
  61. #RELDIR    = $(SRCDIR)\..\..\REL$(VERSION)
  62. RELDIR    = $(SRCDIR)\BIN
  63.  
  64. LIB       = $(BCROOT)\BIN\TLIB
  65. IMPLIB    = $(BCROOT)\BIN\IMPLIB
  66. ASM       = $(BCROOT)\BIN\TASM
  67. RC        = $(BRC) -i$(BCROOT)\INCLUDE;$(OLEINC)
  68.  
  69. !ifdef WIN32
  70. RLINK     = $(BCROOT)\BIN\BRC32
  71. !else
  72. RLINK     = $(BCROOT)\BIN\RLINK -fi
  73. !endif
  74. MAPSYM    = $(BCROOT)\BIN\TMAPSYM
  75. CPPFLAGS  = -DINC_OLE2 # -DLOOSE_HRESULT
  76.  
  77. !if $(DEBUG)
  78.   CPPFLAGS  = $(CPPFLAGS) -v -vi -D_DEBUG
  79. !else
  80. !ifdef WIN32                               # NDEBUG turns assert() off.
  81.   CPPFLAGS  = $(CPPFLAGS) -DNDEBUG -k-     # -k- optimized stack frames.
  82. !else                                      # -OW no inc/dec bp in
  83.   CPPFLAGS  = $(CPPFLAGS) -DNDEBUG -OW -k- #     prolog/epilog (16 bit only).
  84. !endif
  85. !endif
  86.  
  87. !ifdef TRACE
  88. CPPFLAGS  = $(CPPFLAGS) -D__TRACE
  89. !endif
  90. !ifdef WARN
  91. CPPFLAGS  = $(CPPFLAGS) -D__WARN
  92. !endif
  93.  
  94. !ifdef WIN32
  95.   CPPFLAGS  = $(CPPFLAGS) -DWIN32 -a4
  96. !ifdef ANSI
  97.   CPPFLAGS =  $(CPPFLAGS) -DANSI
  98. !endif
  99. !endif
  100.  
  101. !ifdef UNICODE
  102.   CPPFLAGS =  $(CPPFLAGS) -DUNICODE
  103. !endif
  104. !if $d(WIN32)
  105. LINKFLAGS   = -c -C -Tw -n -s c0w$(MODEL)+
  106. LINKFLAGSD  =       -Tpd -n -v -s c0d32+
  107. !else
  108. LINKFLAGS   = -c -C -Tw  -A=16 -n -s c0w$(MODEL)+
  109. LINKFLAGSD  = -c -C -Twd -A=16 -n -v -s c0dl+
  110. !endif
  111.  
  112. !ifdef WIN32
  113. LIBS      = $(LIBS) cw$(MODEL) import32
  114. !else
  115. LIBS      = $(LIBS) cw$(MODEL) mathw$(MODEL) import
  116. !endif
  117.  
  118. ALL: cdobj mdbin $(CONFIG) $(APP).$(TARGET_EXT) $(OTHER_TARGETS) cdsrc
  119.  
  120. cdobj:
  121.   @if not exist $(OBJDIR)\NUL md $(OBJDIR)
  122.   @cd $(OBJDIR)
  123.  
  124. mdbin:
  125.   @if not exist $(RELDIR)\NUL md $(RELDIR)
  126.  
  127. cdsrc:
  128.   @cd $(SRCDIR)
  129.  
  130. turboc.cfg: $(MAKEINC)
  131.   @echo  Building turboc.cfg
  132.   @copy &&|
  133.   $(CPPFLAGS)
  134.   -I$(SRCDIR);$(OLEINC);$(BCROOT)\INCLUDE
  135. #  -I..\..\public;..\..\boleauto;..\..\bole;
  136.   -w-par -w-aus -w-ef
  137.   -c -2 -m$(MODEL) -i42 -d -W$(WSWITCH) -O -Obels -Z -RT- -x-
  138. |       turboc.cfg
  139.   @echo  Building tasm.cfg
  140.   @copy &&|
  141.   /mx/Zi
  142. |       tasm.cfg
  143.  
  144. bcc32.cfg: $(MAKEINC)
  145.   @echo  Building bcc32.cfg
  146.   @copy &&|
  147.   $(CPPFLAGS)
  148.   -I$(SRCDIR);$(SRCDIR)\..\ole2ui;$(OLEINC);$(BCROOT)\INCLUDE;
  149. #  -I..\..\public;..\..\bole
  150.   -w-par -w-aus -w-ef
  151.   -c -3 -i60 -d -W$(WSWITCH) -O -Obels -Z -RT- -x-
  152. |       bcc32.cfg
  153.  
  154. $(APP).dll: $(OBJS) $(SRCDIR)\$(DEFNAME).def $(SRCDIR)\$(DEFNAME).res $(RESOURCES)
  155.   $(LINK) $(LINKFLAGSD) @&&|
  156.   -L$(LIBPATH) +
  157.   $(OBJS)
  158.   $@
  159.   $(APP).map
  160.   $(LIBS)
  161.   $(SRCDIR)\$(DEFNAME).def
  162. !ifdef WIN32
  163.   $(SRCDIR)\$(DEFNAME).res $(RESOURCES)
  164. !endif
  165. |
  166. !ifndef WIN32
  167.   $(RLINK) $(SRCDIR)\$(DEFNAME).res $(RESOURCES) $@
  168. !endif
  169. #  copy $(APP).dll $(RELDIR)
  170.   $(IMPLIB) $(RELDIR)\$(FILENAME).lib $(APP).dll
  171.  
  172. $(APP).exe : $(OBJS) $(DEFNAME).def $(DEFNAME).res
  173.   $(LINK) $(LINKFLAGS) @<<$(APP).lnk
  174.   -L$(LIBPATH) +
  175.   $(OBJS:.obj =+)
  176.   $@
  177.   $(APP).map
  178.   $(LIBS)
  179.   $(DEFNAME).def
  180. <<KEEP
  181.   $(RLINK) $(DEFNAME).res $@
  182.   copy $(APP).exe $(RELDIR)
  183.  
  184. ## .DEF File Generation ##
  185.  
  186. $(DEFNAME).def : $(MAKEINC)
  187.   copy &&|
  188.   NAME       $(APP)
  189.   DESCRIPTION 'OLE 2.0 $(APP) Sample'
  190.   EXETYPE     WINDOWS
  191.   CODE        PRELOAD MOVEABLE
  192.   DATA        PRELOAD MOVEABLE MULTIPLE
  193.   HEAPSIZE    4096
  194.   STACKSIZE   8192
  195. |       $(DEFNAME).def
  196.  
  197. ## IMPLICIT RULES ##
  198.  
  199. {$(SRCDIR)}.c{}.obj:
  200.   $(CPP) -c $<
  201.  
  202. {$(SRCDIR)}.cpp{}.obj:
  203.   $(CPP) -c $<
  204.  
  205. {$(SRCDIR)}.asm{}.obj:
  206.   $(ASM) /l/ml/n/q/t $<,$@
  207.  
  208. {$(SRCDIR)}.def{}.lib:
  209.   $(IMPLIB) $@ $<
  210.  
  211. {$(SRCDIR)}.rc{}.res:
  212.        $(RC) -r -i$(SRCDIR) -fo$@ $<
  213.  
  214.