lvm2.mk 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  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=50
  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. ./configure $(QUIET) \
  57. --target=$(GNU_TARGET_NAME) \
  58. --host=$(GNU_TARGET_NAME) \
  59. --build=$(GNU_HOST_NAME) \
  60. $(DISABLE_NLS) \
  61. $(DISABLE_LARGEFILE) \
  62. --with-user=$(shell id -un) --with-group=$(shell id -gn) \
  63. $(LVM2_CONF_OPT) \
  64. )
  65. touch $(LVM2_DIR)/.configured
  66. $(LVM2_DIR)/.built: $(LVM2_DIR)/.configured
  67. $(MAKE1) CC=$(TARGET_CC) RANLIB=$(TARGET_RANLIB) AR=$(TARGET_AR) -C $(LVM2_DIR) DESTDIR=$(STAGING_DIR)
  68. $(MAKE1) -C $(LVM2_DIR) DESTDIR=$(STAGING_DIR) install
  69. # Fixup write permissions so that the files can be overwritten
  70. # several times in the $(TARGET_DIR)
  71. chmod 755 $(STAGING_DIR)/sbin/lvm
  72. chmod 755 $(STAGING_DIR)/sbin/dmsetup
  73. chmod 644 $(STAGING_DIR)/lib/$(LVM2_LIB)
  74. touch $(LVM2_DIR)/.built
  75. $(LVM2_TARGET_SBINS) $(LVM2_TARGET_DMSETUP_SBINS): $(LVM2_DIR)/.built
  76. cp -a $(STAGING_DIR)/sbin/$(notdir $@) $@
  77. touch $@
  78. $(LVM2_TARGET_LIBS): $(LVM2_DIR)/.built
  79. cp -a $(STAGING_DIR)/lib/$(notdir $@) $@
  80. touch $@
  81. ifeq ($(BR2_PACKAGE_LVM2_DMSETUP_ONLY),y)
  82. lvm2: $(LVM2_TARGET_DMSETUP_SBINS) $(LVM2_TARGET_LIBS)
  83. else
  84. lvm2: $(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