lvm2.mk 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. #############################################################
  2. #
  3. # lvm2
  4. #
  5. #############################################################
  6. # Copyright (C) 2005 by Richard Downer <rdowner@gmail.com>
  7. # Derived from work
  8. # Copyright (C) 2001-2005 by Erik Andersen <andersen@codepoet.org>
  9. # Copyright (C) 2002 by Tim Riker <Tim@Rikers.org>
  10. #
  11. # This program is free software; you can redistribute it and/or modify
  12. # it under the terms of the GNU Library General Public License as
  13. # published by the Free Software Foundation; either version 2 of the
  14. # License, or (at your option) any later version.
  15. #
  16. # This program is distributed in the hope that it will be useful, but
  17. # WITHOUT ANY WARRANTY; without even the implied warranty of
  18. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  19. # Library General Public License for more details.
  20. #
  21. # You should have received a copy of the GNU Library General Public
  22. # License along with this program; if not, write to the Free Software
  23. # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
  24. # USA
  25. LVM2_BASEVER=2.02
  26. LVM2_DMVER=1.02
  27. LVM2_PATCH=47
  28. LVM2_VERSION=$(LVM2_BASEVER).$(LVM2_PATCH)
  29. LVM2_SOURCE:=LVM2.$(LVM2_VERSION).tgz
  30. LVM2_SITE:=ftp://sources.redhat.com/pub/lvm2
  31. LVM2_CAT:=$(ZCAT)
  32. LVM2_DIR:=$(BUILD_DIR)/LVM2.$(LVM2_VERSION)
  33. LVM2_SBIN:=lvchange lvcreate lvdisplay lvextend lvm lvmchange lvmdiskscan lvmsadc lvmsar lvreduce lvremove lvrename lvresize lvs lvscan pvchange pvcreate pvdisplay pvmove pvremove pvresize pvs pvscan vgcfgbackup vgcfgrestore vgchange vgck vgconvert vgcreate vgdisplay vgexport vgextend vgimport vgmerge vgmknodes vgreduce vgremove vgrename vgs vgscan vgsplit
  34. LVM2_DMSETUP_SBIN:=dmsetup
  35. LVM2_LIB:=libdevmapper.so.$(LVM2_DMVER)
  36. LVM2_TARGET_SBINS=$(foreach lvm2sbin, $(LVM2_SBIN), $(TARGET_DIR)/sbin/$(lvm2sbin))
  37. LVM2_TARGET_DMSETUP_SBINS=$(foreach lvm2sbin, $(LVM2_DMSETUP_SBIN), $(TARGET_DIR)/sbin/$(lvm2sbin))
  38. LVM2_TARGET_LIBS=$(foreach lvm2lib, $(LVM2_LIB), $(TARGET_DIR)/lib/$(lvm2lib))
  39. $(DL_DIR)/$(LVM2_SOURCE):
  40. $(call DOWNLOAD,$(LVM2_SITE),$(LVM2_SOURCE))
  41. lvm2-source: $(DL_DIR)/$(LVM2_SOURCE)
  42. ifeq ($(BR2_PACKAGE_READLINE),y)
  43. LVM2_DEPENDENCIES+=readline
  44. else
  45. # v2.02.44: disable readline usage, or binaries are linked against provider
  46. # of "tgetent" (=> ncurses) even if it's not used..
  47. LVM2_CONF_OPT+=--disable-readline
  48. endif
  49. $(LVM2_DIR)/.unpacked: $(DL_DIR)/$(LVM2_SOURCE)
  50. $(LVM2_CAT) $(DL_DIR)/$(LVM2_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
  51. touch $(LVM2_DIR)/.unpacked
  52. $(LVM2_DIR)/.configured: $(LVM2_DIR)/.unpacked
  53. (cd $(LVM2_DIR); rm -rf config.cache; \
  54. $(TARGET_CONFIGURE_OPTS) \
  55. $(TARGET_CONFIGURE_ARGS) \
  56. ac_cv_have_decl_malloc=yes \
  57. gl_cv_func_malloc_0_nonnull=yes \
  58. ac_cv_func_malloc_0_nonnull=yes \
  59. ac_cv_func_calloc_0_nonnull=yes \
  60. ac_cv_func_realloc_0_nonnull=yes \
  61. ./configure \
  62. --target=$(GNU_TARGET_NAME) \
  63. --host=$(GNU_TARGET_NAME) \
  64. --build=$(GNU_HOST_NAME) \
  65. $(DISABLE_NLS) \
  66. $(DISABLE_LARGEFILE) \
  67. --with-user=$(shell id -un) --with-group=$(shell id -gn) \
  68. $(LVM2_CONF_OPT) \
  69. )
  70. touch $(LVM2_DIR)/.configured
  71. $(LVM2_DIR)/.built: $(LVM2_DIR)/.configured
  72. $(MAKE1) CC=$(TARGET_CC) RANLIB=$(TARGET_RANLIB) AR=$(TARGET_AR) -C $(LVM2_DIR) DESTDIR=$(STAGING_DIR)
  73. $(MAKE1) -C $(LVM2_DIR) DESTDIR=$(STAGING_DIR) install
  74. touch $(LVM2_DIR)/.built
  75. $(LVM2_TARGET_SBINS): $(LVM2_DIR)/.built
  76. for binary in $(LVM2_SBIN); do echo $$binary; cp -a $(STAGING_DIR)/sbin/$$binary $(TARGET_DIR)/sbin; done
  77. $(LVM2_TARGET_DMSETUP_SBINS): $(LVM2_DIR)/.built
  78. for binary in $(LVM2_DMSETUP_SBIN); do echo $$binary; cp -a $(STAGING_DIR)/sbin/$$binary $(TARGET_DIR)/sbin; done
  79. $(LVM2_TARGET_LIBS): $(LVM2_DIR)/.built
  80. for lib in $(LVM2_LIB); do echo $$lib; cp -a $(STAGING_DIR)/lib/$$lib $(TARGET_DIR)/lib; done
  81. ifeq ($(BR2_PACKAGE_LVM2_DMSETUP_ONLY),y)
  82. lvm2: uclibc $(LVM2_TARGET_DMSETUP_SBINS) $(LVM2_TARGET_LIBS)
  83. else
  84. lvm2: uclibc $(LVM2_TARGET_SBINS) $(LVM2_TARGET_DMSETUP_SBINS) $(LVM2_TARGET_LIBS)
  85. endif
  86. lvm2-clean:
  87. $(MAKE) DESTDIR=$(TARGET_DIR) -C $(LVM2_DIR) uninstall
  88. -$(MAKE) -C $(LVM2_DIR) clean
  89. lvm2-dirclean:
  90. rm -rf $(LVM2_DIR)
  91. #############################################################
  92. #
  93. # Toplevel Makefile options
  94. #
  95. #############################################################
  96. ifeq ($(BR2_PACKAGE_LVM2),y)
  97. TARGETS+=lvm2
  98. endif