home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / tcltk805.zip / tcl805s.zip / tcl8.0.5 / os2 / Makefile < prev    next >
Makefile  |  2001-09-08  |  17KB  |  620 lines

  1. #
  2. # Makefile for compiling Tcl for OS/2 with EMX/GCC
  3. #
  4.  
  5. ### Build choices
  6.  
  7. # uncomment the following line to compile with symbols
  8. #DEBUGGING=1
  9.  
  10. # Uncomment the following to make binaries that run only on Warp or higher
  11. #TARGET_WARP=yes
  12.  
  13. # Format is OMF (.obj, debuggable by IPMD, TD, TDOS2, ....)
  14. # or A.OUT (.o, debuggable by GDB/PMGDB)
  15. #FORMAT = A.OUT
  16. FORMAT = OMF
  17.  
  18. # Where to build target dist
  19. DISTDIR = d:\TclTk805\TclTk
  20.  
  21. ### End of build choices
  22.  
  23. # Version
  24. TCLVER = 80
  25. LONGVER = 8.0
  26. FULLVERSION = 8.0.5
  27. SHORTVERSION = 805
  28.  
  29. #
  30. # Project directories
  31. #
  32. # TMPDIR = location where .$(OBJ) files should be stored during build
  33. # TCLDIR = location of top of Tcl source hierarchy
  34. #
  35.  
  36. ROOT    = ..
  37. GENERIC_DIR = $(ROOT)/generic
  38. OS2_DIR = $(ROOT)/os2
  39. TMPDIR    = .
  40. EMXDIR  = d:/emx
  41.  
  42. # Choose packing
  43. ifdef TARGET_WARP
  44.     # Warp 3 and higher
  45.     EXEPACKING=/EXEPACK:2
  46.     RESPACKING=-x2
  47.     LXLITE=lxlite /ML1
  48. #    LXLITE=echo lxlite /ML1
  49. else
  50.     # All 32bit versions of OS/2
  51.     EXEPACKING=/EXEPACK
  52.     RESPACKING=-x1
  53.     LXLITE=lxlite /MR3
  54. #    LXLITE=echo lxlite /MR3
  55. endif
  56.  
  57. ifeq ($(FORMAT),A.OUT)
  58.    ARCH=a
  59.    OBJ=o
  60.    OUTPUTFLAG=
  61.    EXTRALINK =
  62.    SOCKLIB = -lsocket
  63.    # No space after definition
  64.    RC = emxbind -br
  65. else
  66.    ARCH=lib
  67.    OBJ=obj
  68.    OUTPUTFLAG=-Zomf
  69.    EXTRALINK = -Zlinker /FARCALLTRANSLATION -Zlinker /RUNFROMVDM -Zlinker /BASE:0x10000 -Zlinker /ALIGN:2 -Zlinker $(EXEPACKING)
  70.    SOCKLIB = $(EMXDIR)/lib/socket.$(ARCH)
  71.    # NB! space after definition!
  72.    RC = rc -p $(RESPACKING) 
  73. endif
  74. RCPRE = rc -r -p $(RESPACKING) 
  75.  
  76.  
  77. TCLBASE     = tcl$(TCLVER)
  78. TCLLIB      = $(TCLBASE).$(ARCH)
  79. TCLOMFLIB   = $(TCLBASE).lib
  80. TCLARCHIVE  = $(TCLBASE).a
  81. TCLDLL      = $(TCLBASE).dll
  82. TCLSHPMBASE = tclpm$(TCLVER)
  83. TCLSHPM     = $(TCLSHPMBASE).exe
  84. TCLSHPMDEF  = $(TCLSHPMBASE).def
  85. TCLSHBASE   = tclsh$(TCLVER)
  86. TCLSH       = $(TCLSHBASE).exe
  87. TCLSHDEF    = $(TCLSHBASE).def
  88. TCLTESTBASE = tcltst$(TCLVER)
  89. TCLTEST     = $(TCLTESTBASE).exe
  90. TCLREGDLL   = tclreg$(TCLVER).dll
  91. TCLREGDEF   = tclreg$(TCLVER).def
  92.  
  93. # GENTCLSH is used to generate the help file (INF file), should be in path
  94. GENTCLSH = tclsh76
  95. #GENTCLSH = tclsh80
  96. IMPLIB  = emximp
  97. CC      = gcc -c
  98. LINK    = gcc
  99. # Careful, there has to be a space after '-o' !
  100. LINK_OUT = -o 
  101. CP      = copy
  102. RM      = del /f
  103. MKDIR   = mkdir
  104.  
  105. EMXIMP  = emximp
  106.  
  107. DEFINES =       -D__OS2__ -DDLL_BUILD -DBUILD_tcl -DHAS_DIRENT -DHAS_STDARG \
  108.         -D"wchar_t=unsigned short" -D_WCHAR_T
  109. STD_INCLUDES =  -I$(OS2_DIR) -I$(EMXDIR)/include
  110. TCL_INCLUDES =  -I$(OS2_DIR) -I$(GENERIC_DIR)
  111. INCLUDES =    $(STD_INCLUDES) $(TCL_INCLUDES)
  112. LIBDIRS =    -L$(EMXDIR)/lib -L$(OS2_DIR)
  113.  
  114. ifndef DEBUGGING
  115.   # these macros cause maximum optimization and no symbols
  116.   CFLAGS =    -O -Wall -mprobe -m486 $(OUTPUTFLAG) -Zmtd -s $(DEFINES) $(INCLUDES)
  117. else
  118.   # these macros enable debugging
  119.   CFLAGS =    -g -mprobe -m486 $(OUTPUTFLAG) -Zmtd -fhandle-exceptions \
  120.           $(DEFINES) $(DEBUGDEFINES) $(INCLUDES) -DVERBOSE -DTCL_DEBUG
  121. endif
  122. CC_SWITCHES =   $(CFLAGS)
  123.  
  124. ifndef DEBUGGING
  125.   LNFLAGS_exe = $(OUTPUTFLAG) -Zmtd $(EXTRALINK) -lwrap -s
  126.   LNFLAGS_dll = -mprobe -Zcrtdll -Zdll $(OUTPUTFLAG) -Zmt \
  127.                 $(EXTRALINK) -lm -lwrap -s
  128. else
  129.   LNFLAGS_exe = $(OUTPUTFLAG) -Zmtd $(EXTRALINK)
  130. #  LNFLAGS_dll = -mprobe -Zcrtdll -Zdll $(OUTPUTFLAG) -Zmt $(EXTRALINK) -lm
  131.   LNFLAGS_dll = -mprobe -Zcrtdll -Zdll $(OUTPUTFLAG) -Zmt $(EXTRALINK) -lm
  132. endif
  133.  
  134. .SUFFIXES: .c .dll .$(ARCH) .$(OBJ) .exe
  135.  
  136. TCLSHPMOBJS = \
  137.     tclOS2AppInit.$(OBJ)
  138.  
  139. TCLSHOBJS = \
  140.     tclOS2AppInitC.$(OBJ)
  141.  
  142. # PM version
  143. #TCLTESTOBJS = \
  144. #    tclTest.$(OBJ) \
  145. #    tclTestObj.$(OBJ) \
  146. #    tclOS2Test.$(OBJ) \
  147. #    testMain.$(OBJ)
  148. # CLI version
  149. TCLTESTOBJS = \
  150.     tclTest.$(OBJ) \
  151.     tclTestObj.$(OBJ) \
  152.     tclOS2Test.$(OBJ) \
  153.     testMainC.$(OBJ)
  154.  
  155. TCLCOMPATOBJS =
  156.  
  157.  
  158. TCLOBJS = \
  159.     tclOS2Alloc.$(OBJ) \
  160.     tclOS2Chan.$(OBJ) \
  161.     tclOS2Console.$(OBJ) \
  162.     tclOS2Error.$(OBJ) \
  163.     tclOS2FCmd.$(OBJ) \
  164.     tclOS2File.$(OBJ) \
  165.     tclOS2Init.$(OBJ) \
  166.     tclOS2Load.$(OBJ) \
  167.     tclOS2Main.$(OBJ) \
  168.     tclOS2Mtherr.$(OBJ) \
  169.     tclOS2Notify.$(OBJ) \
  170.     tclOS2Pipe.$(OBJ) \
  171.     tclOS2Sock.$(OBJ) \
  172.     tclOS2Time.$(OBJ) \
  173.     panic.$(OBJ) \
  174.     regexp.$(OBJ) \
  175.     tclAlloc.$(OBJ) \
  176.     tclAsync.$(OBJ) \
  177.     tclBasic.$(OBJ) \
  178.     tclBinary.$(OBJ) \
  179.     tclCkalloc.$(OBJ) \
  180.     tclClock.$(OBJ) \
  181.     tclCmdAH.$(OBJ) \
  182.     tclCmdIL.$(OBJ) \
  183.     tclCmdMZ.$(OBJ) \
  184.     tclCompExpr.$(OBJ) \
  185.     tclCompile.$(OBJ) \
  186.     tclDate.$(OBJ) \
  187.     tclEnv.$(OBJ) \
  188.     tclEvent.$(OBJ) \
  189.     tclExecute.$(OBJ) \
  190.     tclFCmd.$(OBJ) \
  191.     tclFileName.$(OBJ) \
  192.     tclGet.$(OBJ) \
  193.     tclHash.$(OBJ) \
  194.     tclHistory.$(OBJ) \
  195.     tclIndexObj.$(OBJ) \
  196.     tclInterp.$(OBJ) \
  197.     tclIO.$(OBJ) \
  198.     tclIOCmd.$(OBJ) \
  199.     tclIOSock.$(OBJ) \
  200.     tclIOUtil.$(OBJ) \
  201.     tclLink.$(OBJ) \
  202.     tclListObj.$(OBJ) \
  203.     tclLoad.$(OBJ) \
  204.     tclNamesp.$(OBJ) \
  205.     tclNotify.$(OBJ) \
  206.     tclObj.$(OBJ) \
  207.     tclParse.$(OBJ) \
  208.     tclPipe.$(OBJ) \
  209.     tclPkg.$(OBJ) \
  210.     tclPosixStr.$(OBJ) \
  211.     tclPreserve.$(OBJ) \
  212.     tclProc.$(OBJ) \
  213.     tclResolve.$(OBJ) \
  214.     tclStringObj.$(OBJ) \
  215.     tclTimer.$(OBJ) \
  216.     tclUtil.$(OBJ) \
  217.     tclVar.$(OBJ)
  218.  
  219. TCLDLLOBJS = \
  220.     $(TCLOBJS) \
  221.     tclOS2Dll.$(OBJ)
  222.  
  223. #
  224. # Targets
  225. #
  226.  
  227. all:  $(TCLDLL) $(TCLSHPM) $(TCLSH) $(TCLREGDLL) $(TCLTEST)
  228. test: $(TCLDLL) $(TCLTEST)
  229. dlls:    $(TCLDLL) $(TCLREGDLL)
  230. doc: tcl$(SHORTVERSION).inf
  231.  
  232. # OS/2 binaries:
  233.  
  234. tclOS2AppInit.$(OBJ): tclOS2AppInit.c
  235.     $(CC) $(CC_SWITCHES) tclOS2AppInit.c
  236. # CLI version
  237. tclOS2AppInitC.$(OBJ): tclOS2AppInit.c
  238.     $(CC) $(CC_SWITCHES) $(LINK_OUT)$@ -DCLI_VERSION tclOS2AppInit.c
  239.  
  240. tclOS2Alloc.$(OBJ): tclOS2Alloc.c
  241.     $(CC) $(CC_SWITCHES) tclOS2Alloc.c
  242. tclOS2Chan.$(OBJ): tclOS2Chan.c
  243.     $(CC) $(CC_SWITCHES) tclOS2Chan.c
  244. tclOS2Console.$(OBJ): tclOS2Console.c
  245.     $(CC) $(CC_SWITCHES) tclOS2Console.c
  246. tclOS2Dll.$(OBJ): tclOS2Dll.c
  247.     $(CC) $(CC_SWITCHES) tclOS2Dll.c
  248. tclOS2Error.$(OBJ): tclOS2Error.c
  249.     $(CC) $(CC_SWITCHES) tclOS2Error.c
  250. tclOS2FCmd.$(OBJ): tclOS2FCmd.c
  251.     $(CC) $(CC_SWITCHES) tclOS2FCmd.c
  252. tclOS2File.$(OBJ): tclOS2File.c
  253.     $(CC) $(CC_SWITCHES) tclOS2File.c
  254. tclOS2Init.$(OBJ): tclOS2Init.c
  255.     $(CC) $(CC_SWITCHES) tclOS2Init.c
  256. tclOS2Load.$(OBJ): tclOS2Load.c
  257.     $(CC) $(CC_SWITCHES) tclOS2Load.c
  258. tclOS2Main.$(OBJ): tclOS2Main.c
  259.     $(CC) $(CC_SWITCHES) tclOS2Main.c
  260. tclOS2Mtherr.$(OBJ): tclOS2Mtherr.c
  261.     $(CC) $(CC_SWITCHES) tclOS2Mtherr.c
  262. tclOS2Notify.$(OBJ): tclOS2Notify.c
  263.     $(CC) $(CC_SWITCHES) tclOS2Notify.c
  264. tclOS2Pipe.$(OBJ): tclOS2Pipe.c
  265.     $(CC) $(CC_SWITCHES) tclOS2Pipe.c
  266. tclOS2Sock.$(OBJ): tclOS2Sock.c
  267.     $(CC) $(CC_SWITCHES) tclOS2Sock.c
  268. tclOS2Stubs.$(OBJ): tclOS2Stubs.c
  269.     $(CC) $(CC_SWITCHES) tclOS2Stubs.c
  270. tclOS2Test.$(OBJ): tclOS2Test.c
  271.     $(CC) $(CC_SWITCHES) tclOS2Test.c
  272. tclOS2Time.$(OBJ): tclOS2Time.c
  273.     $(CC) $(CC_SWITCHES) tclOS2Time.c
  274.  
  275. # Generic binaries:
  276.  
  277. panic.$(OBJ): $(GENERIC_DIR)/panic.c
  278.     $(CC) $(CC_SWITCHES) $(GENERIC_DIR)/panic.c
  279.  
  280. regexp.$(OBJ): $(GENERIC_DIR)/regexp.c
  281.     $(CC) $(CC_SWITCHES) $(GENERIC_DIR)/regexp.c
  282.  
  283. #tcl2c.$(OBJ): $(GENERIC_DIR)/tcl2c.c
  284. #    $(CC) $(CC_SWITCHES) $(GENERIC_DIR)/tcl2c.c
  285. tcl2c.$(OBJ): tcl2c.c
  286.     $(CC) $(CC_SWITCHES) tcl2c.c
  287.  
  288. #tclAlloc.$(OBJ): $(GENERIC_DIR)/tclAlloc.c
  289. #    $(CC) $(CC_SWITCHES) $(GENERIC_DIR)/tclAlloc.c
  290. tclAlloc.$(OBJ): tclAlloc.c
  291.     $(CC) $(CC_SWITCHES) tclAlloc.c
  292.  
  293. tclAsync.$(OBJ): $(GENERIC_DIR)/tclAsync.c
  294.     $(CC) $(CC_SWITCHES) $(GENERIC_DIR)/tclAsync.c
  295.  
  296. tclBasic.$(OBJ): $(GENERIC_DIR)/tclBasic.c
  297.     $(CC) $(CC_SWITCHES) $(GENERIC_DIR)/tclBasic.c
  298.  
  299. tclBinary.$(OBJ): $(GENERIC_DIR)/tclBinary.c
  300.     $(CC) $(CC_SWITCHES) $(GENERIC_DIR)/tclBinary.c
  301.  
  302. tclCkalloc.$(OBJ): $(GENERIC_DIR)/tclCkalloc.c
  303.     $(CC) $(CC_SWITCHES) $(GENERIC_DIR)/tclCkalloc.c
  304.  
  305. tclClock.$(OBJ): $(GENERIC_DIR)/tclClock.c
  306.     $(CC) $(CC_SWITCHES) $(GENERIC_DIR)/tclClock.c
  307.  
  308. #tclCmdAH.$(OBJ): $(GENERIC_DIR)/tclCmdAH.c
  309. #    $(CC) $(CC_SWITCHES) $(GENERIC_DIR)/tclCmdAH.c
  310. tclCmdAH.$(OBJ): tclCmdAH.c
  311.     $(CC) $(CC_SWITCHES) tclCmdAH.c
  312.  
  313. tclCmdIL.$(OBJ): $(GENERIC_DIR)/tclCmdIL.c
  314.     $(CC) $(CC_SWITCHES) $(GENERIC_DIR)/tclCmdIL.c
  315.  
  316. tclCmdMZ.$(OBJ): $(GENERIC_DIR)/tclCmdMZ.c
  317.     $(CC) $(CC_SWITCHES) $(GENERIC_DIR)/tclCmdMZ.c
  318.  
  319. tclCompExpr.$(OBJ): $(GENERIC_DIR)/tclCompExpr.c
  320.     $(CC) $(CC_SWITCHES) $(GENERIC_DIR)/tclCompExpr.c
  321.  
  322. tclCompile.$(OBJ): $(GENERIC_DIR)/tclCompile.c
  323.     $(CC) $(CC_SWITCHES) $(GENERIC_DIR)/tclCompile.c
  324.  
  325. tclDate.$(OBJ): $(GENERIC_DIR)/tclDate.c
  326.     $(CC) $(CC_SWITCHES) $(GENERIC_DIR)/tclDate.c
  327.  
  328. tclEnv.$(OBJ): $(GENERIC_DIR)/tclEnv.c
  329.     $(CC) $(CC_SWITCHES) $(GENERIC_DIR)/tclEnv.c
  330.  
  331. tclEvent.$(OBJ): $(GENERIC_DIR)/tclEvent.c
  332.     $(CC) $(CC_SWITCHES) $(GENERIC_DIR)/tclEvent.c
  333.  
  334. tclExecute.$(OBJ): $(GENERIC_DIR)/tclExecute.c
  335.     $(CC) $(CC_SWITCHES) $(GENERIC_DIR)/tclExecute.c
  336.  
  337. tclFCmd.$(OBJ): $(GENERIC_DIR)/tclFCmd.c
  338.     $(CC) $(CC_SWITCHES) $(GENERIC_DIR)/tclFCmd.c
  339.  
  340. #tclFileName.$(OBJ): $(GENERIC_DIR)/tclFileName.c
  341. #    $(CC) $(CC_SWITCHES) $(GENERIC_DIR)/tclFileName.c
  342. tclFileName.$(OBJ): tclFileName.c
  343.     $(CC) $(CC_SWITCHES) tclFileName.c
  344.  
  345. tclGet.$(OBJ): $(GENERIC_DIR)/tclGet.c
  346.     $(CC) $(CC_SWITCHES) $(GENERIC_DIR)/tclGet.c
  347.  
  348. tclHash.$(OBJ): $(GENERIC_DIR)/tclHash.c
  349.     $(CC) $(CC_SWITCHES) $(GENERIC_DIR)/tclHash.c
  350.  
  351. tclHistory.$(OBJ): $(GENERIC_DIR)/tclHistory.c
  352.     $(CC) $(CC_SWITCHES) $(GENERIC_DIR)/tclHistory.c
  353.  
  354. tclIndexObj.$(OBJ): $(GENERIC_DIR)/tclIndexObj.c
  355.     $(CC) $(CC_SWITCHES) $(GENERIC_DIR)/tclIndexObj.c
  356.  
  357. tclInterp.$(OBJ): $(GENERIC_DIR)/tclInterp.c
  358.     $(CC) $(CC_SWITCHES) $(GENERIC_DIR)/tclInterp.c
  359.  
  360. tclIO.$(OBJ): $(GENERIC_DIR)/tclIO.c
  361.     $(CC) $(CC_SWITCHES) $(GENERIC_DIR)/tclIO.c
  362.  
  363. tclIOCmd.$(OBJ): $(GENERIC_DIR)/tclIOCmd.c
  364.     $(CC) $(CC_SWITCHES) $(GENERIC_DIR)/tclIOCmd.c
  365.  
  366. tclIOSock.$(OBJ): $(GENERIC_DIR)/tclIOSock.c
  367.     $(CC) $(CC_SWITCHES) $(GENERIC_DIR)/tclIOSock.c
  368.  
  369. tclIOUtil.$(OBJ): $(GENERIC_DIR)/tclIOUtil.c
  370.     $(CC) $(CC_SWITCHES) $(GENERIC_DIR)/tclIOUtil.c
  371.  
  372. tclLink.$(OBJ): $(GENERIC_DIR)/tclLink.c
  373.     $(CC) $(CC_SWITCHES) $(GENERIC_DIR)/tclLink.c
  374.  
  375. tclListObj.$(OBJ): $(GENERIC_DIR)/tclListObj.c
  376.     $(CC) $(CC_SWITCHES) $(GENERIC_DIR)/tclListObj.c
  377.  
  378. tclLoad.$(OBJ): $(GENERIC_DIR)/tclLoad.c
  379.     $(CC) $(CC_SWITCHES) $(GENERIC_DIR)/tclLoad.c
  380.  
  381. tclNamesp.$(OBJ): $(GENERIC_DIR)/tclNamesp.c
  382.     $(CC) $(CC_SWITCHES) $(GENERIC_DIR)/tclNamesp.c
  383.  
  384. tclNotify.$(OBJ): $(GENERIC_DIR)/tclNotify.c
  385.     $(CC) $(CC_SWITCHES) $(GENERIC_DIR)/tclNotify.c
  386.  
  387. tclObj.$(OBJ): $(GENERIC_DIR)/tclObj.c
  388.     $(CC) $(CC_SWITCHES) $(GENERIC_DIR)/tclObj.c
  389.  
  390. tclParse.$(OBJ): $(GENERIC_DIR)/tclParse.c
  391.     $(CC) $(CC_SWITCHES) $(GENERIC_DIR)/tclParse.c
  392.  
  393. tclPipe.$(OBJ): $(GENERIC_DIR)/tclPipe.c
  394.     $(CC) $(CC_SWITCHES) $(GENERIC_DIR)/tclPipe.c
  395.  
  396. tclPkg.$(OBJ): $(GENERIC_DIR)/tclPkg.c
  397.     $(CC) $(CC_SWITCHES) $(GENERIC_DIR)/tclPkg.c
  398.  
  399. tclPosixStr.$(OBJ): $(GENERIC_DIR)/tclPosixStr.c
  400.     $(CC) $(CC_SWITCHES) $(GENERIC_DIR)/tclPosixStr.c
  401.  
  402. tclPreserve.$(OBJ): $(GENERIC_DIR)/tclPreserve.c
  403.     $(CC) $(CC_SWITCHES) $(GENERIC_DIR)/tclPreserve.c
  404.  
  405. tclProc.$(OBJ): $(GENERIC_DIR)/tclProc.c
  406.     $(CC) $(CC_SWITCHES) $(GENERIC_DIR)/tclProc.c
  407.  
  408. tclResolve.$(OBJ): $(GENERIC_DIR)/tclResolve.c
  409.     $(CC) $(CC_SWITCHES) $(GENERIC_DIR)/tclResolve.c
  410.  
  411. tclStringObj.$(OBJ): $(GENERIC_DIR)/tclStringObj.c
  412.     $(CC) $(CC_SWITCHES) $(GENERIC_DIR)/tclStringObj.c
  413.  
  414. #tclTest.$(OBJ): $(GENERIC_DIR)/tclTest.c
  415. #    $(CC) $(CC_SWITCHES) $(GENERIC_DIR)/tclTest.c
  416. tclTest.$(OBJ): tclTest.c
  417.     $(CC) $(CC_SWITCHES) tclTest.c
  418.  
  419. tclTestObj.$(OBJ): $(GENERIC_DIR)/tclTestObj.c
  420.     $(CC) $(CC_SWITCHES) $(GENERIC_DIR)/tclTestObj.c
  421.  
  422. tclTimer.$(OBJ): $(GENERIC_DIR)/tclTimer.c
  423.     $(CC) $(CC_SWITCHES) $(GENERIC_DIR)/tclTimer.c
  424.  
  425. tclUtil.$(OBJ): $(GENERIC_DIR)/tclUtil.c
  426.     $(CC) $(CC_SWITCHES) $(GENERIC_DIR)/tclUtil.c
  427.  
  428. tclVar.$(OBJ): $(GENERIC_DIR)/tclVar.c
  429.     $(CC) $(CC_SWITCHES) $(GENERIC_DIR)/tclVar.c
  430.  
  431. # compat binaries
  432.  
  433. fixstrtod.$(OBJ): $(COMPAT_DIR)/fixstrtod.c
  434.     $(CC) $(CC_SWITCHES) $(COMPAT_DIR)/fixstrtod.c
  435.  
  436. gettod.$(OBJ): $(COMPAT_DIR)/gettod.c
  437.     $(CC) $(CC_SWITCHES) $(COMPAT_DIR)/gettod.c
  438.  
  439. getcwd.$(OBJ): $(COMPAT_DIR)/getcwd.c
  440.     $(CC) $(CC_SWITCHES) $(COMPAT_DIR)/getcwd.c
  441.  
  442. opendir.$(OBJ): $(COMPAT_DIR)/opendir.c
  443.     $(CC) $(CC_SWITCHES) $(COMPAT_DIR)/opendir.c
  444.  
  445. strncasecmp.$(OBJ): $(COMPAT_DIR)/strncasecmp.c
  446.     $(CC) $(CC_SWITCHES) $(COMPAT_DIR)/strncasecmp.c
  447.  
  448. strstr.$(OBJ): $(COMPAT_DIR)/strstr.c
  449.     $(CC) $(CC_SWITCHES) $(COMPAT_DIR)/strstr.c
  450.  
  451. strtod.$(OBJ): $(COMPAT_DIR)/strtod.c
  452.     $(CC) $(CC_SWITCHES) $(COMPAT_DIR)/strtod.c
  453.  
  454. strtol.$(OBJ): $(COMPAT_DIR)/strtol.c
  455.     $(CC) $(CC_SWITCHES) $(COMPAT_DIR)/strtol.c
  456.  
  457. strtoul.$(OBJ): $(COMPAT_DIR)/strtoul.c
  458.     $(CC) $(CC_SWITCHES) $(COMPAT_DIR)/strtoul.c
  459.  
  460. tmpnam.$(OBJ): $(COMPAT_DIR)/tmpnam.c
  461.     $(CC) $(CC_SWITCHES) $(COMPAT_DIR)/tmpnam.c
  462.  
  463. waitpid.$(OBJ): $(COMPAT_DIR)/waitpid.c
  464.     $(CC) $(CC_SWITCHES) $(COMPAT_DIR)/waitpid.c
  465.  
  466.  
  467. # Implicit Targets
  468.  
  469. .c.$(OBJ):
  470.     $(CC) -DDLL_BUILD -DBUILD_tcl $(CC_SWITCHES) $<
  471.  
  472. #.dll.$(ARCH):
  473. #    $(IMPLIB) -c $@ $<
  474.  
  475. .rc.res:
  476.     $(RCPRE) -i$(INCLUDES) $<
  477.  
  478. #
  479. # Special case object file targets
  480. #
  481.  
  482. testMain.$(OBJ) : tclOS2AppInit.c
  483.     $(CC) -DTCL_TEST $(CC_SWITCHES) $(LINK_OUT)$@ tclOS2AppInit.c
  484.  
  485. # CLI version
  486. testMainC.$(OBJ) : tclOS2AppInit.c
  487.     $(CC) -DTCL_TEST -DCLI_VERSION $(CC_SWITCHES) $(LINK_OUT)$@ tclOS2AppInit.c
  488.  
  489.  
  490. #
  491. # Executable targets
  492. #
  493.  
  494. $(TCLDLL): $(TCLDLLOBJS) $(TCLBASE).def $(TCLBASE).res
  495.     $(LINK) $(LINK_OUT)$@ $(LNFLAGS_dll) $(TCLDLLOBJS) $(TCLBASE).def $(SOCKLIB)
  496.     $(RC)$(TCLBASE).res $(TCLDLL)
  497. ifndef DEBUGGING
  498.     -$(LXLITE) $(TCLDLL)
  499. endif
  500.  
  501. $(TCLREGDLL): tclOS2Reg.$(OBJ) $(TCLLIB) $(TCLREGDEF) $(TCLBASE).res
  502.     $(LINK) $(LINK_OUT)$@ $(LNFLAGS_dll) tclOS2Reg.$(OBJ) $(TCLLIB) $(TCLREGDEF)
  503.     $(RC)$(TCLBASE).res $(TCLREGDLL)
  504. ifndef DEBUGGING
  505.     -$(LXLITE) $(TCLREGDLL)
  506. endif
  507.  
  508. $(TCLBASE).res: $(TCLBASE).rc
  509.     $(RCPRE) $(TCLBASE).rc
  510.  
  511.  
  512. $(TCLSHPM): $(TCLSHPMOBJS) $(TCLLIB) $(TCLSHPMDEF) $(TCLSHPMBASE).res
  513.     $(LINK) $(LINK_OUT)$@ $(LNFLAGS_exe) $(TCLSHPMOBJS) $(TCLLIB) $(TCLSHPMDEF)
  514.     $(RC)$(TCLSHPMBASE).res $(TCLSHPM)
  515. ifndef DEBUGGING
  516.     -$(LXLITE) $(TCLSHPM)
  517. endif
  518.  
  519. $(TCLSH): $(TCLSHOBJS) $(TCLLIB) $(TCLSHDEF) $(TCLSHBASE).res
  520.     $(LINK) $(LINK_OUT)$@ $(LNFLAGS_exe) $(TCLSHOBJS) $(TCLLIB) $(TCLSHDEF)
  521.     $(RC)$(TCLSHBASE).res $(TCLSH)
  522. ifndef DEBUGGING
  523.     -$(LXLITE) $(TCLSH)
  524. endif
  525.  
  526. $(TCLSHPMBASE).res: $(TCLSHPMBASE).rc
  527.     $(RCPRE) $(TCLSHPMBASE).rc
  528.  
  529. $(TCLSHBASE).res: $(TCLSHBASE).rc
  530.     $(RCPRE) $(TCLSHBASE).rc
  531.  
  532. #PM version
  533. #$(TCLTEST): $(TCLTESTOBJS) $(TCLLIB) $(TCLSHPMDEF) $(TCLSHPMBASE).res
  534. #    $(LINK) $(LINK_OUT)$@ $(LNFLAGS_exe) $(TCLTESTOBJS) $(TCLLIB) \
  535. #        $(TCLSHPMDEF)
  536. #    $(RC)$(TCLSHPMBASE).res $(TCLTEST)
  537. #ifndef DEBUGGING
  538. #    -$(LXLITE) $(TCLTEST)
  539. #endif
  540. #CLI version
  541. $(TCLTEST): $(TCLTESTOBJS) $(TCLLIB) $(TCLSHDEF) $(TCLSHBASE).res
  542.     $(LINK) $(LINK_OUT)$@ $(LNFLAGS_exe) $(TCLTESTOBJS) $(TCLLIB) \
  543.         $(TCLSHDEF)
  544.     $(RC)$(TCLSHBASE).res $(TCLTEST)
  545. ifndef DEBUGGING
  546.     -$(LXLITE) $(TCLTEST)
  547. endif
  548.  
  549. $(TCLOMFLIB): $(TCLBASE).imp
  550.     $(IMPLIB) -o $(TCLOMFLIB) $(TCLBASE).imp
  551.  
  552. $(TCLBASE).imp: $(TCLBASE).def
  553.     $(IMPLIB) $(LINK_OUT)$@ $(TCLBASE).def
  554.  
  555. $(TCLARCHIVE): $(TCLBASE).imp
  556.     $(EMXIMP) -o $(TCLARCHIVE) $(TCLBASE).imp
  557.  
  558. # The following rule automatically generates a tcl<version>.def file containing
  559. # an export entry for every public symbol in the tcl<version>.dll library.
  560.  
  561. $(TCLBASE).def: $(TCLBASE)def.base $(TCLDLLOBJS)
  562.     type $(TCLBASE)def.base > $(TCLBASE).def
  563.     emxexp -o $(TCLDLLOBJS) >> $(TCLBASE).def
  564.  
  565. # make documentation
  566. tcl$(SHORTVERSION).inf: tcl$(SHORTVERSION).ipf
  567.     ipfc /inf tcl$(SHORTVERSION).ipf
  568.  
  569. tcl$(SHORTVERSION).ipf: man2tcl.exe ..\doc\registry.n
  570.     $(GENTCLSH) man2ipf.tcl tcl $(FULLVERSION) \
  571.         ../../tcl$(FULLVERSION)/doc \
  572.         ../../tk$(FULLVERSION)/doc \
  573.         /oratcl-2.5/doc/oratcl.man
  574. man2tcl.exe: man2tcl.c
  575.     gcc $(OUTPUTFLAG) man2tcl.c $(LINK_OUT)$@
  576.  
  577. ..\doc\registry.n: registry.n
  578.     copy registry.n ..\doc
  579.  
  580. # Always make an a.out archive when creating distribution
  581. aoutarchive: $(TCLARCHIVE)
  582.     -$(CP) $(TCLARCHIVE) $(DISTDIR)\lib
  583.  
  584. # distribution
  585. dist: all doc aoutarchive
  586. # test for writability
  587.     $(CP) Makefile $(DISTDIR)
  588.     $(RM) $(DISTDIR)\Makefile
  589.     -$(MKDIR) $(DISTDIR)\bin
  590.     -$(CP) $(TCLSH) $(DISTDIR)\bin
  591.     -$(CP) $(TCLSHPM) $(DISTDIR)\bin
  592.     -$(CP) $(TCLDLL) $(DISTDIR)\bin
  593.     -$(CP) $(TCLREGDLL) $(DISTDIR)\bin
  594.     -$(CP) $(TCLTEST) $(DISTDIR)\bin
  595.     -$(CP) man2tcl.exe $(DISTDIR)\bin
  596.     -$(MKDIR) $(DISTDIR)\doc
  597.     -$(CP) tcl$(SHORTVERSION).inf $(DISTDIR)\doc
  598.     -$(MKDIR) $(DISTDIR)\include
  599.     -$(CP) ..\generic\tcl.h $(DISTDIR)\include
  600.     -$(MKDIR) $(DISTDIR)\lib
  601.     -$(CP) $(TCLLIB) $(DISTDIR)\lib
  602.     -$(MKDIR) $(DISTDIR)\lib\tcl$(LONGVER)
  603.     -$(CP) ..\library\\* $(DISTDIR)\lib\tcl$(LONGVER)
  604.     -$(MKDIR) $(DISTDIR)\lib\tcl$(LONGVER)\http1.0
  605.     -$(CP) ..\library\http1.0\\* $(DISTDIR)\lib\tcl$(LONGVER)\http1.0
  606.     -$(MKDIR) $(DISTDIR)\lib\tcl$(LONGVER)\http2.0
  607.     -$(CP) ..\library\http2.0\\* $(DISTDIR)\lib\tcl$(LONGVER)\http2.0
  608.     -$(MKDIR) $(DISTDIR)\lib\tcl$(LONGVER)\opt0.1
  609.     -$(CP) ..\library\opt0.1\\* $(DISTDIR)\lib\tcl$(LONGVER)\opt0.1
  610.     -$(CP) man2ipf.tcl $(DISTDIR)\doc
  611.     -$(CP) man2ipf2.tcl $(DISTDIR)\doc
  612.  
  613. # remove all generated files
  614. clean:
  615.     -$(RM) $(TCLBASE).def $(TCLBASE) $(TCLLIB) $(TCLDLL) $(TCLBASE).res
  616.     -$(RM) $(TCLSHPMBASE) $(TCLSHPM) $(TCLSHPMBASE).map $(TCLSHPMBASE).res
  617.     -$(RM) $(TCLSHBASE) $(TCLSH) $(TCLSHBASE).map $(TCLSHBASE).res
  618.     -$(RM) $(TCLTESTBASE) $(TCLTEST) $(TCLTESTBASE).map $(TCLTESTBASE).res
  619.     -$(RM) *.$(OBJ)
  620.