LINTER = ..
include	$(LINTER)/Definition
#
# makefile for linsh (LINTCL).
# tclinit.c : Add to tclinit call function LinterCmdInit(interp)
#

MODULE	= linsh linwish

NAME = libtclLinter

INTLIB = $(LINTER)/intlib
BIN    = $(LINTER)/bin

OUTDIR	= $(BIN)



CFLAGS	= -c $(CFLAGS_DEPS) $(VERSION) $(OS) $(SYSTEMS) $(PACKING)  -I$(INTLIB) $(TCL_INC)

CFLAGS_SH = $(CFLAGS) $(CPICFLAG)  



LIBS	= $(INTLIB)/linapi.a $(INTLIB)/tick.a $(INTLIB)/decimals.a $(TCL_LIB)
LDFLAGS	= $(LDKEY)
LDFLAGS_SH =  $(LDSHLIBFLAG) $(LDKEY)


EXTRA_LIBS=$(INTLIB)/linapi.la

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

all: configtcl.h configtk.h support

result.dps:	$(OUTDIR)/linsh $(OUTDIR)/linwish 
	$(MK_DEPS)

$(OUTDIR)/linsh: tclinit.o linsh.a 
	$(CC)  $(LDFLAGS)$(OUTDIR)/linsh tclinit.o linsh.a $(LIBS)

$(OUTDIR)/linwish: tkinit.o linsh.a 
	$(CC) $(LDFLAGS)$(OUTDIR)/linwish tkinit.o linsh.a $(TK_LIB) $(LIBS)
		

libtclLinter.so : linsh_sh.o 
	$(LD) $(LDFLAGS_SH)libtclLinter.so linsh_sh.o $(EXTRA_LIBS) $(TCL_LIB) $(LIBRARY)

linsh.a : linsh.o
	$(AR) $(ARKEY)linsh.a linsh.o
	$(RANLIB) linsh.a

support:
	@if test "$(SUPPORT_TCL)" = "1" ; then \
	    $(MAKE) ../bin/linsh ; \
        $(MAKE) libtclLinter.so; \
	else \
	echo "TCL not configure or not installed in system"; \
	"TCL not installed in system";\
	fi ;
	@if test "$(SUPPORT_TK)" = "1" ; then \
	    $(MAKE) ../bin/linwish ; \
	fi ;
	

install : libtclLinter.so $(OUTDIR)/linsh
	echo "puts [ string trim \$$tcl_pkgPath \" \"]">tmp.tcl;\
	TCLPKG=`$(OUTDIR)/linsh tmp.tcl`;\
	rm -f tmp.tcl;\
	if [ ! -d $$TCLPKG/tclLinter ];then \
	    mkdir $$TCLPKG/tclLinter;\
	fi;\
	chmod 0755 $$TCLPKG/tclLinter;\
	cp -f libtclLinter.so $$TCLPKG/tclLinter;\
	chmod 0555 $$TCLPKG/tclLinter/libtclLinter.so;\
	echo "pkg_mkIndex "$$TCLPKG"/tclLinter">tmp.tcl;\
	$(OUTDIR)/linsh tmp.tcl; \
	rm -f tmp.tcl;\
	chmod 0444 $$TCLPKG/tclLinter/pkgIndex.tcl;


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

linsh.o : linsh.c configtcl.h
	$(CC) $(CFLAGS) linsh.c

tclinit.o : tclinit.c configtcl.h
	$(CC) $(CFLAGS) tclinit.c

tkinit.o : tkinit.c configtk.h
	$(CC)  $(CFLAGS) $(TK_DEFS)  $(XINCS) tkinit.c

linsh_sh.o : linsh.c configtcl.h
	$(CC) $(CFLAGS_SH) linsh.c; \
	mv linsh.o linsh_sh.o

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

clean:
	rm -f *.o >/dev/null
	rm -f $(BIN)/linsh >/dev/null
	rm -f $(BIN)/linwish >/dev/null
	rm -f *.d *.dps *.tmp >/dev/null
	rm -f *.so *.a >/dev/null
	rm -f configtcl.h configtk.h >/dev/null

cleansrc___:
	rm -f *.c *.h >/dev/null
	rm -f *.eng *.doc *.rus >/dev/null	

configtcl.h: ./config.sh
	./config.sh tcl $(TCL_DIR) > $@

configtk.h: ./config.sh
	./config.sh tk $(TK_DIR) > $@
