/*
 * Copyright (C) 2001-2004 Sistina Software, Inc. All rights reserved.  
 * Copyright (C) 2004-2009 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 Lesser General Public License v.2.1.
 *
 * You should have received a copy of the GNU Lesser 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
 */

#ifndef _LVM_VERSION_H
/**
 * The LVM version number
 *
 * LVM_MAJOR.LVM_MINOR.LVM_PATCHLEVEL(LVM_LIBAPI)[-LVM_RELEASE]
 */

#define LVM_VERSION @LVM_VERSION@
#define LVM_MAJOR @LVM_MAJOR@
#define LVM_MINOR @LVM_MINOR@
#define LVM_PATCHLEVEL @LVM_PATCHLEVEL@
#define LVM_LIBAPI @LVM_LIBAPI@
#define LVM_RELEASE @LVM_RELEASE@
#define LVM_RELEASE_DATE @LVM_RELEASE_DATE@
#endif
