#
# $Id: Makefile,v 1.50 1995/06/06 14:25:25 hs Rel $
#
# Makefile for msqltcl.
#
# Hakan Soderstrom, hs@soderstrom.se
#
############################################################################ 
# 
# Copyright (c) 1994, 1995 Hakan Soderstrom and Tom Poindexter
# 
# Permission to use, copy, modify, distribute, and sell this software
# and its documentation for any purpose is hereby granted without fee,
# provided that the above copyright notice and this permission notice
# appear in all copies of the software and related documentation.
# 
# THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND,
# EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
# WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
#
# IN NO EVENT SHALL HAKAN SODERSTROM OR SODERSTROM PROGRAMVARUVERKSTAD
# AB BE LIABLE FOR ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL
# DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
# OF USE, DATA OR PROFITS, WHETHER OR NOT ADVISED OF THE POSSIBILITY
# OF DAMAGE, AND ON ANY THEORY OF LIABILITY, ARISING OUT OF OR IN
# CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
#
############################################################################ 

#===== CONFIGURATION DEFINITIONS === EDIT TO SUIT YOUR SYSTEM =====

#----- C compiler and options
CC = gcc
OPTIM = -g

#####################################################
# THIS SECTION FOR Tcl 7.3, Tk 3.6
#
#----- Tcl/Tk libraries & such
# Path for Tcl include files.
TCLINCL = -I/usr/local/include
# Path for Tk include files, if different from the above.
TKINCL =
# Libraries required to link plain Tcl.
TCLLIBS = -L/usr/local/lib -ltcl -lm
# Libraries required to link plain Tk.
TKLIBS = -L/usr/local/lib -ltk -ltcl -lX11 -lm

#----- What are the 'AppInit' files (base names)?
TCLAPPINIT = tclAppInit
TKAPPINIT =  tkAppInit

#----- Definitions for tclX/tkX, if used
# Path for TclX/TkX include files, if different from plain Tcl.
TCLXINCL =
# Extra libraries required to link TclX.
TCLXLIBS = -L/usr/local/lib -ltclx
# Extra libraries required to link TkX.
TKXLIBS = -L/usr/local/lib -ltkx -ltclx
# TclX/TkX 'AppInit' files (base names).
TCLXAPPINIT = tclXAppInit
TKXAPPINIT = tkXAppInit

#####################################################
# THIS SECTION FOR Tcl 7.4, Tk 4.0 (betas)
#
#----- Tcl/Tk libraries & such
# Path for Tcl include files.
NEWTCLINCL = -I/usr/local/new/include
# Path for Tk include files, if different from the above.
NEWTKINCL =
# Libraries required to link plain Tcl.
NEWTCLLIBS = -L/usr/local/new/lib -ltcl -lm
# Libraries required to link plain Tk.
NEWTKLIBS = -L/usr/local/new/lib -ltk -ltcl -lX11 -lm

#----- What are the 'AppInit' files (base names)?
NEWTCLAPPINIT = new-tclAppInit
NEWTKAPPINIT =  new-tkAppInit

#----- Definitions for tclX/tkX, if used
# Path for TclX/TkX include files, if different from plain Tcl.
NEWTCLXINCL =
# Extra libraries required to link TclX.
NEWTCLXLIBS = -L/usr/local/new/lib -ltclx
# Extra libraries required to link TkX.
NEWTKXLIBS = -L/usr/local/new/lib -ltkx -ltclx
# TclX/TkX 'AppInit' files (base names).
NEWTCLXAPPINIT = new-tclXAppInit
NEWTKXAPPINIT = new-tkXAppInit

#####################################################
# COMMON STUFF
#
#----- mSQL libraries & such
# Path for mSQL include files.
MSQLINCL = -I/usr/local2/src/Minerva/include
# Libraries required to link an mSQL application.
MSQLLIB = -L/usr/local2/src/Minerva/lib -lmsql

#===== END OF CONFIGURATION DEFINITIONS =====

INCL = -I. ${MSQLINCL} ${TCLINCL} ${TKINCL}
CFLAGS = ${OPTIM} -c
LDFLAGS = ${OPTIM}
PROGS = msqltcl msqlwish
TCLLINK = ${MSQLLIB} ${TCLLIBS}
TKLINK = ${MSQLLIB} ${TKLIBS}

#===== TARGETS =====

all :
	@echo '***  Please use make with one of the following targets,'
	@echo '     w/tcl, w/tclX, w/new-tcl, w/new-tclX'
	exit 1

#----- Targets with Tcl 7.3, Tk 3.6 -----

w/tcl : ${PROGS}

w/tclX :
	${MAKE} -f Makefile ${PROGS} \
	INCL='-I. ${MSQLINCL} ${TCLXINCL} ${TCLINCL} ${TKINCL}' \
	TCLLINK='${MSQLLIB} ${TCLXLIBS} ${TCLLIBS}' \
	TKLINK='${MSQLLIB} ${TKXLIBS} ${TKLIBS}' \
	TCLAPPINIT='${TCLXAPPINIT}' TKAPPINIT='${TKXAPPINIT}'

#----- Targets with Tcl 7.4, Tk 4.0 -----

w/new-tcl :
	${MAKE} -f Makefile ${PROGS} \
	INCL='-I. ${MSQLINCL} ${NEWTCLINCL} ${NEWTKINCL}' \
	TCLLINK='${MSQLLIB} ${NEWTCLLIBS}' \
	TKLINK='${MSQLLIB} ${NEWTKLIBS}' \
	TCLAPPINIT='${NEWTCLAPPINIT}' TKAPPINIT='${NEWTKAPPINIT}'

w/new-tclX :
	${MAKE} -f Makefile ${PROGS} \
	INCL='-I. ${MSQLINCL} ${NEWTCLXINCL} ${NEWTCLINCL} ${NEWTKINCL}' \
	TCLLINK='${MSQLLIB} ${NEWTCLXLIBS} ${NEWTCLLIBS}' \
	TKLINK='${MSQLLIB} ${NEWTKXLIBS} ${NEWTKLIBS}' \
	TCLAPPINIT='${NEWTCLXAPPINIT}' TKAPPINIT='${NEWTKXAPPINIT}'

#----- Other targets -----

msqltcl : ${TCLAPPINIT}.o msqltcl.o
	${CC} ${LDFLAGS} -o msqltcl ${TCLAPPINIT}.o msqltcl.o ${TCLLINK}

msqlwish : ${TKAPPINIT}.o msqltcl.o
	${CC} ${LDFLAGS} -o msqlwish ${TKAPPINIT}.o msqltcl.o ${TKLINK}

${TCLAPPINIT}.o : ${TCLAPPINIT}.c
	${CC} ${CFLAGS} ${TCLINCL} ${TCLAPPINIT}.c -o ${TCLAPPINIT}.o

${TKAPPINIT}.o : ${TKAPPINIT}.c
	${CC} ${CFLAGS} ${TCLINCL} ${TKINCL} ${TKAPPINIT}.c -o ${TKAPPINIT}.o

msqltcl.o : msqltcl.c
	${CC} ${CFLAGS} ${INCL} msqltcl.c
