#
#	      		COPYRIGHT NOTICE
#
#      This code was originally written, and is owned by Brian Somers.
#      It may be copied, altered, given away or sold by anybody who
#      feels so inclined, but must at all times contain this copyright
#      notice.
#      brian@awfulhak.demon.co.uk
#
#
all:	cpplib.$(LIBEXT) clib.$(LIBEXT) stest$(EXE) mtest$(EXE) \
	etest$(EXE) sigtest$(EXE)

clean:
	$(RM) *.$(OBJ) stest$(EXE) sstest$(EXE) mtest$(EXE) etest$(EXE)
	$(RM) *.$(LIBEXT) cpplib.h clib.h sigtest$(EXE)

string.$(OBJ): string.cc string.h makefile
	$(CPP) $(CPPFLAGS) -I.. string.cc

signals.$(OBJ): signals.cc signals.h makefile
	$(CPP) $(CPPFLAGS) -I.. signals.cc

sstring.$(OBJ): sstring.cc sstring.h string.h makefile
	$(CPP) $(CPPFLAGS) -I.. sstring.cc

regexp.$(OBJ): regexp.cc regexp.h string.h makefile
	$(CPP) $(CPPFLAGS) -I.. regexp.cc

dlist.$(OBJ): dlist.cc dlist.h makefile
	$(CPP) $(CPPFLAGS) -I.. dlist.cc

cpplib.$(LIBEXT): string.$(OBJ) dlist.$(OBJ) signals.$(OBJ) makefile
	$(AR) $(ARFLAGS) cpplib.$(LIBEXT) \
		$(AROBJFLAGS) string.$(OBJ) \
		$(AROBJFLAGS) dlist.$(OBJ) \
		$(AROBJFLAGS) signals.$(OBJ)
	$(RANLIB) cpplib.$(LIBEXT)

balance.$(OBJ): balance.c balance.h makefile
	$(CC) $(CCFLAGS) -I.. balance.c

absolute.$(OBJ): absolute.c absolute.h makefile
	$(CC) $(CCFLAGS) -I.. absolute.c

progname.$(OBJ): progname.c progname.h makefile
	$(CC) $(CCFLAGS) -I.. progname.c

expand.$(OBJ): expand.c expand.h balance.h makefile
	$(CC) $(CCFLAGS) -I.. expand.c

clib.$(LIBEXT): progname.$(OBJ) balance.$(OBJ) expand.$(OBJ) absolute.$(OBJ) \
		makefile
	$(AR) $(ARFLAGS) clib.$(LIBEXT) \
		$(AROBJFLAGS) progname.$(OBJ) \
		$(AROBJFLAGS) balance.$(OBJ) \
		$(AROBJFLAGS) expand.$(OBJ) \
		$(AROBJFLAGS) absolute.$(OBJ)
	$(RANLIB) clib.$(LIBEXT)

etest.$(OBJ): etest.c expand.h makefile
	$(CC) $(CCFLAGS) -I.. etest.c

mtest.$(OBJ): mtest.c expand.h makefile
	$(CC) $(CCFLAGS) -I.. mtest.c

stest.$(OBJ): stest.cc string.h makefile
	$(CPP) $(CPPFLAGS) -I.. stest.cc

sigtest.$(OBJ): sigtest.cc string.h makefile
	$(CPP) $(CPPFLAGS) -I.. sigtest.cc

sstest.$(OBJ): sstest.cc sstring.h makefile
	$(CPP) $(CPPFLAGS) -I.. sstest.cc

etest$(EXE): etest.$(OBJ) clib.$(LIBEXT) makefile
	$(LDPP) $(LDPPFLAGS) $(EXEOUT)etest$(EXE) etest.$(OBJ) clib.$(LIBEXT) $(LIBS)

mtest$(EXE): mtest.$(OBJ) clib.$(LIBEXT) makefile
	$(LDPP) $(LDPPFLAGS) $(EXEOUT)mtest$(EXE) mtest.$(OBJ) clib.$(LIBEXT) $(LIBS)

stest$(EXE): stest.$(OBJ) cpplib.$(LIBEXT) makefile
	$(LDPP) $(LDPPFLAGS) $(EXEOUT)stest$(EXE) stest.$(OBJ) cpplib.$(LIBEXT) $(LIBS)

sigtest$(EXE): sigtest.$(OBJ) cpplib.$(LIBEXT) makefile
	$(LDPP) $(LDPPFLAGS) $(EXEOUT)sigtest$(EXE) sigtest.$(OBJ) cpplib.$(LIBEXT) $(LIBS)

sstest$(EXE): sstest.$(OBJ) cpplib.$(LIBEXT) makefile
	$(LDPP) $(LDPPFLAGS) $(EXEOUT)sstest$(EXE) sstest.$(OBJ) \
		cpplib.$(LIBEXT) $(LIBS)
