#
# Copyright (C) 2001-2004 Sistina Software, Inc. All rights reserved.
# Copyright (C) 2004-2015 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@

include $(top_builddir)/make.tmpl

all: .symlinks_created

LINKS := $(shell find . -maxdepth 1 -type l)

.symlinks_created: .symlinks
ifneq (,$(firstword $(LINKS)))
	$(RM) $(LINKS)
endif
	for i in `cat $<`; do $(LN_S) $$i ; done
	touch $@

pofile: all

device-mapper: all

cflow: all

DISTCLEAN_TARGETS += .symlinks configure.h lvm-version.h
CLEAN_TARGETS += $(LINKS) .include_symlinks .symlinks_created
