home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 18 REXX / 18-REXX.zip / rexxtk12.zip / makefile.os2.emx < prev    next >
Makefile  |  2001-02-27  |  8KB  |  255 lines

  1. #
  2. # GNU MAKE-compatible MAKE file for building Rexx/Tk with EMX
  3. #
  4. # will generate:
  5. #
  6. #      rexxtk.dll
  7. #      rexxtk.exe
  8. #      rexxtktree.dll
  9. #      rexxtkcombobox.dll
  10. #      rexxtkmclistbox.dll
  11. #      rexxtknotebook.dll
  12. # Usage: gmake [DEBUG=Y]
  13. #              [INT=REGINA|OS2REXX|REXXTRANS]
  14. #              [rexxtk.dll|rexxtk.exe|rexxtktree.dll|rexxtkcombobox.dll|rexxtkmclistbox.dll|rexxtknotebook.dll]
  15. #
  16.  
  17. PROJ = rexxtk
  18. ABBREV = rexxtk
  19. SRC = rexxtk
  20. VER = 12
  21. VERDOT = 1.2
  22.  
  23. REXXTK_SRCDIR = .
  24. SRCDIR = $(REXXTK_SRCDIR)
  25. EXTDIR = $(REXXTK_SRCDIR)\extensions
  26. REGINA_REXXLIBEXE = $(REGINA_SRCDIR)/emx/regina.a
  27. REGINA_REXXLIBDLL = $(REGINA_SRCDIR)/emx/regina.lib
  28. REGINA_REXXINC = -I$(REGINA_SRCDIR) -DUSE_REGINA
  29. OS2REXX_REXXLIBEXE =
  30. OS2REXX_REXXLIBDLL =
  31. OS2REXX_REXXINC = -DUSE_OS2REXX
  32. REXXTRANS_REXXLIBEXE = $(REXXTRANS_SRCDIR)/emx/rexxtrans.a
  33. REXXTRANS_REXXLIBDLL = $(REXXTRANS_SRCDIR)/emx/rexxtrans.lib
  34. REXXTRANS_REXXINC = -I$(REXXTRANS_SRCDIR) -DUSE_REXXTRANS
  35.  
  36. TKLIBEXE = c:\tcl805\lib\tk80.$(ARCH)
  37. TKLIBDLL = c:\tcl805\lib\tk80.$(ARCH)
  38. TCLLIBEXE = c:\tcl805\lib\tcl80.$(ARCH)
  39. TCLLIBDLL = c:\tcl805\lib\tcl80.$(ARCH)
  40. TCL_INCDIR = -Ic:/tcl805/include
  41. TK_INCDIR = -Ic:/tcl805/include
  42.  
  43. #TKLIBEXE = e:\tk8.0.5\os2\tk80.$(ARCH)
  44. #TKLIBDLL = e:\tk8.0.5\os2\tk80.$(ARCH)
  45. #TCLLIBEXE = e:\tcl8.0.5\os2\tcl80.$(ARCH)
  46. #TCLLIBDLL = e:\tcl8.0.5\os2\tcl80.$(ARCH)
  47. #TCL_INCDIR = -I/tcl8.0.5/generic
  48. #TK_INCDIR = -I/tk8.0.5/generic -I/tk8.0.5/xlib
  49.  
  50. #TKLIBDLL = tk80.a
  51. #TKLIBEXE = $(TKLIBDLL)
  52. #TCLLIBDLL = tcl80.a
  53. #TCLLIBEXE = $(TCLLIBDLL)
  54. #TCL_INCDIR = -I/tmp/tcl/include
  55. #TK_INCDIR = -I/tmp/tcl/include
  56. #---------------------------------------------------------------------
  57. # You should not have to change anything below here...
  58. #---------------------------------------------------------------------
  59.  
  60. #
  61. # Interpreter specific defines
  62. #
  63. ifeq ($(INT),REGINA)
  64. REXXLIBEXE = $(REGINA_REXXLIBEXE)
  65. REXXLIBDLL = $(REGINA_REXXLIBDLL)
  66. REXXINC =  $(REGINA_REXXINC)
  67. else
  68. ifeq ($(INT),OS2REXX)
  69. REXXLIBEXE = $(OS2REXX_REXXLIBEXE)
  70. REXXLIBDLL = $(OS2REXX_REXXLIBDLL)
  71. REXXINC =  $(OS2REXX_REXXINC)
  72. else
  73. ifeq ($(INT),REXXTRANS)
  74. REXXLIBEXE = $(REXXTRANS_REXXLIBEXE)
  75. REXXLIBDLL = $(REXXTRANS_REXXLIBDLL)
  76. REXXINC =  $(REXXTRANS_REXXINC)
  77. else
  78. #echo Rexx Interpreter NOT specified via INT macro.Valid values are: REGINA OS2REXX REXXTRANS
  79. endif
  80. endif
  81. endif
  82.  
  83. MYLDEXTRA = emxbind
  84. # Format is OMF (.obj) or A.OUT (.o)
  85. #FORMAT = A.OUT
  86. FORMAT = OMF
  87. ifeq ($(FORMAT),A.OUT)
  88.    ARCH=a
  89.    OBJ=o
  90.    OUTPUTFLAG=
  91.    EXTRALINK = 
  92. else
  93.    ARCH=lib
  94.    OBJ=obj
  95.    OUTPUTFLAG=-Zomf
  96.    EXTRALINK = -Zlinker /FARCALLTRANSLATION -Zlinker /RUNFROMVDM -Zlinker /BASE:0x10000 -Zlinker /ALIGN:2
  97. endif
  98.  
  99. EXTRALINK =
  100. CC = gcc
  101. LINK = gcc
  102. LINK_OUT = -o 
  103. #LINK = ilink
  104. #LINK_OUT = /OUT:
  105.  
  106. #comcopts = -c -Wall -s -mprobe -m486 -Zomf -Zmtd -DOS2 -D__OS2__ -DHAVE_PROTO -DHAVE_GETOPT -I$(SRCDIR) $(REXXINC) $(TCL_INCDIR) $(TK_INCDIR)
  107. comcopts = -c -mprobe -m486 $(OUTPUTFLAG) -DOS2 -D__OS2__ -DHAVE_PROTO -I$(SRCDIR) $(REXXINC) $(TCL_INCDIR) $(TK_INCDIR)
  108. comlopts = $(EXTRALINK) $(OUTPUTFLAG) -Zmtd
  109.  
  110. ifeq ($(DEBUG),Y)
  111. #copts     = -g $(comcopts) -DDEBUG
  112. #lopts     = -g $(comlopts)
  113. copts     = -g -fhandle-exceptions $(comcopts) -DDEBUG
  114. lopts     = $(comlopts)
  115. else
  116. #copts     = -O3 -fomit-frame-pointer $(comcopts)
  117. #lopts     = -O3 -fomit-frame-pointer $(comlopts)
  118. copts     = -O3 -s $(comcopts)
  119. lopts     = $(comlopts)
  120. endif
  121.  
  122. cflagsdll = $(copts) -DDYNAMIC_LIBRARY -Zdll -Zcrtdll
  123. cflagsexe = $(copts)
  124. lflagsdll = $(lopts) -Zdll -Zcrtdll
  125. lflagsexe = $(lopts) 
  126. #lflagsdll = $(lopts) /DLL
  127. #lflagsexe = $(lopts) /EXE
  128.  
  129. objsdll = $(ABBREV)dll.$(OBJ) $(ABBREV)base.$(OBJ) packdll.$(OBJ)
  130. objsexe = loader.$(OBJ) $(ABBREV)base.$(OBJ) $(ABBREV)exe.$(OBJ) \
  131.           packexe.$(OBJ) getopt.$(OBJ)
  132. objstreedll = $(ABBREV)treedll.obj $(ABBREV)dll.obj packdll.obj
  133. objscomboboxdll = $(ABBREV)comboboxdll.obj $(ABBREV)dll.obj packdll.obj
  134. objsmclistboxdll = $(ABBREV)mclistboxdll.obj $(ABBREV)dll.obj packdll.obj
  135. objsnotebookdll = $(ABBREV)notebookdll.obj $(ABBREV)dll.obj packdll.obj
  136.  
  137. ccdll = $(CC) $(cflagsdll) $(listopt)
  138. ccexe = $(CC) $(cflagsexe) $(listopt)
  139.  
  140. H1=$(SRCDIR)/defines.h
  141. H3=$(SRCDIR)/rxpack.h $(SRCDIR)/rxdef.h $(SRCDIR)/apphead.h
  142.  
  143. all: $(PROJ).exe $(PROJ).dll $(PROJ)tree.dll $(PROJ)combobox.dll $(PROJ)mclistbox.dll $(PROJ)notebook.dll
  144.  
  145. #
  146. # These function only required for EXE
  147. #
  148. getopt.$(OBJ): $(SRCDIR)/getopt.c
  149.     $(ccexe) -ogetopt.$(OBJ) $(SRCDIR)/getopt.c
  150.  
  151. loader.$(OBJ): $(SRCDIR)/loader.c $(H1) $(H3)
  152.     $(ccexe) -oloader.$(OBJ) $(SRCDIR)/loader.c
  153.  
  154. #
  155. # These modules are the package-specific modules; both for DLL and EXE
  156. #
  157.  
  158. $(ABBREV)dll.$(OBJ): $(SRCDIR)/$(SRC).c $(H1) $(H2) $(H3)
  159.     $(ccdll) -o$(ABBREV)dll.$(OBJ) $(SRCDIR)/$(SRC).c
  160.  
  161. $(ABBREV)exe.$(OBJ): $(SRCDIR)/$(SRC).c $(H1) $(H2) $(H3)
  162.     $(ccexe) -o$(ABBREV)exe.$(OBJ) $(SRCDIR)/$(SRC).c
  163.  
  164. $(ABBREV)base.$(OBJ): $(SRCDIR)/$(ABBREV)base.c
  165.     $(ccexe) -o$(ABBREV)base.$(OBJ) $(SRCDIR)/$(ABBREV)base.c
  166.  
  167. $(ABBREV)treedll.$(OBJ): $(EXTDIR)\$(PROJ)tree.c $(H1) $(H2) $(H3)
  168.     $(ccdll) -o$(ABBREV)treedll.$(OBJ) $(EXTDIR)\$(PROJ)tree.c
  169.  
  170. $(ABBREV)notebookdll.$(OBJ): $(EXTDIR)\$(PROJ)notebook.c $(H1) $(H2) $(H3)
  171.     $(ccdll) -o$(ABBREV)notebookdll.$(OBJ) $(EXTDIR)\$(PROJ)notebook.c
  172.  
  173. $(ABBREV)mclistboxdll.$(OBJ): $(EXTDIR)\$(PROJ)mclistbox.c $(H1) $(H2) $(H3)
  174.     $(ccdll) -o$(ABBREV)mclistboxdll.$(OBJ) $(EXTDIR)\$(PROJ)mclistbox.c
  175.  
  176. $(ABBREV)comboboxdll.$(OBJ): $(EXTDIR)\$(PROJ)combobox.c $(H1) $(H2) $(H3)
  177.     $(ccdll) -o$(ABBREV)comboboxdll.$(OBJ) $(EXTDIR)\$(PROJ)combobox.c
  178.  
  179. $(ABBREV)treeexe.$(OBJ): $(EXTDIR)\$(PROJ)tree.c $(H1) $(H2) $(H3)
  180.     $(ccexe) -o$(ABBREV)treeexe.$(OBJ) $(EXTDIR)\$(PROJ)tree.c
  181.  
  182. $(ABBREV)notebookexe.$(OBJ): $(EXTDIR)\$(PROJ)notebook.c $(H1) $(H2) $(H3)
  183.     $(ccexe) -o$(ABBREV)notebookexe.$(OBJ) $(EXTDIR)\$(PROJ)notebook.c
  184.  
  185. $(ABBREV)mclistboxexe.$(OBJ): $(EXTDIR)\$(PROJ)mclistbox.c $(H1) $(H2) $(H3)
  186.     $(ccexe) -o$(ABBREV)mclistboxexe.$(OBJ) $(EXTDIR)\$(PROJ)mclistbox.c
  187.  
  188. $(ABBREV)comboboxexe.$(OBJ): $(EXTDIR)\$(PROJ)combobox.c $(H1) $(H2) $(H3)
  189.     $(ccexe) -o$(ABBREV)comboboxexe.$(OBJ) $(EXTDIR)\$(PROJ)combobox.c
  190.  
  191. #
  192. # These modules are common modules; both for DLL and EXE
  193. #
  194.  
  195. packdll.$(OBJ): $(SRCDIR)/rxpack.c $(H1) $(H3)
  196.     $(ccdll) -opackdll.$(OBJ) $(SRCDIR)/rxpack.c
  197.  
  198. packexe.$(OBJ): $(SRCDIR)/rxpack.c $(H1) $(H3)
  199.     $(ccexe) -opackexe.$(OBJ) $(SRCDIR)/rxpack.c
  200.  
  201. #
  202. # Rules for resources
  203. #
  204. $(PROJ)os2.res: $(SRCDIR)/$(PROJ)os2.rc
  205.     rc -r -p -x1 $< $@
  206.  
  207. $(PROJ)treeos2.res: $(EXTDIR)\$(PROJ)treeos2.rc
  208.     rc -r -p -x1 $< $@
  209.  
  210. $(PROJ)notebookos2.res: $(EXTDIR)\$(PROJ)notebookos2.rc
  211.     rc -r -p -x1 $< $@
  212.  
  213. $(PROJ)mclistboxos2.res: $(EXTDIR)\$(PROJ)mclistboxos2.rc
  214.     rc -r -p -x1 $< $@
  215.  
  216. $(PROJ)comboboxos2.res: $(EXTDIR)\$(PROJ)comboboxos2.rc
  217.     rc -r -p -x1 $< $@
  218.  
  219. #
  220. # Rules for executables and DLLs
  221. #
  222. $(PROJ).dll: $(objsdll) $(PROJ)os2.res
  223.     $(LINK) $(lflagsdll) $(objsdll) $(LINK_OUT)$@ $(TCLLIBDLL) $(TKLIBDLL) \
  224.                 $(REXXLIBDLL) $(SRCDIR)/$(PROJ)os2_dll.def
  225.     rc -p -x1 $(PROJ)os2.res $@
  226.  
  227. $(PROJ)tree.dll: $(objstreedll) $(PROJ)treeos2.res
  228.     $(LINK) $(lflagsdll) $(objstreedll) $(LINK_OUT)$@ $(TCLLIBDLL) \
  229.         $(TKLIBDLL) $(REXXLIBDLL) $(EXTDIR)/$(PROJ)treeos2.def
  230.     rc -p -x1 $(PROJ)treeos2.res $@
  231.  
  232. $(PROJ)notebook.dll: $(objsnotebookdll) $(PROJ)notebookos2.res
  233.     $(LINK) $(lflagsdll) $(objsnotebookdll) $(LINK_OUT)$@ $(TCLLIBDLL) \
  234.         $(TKLIBDLL) $(REXXLIBDLL) $(EXTDIR)/$(PROJ)notebookos2.def
  235.     rc -p -x1 $(PROJ)notebookos2.res $@
  236.  
  237. $(PROJ)mclistbox.dll: $(objsmclistboxdll) $(PROJ)mclistboxos2.res
  238.     $(LINK) $(lflagsdll) $(objsmclistboxdll) $(LINK_OUT)$@ $(TCLLIBDLL) \
  239.         $(TKLIBDLL) $(REXXLIBDLL) $(EXTDIR)/$(PROJ)mclistboxos2.def
  240.     rc -p -x1 $(PROJ)mclistboxos2.res $@
  241.  
  242. $(PROJ)combobox.dll: $(objscomboboxdll) $(PROJ)comboboxos2.res
  243.     $(LINK) $(lflagsdll) $(objscomboboxdll) $(LINK_OUT)$@ $(TCLLIBDLL) \
  244.         $(TKLIBDLL) $(REXXLIBDLL) $(EXTDIR)/$(PROJ)comboboxos2.def
  245.     rc -p -x1 $(PROJ)comboboxos2.res $@
  246.  
  247. #$(PROJ).exe: $(PROJ)
  248. #    $(MYLDEXTRA) $(PROJ)
  249.  
  250. $(PROJ).exe: $(objsexe) $(PROJ)os2.res
  251.     $(LINK) $(lflagsexe) $(objsexe) $(LINK_OUT)$@ $(TCLLIBEXE) $(TKLIBEXE) \
  252.                 $(REXXLIBEXE) $(SRCDIR)/$(PROJ)os2.def
  253.     rc -p -x1 $(PROJ)os2.res $@
  254.