WIDTHOPT=
FULL_WARNINGS = \
- -c89 \
+ --std=c89 \
-fsigned-char \
-fno-builtin \
-fno-unroll-loops \
- -fpeephole \
-fno-keep-inline-functions \
-pedantic \
-Wcast-qual \
-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
pf_text.c pf_words.c pfcompil.c pfcustom.c
PFSOURCE = $(PFBASESOURCE) $(IO_SOURCE)
-VPATH = .:../../csrc:../../csrc/posix:../../csrc/stdio
-VPATH = .:$(SRCDIR)/csrc:$(SRCDIR)/csrc/posix:$(SRCDIR)/csrc/stdio
+VPATH = .:$(CSRCDIR):$(CSRCDIR)/posix:$(CSRCDIR)/stdio:$(CSRCDIR)/win32_console:$(CSRCDIR)/win32
XCFLAGS = $(CCOPTS)
-XCPPFLAGS = $(CDEFS) -I.
+XCPPFLAGS = -DPF_SUPPORT_FP -D_GNU_SOURCE
XLDFLAGS = $(WIDTHOPT)
-COMPILE = $(CC) $(XCFLAGS) $(CFLAGS) $(XCPPFLAGS) $(CPPFLAGS)
-LINK = $(CC) $(XLDFLAGS) $(LDFLAGS)
+CPPFLAGS = -I. $(XCPPFLAGS)
+CFLAGS = $(XCFLAGS)
+LDFLAGS = $(XLDFLAGS)
+
+COMPILE = $(CC) $(CFLAGS) $(CPPFLAGS)
+LINK = $(CC) $(LDFLAGS)
.SUFFIXES: .c .o .eo
.c.eo: $(PFINCLUDES) pfdicdat.h
$(COMPILE) $(EMBCCOPTS) -c -o $@ $<
+.PHONY: all clean test
+.PHONY: help pffiles pfdicapp pfdicdat pforthapp
+
all: $(PFORTHAPP)
pffiles:
- @echo "ITEMP FILES -----------------"
- @echo ${PFITEMP}
@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".
-$(PFDICDAT): $(PFDICAPP)
+$(PFORTHDIC): $(PFDICAPP)
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
@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)
+ wd=$$(pwd); (cd $(FTHDIR); $${wd}/$(PFORTHAPP) -q t_file.fth)
clean:
rm -f $(PFOBJS) $(PFEMBOBJS)