home *** CD-ROM | disk | FTP | other *** search
/ Chip 1997 January / Chip_1997-01_cd.bin / ms95 / disk22 / dir03 / f014700.re_ / f014700.re
Text File  |  1996-04-02  |  7KB  |  261 lines

  1. #-----------------------------------------------------------------------
  2. #
  3. #  Copyright (1995) Bentley Systems, Inc., All rights reserved.
  4. #
  5. #  Application Make File
  6. #
  7. #    $Logfile:   K:/mdl/examples/externpg/externpg.mkv  $
  8. #   $Workfile:   externpg.mke  $
  9. #   $Revision:   5.26  $
  10. #       $Date:   03 Nov 1995 19:31:52  $
  11. #
  12. #  "MicroStation" is a registered trademark and "MDL" and "MicroCSL"
  13. #  are trademarks of Bentley Systems, Inc.
  14. #
  15. #  Limited permission is hereby granted to reproduce and modify this
  16. #  copyrighted material provided that the resulting code is used only
  17. #  in conjunction with Bentley Systems products under the terms of the
  18. #  license agreement provided therein, and that this notice is retained
  19. #  in its entirety in any such reproduction or modification.
  20. #
  21. #-----------------------------------------------------------------------
  22. #---------------------------------------------
  23. #    Define constants specific to this example
  24. #---------------------------------------------
  25. baseDir         = $(_MakeFilePath)
  26. privateInc     = $(baseDir)
  27.  
  28. externmpObjs    = $(o)externpg.mo
  29. externmiRscs    = $(o)externpg.mp
  30.  
  31. %include mdl.mki
  32. %include mdlexmpl.mki
  33.  
  34. %if msdos
  35.     #----------------------------------------------------------------------
  36.     # This makefile is set up to generate either a Metaware HighC or a
  37.     # Lahey F77-EM/32 protected mode external program.
  38.     #
  39.     # To make the Metaware HighC version, use the following command:
  40.     #         bmake externpg
  41.     #
  42.     # To make the Lahey F77-EM/32 version, use the following command:
  43.     #         bmake -dlaheyf externpg
  44.     #----------------------------------------------------------------------
  45.     %if laheyf
  46.     #----------------------------------------------------------------------
  47.     # $(initextFObjs) contains the interface module to Metaware High C and
  48.     # some startup code for Lahey Fortran external programs. Both modules
  49.     # are linked into all Fortran protected mode external programs and in
  50.     # this order:
  51.     #    <fortran main> <interface module & startup code> <C modules>
  52.     #----------------------------------------------------------------------
  53.     externpgObjs  = $(o)extrnpgf$(oext) \
  54.             $(initexpFObjs) \
  55.             $(o)extrnpgi$(oext)
  56.  
  57.     %else
  58.     #----------------------------------------------------------------------
  59.     # $(initexpObjs) contains C module initialization.  It must be linked
  60.     # into all C protected mode external programs and included FIRST.
  61.     #----------------------------------------------------------------------
  62.     externpgObjs  = $(initexpObjs) \
  63.             $(o)externpg$(oext)
  64.  
  65.     %endif
  66. %elif unix
  67.     externpgObjs  = $(o)externpg$(oext) \
  68.             $(mdlLibs)libextp.a
  69.  
  70. %elif macintosh
  71.     externpgObjs  = $(o)externpg$(oext) \
  72.             $(mdlLibs)libextp.o
  73.  
  74. %elif winNT
  75.     externpgObjs  = $(o)externpg$(oext) \
  76.             $(mdlLibs)libextp.lib
  77.  
  78. %elif os2
  79.     externpgObjs  = $(o)externpg$(oext) \
  80.             $(mdlLibs)libextp.lib
  81.  
  82. %endif
  83.  
  84. #---------------------------------------------
  85. #    Compile the MDL program source
  86. #---------------------------------------------
  87. $(o)externpg.mo            : $(baseDir)externpg.mc $(privateInc)externpg.h
  88.  
  89. #---------------------------------------------
  90. #    Generate the MDL program module
  91. #---------------------------------------------
  92. $(o)externpg.mp            : $(externmpObjs)
  93.     $(msg)
  94.     > $(o)make.opt
  95.     $(linkOpts)
  96.     -a$@
  97.     $(externmpObjs)
  98.     <
  99.     $(linkCmd) @$(o)make.opt
  100.     ~time
  101.  
  102. #---------------------------------------------
  103. #    Generate the MDL intermediate module using rlib
  104. #---------------------------------------------
  105. $(reqdObjs)externpg.mi        : $(externmiRscs)
  106.     $(msg)
  107.     > $(o)make.opt
  108.     -o$@
  109.     $(externmiRscs)
  110.     <
  111.     $(rscLibCmd) @$(o)make.opt
  112.     ~time
  113.  
  114. #---------------------------------------------
  115. #    Create the final MDL application
  116. #---------------------------------------------
  117. %include $(baseDir)extrnrsc.mki
  118.  
  119.  
  120. #---------------------------------------------
  121. #    Compile the external program source
  122. #---------------------------------------------
  123. %if msdos && laheyf
  124.     $(o)extrnpgf$(oext)    : $(baseDir)extrnpgf.for
  125.  
  126.     $(o)extrnpgi$(oext)    : $(baseDir)extrnpgi.c
  127. %else
  128.     $(o)externpg$(oext) : $(baseDir)externpg.c $(privateInc)externpg.h
  129. %endif
  130.  
  131. #---------------------------------------------
  132. #    Link the external program
  133. #---------------------------------------------
  134.     #----------------------------------------------------------------------
  135.     # The external program library, libextp, contains the functions for
  136.     # interprocess communication. It must be linked with external programs
  137.     # that use any of the extprg_... functions.
  138.     #----------------------------------------------------------------------
  139.  
  140. %if msdos
  141. #
  142. #  For PharLap 5.0 or greater, -NOSTUB is required to stop the linker 
  143. #  from creating a .exe file that MicroStation cannot load. For PharLap
  144. #  versions prior to 5.0, -NOSTUB is not required and cannot 
  145. #  be used.  If you are using a pre-5.0 version of PharLap, remove
  146. #  -NOSTUB from the link step.
  147. #
  148.     NOSTUB =         -NOSTUB
  149.  
  150.     %if laheyf
  151.     $(mdlapps)externpg.exp: $(externpgObjs) $(mdlLibs)libextp.lib
  152.         $(msg)
  153.         > $(o)link.cmd
  154.         $(MWlopt)
  155.         $(NOSTUB)
  156.         $(externpgObjs)
  157.         -lib $(laheyFLib)dosx.lib
  158.         -lib $(laheyFLib)f77l3.lib
  159.         -lib $(mdlLibs)libextp.lib
  160.         $(pmLibOpts)
  161.         $(naLibOpts)
  162.         -publist byvalue
  163.         -MINDATA 0
  164.         -MAXDATA 0
  165.         -80386
  166.         -exe $@
  167.         <
  168.         $(pFLinkCmd) @$(o)link.cmd
  169.         ~time
  170.     %else
  171.         $(mdlapps)externpg.exp: $(externpgObjs) $(mdlLibs)libextp.lib
  172.         $(msg)
  173.         > $(o)link.cmd
  174.         $(MWlopt)
  175.         $(NOSTUB)
  176.         $(externpgObjs)
  177.         -lib $(mdlLibs)libextp.lib
  178.         $(pmLibOpts)
  179.         $(naLibOpts)
  180.         -publist byvalue
  181.         -MINDATA 0
  182.         -MAXDATA 0
  183.         -80386
  184.         -exe $@
  185.         <
  186.         $(pLinkCmd) @$(o)link.cmd
  187.         ~time
  188.     %endif
  189. %elif unix
  190.     $(mdlapps)externpg: $(externpgObjs)
  191.     $(msg)
  192.     > $(o)temp.cmd
  193.     %if CLinkOpts
  194.     $(CLinkOpts)
  195.     %endif
  196.     $(externpgObjs)
  197.     %if clipper || rs6000
  198.         -lbsd
  199.     %endif
  200.     %if hp700
  201.         -lV3
  202.     %endif
  203.     -o $(mdlapps)externpg
  204.     <
  205.     $(CLinkCmd) `cat $(o)temp.cmd`
  206.     ~time
  207.  
  208. %elif m68k
  209.     llibs    = "{Libraries}"Interface.o "{Libraries}"Runtime.o "{CLibraries}"StdCLib.o
  210.  
  211.     $(mdlapps)externpg : $(externpgObjs)
  212.         $(msg)
  213.     $(CLinkCmd) $(CLinkOpts) $(externpgObjs) $(llibs) -o $@
  214.     Rez -rd $(baseDir)externpg.r -append -o $@
  215.     Setfile -t APPL -c 'extP' $@
  216.     ~time
  217.  
  218. %elif powerc
  219.  
  220.     $(mdlapps)externpg : $(externpgObjs)
  221.         $(msg)
  222.     $(CLinkCmd) $(CLinkOpts) $(externpgObjs) $(libsmac) -o $@.xcoff
  223.         makepef -fc 'APPL' -ft 'extP' -o $@ -l InterfaceLib.xcoff=InterfaceLib -l StdCLib.xcoff=StdCLib -l MathLib.xcoff=MathLib $@.xcoff
  224.     Rez -d APPNAME=6"$*6" -o $@ -a $(baseDir)extcfrg.r
  225.     Rez -rd $(baseDir)externpg.r -append -o $@
  226.     Setfile -t APPL -c 'extP' $@
  227.     ~time
  228.  
  229. %elif winNT
  230.     $(mdlapps)externpg.exe: $(externpgObjs)
  231.     $(msg)
  232.     > $(o)temp.cmd
  233.     %if CLinkOpts
  234.     $(CLinkOpts)
  235.     %endif
  236.     $(externpgObjs)
  237.     $(CLibs)
  238.     -out:$@
  239.     <
  240.     $(CLinkCmd) @$(o)temp.cmd
  241.     ~time
  242.  
  243. %elif os2
  244.  
  245.     $(mdlapps)externpg.exe: $(externpgObjs)
  246.     $(msg)
  247.     > $(o)linkextp.cmd
  248.         $(commonLOpts)
  249.         $(guiLOpts)
  250.         OPTION STACK=32K
  251.         NAME $@
  252.         FILE $(o)externpg$(oext)
  253.         LIBRARY $(mdlLibs)libextp.lib
  254.     <
  255.     $(CLinkCmd) @$(o)linkextp.cmd
  256.     ~time
  257.  
  258.  
  259. %endif
  260.  
  261.