
# Python module Makefile

######################################################################
# Things you probably will need to change:
######################################################################
####	Where is python?
PYTHONINCL=/usr/local/src/Python-1.3	# location to find python's config.h
PYCONFIGINCL=/usr/local/include/Py	# location of installed python includes

######################################################################
# 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

######################################################################
# Things you probably don't need to change:
######################################################################
USECONFIG=-DHAVE_CONFIG_H  # this says to use use defines from python's config.h

######################################################################
# This is used for the shared module file, if you build it
######################################################################
OTHERLIBS=-R$(XLIBDIR) -L$(XLIBDIR) $(XLIBS) $(MATHLIB)

######################################################################
# Don't need to change these:
######################################################################
RIVETHOME = ../rivet
TCLINC = ../tcl7.4
TKINC = ../tk
SHAREDRIVETLIB = ../rivet/librivet.so

INCLUDES = -I$(RIVETHOME) -I$(PYTHONINCL) -I$(PYCONFIGINCL) -I$(TCLINC) -I$(TKINC) -I$(XINCLUDE)

OBJFILES =		\
	$(RIVETHOME)/tklib.o	\
	$(RIVETHOME)/tearofflib.o	\
	$(RIVETHOME)/menulib.o	\
	$(RIVETHOME)/scalelib.o	\
	$(RIVETHOME)/scrollbarlib.o	\
	$(RIVETHOME)/buttonlib.o	\
	$(RIVETHOME)/entrylib.o	\
	$(RIVETHOME)/textlib.o	\
	$(RIVETHOME)/focuslib.o	\
	$(RIVETHOME)/listboxlib.o	\
	$(RIVETHOME)/rivet.o	\
	$(RIVETHOME)/rivet_main.o	\
	$(RIVETHOME)/rivet_file.o	\
	$(RIVETHOME)/tkCanvas.o	\
	$(RIVETHOME)/tkScale.o	\
	$(RIVETHOME)/tkFrame.o	\
	$(RIVETHOME)/tkButton.o	\
	$(RIVETHOME)/tkBind.o	\
	$(RIVETHOME)/tkCmds.o	\
	$(RIVETHOME)/tkWindow.o	\
	$(RIVETHOME)/tkEntry.o	\
	$(RIVETHOME)/tkListbox.o	\
	$(RIVETHOME)/tkMenu.o	\
	$(RIVETHOME)/tkMenubutton.o	\
	$(RIVETHOME)/tkMessage.o	\
	$(RIVETHOME)/tkScrollbar.o	\
	$(RIVETHOME)/tkText.o	\
	$(RIVETHOME)/tkTextTag.o	\
	$(RIVETHOME)/tkTextWind.o	\
	$(RIVETHOME)/tkTextDisp.o	\
	$(RIVETHOME)/tkSend.o	\
	$(RIVETHOME)/tkEvent.o	\
	$(RIVETHOME)/tkImage.o	\
	$(RIVETHOME)/tkSelect.o	\
	$(RIVETHOME)/tkWm.o	\
	$(RIVETHOME)/tkCanvPs.o	\
	$(RIVETHOME)/tkImgBmap.o	\
	$(RIVETHOME)/tkImgPhoto.o	\
	$(RIVETHOME)/tclBasic.o	\
	$(RIVETHOME)/tclExpr.o	\
	$(RIVETHOME)/tclUnixUtil.o	\
	$(RIVETHOME)/tclParse.o	\
	$(RIVETHOME)/tclGlob.o	\
	$(RIVETHOME)/tclVar.o	\
	$(RIVETHOME)/tkConfig.o	\
	$(RIVETHOME)/../tk/tk3d.o	\
	$(RIVETHOME)/../tk/tkArgv.o	\
	$(RIVETHOME)/../tk/tkAtom.o	\
	$(RIVETHOME)/../tk/tkBitmap.o	\
	$(RIVETHOME)/../tk/tkCanvArc.o	\
	$(RIVETHOME)/../tk/tkCanvBmap.o	\
	$(RIVETHOME)/../tk/tkCanvImg.o	\
	$(RIVETHOME)/../tk/tkCanvLine.o	\
	$(RIVETHOME)/../tk/tkCanvPoly.o	\
	$(RIVETHOME)/../tk/tkCanvText.o	\
	$(RIVETHOME)/../tk/tkCanvUtil.o	\
	$(RIVETHOME)/../tk/tkCanvWind.o	\
	$(RIVETHOME)/../tk/tkClipboard.o	\
	$(RIVETHOME)/../tk/tkColor.o	\
	$(RIVETHOME)/../tk/tkCursor.o	\
	$(RIVETHOME)/../tk/tkError.o	\
	$(RIVETHOME)/../tk/tkFocus.o	\
	$(RIVETHOME)/../tk/tkFont.o	\
	$(RIVETHOME)/../tk/tkGC.o	\
	$(RIVETHOME)/../tk/tkGeometry.o	\
	$(RIVETHOME)/../tk/tkGet.o	\
	$(RIVETHOME)/../tk/tkGrab.o	\
	$(RIVETHOME)/../tk/tkImgFmtGIF.o	\
	$(RIVETHOME)/../tk/tkImgFmtPPM.o	\
	$(RIVETHOME)/../tk/tkOption.o	\
	$(RIVETHOME)/../tk/tkPack.o	\
	$(RIVETHOME)/../tk/tkPlace.o	\
	$(RIVETHOME)/../tk/tkPreserve.o	\
	$(RIVETHOME)/../tk/tkRectOval.o	\
	$(RIVETHOME)/../tk/tkTextBTree.o	\
	$(RIVETHOME)/../tk/tkTextIndex.o	\
	$(RIVETHOME)/../tk/tkTextMark.o	\
	$(RIVETHOME)/../tk/tkTrig.o	\
	$(RIVETHOME)/../tk/tkUtil.o	\
	$(RIVETHOME)/../tk/tkUnix.o	\
	$(RIVETHOME)/../tk/tkVisual.o	\
	$(RIVETHOME)/../tk/tkXEvent.o	\
	$(RIVETHOME)/../tk/tkXId.o	\
	$(RIVETHOME)/../tcl7.4/panic.o	\
	$(RIVETHOME)/../tcl7.4/regexp.o	\
	$(RIVETHOME)/../tcl7.4/strstr.o	\
	$(RIVETHOME)/../tcl7.4/tclGet.o	\
	$(RIVETHOME)/../tcl7.4/tclHash.o	\
	$(RIVETHOME)/../tcl7.4/tclUtil.o	\
	$(RIVETHOME)/../tcl7.4/tclUnixStr.o

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

target: static shared

static: rivetmodule.a
shared: rivetmodule.so


rivetmodule.o: rivetmodule.c
	$(CC) $(CFLAGS) $(USECONFIG) $(INCLUDES) rivetmodule.c -c rivetmodule.o

rivetmodule.a: rivetmodule.o 
	rm -f rivetmodule.a
	ar cr rivetmodule.a rivetmodule.o $(OBJFILES)
	-ranlib rivetmodule.a

#
# How to build the shared object:
#
rivetmodule.so: rivetmodule.o
	ld -G -o rivetmodule.so rivetmodule.o $(OBJFILES) $(OTHERLIBS)


