# (find-pffile "")
# (find-es "forth" "pforth_and_tcl")
# (find-fline "~/mktclapp-3.8/examples/")
# (find-fline "~/mktclapp-3.8/examples/Makefile" "-extension")
# (find-fline "~/MTA/")
# (find-node "(gcc)Invoking GCC")
# (find-node "(make)Catalogue of Rules" "Compiling C programs")
# (find-node "(make)Automatic")

PFDIR = /usr/src/pforth-21
PFOBJDIR = $(PFDIR)/objects
PFCSRCDIR = $(PFDIR)/csrc

CPPFLAGS = -I$(PFCSRCDIR)

PFOBJFILES =		\
	$(PFOBJDIR)/pf_cglue.o	\
	$(PFOBJDIR)/pf_clib.o	\
	$(PFOBJDIR)/pf_core.o	\
	$(PFOBJDIR)/pf_inner.o	\
	$(PFOBJDIR)/pf_io.o	\
	$(PFOBJDIR)/pf_mem.o	\
	$(PFOBJDIR)/pf_save.o	\
	$(PFOBJDIR)/pf_text.o	\
	$(PFOBJDIR)/pf_words.o	\
	$(PFOBJDIR)/pfcompil.o	\
	tclpf_custom.o

#	$(PFOBJDIR)/pfcustom.o

all: tclpforth.so   tclpforth.dic

clean:
	rm -fv tclpforth_e.c tclpforth_e.o tclpforth.o tclpforth.so
	rm -fv tclpf_custom.o tclpf_hook.o tclpforth0 tclpforth.dic

mktclapp.h:
	mktclapp -header > mktclapp.h


tclpforth_e.c: tclpforth.c
	mktclapp -notk -extension Tclpforth \
		tclpforth.c  > tclpforth_e.c

tclpforth_e.o: tclpforth_e.c mktclapp.h

#	strace -f -etrace=open,stat,fork,_exit,execve,wait4,chdir -o /tmp/s \
#	  gcc -I$(PFCSRCDIR) -c -o $@ $<

tclpforth.so: tclpforth_e.o tclpforth.o $(PFOBJFILES)
	gcc -shared -o tclpforth.so  tclpforth_e.o tclpforth.o  $(PFOBJFILES)



tclpforth0: $(PFOBJDIR)/pf_main.o $(PFOBJFILES) tclpf_hook.o
	gcc -o $@ $^

tclpforth.dic: tclpforth0
	cd $(PFDIR); $(PWD)/$< -i ./system.fth; mv -v pforth.dic $(PWD)/$@

# (find-pffile "Makefile" "pforth.dic")
