#
# Build the rfc2822 Library
#
#ident "@(#)librfc2822: :Makefile,v 1.3 2004/08/13 23:38:15 woods Exp "

.include <bsd.own.mk>
TARGETS +=	vacation2netbsd

LIB =	rfc2822

CWARNFLAGS+= -W
CWARNFLAGS+= -Wall
CWARNFLAGS+= -Wshadow
CWARNFLAGS+= -Wswitch
CWARNFLAGS+= -Wreturn-type
CWARNFLAGS+= -Wpointer-arith
CWARNFLAGS+= -Wconversion
CWARNFLAGS+= -Wimplicit
CWARNFLAGS+= -Wmissing-declarations
CWARNFLAGS+= -Wmissing-prototypes
CWARNFLAGS+= -Wstrict-prototypes
CWARNFLAGS+= -Wcast-qual
CWARNFLAGS+= -Wwrite-strings

#CWARNFLAGS+= -Wnetbsd-format-audit
CWARNFLAGS+= -Wno-format-extra-args

CFLAGS		= ${DBG} ${OPTIM} ${CWARNFLAGS}
CPPFLAGS	+= -DYYDEBUG
CPPFLAGS	+= -DFLEX_DEBUG
CPPFLAGS	= -I.
LDFLAGS		= -L.

#LEX		= /usr/pkg/bin/flex
LEXDEBUG	= -d
LPREFIX		= ${LIB}_
LFLAGS		= $(LEXDEBUG)

YACCDEBUG	= -d
YACCVERBOSE	= -v
YFLAGS		= $(YACCDEBUG) $(YACCVERBOSE) -p ${LIB}_
YHEADER		= # defined

SRCS =		address.y address_scan.l
SRCS +=		errors.c gethfield.c ishfield.c strip_comments.c strip_whitespace.c
SRCS +=		write_addr.c

HEADERS =	librfc2822.h rfc2822.h
DOCS =		
OTHER =		Makefile testaddresslines

# flex uses fwrite() improperly
#
NOGCCERROR =	# defined

MKPICLIB =	no
MKPROFILE =	no
MKLINT =	no

CLEANFILES +=	address.c address.h address_scan.c
CLEANFILES +=	y.output

address.c:	address_scan.c

# does nothing
libinstall:

CLEANFILES +=	test.o test
test: test.o librfc2822.a
	$(CC) $(LDFLAGS) -o $@ test.o -lrfc2822 -L/usr/pkg/lib -lefence

do-test: test
	@echo "====> Expect only  'Test-Header-dies:' lines....."
	./test < testaddresslines  | fgrep 'error for' | fgrep -v ERROR-Header
	@echo "====> Still expect only  'Test-Header-dies:' lines....."
	./test -k < testaddresslines  | fgrep 'error for' | fgrep -v ERROR-Header
	@echo "====> Again with different ElectricFence options..."
	EF_PROTECT_BELOW=1 ./test < testaddresslines  | fgrep 'error for' | fgrep -v ERROR-Header
	@echo "====> Again with different ElectricFence options..."
	EF_PROTECT_FREE=1 ./test < testaddresslines  | fgrep 'error for' | fgrep -v ERROR-Header
	@echo "====> Again with different ElectricFence options..."
	EF_PROTECT_FREE=1 EF_PROTECT_BELOW=1 ./test < testaddresslines  | fgrep 'error for' | fgrep -v ERROR-Header

SRCINSTDIR ?=	${BSDSRCDIR}/usr.bin/vacation
SRCUPDATEDIR =	${SRCINSTDIR}/${.CURDIR:C/.*\///}

RCS_ID_EDITS =	-E -e 's/\$([^$]*)\$$/\1/' \
		-e 's/\$([^$]*)\$$/\1/'

.PHONY: vacation2netbsd
vacation2netbsd: ${SRCS} ${HEADERS} ${DOCS} ${OTHER}
	${INSTALL_DIR} ${SRCUPDATEDIR}
.for _file_ in ${SRCS} ${HEADERS} ${DOCS} ${OTHER}
	rm -f ${SRCUPDATEDIR}/${_file_}
	sed ${RCS_ID_EDITS} < ${_file_} > ${SRCUPDATEDIR}/${_file_}
	chmod ${FILESMODE} ${SRCUPDATEDIR}/${_file_}
.endfor

.include <bsd.lib.mk>
