#
# Makefile for DMake 3.8
#
# There are 2 macros specified in the command line that influence
# the behaviour of the makefile:
#
# OS		CC		NAME
# ----------------------------------------------------
# os2		icc		IBM C Set++ 2.1
# os2		gcc		GNU 2.6
# dos		bcc		Borland C++ 4.0
#
# $Id: makefile,v 3.1 1995/02/17 18:20:24 mmann Exp mmann $
#

# Write a state file.
.KEEP_STATE:

# Parallel make
MAXPROCESS=10

# Set defaults (OS/2 with GNU C). Don't overwrite settings on 
# the command line.
OS *= os2
CC *= gcc

# Extensions for object modules and executable files, depending
# on operation system and compiler.
OBJEXT = .o
EXEEXT =

.IF $(OS) == os2
	.IF $(CC) != gcc
		OBJEXT = .obj
  	.END
	EXEEXT = .exe
.ELIF $(OS) == dos
	OBJEXT = .obj
	EXEEXT = .exe
.END

# Compiler flags 
cflags_os2_icc = -Q+ -O -DOS2=1 -B"/noe"
cflags_os2_gcc = -O2 -DOS2=1 -DPROTOTYPES
cflags_dos_bcc = -DMSDOS=1 -O -ml
CFLAGS = $(cflags_$(OS)_$(CC))

# Additional objects needed for globbing
addobj_os2_icc = setargv.obj
addobj_os2_gcc =
addobj_dos_bcc = wildargs.obj
ADDOBJ = $(addobj_$(OS)_$(CC))

# Option needed to specify name of executable file
exename_os2_icc = -Fe$(PRG)
exename_os2_gcc = -o $(PRG)
exename_dos_bcc = -e$(PRG)
EXENAME = $(exename_$(OS)_$(CC))

MODULES = lex parse sym
SRC = {$(MODULES)}.c
OBJ = {$(MODULES)}$(OBJEXT)
PRG = ebrowse$(EXEEXT)

$(PRG): $(OBJ)
	$(CC) $(CFLAGS) $(OBJ) $(ADDOBJ) $(EXENAME)

$(OBJ): lex.h

browser.tar:
	cmd /c ren lcd-entry LCD-entry
	cmd /c ren readme README
	cmd /c ren install.dos INSTALL.DOS
	cmd /c ren install INSTALL
	tar cvf $@ *.el *.c *.h *.texi makefile README INSTALL.DOS INSTALL dir \
		LCD-entry

browser.tar.gz: browser.tar
	gzip --force $<

browser.tar.gz.uue: browser.tar.gz
	uuencode $<

release: browser.tar.gz.uue

clean:
	rm -f *~ *.o *.obj *.exe *.gz *.uue

zip:	browser.zip

browser.zip: 
	zip $@ *.el *.c *.h *.texi makefile README INSTALL.DOS INSTALL dir LCD-entry

# eof

