
# Rivet C library makefile.

######################################################################
# Things you may wish to change:
######################################################################

####	vanilla make
CC=cc
CFLAGS=-O

####	gcc make
#CC=gcc
#CFLAGS=-fwritable-strings

####	cc make, with debug
#CC=cc
#CFLAGS=-g

XINCLUDE=/usr/openwin/include
XLIBDIR=/usr/openwin/lib
XLIBS=-lX11 -lsocket -lnsl
MATHLIB=-lm
TKDEFS= -DHAVE_UNISTD_H=1 -DHAVE_LIMITS_H=1 -DSTDC_HEADERS=1 


######################################################################
# Things you probably shouldn't change:
######################################################################
TKINCDIR=../tk
TCLINCDIR=../tcl7.4
LIBRIVET=librivet.a
RIVETDEFS=-DRIVETONLY

target: $(LIBRIVET) app

INCLUDES=rivet.h tk.h tkInt.h tkText.h tkCanvas.h
TKSRC=tkCanvas.c tkScale.c tkFrame.c tkButton.c tkBind.c tkCmds.c tkWindow.c \
	tkEntry.c tkListbox.c tkMenu.c tkMenubutton.c tkMessage.c \
	tkScrollbar.c tkText.c tkTextTag.c tkTextWind.c tkTextDisp.c tkSend.c \
	tkEvent.c tkImage.c tkSelect.c tkWm.c tkCanvPs.c tkImgBmap.c tkImgPhoto.c tkConfig.c

TCLSRC=tclExpr.c tclBasic.c tclUnixUtil.c tclParse.c tclGlob.c tclVar.c # gack: need these tcl flags... -DNO_GETWD=1 -DNO_WAIT3=1 -DHAVE_UNISTD_H=1 -DSTDC_HEADERS=1 -DNO_UNION_WAIT=1 -DNEED_MATHERR=1

RIVETLIB=tklib.c tearofflib.c menulib.c scalelib.c scrollbarlib.c buttonlib.c entrylib.c textlib.c focuslib.c listboxlib.c
RIVETSRC=rivet.c rivet_main.c rivet_file.c $(RIVETLIB)

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

LIBRSRC= $(RIVETSRC) $(TKSRC) $(TCLSRC)
TKLIBOBJS= \
	../tk/tk3d.o ../tk/tkArgv.o ../tk/tkAtom.o \
	../tk/tkBitmap.o ../tk/tkCanvArc.o ../tk/tkCanvBmap.o \
	../tk/tkCanvImg.o ../tk/tkCanvLine.o ../tk/tkCanvPoly.o \
	../tk/tkCanvText.o ../tk/tkCanvUtil.o \
	../tk/tkCanvWind.o ../tk/tkClipboard.o ../tk/tkColor.o \
	../tk/tkCursor.o ../tk/tkError.o \
	../tk/tkFocus.o ../tk/tkFont.o ../tk/tkGC.o \
	../tk/tkGeometry.o ../tk/tkGet.o ../tk/tkGrab.o ../tk/tkImgFmtGIF.o \
	../tk/tkImgFmtPPM.o ../tk/tkOption.o ../tk/tkPack.o ../tk/tkPlace.o \
	../tk/tkPreserve.o ../tk/tkRectOval.o ../tk/tkTextBTree.o \
	../tk/tkTextIndex.o ../tk/tkTextMark.o ../tk/tkTrig.o \
	../tk/tkUtil.o ../tk/tkUnix.o ../tk/tkVisual.o ../tk/tkXEvent.o \
	../tk/tkXId.o

TCLLIBOBJS= \
	../tcl7.4/panic.o ../tcl7.4/regexp.o ../tcl7.4/strstr.o \
	../tcl7.4/tclGet.o \
	../tcl7.4/tclHash.o \
	../tcl7.4/tclUtil.o \
	../tcl7.4/tclUnixStr.o

RIVETLIBOBJS= \
	tklib.o tearofflib.o menulib.o scalelib.o scrollbarlib.o \
	buttonlib.o entrylib.o textlib.o focuslib.o listboxlib.o \
	rivet.o rivet_main.o rivet_file.o \
	tkCanvas.o tkScale.o tkFrame.o tkButton.o tkBind.o tkCmds.o tkWindow.o \
	tkEntry.o tkListbox.o tkMenu.o tkMenubutton.o tkMessage.o \
	tkScrollbar.o tkText.o tkTextTag.o tkTextWind.o tkTextDisp.o tkSend.o \
	tkEvent.o tkImage.o tkSelect.o tkWm.o tkCanvPs.o \
	tkImgBmap.o tkImgPhoto.o tkConfig.o \
	tclBasic.o tclExpr.o tclUnixUtil.o tclParse.o tclGlob.o tclVar.o

ALLOBJS = $(RIVETLIBOBJS) $(TKLIBOBJS) $(TCLLIBOBJS)

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

.c.o:
	$(CC) $(CFLAGS) -I. -I$(TKINCDIR) -I$(TCLINCDIR) -I$(XINCLUDE) \
	$(TKDEFS) $(RIVETDEFS) \
	-c $< -o $@

$(LIBRIVET): $(ALLOBJS)
	rm -f $(LIBRIVET)
	ar cr $(LIBRIVET) $(ALLOBJS)
	-ranlib $(LIBRIVET)

app.o: app.c $(INCLUDES)
	$(CC) -DRIVETONLY $(CFLAGS) -I. -I$(TKINCDIR) -I$(TCLINCDIR) -I$(XINCLUDE) \
	-c app.c -o app.o

app: app.o $(LIBRIVET)
	$(CC) -o $@ app.o $(LIBRIVET) -R$(XLIBDIR) -L$(XLIBDIR) $(XLIBS) $(MATHLIB)

