#
# Build librfc822.a.
#
# This Makefile assumes you are using the GNU compiler. Please change
# these defines if you are not.
#
CXX		= g++
AR		= ar
RANLIB		= ranlib

OPTIMFLAGS	= -O3
WARNFLAGS	= -Wall -pedantic
CPPFLAGS	= #-DDEBUG_RFC_PARSER  # activate massive debug output
CXXFLAGS	=
LDFLAGS		=

OBJS		= lexer.o parser.o

.SUFFIXES:
.SUFFIXES:	.cc .o

.cc.o:
	$(CXX) $(CPPFLAGS) $(CXXFLAGS) $(WARNFLAGS) $(OPTIMFLAGS) -c $< -o $@

all:		librfc822.a

librfc822.a:	$(OBJS)
	$(AR) cr $@ $(OBJS)
	$(RANLIB) $@

test:		test.o librfc822.a
	$(CXX) $(LDFLAGS) test.o librfc822.a -o test

realclean distclean clean::
	@find . -name '*.rpo' -exec rm -f {} \;
	@find . -name '*.a'   -exec rm -f {} \;
	@find . -name '*.o'   -exec rm -f {} \;
	@find . -name '.#*'   -exec rm -f {} \;
	@rm -f test
	@echo All dependent files have been removed.

realclean::
	@(cd documentation && $(MAKE) realclean)
	rm -f README

depend::
	makedepend -Y -fMakefile '-s# Dependencies' `find . -name '*.cc' ` 2>/dev/null
	@sed <Makefile >Makefile.bak -e 's/\.\///g'
	@mv Makefile.bak Makefile

changelog::
	rcs2log -u "peti	Peter Simons	simons@computer.org" >ChangeLog.new
	mv ChangeLog ChangeLog.old
	cat ChangeLog.new ChangeLog.old >ChangeLog
	rm ChangeLog.old ChangeLog.new

dist:
	(cd documentation && $(MAKE) all clean)
	$(MAKE) distclean
	cp documentation/readme.txt README
	@V=`cat VERSION`; \
	cp -ra . /tmp/librfc822-$$V; \
	$(MAKE) >/dev/null -C /tmp/librfc822-$$V distclean; \
	find /tmp/librfc822-$$V -name 'CVS' -print | xargs rm -rf \; ; \
	find /tmp/librfc822-$$V -name '.cvsignore' -exec rm -f {} \; ; \
	(cd /tmp; tar cfz librfc822-$$V.tar.gz librfc822-$$V); \
	rm -rf /tmp/librfc822-$$V; \
	echo Created distribution archive /tmp/librfc822-$$V.tar.gz

tag::
	cvs tag -c librfc822-`sed <VERSION -e 's#\.#-#g'`

# Dependencies

lexer.o: rfc822.hh
parser.o: rfc822.hh
test.o: rfc822.hh
