#
# Copyright (C) 2001-2004 Sistina Software, Inc. All rights reserved.
# Copyright (C) 2004 Red Hat, Inc. All rights reserved.
#
# This file is part of LVM2.
#
# This copyrighted material is made available to anyone wishing to use,
# modify, copy, or redistribute it subject to the terms and conditions
# of the GNU General Public License v.2.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software Foundation,
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA

srcdir = @srcdir@
top_srcdir = @top_srcdir@
top_builddir = @top_builddir@
VPATH = @srcdir@

SOURCES=\
	rfilter_t.c \
	pfilter_t.c

TARGETS=\
	rfilter_t \
	pfilter_t

include $(top_builddir)/make.tmpl

rfilter_t: rfilter_t.o $(top_srcdir)/lib/liblvm.a
	$(CC) -o rfilter_t rfilter_t.o -L$(top_builddir)/lib -llvm

pfilter_t: pfilter_t.o $(top_srcdir)/lib/liblvm.a
	$(CC) -o pfilter_t pfilter_t.o -L$(top_builddir)/lib -llvm

