#
# makefile ---	makefile for portable Forth environment.
#		EMX version for OS/2 2.x.
#
#		This makefile assumes you use CMD.EXE as shell.
#

SYSTEM	= EMX
CC	= gcc -pipe -m486 -Wall
OPTS	= 
OPTIM	= -O2 -fomit-frame-pointer -DUSE_REGS
DEBUG	= -g
STRIP	= -s
LFLAGS	= 
LIBS	= -lvideo
TERM_O	= term-emx.o
SYS_O	= unix.o


PREFIX	= C:
PFELIB	= $(PREFIX)\PFE\LIB
PFEHLP	= $(PFELIB)\HELP

# if you want a final optimized version uncomment these lines:
 CFLAGS =	$(OPTS) $(OPTIM) -D$(SYSTEM) -DPREFIX=\"$(PREFIX)\"
 LDFLAGS =	$(OPTS) $(STRIP) $(LFLAGS)

# if you want a version for C-level debugging uncomment these lines:
# CFLAGS =	$(OPTS) $(DEBUG) -D$(SYSTEM) -DPREFIX=\"$(PREFIX)\"
# LDFLAGS =	$(OPTS) $(DEBUG) $(LFLAGS)


#==============================================================================
# dependencies
#==============================================================================

# object files that should be clean ANSI-C:
ANSOBJ =	core.o block.o double.o xception.o facility.o file.o \
		floating.o locals.o memory.o toolkit.o search.o string.o \
		forth-83.o lpf83.o misc.o showhelp.o debug.o dblsub.o \
		support.o dictnry.o vocs.o lined.o term.o version.o

# object files containing environmental dependencies:
ENVOBJ =	main.o $(TERM_O) 4ed.o signals.o sysdep.o $(SYS_O) shell.o \
		yours.o

OBJECTS =	$(ANSOBJ) $(ENVOBJ)

HEADERS =	forth.h config.h virtual.h options.h const.h types.h macros.h \
		support.h preload.h compiler.h dblsub.h term.h help.h lined.h


all:		pfe.exe helpidx.exe showhelp.exe


pfe.exe:	$(OBJECTS)
		$(CC) $(LDFLAGS) -o pfe.exe $(OBJECTS) $(LIBS) -lm
# in DOS:	$(CC) $(LDFLAGS) -o pfe.exe *.o $(LIBS) -lm
		rm version.o

$(OBJECTS):	$(HEADERS)

.c.s:
		$(CC) $(CFLAGS) -S $<


clean:
		rm -rf *.exe *.o *.s core *.bak *~ #*#

new:		clean all

veryclean:	clean
		rm -f config.* makefile*

testit:		pfe
		( cd ..; src/pfe testsuite; cd src )


# Rules for the standalone help programs:

helpidx.exe:	helpidx.o helpsub.o
		$(CC) $(LDFLAGS) -o helpidx.exe helpidx.o helpsub.o

showhelp.exe:	showhlps.o helpsub.o
		$(CC) $(LDFLAGS) -o showhelp.exe showhlps.o helpsub.o

showhlps.o:	showhelp.c $(HEADERS)
		$(CC) $(CFLAGS) -DSTANDALONE -c showhelp.c -o showhlps.o

helpidx.o:	helpidx.c $(HEADERS)
		$(CC) $(CFLAGS) -DSTANDALONE -c helpidx.c -o helpidx.o

helpsub.o:	helpsub.c $(HEADERS)
		$(CC) $(CFLAGS) -DSTANDALONE -c helpsub.c -o helpsub.o

HLPFILES =	floating.hlp forth-83.hlp misc.hlp
install:	all
		if not exist $(PFELIB) mkdir $(PFELIB)
		if not exist $(PFEHLP) mkdir $(PFEHLP)
		cp -p helpidx.exe showhelp.exe ..\\help\\*.hlp $(PFEHLP)
		$(PREFIX)
		cd $(PFEHLP)
		$(PFEHLP)\\helpidx -o $(PFEHLP)\\index  $(HLPFILES)
