#
# Makefile for compiling Tk for OS/2 with EMX/GCC
#

#
# Project directories
#
# ROOT = top of source tree
# TMPDIR = location where .obj files should be stored during build
# TCLDIR = location of top of Tcl source hierarchy
#

ROOT	= ..
GENERIC_DIR = $(ROOT)/generic
UNIX_DIR = $(ROOT)/unix
XLIB_DIR = $(ROOT)/xlib
TMPDIR	= .
TCLDIR	= ../../tcl7.6

# uncomment the following line to compile with symbols
#DEBUGGING=1

# uncomment the following line to ignore the resolution Presentation Manager
# tells us the device offers if it's 120dpi and just use 96dpi.
# requested by Ilya Zakharevich, see also tkOS2Font.c
#RESDEFS=-DIGNOREPMRES
RESDEFS=

# Uncomment the following line to use all key-handling patches suggested by
# Ilya Zakharevich. This will break eg. Ctrl-X.
#KEYDEFS=-DKEYPATCHES
KEYDEFS=

# Uncomment the following line to use a default font of "9.WarpSans" (available
# on Warp 4 and later);
FONTDEFS=-DWARP4LATER
#FONTDEFS=

# Choose packing
# (:2 compresses better but works only on Warp 3 and higher, other on all 2.x)
# Warp 3 and higher
#EXEPACKING=/EXEPACK:2
#RESPACKING=-x2
#LXLITE=lxlite /ML1
# All 32bit versions of OS/2
EXEPACKING=/EXEPACK
RESPACKING=-x1
LXLITE=lxlite /MR3

# uncomment the following two lines to compile with TCL_MEM_DEBUG
#DEBUGDEFINES = -DTCL_MEM_DEBUG

#

IMPLIB  = emximp
CC      = gcc
RC	= rc -p $(RESPACKING)
CP      = copy
RM      = del /f
EMX     = d:/emx

STD_INCLUDES =  -I/tk4.2/os2 -I$(EMX)/include
TCL_INCLUDES =  -I$(TCLDIR)/generic
TK_INCLUDES =   -I$(ROOT)/generic -I$(ROOT)/bitmaps -I$(XLIB_DIR) -I$(ROOT) \
	        -I$(UNIX_DIR)
INCLUDES =	$(STD_INCLUDES) $(TCL_INCLUDES) $(TK_INCLUDES)
LIBDIRS =	-L$(EMX)/lib -L$(ROOT)/os2
TCLLIBDIR =	$(TCLDIR)/os2
#DEFINES =       $(DEBUGDEFINES) -D"wchar_t=unsigned short" -D_WCHAR_T
DEFINES =       -D"wchar_t=unsigned short" -D_WCHAR_T \
		$(RESDEFS) $(FONTDEFS) $(KEYDEFS)

ifndef DEBUGGING
  # these macros cause maximum optimization and no symbols
  CFLAGS =	-O -Wall -mprobe -m486 -mno-epilogue \
  		-s -fhandle-exceptions -Zomf -Zmtd $(DEFINES) $(INCLUDES)
else
  # these macros enable debugging
  CFLAGS =	-g -mprobe -m486 -Zomf -Zmtd -mepilogue \
  		$(DEFINES) $(DEBUGDEFINES) $(INCLUDES) -DDEBUG
endif
CC_SWITCHES =   $(CFLAGS)

ifndef DEBUGGING
  LNFLAGS_exe = -Zexe -Zomf -Zmtd -Zstack 32 -Zlinker /BASE:0x10000 \
	       -Zlinker /ALIGN:2 -Zlinker /FARCALLTRANSLATION \
	       -Zlinker /RUNFROMVDM -Zlinker $(EXEPACKING)  -lwrap -s
  LNFLAGS_dll = -mprobe -Zdll -Zomf -Zmtd -Zstack 32 -Zlinker /ALIGN:2 \
		-Zlinker /FARCALLTRANSLATION -Zlinker /RUNFROMVDM \
		-Zlinker $(EXEPACKING) -lm $(SOCKLIB)  -lwrap -s
else
  LNFLAGS_exe = -Zexe -Zomf -Zmtd -Zstack 32 -Zlinker /BASE:0x10000 \
	       -Zlinker /ALIGN:2 -Zlinker /FARCALLTRANSLATION \
	       -Zlinker /RUNFROMVDM -Zlinker $(EXEPACKING)
  LNFLAGS_dll = -mprobe -Zdll -Zomf -Zmtd -Zstack 32 -Zlinker /ALIGN:2 \
		-Zlinker /FARCALLTRANSLATION -Zlinker /RUNFROMVDM \
		-Zlinker $(EXEPACKING) -lm $(SOCKLIB)
endif


LNLIBS_exe =	$(TKLIB) $(TCLLIBDIR)\$(TCLLIB)
LNLIBS_dll =	$(TCLLIBDIR)\$(TCLLIB)

TCLVER = 76
TKVER = 42

TCLBASE = tcl$(TCLVER)
TKBASE = tk$(TKVER)
WISHBASE = wish$(TKVER)
TCLLIB = $(TCLBASE).lib
TKLIB = $(TKBASE).lib
TCLDLL = $(TCLBASE).dll
TKDLL = $(TKBASE).dll
WISH = $(WISHBASE).exe
TKTESTBASE = tktest$(TKVER)
TKTEST = $(TKTESTBASE).exe

# 
# Global makefile settings
#

#.AUTODEPEND
#.CACHEAUTODEPEND

#
# Targets
#

all: $(TKDLL) $(WISH)
test: $(TKDLL) $(TKTEST)

.SUFFIXES: .c .dll .lib .obj .exe

WISHOBJS = \
	tkConsole.obj \
	os2Main.obj

TKTESTOBJS = \
	tkConsole.obj \
	tkTest.obj \
	tkSend.obj \
	tkSquare.obj \
	testMain.obj

XLIBOBJS = \
	xdraw.obj \
	xgc.obj \
	ximage.obj \
	xutil.obj

OS2TKOBJS = \
	tkOS2Clipboard.obj \
	tkOS2Color.obj \
	tkOS2Cursor.obj \
	tkOS2Dialog.obj \
	tkOS2Dll.obj \
	tkOS2Draw.obj \
	tkOS2Font.obj \
	tkOS2Image.obj \
	tkOS2ImgUtil.obj \
	tkOS2Init.obj \
	tkOS2Key.obj \
	tkOS2Pixmap.obj \
	tkOS2Pointer.obj \
	tkOS2Region.obj \
	tkOS2Window.obj \
	tkOS2Wm.obj \
	tkOS2X.obj \
	stubs.obj

OS2TKOBJSPEC = tkOS2*.obj stubs.obj

GENTKOBJS = \
	tk3d.obj \
	tkArgv.obj \
	tkAtom.obj \
	tkBind.obj \
	tkBitmap.obj \
	tkButton.obj \
	tkCanvArc.obj \
	tkCanvBmap.obj \
	tkCanvImg.obj \
	tkCanvLine.obj \
	tkCanvPoly.obj \
	tkCanvPs.obj \
	tkCanvText.obj \
	tkCanvUtil.obj \
	tkCanvWind.obj \
	tkCanvas.obj \
	tkClipboard.obj \
	tkCmds.obj \
	tkColor.obj \
	tkConfig.obj \
	tkConsole.obj \
	tkCursor.obj \
	tkEntry.obj \
	tkError.obj \
	tkEvent.obj \
	tkFileFilter.obj \
	tkFocus.obj \
	tkFont.obj \
	tkFrame.obj \
	tkGC.obj \
	tkGeometry.obj \
	tkGet.obj \
	tkGrab.obj \
	tkGrid.obj \
	tkImage.obj \
	tkImgBmap.obj \
	tkImgGIF.obj \
	tkImgPPM.obj \
	tkImgPhoto.obj \
	tkListbox.obj \
	tkMain.obj \
	tkMenu.obj \
	tkMenubutton.obj \
	tkMessage.obj \
	tkOption.obj \
	tkPack.obj \
	tkPlace.obj \
	tkRectOval.obj \
	tkScale.obj \
	tkScrollbar.obj \
	tkSelect.obj \
	tkSend.obj \
	tkText.obj \
	tkTextBTree.obj \
	tkTextDisp.obj \
	tkTextIndex.obj \
	tkTextMark.obj \
	tkTextTag.obj \
	tkTextWind.obj \
	tkTrig.obj \
	tkUtil.obj \
	tkVisual.obj \
	tkWindow.obj \
	$(XLIBOBJS)

SRCS = \
	$(GENERIC_DIR)/tk3d.c \
	$(GENERIC_DIR)/tkArgv.c \
	$(GENERIC_DIR)/tkAtom.c \
	$(GENERIC_DIR)/tkBind.c	\
	$(GENERIC_DIR)/tkBitmap.c \
	$(GENERIC_DIR)/tkButton.c \
	$(GENERIC_DIR)/tkCanvas.c \
	$(GENERIC_DIR)/tkCanvArc.c \
	$(GENERIC_DIR)/tkCanvBmap.c \
	$(GENERIC_DIR)/tkCanvImg.c \
	$(GENERIC_DIR)/tkCanvLine.c \
	$(GENERIC_DIR)/tkCanvPoly.c \
	$(GENERIC_DIR)/tkCanvPs.c \
	$(GENERIC_DIR)/tkCanvText.c \
	$(GENERIC_DIR)/tkCanvUtil.c \
	$(GENERIC_DIR)/tkCanvWind.c \
	$(GENERIC_DIR)/tkClipboard.c \
	$(GENERIC_DIR)/tkCmds.c \
	$(GENERIC_DIR)/tkColor.c \
	$(GENERIC_DIR)/tkConfig.c \
	$(GENERIC_DIR)/tkConsole.c \
	$(GENERIC_DIR)/tkCursor.c \
	$(GENERIC_DIR)/tkEntry.c \
	$(GENERIC_DIR)/tkError.c \
	$(GENERIC_DIR)/tkEvent.c \
	$(GENERIC_DIR)/tkFileFilter.c \
	$(GENERIC_DIR)/tkFocus.c \
	$(GENERIC_DIR)/tkFont.c \
	$(GENERIC_DIR)/tkFrame.c \
	$(GENERIC_DIR)/tkGC.c \
	$(GENERIC_DIR)/tkGeometry.c \
	$(GENERIC_DIR)/tkGet.c \
	$(GENERIC_DIR)/tkGrab.c \
	$(GENERIC_DIR)/tkGrid.c \
	$(GENERIC_DIR)/tkImage.c \
	$(GENERIC_DIR)/tkImgBmap.c \
	$(GENERIC_DIR)/tkImgGIF.c \
	$(GENERIC_DIR)/tkImgPhoto.c \
	$(GENERIC_DIR)/tkImgPPM.c \
	$(GENERIC_DIR)/tkImgUtil.c \
	$(GENERIC_DIR)/tkListbox.c \
	$(GENERIC_DIR)/tkMain.c \
	$(GENERIC_DIR)/tkMenu.c \
	$(GENERIC_DIR)/tkMenubutton.c \
	$(GENERIC_DIR)/tkMessage.c \
	$(GENERIC_DIR)/tkOption.c \
	$(GENERIC_DIR)/tkPack.c \
	$(GENERIC_DIR)/tkPlace.c \
	$(GENERIC_DIR)/tkRectOval.c \
	$(GENERIC_DIR)/tkScale.c \
	$(GENERIC_DIR)/tkScrollbar.c \
	$(GENERIC_DIR)/tkSelect.c \
	$(GENERIC_DIR)/tkSend.c \
	$(GENERIC_DIR)/tkSquare.c \
	$(GENERIC_DIR)/tkTest.c \
	$(GENERIC_DIR)/tkText.c \
	$(GENERIC_DIR)/tkTextBTree.c \
	$(GENERIC_DIR)/tkTextDisp.c \
	$(GENERIC_DIR)/tkTextIndex.c \
	$(GENERIC_DIR)/tkTextMark.c \
	$(GENERIC_DIR)/tkTextTag.c \
	$(GENERIC_DIR)/tkTextWind.c \
	$(GENERIC_DIR)/tkTrig.c \
	$(GENERIC_DIR)/tkUtil.c \
	$(GENERIC_DIR)/tkVisual.c \
	$(GENERIC_DIR)/tkWindow.c \
	$(UNIX_DIR)/tkAppInit.c

tkTestInit.obj: tkAppInit.c
	$(RM) tkTestInit.c
	$(CP) $(UNIX_DIR)/tkAppInit.c tkTestInit.c
	$(CC) -c $(CC_SWITCHES) -DTK_TEST tkTestInit.c
	$(RM) tkTestInit.c

tk3d.obj: $(GENERIC_DIR)/tk3d.c
	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tk3d.c

#tkAppInit.obj: $(UNIX_DIR)/tkAppInit.c
#	$(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tkAppInit.c

tkArgv.obj: $(GENERIC_DIR)/tkArgv.c
	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkArgv.c

tkAtom.obj: $(GENERIC_DIR)/tkAtom.c
	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkAtom.c

tkBind.obj: $(GENERIC_DIR)/tkBind.c
	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkBind.c

tkBitmap.obj: $(GENERIC_DIR)/tkBitmap.c
	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkBitmap.c

tkClipboard.obj: $(GENERIC_DIR)/tkClipboard.c
	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkClipboard.c

tkCmds.obj: $(GENERIC_DIR)/tkCmds.c
	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkCmds.c

tkColor.obj: $(GENERIC_DIR)/tkColor.c
	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkColor.c

tkConfig.obj: $(GENERIC_DIR)/tkConfig.c
	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkConfig.c

tkConsole.obj: $(GENERIC_DIR)/tkConsole.c
	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkConsole.c

tkCursor.obj: $(GENERIC_DIR)/tkCursor.c
	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkCursor.c

tkError.obj: $(GENERIC_DIR)/tkError.c
	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkError.c

tkEvent.obj: $(GENERIC_DIR)/tkEvent.c
	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkEvent.c

tkFileFilter.obj: $(GENERIC_DIR)/tkFileFilter.c
	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkFileFilter.c

tkFocus.obj: $(GENERIC_DIR)/tkFocus.c
	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkFocus.c

tkFont.obj: $(GENERIC_DIR)/tkFont.c
	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkFont.c

tkGet.obj: $(GENERIC_DIR)/tkGet.c
	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkGet.c

tkGC.obj: $(GENERIC_DIR)/tkGC.c
	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkGC.c

tkGeometry.obj: $(GENERIC_DIR)/tkGeometry.c
	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkGeometry.c

tkGrab.obj: $(GENERIC_DIR)/tkGrab.c
	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkGrab.c

tkGrid.obj: $(GENERIC_DIR)/tkGrid.c
	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkGrid.c

#tkMain.obj: $(GENERIC_DIR)/tkMain.c
#	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkMain.c
tkMain.obj: tkMain.c
	$(CC) -c $(CC_SWITCHES) tkMain.c

tkOption.obj: $(GENERIC_DIR)/tkOption.c
	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkOption.c

tkPack.obj: $(GENERIC_DIR)/tkPack.c
	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkPack.c

tkPlace.obj: $(GENERIC_DIR)/tkPlace.c
	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkPlace.c

tkSelect.obj: $(GENERIC_DIR)/tkSelect.c
	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkSelect.c

#tkSend.obj: $(GENERIC_DIR)/tkSend.c
#	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkSend.c
tkSend.obj: tkSend.c
	$(CC) -c $(CC_SWITCHES) tkSend.c

tkUtil.obj: $(GENERIC_DIR)/tkUtil.c
	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkUtil.c

tkVisual.obj: $(GENERIC_DIR)/tkVisual.c
	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkVisual.c

#tkWindow.obj: $(GENERIC_DIR)/tkWindow.c
#	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkWindow.c
tkWindow.obj: tkWindow.c
	$(CC) -c $(CC_SWITCHES) tkWindow.c

tkButton.obj: $(GENERIC_DIR)/tkButton.c
	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkButton.c

tkEntry.obj: $(GENERIC_DIR)/tkEntry.c
	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkEntry.c

tkFrame.obj: $(GENERIC_DIR)/tkFrame.c
	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkFrame.c

tkListbox.obj: $(GENERIC_DIR)/tkListbox.c
	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkListbox.c

tkMenu.obj: $(GENERIC_DIR)/tkMenu.c
	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkMenu.c

tkMenubutton.obj: $(GENERIC_DIR)/tkMenubutton.c
	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkMenubutton.c

tkMessage.obj: $(GENERIC_DIR)/tkMessage.c
	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkMessage.c

tkScale.obj: $(GENERIC_DIR)/tkScale.c
	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkScale.c

tkScrollbar.obj: $(GENERIC_DIR)/tkScrollbar.c
	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkScrollbar.c

tkSquare.obj: $(GENERIC_DIR)/tkSquare.c
	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkSquare.c

tkCanvas.obj: $(GENERIC_DIR)/tkCanvas.c
	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkCanvas.c

tkCanvArc.obj: $(GENERIC_DIR)/tkCanvArc.c
	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkCanvArc.c

tkCanvBmap.obj: $(GENERIC_DIR)/tkCanvBmap.c
	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkCanvBmap.c

tkCanvImg.obj: $(GENERIC_DIR)/tkCanvImg.c
	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkCanvImg.c

tkCanvLine.obj: $(GENERIC_DIR)/tkCanvLine.c
	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkCanvLine.c

tkCanvPoly.obj: $(GENERIC_DIR)/tkCanvPoly.c
	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkCanvPoly.c

#tkCanvPs.obj: $(GENERIC_DIR)/tkCanvPs.c
#	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkCanvPs.c
tkCanvPs.obj: tkCanvPs.c
	$(CC) -c $(CC_SWITCHES) tkCanvPs.c

tkCanvText.obj: $(GENERIC_DIR)/tkCanvText.c
	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkCanvText.c

tkCanvUtil.obj: $(GENERIC_DIR)/tkCanvUtil.c
	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkCanvUtil.c

tkCanvWind.obj: $(GENERIC_DIR)/tkCanvWind.c
	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkCanvWind.c

tkRectOval.obj: $(GENERIC_DIR)/tkRectOval.c
	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkRectOval.c

tkTrig.obj: $(GENERIC_DIR)/tkTrig.c
	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkTrig.c

tkImage.obj: $(GENERIC_DIR)/tkImage.c
	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkImage.c

tkImgBmap.obj: $(GENERIC_DIR)/tkImgBmap.c
	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkImgBmap.c

tkImgGIF.obj: $(GENERIC_DIR)/tkImgGIF.c
	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkImgGIF.c

tkImgPPM.obj: $(GENERIC_DIR)/tkImgPPM.c
	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkImgPPM.c

tkImgPhoto.obj: $(GENERIC_DIR)/tkImgPhoto.c
	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkImgPhoto.c

#tkImgUtil.obj: $(GENERIC_DIR)/tkImgUtil.c
#	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkImgUtil.c
tkOS2ImgUtil.obj: tkOS2ImgUtil.c
	$(CC) -c $(CC_SWITCHES) tkOS2ImgUtil.c

#tkTest.obj: $(GENERIC_DIR)/tkTest.c
#	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkTest.c
tkTest.obj: tkTest.c
	$(CC) -c $(CC_SWITCHES) tkTest.c

tkText.obj: $(GENERIC_DIR)/tkText.c
	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkText.c

tkTextBTree.obj: $(GENERIC_DIR)/tkTextBTree.c
	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkTextBTree.c

tkTextDisp.obj: $(GENERIC_DIR)/tkTextDisp.c
	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkTextDisp.c

tkTextIndex.obj: $(GENERIC_DIR)/tkTextIndex.c
	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkTextIndex.c

tkTextMark.obj: $(GENERIC_DIR)/tkTextMark.c
	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkTextMark.c

tkTextTag.obj: $(GENERIC_DIR)/tkTextTag.c
	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkTextTag.c

tkTextWind.obj: $(GENERIC_DIR)/tkTextWind.c
	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkTextWind.c

xdraw.obj: $(XLIB_DIR)/xdraw.c
	$(CC) -c $(CC_SWITCHES) $(XLIB_DIR)/xdraw.c

xgc.obj: $(XLIB_DIR)/xgc.c
	$(CC) -c $(CC_SWITCHES) $(XLIB_DIR)/xgc.c

ximage.obj: $(XLIB_DIR)/ximage.c
	$(CC) -c $(CC_SWITCHES) $(XLIB_DIR)/ximage.c

xutil.obj: $(XLIB_DIR)/xutil.c
	$(CC) -c $(CC_SWITCHES) $(XLIB_DIR)/xutil.c

#####################

# Implicit Targets

.c.obj:
	$(CC) -c $(CFLAGS) $<

#.dll.lib:
#	$(IMPLIB) -c $@ $<

.rc.res:
	$(RC) -i$(INCLUDES) $<

$(TKLIB): $(TKBASE).imp
	$(IMPLIB) -o $(TKLIB) $(TKBASE).imp

$(TKBASE).imp: $(TKBASE).def
	$(IMPLIB) -o $(TKBASE).imp $(TKBASE).def

#
# Special case object file targets
#

testMain.obj : os2Main.c
	rm -f testMain.c
	copy os2Main.c testMain.c 
	$(CC) -c $(CC_SWITCHES) -DTK_TEST testMain.c

#
# Executable targets
#

$(TKDLL): $(OS2TKOBJS) $(GENTKOBJS) $(TKBASE).def $(TCLLIBDIR)/$(TCLLIB) $(TKBASE).res
	$(CC) -o $(TKDLL) $(LNFLAGS_dll) $(OS2TKOBJS) $(GENTKOBJS) $(TKBASE).def $(TCLLIBDIR)/$(TCLLIB)
	$(RC) $(TKBASE).res $(TKDLL)
ifndef DEBUGGING
	-$(LXLITE) $(TKDLL)
endif

$(TKBASE).res: $(TKBASE).rc TkResIDs.h
	$(RC) -r $(TKBASE).rc

$(WISH): $(WISHOBJS) $(TKLIB) $(TCLLIBDIR)/$(TCLLIB) $(WISHBASE).def $(WISHBASE).res
	$(CC) -o $(WISHBASE) $(LNFLAGS_exe) $(WISHOBJS) $(TKLIB) \
		$(TCLLIBDIR)/$(TCLLIB) $(WISHBASE).def
	$(RC) $(WISHBASE).res $(WISHBASE).exe
ifndef DEBUGGING
	-$(LXLITE) $(WISHBASE).exe
endif

$(WISHBASE).res: $(WISHBASE).rc
	$(RC) -r $(WISHBASE).rc

$(TKTEST): $(TKTESTOBJS) $(TKLIB) $(TCLLIBDIR)/$(TCLLIB) tktest.def
	$(CC) -o $(TKTESTBASE) $(LNFLAGS_exe) $(TKTESTOBJS) $(TKLIB) \
		$(TCLLIBDIR)/$(TCLLIB) tktest.def
	$(RC) $(WISHBASE).res $(TKTESTBASE).exe
ifndef DEBUGGING
	-$(LXLITE) $(TKTESTBASE).exe
endif

# 
# Other dependencies
#

# The following rule automatically generates a $(TKBASE).def file containing
# an export entry for every public symbol in the $(TKDLL) library.

# Giving $(OS2TKOBJS) $(GENTKOBJS) to emxexp makes its command line longer
# than allowed, so you get an error like "Cannot open input file `tkTextWin'"
# Give a wildcard
$(TKBASE).def: $(OS2TKOBJS) $(GENTKOBJS) $(TKBASE)def.base
	type $(TKBASE)def.base > $(TKBASE).def
	emxexp -o $(OS2TKOBJSPEC) $(GENTKOBJS) >> $(TKBASE).def

# remove all generated files

clean:
	-$(RM) $(TKBASE) $(TKDLL) $(TKBASE).res $(TKBASE).map $(TKBASE).def
	-$(RM) $(WISHBASE) $(WISH) $(WISHBASE).res $(WISHBASE).map
	-$(RM) $(TKTESTBASE) $(TKTEST) $(TKTEST).map
	-$(RM) *.obj *.imp
