1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87
|
# @(#) rlsMakefile 97/12/10 1.1
# makefile for pForth
# Portable Forth written in 'C'
# Phil Burk
.SUFFIXES: .c .o
# Options include: PF_SUPPORT_FP PF_NO_MALLOC PF_NO_INIT PF_DEBUG
# See "docs/pf_ref.htm" file for more info.
SOURCEDIR = csrc
OBJECTDIR = objects
EMBOBJECTDIR = embobjects
FULL_WARNINGS = -O2 \
-fsigned-char \
-fno-builtin \
-fno-unroll-loops \
-fpeephole \
-fno-keep-inline-functions \
-x c++ \
-Wcast-qual \
-Wall \
-Wwrite-strings \
-Winline \
-Wmissing-prototypes \
-Wmissing-declarations
CCOPTS = -DPF_SUPPORT_FP $(FULL_WARNINGS)
COMPILER = gcc
EMBCCOPTS = -DPF_NO_INIT -DPF_NO_MALLOC -DPF_NO_FILEIO \
-DPF_NO_CLIB -DPF_STATIC_DIC
#######################################
# Build file lists from wildcards.
PFITEMP = ${wildcard ${SOURCEDIR}/*.h}
PFINCLUDES = ${PFITEMP:${SOURCEDIR}/pfdicdat.h=}
PFSOURCE = ${wildcard ${SOURCEDIR}/*.c}
PFTEMP = ${PFSOURCE:%.c=%.o}
PFOBJS = ${PFTEMP:${SOURCEDIR}/%=${OBJECTDIR}/%}
PFEMBOBJS = ${PFTEMP:${SOURCEDIR}/%=${EMBOBJECTDIR}/%}
COMPILE = $(COMPILER) $(CCOPTS) $(CDEFS)
${OBJECTDIR}/%.o: $(PFINCLUDES) ${SOURCEDIR}/%.c
$(COMPILE) -O -o ${OBJECTDIR}/$*.o -c ${SOURCEDIR}/$*.c
${EMBOBJECTDIR}/%.o: $(PFINCLUDES) ${SOURCEDIR}/%.c ${SOURCEDIR}/pfdicdat.h
$(COMPILE) -O -o ${EMBOBJECTDIR}/$*.o -c ${SOURCEDIR}/$*.c $(EMBCCOPTS)
all: pforth pforth.dic
pffiles:
echo "ITEMP FILES -----------------"
echo ${PFITEMP}
echo "INCLUDE FILES -----------------"
echo ${PFINCLUDES}
echo "'C' FILES ---------------------"
echo ${PFSOURCE}
echo "OBJECT FILES ------------------"
echo ${PFOBJS}
echo "EMBEDDED OBJECT FILES ------------------"
echo ${PFEMBOBJS}
# build pforth by compiling 'C' source
pforth: $(PFINCLUDES) $(PFOBJS)
$(COMPILER) $(PFOBJS) -lm -o pforth
# build basic dictionary by running newly built pforth and including system.fth
pforth.dic: pforth
./pforth -i system.fth
${SOURCEDIR}/pfdicdat.h: pforth pforth.dic
@(echo 'INCLUDE utils/savedicd.fth'; \
echo 'SDAD'; \
echo 'bye') | \
pforth -dpforth.dic
cp pfdicdat.h ${SOURCEDIR}
pfemb: $(PFINCLUDES) $(PFEMBOBJS)
$(COMPILER) $(PFEMBOBJS) -lm -o pfemb
clean:
rm -f $(PFOBJS) $(PFEMBOBJS) pforth *.dic core ${SOURCEDIR}/pfdicdat.h pfemb
|