# Generated automatically from Makefile.in by configure.
#
#  Main makefile for Tcl/Objective-C interface library
#  Copyright (C) 1993,1994 R. Andrew McCallum
#
#  Written by:	R. Andrew McCallum <mccallum@cs.rochester.edu>
#  Dept. of Computer Science, U. of Rochester, Rochester, NY  14627
#
#  This file is part of the Tcl/Objective-C interface library.
#
#  This library is free software; you can redistribute it and/or
#  modify it under the terms of the GNU Library General Public
#  License as published by the Free Software Foundation; either
#  version 2 of the License, or (at your option) any later version.
#
#  This library is distributed in the hope that it will be useful,
#  but WITHOUT ANY WARRANTY; without even the implied warranty of
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the GNU
#  Library General Public License for more details.
#
#  You should have received a copy of the GNU Library General Public
#  License along with this library; if not, write to the Free
#  Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 

SHELL = /bin/sh

#### Start of system configuration section. ####

srcdir = .

CC = gcc
RANLIB = ranlib
INSTALL = /usr/bin/install -c
INSTALL_PROGRAM = ${INSTALL}
INSTALL_DATA = ${INSTALL} -m 644
AR = ar
ARFLAGS = rc
MAKEINFO = makeinfo

# directories in which to find the required include files
TCL_INCLUDE_FLAGS = -I/usr/include/tcl
TK_INCLUDE_FLAGS= -I/usr/include/tcl
X_INCLUDE_FLAGS = -I/usr/X11R6/include
READLINE_INCLUDE_FLAGS = -I/usr/include/readline

TCL_LIBRARY_FLAGS = -ltcl7.4
TK_LIBRARY_FLAGS = -ltk4.0
X_LIBRARY_FLAGS = -L/usr/X11R6/lib -lX11
READLINE_LIBRARY_FLAGS = -L/usr/lib -lreadline -lncurses

TCLLIBS = $(TCL_LIBRARY_FLAGS) \
	$(READLINE_LIBRARY_FLAGS) -lm -lobjc 
LIBS = $(TK_LIBRARY_FLAGS) $(TCL_LIBRARY_FLAGS) \
	$(X_LIBRARY_FLAGS) $(READLINE_LIBRARY_FLAGS) -lm -lobjc 
     
DEFS =  -DHAVE_LIBOBJC=1 -DHAVE_READLINE=1 
     
# All these are optional.  You can redefine CFLAGS, CPPFLAGS and
# INCLUDEFLAGS on the command line however you like.
CFLAGS = -Wall -Wno-implicit -g -O
CPPFLAGS = 
INCLUDEFLAGS =

prefix = /usr
exec_prefix = $(prefix)

# Installation locations
libdir = $(exec_prefix)/lib
includedir = $(prefix)/include
infodir = $(prefix)/info

#### End of system configuration section. ####

TCLOBJC_GCC_VERSION = 2.7.2
TCLOBJC_VERSION = 1.1b3
SOMAJ = 1
SOMIN = 1b3

ALL_INCLUDE_FLAGS = -I$(srcdir) $(INCLUDEFLAGS) \
	$(TCL_INCLUDE_FLAGS) $(TK_INCLUDE_FLAGS) \
        $(X_INCLUDE_FLAGS) $(READLINE_INCLUDE_FLAGS)
ALL_CPPFLAGS = $(ALL_INCLUDE_FLAGS) $(CPPFLAGS)
ALL_CFLAGS = $(CFLAGS)
ALL_OBJCFLAGS = $(CFLAGS) -Wno-protocol

# definitions to be passed to subdir Makefile's
MAKEDEFINES = CC='$(CC)' CFLAGS='$(CFLAGS)' CPPFLAGS='$(CPPFLAGS)' \
DEFS='$(DEFS)'

.SUFFIXES: .m
.m.o:
	$(CC) -c $(ALL_CPPFLAGS) $(DEFS) $(ALL_OBJCFLAGS) $<
.c.o:
	$(CC) -c $(ALL_CPPFLAGS) $(DEFS) $(ALL_CFLAGS) $<

SRCS = \
List.m HashTable.m \
Tcl.m \
Tk.m \
tclObjc.m \
objc-malloc.m

OBJS = \
List.o HashTable.o \
Tcl.o \
Tk.o \
tclObjc.o \
objc-malloc.o

HDRS = \
Tcl.h \
Tk.h \
tclObjc.h

DISTFILES = \
List.m \
HashTable.m \
Tcl.m \
Tk.m \
tclObjc.m \
objc-malloc.m \
xmalloc.c \
checkTcl.m \
checkTk.m \
coll/List.h \
coll/HashTable.h \
Tcl.h \
Tk.h \
tclObjc.h \
objc-malloc.h \
objc-gnu2next.h \
check.tcl check.tk \
config.tcllib \
COPYING.LIB ChangeLog \
Makefile.in configure configure.in mkinstalldirs \
gcc.patch \
version.texi \
README readme.texi \
INSTALL install.texi \
NEWS news.texi \
TODO 

all: libtclobjc.a

libtclobjc.a: $(OBJS)
	$(AR) $(ARFLAGS) libtclobjc.a $(OBJS)
	$(RANLIB) libtclobjc.a

libtclobjc.so: $(OBJS)
	gcc -shared -Wl,-soname,libtclobjc.so.$(SOMAJ) \
	  -o libtclobjc.so.$(SOMAJ).$(SOMIN) $(OBJS)

install: installdirs all
	$(INSTALL_DATA) libtclobjc.a $(libdir)/libtclobjc.a
	$(RANLIB) $(libdir)/libtclobjc.a
	$(INSTALL_DATA) $(HDRS) $(includedir)

installdirs:
	$(srcdir)/mkinstalldirs $(includedir) $(libdir)

uninstall:
	rm -f $(libdir)/libtclobjc.a
	for file in $(HDRS); do \
	  rm -rf $(includedir)/$file ; \
	done

check: doCheckTcl doCheckTk

doCheckTcl: checkTcl
	./checkTcl < check.tcl

doCheckTk: checkTk
	# Without readline, redirecting into Tk's promptAndEval isn't working
	# I haven't looked into why.
	./checkTk check.tk

checkTcl: checkTcl.o libtclobjc.a xmalloc.o
	$(CC) -g -o checkTcl checkTcl.o libtclobjc.a xmalloc.o $(TCLLIBS)

checkTk: checkTk.o libtclobjc.a xmalloc.o
	$(CC) -o checkTk checkTk.o libtclobjc.a xmalloc.o $(LIBS)

depend:
	rm -f $(srcdir)/Makefile.depend
	$(CC) $(ALL_INCLUDE_FLAGS) -M $(SRCS) > $(srcdir)/Makefile.depend

tclObjc.h: Makefile.in
	rm -f tmp-tclObjc.h
	sed -e \
	's/#define TCLOBJC_VERSION .*/#define TCLOBJC_VERSION "$(TCLOBJC_VERSION)"/'\
		< $(srcdir)/tclObjc.h >$(srcdir)/tmp-tclObjc.h
	rm $(srcdir)/tclObjc.h
	mv $(srcdir)/tmp-tclObjc.h $(srcdir)/tclObjc.h

tclObjc.m: tclObjc.h

version.texi: Makefile
	rm -f $(srcdir)/version.texi
	echo '@set TCLOBJC_VERSION' $(TCLOBJC_VERSION) > $(srcdir)/version.texi
README: readme.texi version.texi news.texi
	$(MAKEINFO) -o README -D README_ONLY \
	--no-header --no-split $(srcdir)/readme.texi
INSTALL: install.texi version.texi
	$(MAKEINFO) -o INSTALL -D INSTALL_ONLY \
	--no-header --no-split $(srcdir)/install.texi
NEWS: news.texi version.texi
	$(MAKEINFO) -o NEWS -D NEWS_ONLY \
	--no-header --no-split $(srcdir)/news.texi

Makefile: Makefile.in config.status
	$(SHELL) config.status
config.status: configure
	$(SHELL) $(srcdir)/configure --no-create
configure: configure.in
	cd $(srcdir); autoconf

TAGS: $(SRCS)
	etags $(SRCS)

mostlyclean:
	rm -f *~ coll/*~ core

clean: mostlyclean
#	rm -f libtclobjc.a *.o Makefile.depend checkTk checkTcl
	rm -f libtclobjc.a libtclobjc.so* *.o Makefile.depend checkTk checkTcl

realclean: clean
	rm -f Makefile config.status config.cache config.log

superclean: realclean
	rm -f TAGS configure

dist: $(DISTFILES)
	echo libtclobjc-$(TCLOBJC_VERSION) > .fname
	rm -rf `cat .fname`
	mkdir `cat .fname`
	mkdir `cat .fname`/coll
	for file in $(DISTFILES); do \
	  ln $$file `cat .fname`/$$file ; \
	done
	tar -chvf `cat .fname`.tar `cat .fname`
	gzip `cat .fname`.tar
	rm -rf `cat .fname` .fname

