home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / fns101.zip / Add-Ons / Fnorb / src / makefile < prev    next >
Makefile  |  1999-06-28  |  5KB  |  181 lines

  1. ######################################################################
  2. #
  3. # Top-Level Makefile for Building Python Extension Modules for OS/2
  4. #
  5. # This makefile was developed for use with IBM's VisualAge C/C++
  6. # for OS/2 compiler, version 3.0, with Fixpack 8 applied.  It uses
  7. # version 4.0 of the NMAKE tool that comes with that package.
  8. #
  9. # History (Most Recent First)
  10. #
  11. # 26-Mar-99 jrr Original, For Use with Python/2 1.5.2b2
  12. #
  13. ######################################################################
  14.  
  15. ###################
  16. # Places and Things
  17. ###################
  18. PY_INCLUDE      = ..\..\..\Include;..\..\..\PC\os2vacpp
  19.  
  20. PY_INCLUDES     = .;$(PY_INCLUDE)
  21.  
  22. # File to Collect Wordy Compiler Output re Errors
  23. ERRS        = make.out
  24.  
  25. # Where to Put the .OBJ Files, To Keep Them Out of the Way
  26. PATHOBJ        = obj
  27.  
  28. # Search Path for Include Files
  29. PROJINCLUDE    = .;$(PY_INCLUDES)
  30.  
  31. OTHERLIBS    = ..\..\..\PC\os2vacpp\Python15.lib
  32.  
  33. DYNDIR        = ..\..\..\Lib\lib-dynload
  34.  
  35. #################
  36. # Inference Rules
  37. #################
  38. .c{$(PATHOBJ)\}.obj:            # Compile C Code into a .OBJ File
  39.     @ Echo Compiling $<
  40.     @ $(CC) -c $(CFLAGS) -Fo$@ $< >>$(ERRS)
  41.  
  42. ##################
  43. # Macros and Flags
  44. ##################
  45. _BASE        = /Q /W2 /I$(PROJINCLUDE)
  46.         # /Q   = Omit IBM Copyright
  47.         # /W2  = Show Warnings/Errors Only
  48.         # /W3  = Show All Informationals/Warnings/Errors
  49.         # /Fi  = Create Precompiled Headers
  50.         # /Si  = Utilize Precompiled Headers
  51.  
  52. _GEN        = /G4 /Gm /Gd- /B"/STACK:360000"
  53.         # /G4  = Generate Code for 486 (Use 386 for Debugger)
  54.         # /Gm  = Use Multithread Runtime
  55.         # /Gd- = Statically Load Runtime
  56.         # /B"/STACK:n" = Set Stack Size
  57.  
  58. _OPT        = /O /Gl
  59.         # /O   = Enable Speed-Optimizations
  60.         # /Gl  = Have Linker Remove Unused Fns
  61.  
  62. _DBG        = /Wpro- /Ti- /DHAVE_CONFIG_H
  63.                 # /Wall= Generate All Compiler Warnings
  64.                 # /Wpro= Generate Compiler Warnings re Missing Prototypes
  65.         # /Ti  = Embed Debugger/Analyzer Recs
  66.         # /DHAVE_CONFIG_H = Causes Use of CONFIG.H Settings
  67.  
  68. _OUT        = 
  69.         # /Fb  = Embed Browser Recs
  70.         # /Gh  = Generate Code for Profiler Hooks
  71.         # /Fl  = Output C/C++ Listing Files
  72.                 # /Lf  = Provide Full (Detailed) Listing Files
  73.         # /Fm. = Output Linker Map File
  74.  
  75. _MAP        = /FmNoise\$(@R).map
  76.  
  77. _DLL        = /Ge-
  78. _EXE        = /Ge
  79.         # /Ge = Create an EXE, not DLL
  80.  
  81. CFLAGS        = $(_BASE) $(_GEN) $(_OPT) $(_DBG) $(_OUT) $(_EXE) /Ss
  82.  
  83. ###################
  84. # Primary Target(s)
  85. ###################
  86. All:  obj noise $(DYNDIR)\cdr.pyd $(DYNDIR)\bison.pyd
  87.  
  88. # Directory to Keep .OBJ Files Out of the Way
  89. obj:
  90.     @-mkdir obj >>NUL
  91.  
  92. # Directory to Keep .MAP and Such Text Files Out of the Way
  93. noise:
  94.     @-mkdir noise >>NUL
  95.  
  96. ##############
  97. #
  98. ##############
  99.  
  100. $(DYNDIR)\cdr.pyd: $(PATHOBJ)\cdr.obj $(PATHOBJ)\cdrmodule.obj $(PATHOBJ)\longlong.obj cdr.def
  101.     @ Echo Linking $@ As DLL
  102.     @ $(CC) $(CFLAGS) /B"/NOE" $(_DLL) /Fe$@ $(_MAP) $** $(OTHERLIBS) >>$(ERRS)
  103.  
  104. $(PATHOBJ)\cdr.obj: cdr.c
  105.     @ Echo Compiling $**
  106.     @ $(CC) -c $(CFLAGS) -D__FNORB_LITTLE_ENDIAN $(_DLL) -Fo$@ $** >>$(ERRS)
  107.  
  108. $(PATHOBJ)\cdrmodule.obj: cdrmodule.c
  109.     @ Echo Compiling $**
  110.     @ $(CC) -c $(CFLAGS) -D__FNORB_LITTLE_ENDIAN $(_DLL) -Fo$@ $** >>$(ERRS)
  111.  
  112. $(PATHOBJ)\longlong.obj: longlong.c longlong.h
  113.     @ Echo Compiling $**
  114.     @ $(CC) -c $(CFLAGS) -D__FNORB_LITTLE_ENDIAN $(_DLL) -Fo$@ $** >>$(ERRS)
  115.  
  116.  
  117. $(DYNDIR)\bison.pyd: $(PATHOBJ)\bisonmodule.obj $(PATHOBJ)\grammar.obj $(PATHOBJ)\lexer.obj bison.def
  118.     @ Echo Linking $@ As DLL
  119.     @ $(CC) $(CFLAGS) /B"/NOE" $(_DLL) /Fe$@ $(_MAP) $** $(OTHERLIBS) >>$(ERRS)
  120.  
  121. $(PATHOBJ)\bisonmodule.obj: bisonmodule.c
  122.     @ Echo Compiling $**
  123.     @ $(CC) -c $(CFLAGS) $(_DLL) -Fo$@ $** >>$(ERRS)
  124.  
  125. $(PATHOBJ)\grammar.obj: grammar.c
  126.     @ Echo Compiling $**
  127.     @ $(CC) -c $(CFLAGS) $(_DLL) -Fo$@ $** >>$(ERRS)
  128.  
  129. $(PATHOBJ)\lexer.obj: lexer.c
  130.     @ Echo Compiling $**
  131.     @ $(CC) -c $(CFLAGS) $(_DLL) -Fo$@ $** >>$(ERRS)
  132.  
  133. #######################
  134. # Miscellaneous Targets
  135. #######################
  136.  
  137. # Remove Intermediate Targets but Leave Executable Binaries
  138. clean:
  139.     -- Del /Q $(PATHOBJ)\*.obj        >NUL 2>&1
  140.     -- Del /Q /Y Noise            >NUL 2>&1
  141.     -- Del /Q $(ERRS)            >NUL 2>&1
  142.  
  143. bins:   All fnb101.zip fns101.zip fnd101.zip
  144.  
  145. binpkg: fnb101.zip
  146. srcpkg: fns101.zip
  147. docpkg: fnd101.zip
  148.  
  149. # Binaries Package
  150. fnb101.zip: $(DYNDIR)\cdr.pyd $(DYNDIR)\bison.pyd
  151.     cd ..\..\..
  152.     -- Del /Q    $@ >NUL 2>&1
  153.         zip -r -9    $@ Lib\site-packages\Fnorb
  154.         zip -r -9    $@ Lib\lib-dynload\cdr.pyd Lib\lib-dynload\bison.pyd
  155.         zip    -9    $@ fn*.cmd
  156.         zip    -9    $@ Add-Ons\Fnorb\ANNOUNCE
  157.         zip    -9    $@ Add-Ons\Fnorb\CHANGES
  158.         zip    -9    $@ Add-Ons\Fnorb\LICENSE.HTML
  159.         zip    -9    $@ Add-Ons\Fnorb\README
  160.     cd Add-Ons\Fnorb\src
  161.  
  162. # Source Code Package
  163. fns101.zip:
  164.     cd ..\..\..
  165.     -- Del /Q    $@ >NUL 2>&1
  166.         zip -r -9    $@ Add-Ons\Fnorb\src -x *.obj -x *.map -x *.exe -x *.dll -x *.lib -x make.out
  167.         zip    -9    $@ Add-Ons\Fnorb\ANNOUNCE
  168.         zip    -9    $@ Add-Ons\Fnorb\CHANGES
  169.         zip    -9    $@ Add-Ons\Fnorb\LICENSE.HTML
  170.         zip    -9    $@ Add-Ons\Fnorb\README
  171.     cd Add-Ons\Fnorb\src
  172.  
  173. # Documentation Package
  174. fnd101.zip:
  175.     cd ..\..\..
  176.     -- Del /Q    $@ >NUL 2>&1
  177.         zip -r -9    $@ Add-Ons\Fnorb\examples
  178.         zip    -9    $@ Add-Ons\Fnorb\Fnorb-Guide.*
  179.     cd Add-Ons\Fnorb\src
  180.  
  181.