# Makefile for REMIND
#
# - for GNU gcc (emx 0.8g kit) [executables for OS/2 2.x or DOS (32-bit)]
# - for Microsoft C 6.00A      [executables for OS/2 or MSDOS (16-bit)]

# To use, enter "make -f Makefile.os2" (this makefile depends on its
# name being "Makefile.os2").
#
# Tested with dmake 3.8 and GNU make 3.68 under OS/2

default:
	@echo "Enter $(MAKE) -f Makefile.os2 target                     "
	@echo " where 'target' is chosen from                          " 
	@echo "   msc      OS/2 exe [Microsoft C 6.00a]                "
	@echo "   mscbnd   OS/2 and DOS exe [Microsoft C 6.00a]        "
	@echo "   emx      OS/2 and DOS 32-bit exe [EMX/gcc]           "


msc: 
	$(MAKE) -f Makefile.os2 all \
	CC="cl -nologo -AM" O=".obj" \
	CFLAGS="-D__STDC__ -D__OS2__" \
	LFLAGS="-Lp" \
	LFLAGS2="setargv.obj remind.def -link /NOE"

mscbnd: 
	$(MAKE) -f Makefile.os2 all \
	CC="cl -nologo -AM" O=".obj" \
	CFLAGS="-D__STDC__ -D__OS2__ -D__MSDOS__" \
	LFLAGS="-Lp" LBIND="-Fb" \
	LFLAGS2="setargv.obj remind.def -link /NOE" \
	BIND="bind remind /n DOSMAKEPIPE DOSCWAIT VIOENDPOPUP VIOPOPUP"

emx:  
	$(MAKE) -f Makefile.os2 all \
	CC="gcc -O -s" O=".o" \
	CFLAGS="-D__OS2__ -D__MSDOS__" \
	LFLAGS=""


# OS2_POPUP enables Russ Herman's popup reminders
#OS2_POPUP =
OS2_POPUP = -DOS2_POPUP

HDRS= config.h err.h expr.h globals.h protos.h types.h version.h \
lang.h english.h german.h dutch.h finnish.h french.h norwgian.h \
danish.h polish.h

STDHDRS= config.h types.h protos.h globals.h err.h lang.h

LANGHDRS= english.h german.h dutch.h finnish.h french.h norwgian.h danish.h \
polish.h

SRCS= calendar.c dorem.c dosubst.c expr.c files.c funcs.c globals.c hbcal.c \
init.c main.c moon.c omit.c sort.c queue.c token.c trigger.c userfns.c \
utils.c var.c os2func.c

MANIFEST= README.UNIX README.DOS COPYRIGHT $(HDRS) $(SRCS) Makefile rem rem.1 \
remind.1 remind-all.csh remind-all.sh test.rem test-rem test.cmp makefile.tc \
makefile.msc lnk.msc lnk.tc MANIFEST.UNX MANIFEST.DOS WHATSNEW.30 kall kall.1 \
defs.rem README.OS2 makefile.os2 rem2ps.c rem2ps.h remind.def rem2ps.1 \
tstlang.rem README.BCC lnk.bcc makefile.bcc os2func.c \
test-rem.bat test-rem.cmd test1.cmp test2.cmp


OBJS= $(SRCS:.c=$O)

all: remind.exe rem2ps.exe

.c$O:
	$(CC) -c $(CFLAGS) $(OS2_POPUP) $*.c

rem2ps.exe: rem2ps$O
	$(CC) $(LFLAGS) $(LBIND) -o $@ rem2ps$O $(LFLAGS2)

remind.exe: $(OBJS)
	$(CC) $(LFLAGS) -o $@ $(OBJS) $(LFLAGS2)
	$(BIND)

clean:
	rm -f *.o *.obj *~ core *.bak

clobber:
	rm -f *.o *.obj *~ remind.exe rem2ps.exe test.out core *.bak

test:
	test-rem.cmd

rem2ps$O: rem2ps.c rem2ps.h lang.h config.h
calendar$O: calendar.c $(STDHDRS) expr.h
dorem$O: dorem.c $(STDHDRS) expr.h
dosubst$O: dosubst.c $(STDHDRS) $(LANGHDRS)
expr$O: expr.c $(STDHDRS) expr.h
files$O: files.c $(STDHDRS)
funcs$O: funcs.c $(STDHDRS) expr.h version.h
globals$O: globals.c config.h types.h globals.h err.h lang.h $(LANGHDRS)
hbcal$O: hbcal.c $(STDHDRS)
init$O: init.c $(STDHDRS) expr.h version.h $(LANGHDRS)
main$O: main.c $(STDHDRS) expr.h
moon$O: moon.c $(STDHDRS)
omit$O: omit.c $(STDHDRS)
sort$O: sort.c $(STDHDRS)
queue$O: queue.c $(STDHDRS)
token$O: token.c $(STDHDRS)
trigger$O: trigger.c $(STDHDRS) expr.h
userfns$O: userfns.c $(STDHDRS) expr.h
utils$O: utils.c $(STDHDRS)
var$O: var.c $(STDHDRS) expr.h
