# Generated automatically from Makefile.in by configure.
#
# tksrc/Makefile.in --
#
# Makefile to build a wish with Extended Tcl (wishx).
# 
#------------------------------------------------------------------------------
# Copyright 1992-1994 Karl Lehenbauer and Mark Diekhans.
#
# Permission to use, copy, modify, and distribute this software and its
# documentation for any purpose and without fee is hereby granted, provided
# that the above copyright notice appear in all copies.  Karl Lehenbauer and
# Mark Diekhans make no representations about the suitability of this
# software for any purpose.  It is provided "as is" without express or
# implied warranty.
#------------------------------------------------------------------------------
# $Id: Makefile.in,v 4.0 1994/07/16 05:30:54 markd Rel $
#------------------------------------------------------------------------------
#
SHELL = /bin/sh

#------------------------------------------------------------------------------
# Autoconfig defines that can be overridden in Config.mk

CC          = cc
RANLIB      = ranlib
srcdir      = .
srcbasedir  = /usr/src/tclX7.3b
bldbasedir  = /usr/src/tclX7.3b
prefix      = /usr/local
exec_prefix = /usr/local
ARCH        = 
XINCLUDES   =  -I/usr/X386/include
LIBS        =   -lbsd -lieee -lm
XLIBSW      = -L/usr/X386/lib -lX11

#------------------------------------------------------------------------------
# Include user-editable defines.

include ${bldbasedir}/Config.mk

#------------------------------------------------------------------------------

LIBTK_A      = ${bldbasedir}/tkmaster/lib${ARCH}/libtk.a
LIBTKX_A     = ${bldbasedir}/tkmaster/lib${ARCH}/libtkx.a
WISHX        = ${bldbasedir}/tkmaster/bin${ARCH}/wishx
APPINIT      = ${bldbasedir}/tkmaster/src/tkXAppInit.c
SYSLIBS      = ${bldbasedir}/tkmaster/src/SYSLIBS${ARCH}
TKXMAINPP_C  = ${bldbasedir}/tkmaster/src/tkXmain++.C
TKXMAINPP_O  = ${bldbasedir}/tkmaster/lib${ARCH}/tkXmain++.o

LIBTCL_A  = ${bldbasedir}/tclmaster/lib${ARCH}/libtcl.a
LIBTCLX_A = ${bldbasedir}/tclmaster/lib${ARCH}/libtclx.a

# The ordering of the libraries is important.  Some X libs on SysV include
# "random" in a BSD module.  This would conflict with the one in the Tcl
# library if it was brought in.

LDLIBS = ${LIBTKX_A} ${LIBTK_A} ${XLIBSW} ${LIBTCLX_A} ${LIBTCL_A} -lm ${LIBS}

CC_FLAGS = ${CPPFLAGS} ${XCFLAGS} ${CFLAGS} \
           -I${srcbasedir}/src -I${bldbasedir}/src -I${srcbasedir}/tksrc \
           -I${TK_UCB_SRC} -I${TCL_UCB_SRC} ${XINCLUDES}

.c.o:
	${CC} ${CC_FLAGS} -c $<

%.so: %.c
	${SHCC} -c ${CC_FLAGS} $< -o $@

#------------------------------------------------------------------------------

OBJS=tkXinit.o   tkXmain.o  tkXshell.o  tkXdata.o

UCBOBJS=tkWindow.o

LDFLAGS = -N
DLLBIN = /usr/dll/bin
SHCC = ${CC} -B/usr/dll/jump/
SHOBJS = ${subst tkXmain.so,,${OBJS:.o=.so}} ${UCBOBJS:.o=.so} oldCompat.so
JUMP_VER = 3.2.0
JUMP_ARGS = -v ${JUMP_VER} -a 0x60d80000 -j 0x4000 -g 4096
export JUMP_DIR = $(shell pwd)/jump
export JUMP_LIB = libtkx

#------------------------------------------------------------------------------
# Compile the TkX library and link wishx.  If the link fails, purge
# the executable, as some systems leave invalid executables around.

all: made.tmp ${WISHX} ${APPINIT} ${SYSLIBS} ${TKXMAINPP_C} ${TCL_PLUS_BUILD}

${WISHX}: tkXAppInit.o ${LIBTKX_A} ${LIBTK_A} ${LIBTCLX_A} ${LIBTCL_A} made.tmp
	${CC} ${CC_FLAGS} ${XLDFLAGS} tkXAppInit.o ${LDLIBS} ${XLDLIBS} \
	    -o ${WISHX} || (rm -f ${WISHX}; exit 1)

made.tmp ${LIBTKX_A}: ${OBJS} ${UCBOBJS}
	${AR} cr ${LIBTKX_A} ${OBJS} ${UCBOBJS}
	${RANLIB} ${LIBTKX_A}
	touch made.tmp

shared: wishx.shared

install.shared: shared
	install -c -s wishx.shared ${prefix}/bin/wishx
	install -c -m 644 libtkx.sa ${prefix}/lib
	install -c -s libtkx.so.${JUMP_VER} ${prefix}/lib
	ldconfig

wishx.shared: tkXAppInit.o libtkx.sa 
	${CC} ${LDFLAGS} ${XLDFLAGS} tkXAppInit.o libtkx.sa ../src/libtclx.sa ${TK_UCB_SRC}/libtk.sa ${TCL_UCB_SRC}/libtcl.sa ${XLIBSW} ${LIBS} -o $@

libtkx.sa: ${SHOBJS} libtkx.so.${JUMP_VER}
	${DLLBIN}/mkstubs -l libtkx ${JUMP_ARGS} -- libtkx
	ar rs libtkx.sa tkXmain.o

libtkx.so.${JUMP_VER}: ${SHOBJS}
	${DLLBIN}/mkimage -l libtkx ${JUMP_ARGS} -- ${SHOBJS} ../src/libtclx.sa ${TK_UCB_SRC}/libtk.sa ${TCL_UCB_SRC}/libtcl.sa ${XLIBSW} $(LIBS) -lc `${CC} -print-libgcc-file-name` -lc

tkWindow.o: tkWindow.c
	MASTER=${TK_MASTERDIR}/`../tools/tkxversion` ;\
	${CC} -c -I${TK_UCB_SRC} ${CC_FLAGS} ${DEFS} \
	    -DTK_LIBRARY=\"$$MASTER\" tkWindow.c

tkWindow.so: tkWindow.c
	MASTER=${TK_MASTERDIR}/`../tools/tkxversion` ;\
	${SHCC} -c -I${TK_UCB_SRC} ${CC_FLAGS} ${DEFS} \
	    -DTK_LIBRARY=\"$$MASTER\" tkWindow.c -o $@

tkWindow.c: ${TK_UCB_SRC}/tkWindow.c
	rm -f tkWindow.c
	echo '#include "tclXconfig.h"' >tkWindow.c
	cat ${TK_UCB_SRC}/tkWindow.c  >>tkWindow.c

${APPINIT}: tkXAppInit.c
	rm -f ${APPINIT}
	cp ${srcdir}/tkXAppInit.c ${APPINIT}

${SYSLIBS}: SYSLIBS
	rm -f ${SYSLIBS}
	cp SYSLIBS ${SYSLIBS}

${TKXMAINPP_C}: tkXmain++.C
	rm -f ${TKXMAINPP_C}
	cp tkXmain++.C ${TKXMAINPP_C}

#------------------------------------------------------------------------------
# Make sure tkXmain.c compiles and links with C++.

TCL_PLUS: wishx++ ${TKXMAINPP_O}

wishx++: tkXmain++.o made.tmp
	${CC} ${CC_FLAGS} ${XLDFLAGS} tkXAppInit.o ${LDLIBS} ${XLDLIBS} \
	    -o wishx++ || (rm -f wishx++; exit 1)

tkXmain++.o: tkXmain++.C
	${CCPLUS} -c ${CC_FLAGS} tkXmain++.C

tkXmain++.C: tkXmain.c
	rm -f tkXmain++.C
	cp ${srcdir}/tkXmain.c tkXmain++.C

${TKXMAINPP_O}: tkXmain++.o
	rm -f ${TKXMAINPP_O}
	cp tkXmain++.o ${TKXMAINPP_O}

#------------------------------------------------------------------------------
clean:
	-rm -f made.tmp tkXmain++.C tkXAppInit.o tkWindow.c
	-rm -f ${OBJS} ${UCBOBJS} tkXmain++.o ${WISHX} wishx++
	-rm -f ${SHOBJS} wishx.shared libtkx.sa libtkx.so.* jump/_*

#------------------------------------------------------------------------------
# Restore to the distributed state.

distclean: clean
	rm -f Makefile SYSLIBS
