Separate building of binary dictionary image
and C source (inlined) dictionary image.
Make CPPFLAGS, CFLAGS, LDFLAGS semantics more traditional.
XCPPFLAGS, XCFLAGS, XLDFLAGS contain "extension" flags now,
resetting them to empty values effects in building of bare pForth
without FPN support, optimisations and other features.
Declare phony (non-material) targets as suggested by standards.
Use parameters where names were hardcoded.
-Wmissing-declarations
DEBUGOPTS = -g
-Wmissing-declarations
DEBUGOPTS = -g
-CCOPTS = $(WIDTHOPT) -x c -DPF_SUPPORT_FP -O2 $(FULL_WARNINGS) $(EXTRA_CCOPTS) $(DEBUGOPTS)
+CCOPTS = $(WIDTHOPT) -x c -O2 $(FULL_WARNINGS) $(EXTRA_CCOPTS) $(DEBUGOPTS)
IO_SOURCE = pf_io_posix.c
#IO_SOURCE = pf_io_stdio.c
IO_SOURCE = pf_io_posix.c
#IO_SOURCE = pf_io_stdio.c
pf_text.c pf_words.c pfcompil.c pfcustom.c
PFSOURCE = $(PFBASESOURCE) $(IO_SOURCE)
pf_text.c pf_words.c pfcompil.c pfcustom.c
PFSOURCE = $(PFBASESOURCE) $(IO_SOURCE)
-VPATH = .:$(SRCDIR)/csrc:$(SRCDIR)/csrc/posix:$(SRCDIR)/csrc/stdio:$(SRCDIR)/csrc/win32_console:$(SRCDIR)/csrc/win32
+VPATH = .:$(CSRCDIR):$(CSRCDIR)/posix:$(CSRCDIR)/stdio:$(CSRCDIR)/win32_console:$(CSRCDIR)/win32
-XCPPFLAGS = $(CDEFS) -I.
+XCPPFLAGS = -DPF_SUPPORT_FP
-COMPILE = $(CC) $(XCFLAGS) $(CFLAGS) $(XCPPFLAGS) $(CPPFLAGS)
-LINK = $(CC) $(XLDFLAGS) $(LDFLAGS)
+CPPFLAGS = -I. $(XCPPFLAGS)
+CFLAGS = $(XCFLAGS)
+LDFLAGS = $(XLDFLAGS)
+
+COMPILE = $(CC) $(CFLAGS) $(CPPFLAGS)
+LINK = $(CC) $(LDFLAGS)
.c.eo: $(PFINCLUDES) pfdicdat.h
$(COMPILE) $(EMBCCOPTS) -c -o $@ $<
.c.eo: $(PFINCLUDES) pfdicdat.h
$(COMPILE) $(EMBCCOPTS) -c -o $@ $<
+.PHONY: all clean test
+.PHONY: help pffiles pfdicapp pfdicdat pforthapp
+
all: $(PFORTHAPP)
pffiles:
all: $(PFORTHAPP)
pffiles:
- @echo "ITEMP FILES -----------------"
- @echo ${PFITEMP}
@echo "INCLUDE FILES -----------------"
@echo ${PFINCLUDES}
@echo "'C' FILES ---------------------"
@echo "INCLUDE FILES -----------------"
@echo ${PFINCLUDES}
@echo "'C' FILES ---------------------"
$(LINK) -o $@ $(PFOBJS) $(LDADD) -lm
# Build basic dictionary image by running newly built pforth and including "system.fth".
$(LINK) -o $@ $(PFOBJS) $(LDADD) -lm
# Build basic dictionary image by running newly built pforth and including "system.fth".
-$(PFDICDAT): $(PFDICAPP)
+$(PFORTHDIC): $(PFDICAPP)
wd=$$(pwd); (cd $(FTHDIR); $${wd}/$(PFDICAPP) -i system.fth)
wd=$$(pwd); (cd $(FTHDIR); $${wd}/$(PFDICAPP) -i system.fth)
- (cd $(FTHDIR); cat pforth.dic; rm -f pforth.dic) > pforth.dic
- (cd $(FTHDIR); cat pfdicdat.h; rm -f pfdicdat.h) > $@
+ (cd $(FTHDIR); cat pforth.dic; rm -f pforth.dic) > $@
+
+$(PFDICDAT): $(PFORTHDIC) $(PFDICAPP)
+ echo 'include $(FTHDIR)/savedicd.fth SDAD BYE' | ./$(PFDICAPP) -d $(PFORTHDIC)
$(PFORTHAPP): $(PFDICDAT) $(PFEMBOBJS)
$(LINK) -o $@ $(PFEMBOBJS) $(LDADD) -lm
$(PFORTHAPP): $(PFDICDAT) $(PFEMBOBJS)
$(LINK) -o $@ $(PFEMBOBJS) $(LDADD) -lm
@echo " It allows pForth to work as a standalone image that does not need to load a dictionary file."
test: $(PFORTHAPP)
@echo " It allows pForth to work as a standalone image that does not need to load a dictionary file."
test: $(PFORTHAPP)
- wd=$$(pwd); (cd $(FTHDIR); $${wd}/pforth_standalone -q t_corex.fth)
- wd=$$(pwd); (cd $(FTHDIR); $${wd}/pforth_standalone -q t_strings.fth)
- wd=$$(pwd); (cd $(FTHDIR); $${wd}/pforth_standalone -q t_locals.fth)
- wd=$$(pwd); (cd $(FTHDIR); $${wd}/pforth_standalone -q t_alloc.fth)
- wd=$$(pwd); (cd $(FTHDIR); $${wd}/pforth_standalone -q t_floats.fth)
+ wd=$$(pwd); (cd $(FTHDIR); $${wd}/$(PFORTHAPP) -q t_corex.fth)
+ wd=$$(pwd); (cd $(FTHDIR); $${wd}/$(PFORTHAPP) -q t_strings.fth)
+ wd=$$(pwd); (cd $(FTHDIR); $${wd}/$(PFORTHAPP) -q t_locals.fth)
+ wd=$$(pwd); (cd $(FTHDIR); $${wd}/$(PFORTHAPP) -q t_alloc.fth)
+ wd=$$(pwd); (cd $(FTHDIR); $${wd}/$(PFORTHAPP) -q t_floats.fth)
clean:
rm -f $(PFOBJS) $(PFEMBOBJS)
clean:
rm -f $(PFOBJS) $(PFEMBOBJS)
include? trace trace.fth\r
include? ESC[ termio.fth\r
include? HISTORY history.fth\r
include? trace trace.fth\r
include? ESC[ termio.fth\r
include? HISTORY history.fth\r
-include? SDAD savedicd.fth\r
\r
.( Dictionary compiled, save in "pforth.dic".) cr\r
c" pforth.dic" save-forth\r
\r
.( Dictionary compiled, save in "pforth.dic".) cr\r
c" pforth.dic" save-forth\r
-\r
-\ Save the dictionary in "pfdicdat.h" file so pForth can be compiled for standalone mode.\r
-SDAD\r