Blame view

buildroot/buildroot-2016.08.1/package/e2fsprogs/e2fsprogs.mk 6 KB
6b13f685e   김민수   BSP 최초 추가
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
  ################################################################################
  #
  # e2fsprogs
  #
  ################################################################################
  
  E2FSPROGS_VERSION = 1.43.1
  E2FSPROGS_SOURCE = e2fsprogs-$(E2FSPROGS_VERSION).tar.xz
  E2FSPROGS_SITE = $(BR2_KERNEL_MIRROR)/linux/kernel/people/tytso/e2fsprogs/v$(E2FSPROGS_VERSION)
  E2FSPROGS_LICENSE = GPLv2, libuuid BSD-3c, libss and libet MIT-like with advertising clause
  E2FSPROGS_LICENSE_FILES = NOTICE lib/uuid/COPYING lib/ss/mit-sipb-copyright.h lib/et/internal.h
  E2FSPROGS_INSTALL_STAGING = YES
  E2FSPROGS_INSTALL_STAGING_OPTS = DESTDIR=$(STAGING_DIR) install-libs
  E2FSPROGS_DEPENDENCIES = host-pkgconf util-linux
  # we don't have a host-util-linux
  HOST_E2FSPROGS_DEPENDENCIES = host-pkgconf
  
  # For 0002-fuse2fs-might-need-librt.patch
  # host-gettext for the gettext macro file needed at autoreconf time
  E2FSPROGS_AUTORECONF = YES
  E2FSPROGS_DEPENDENCIES += host-gettext
  HOST_E2FSPROGS_DEPENDENCIES += host-gettext
  
  # e4defrag doesn't build on older systems like RHEL5.x, and we don't
  # need it on the host anyway.
  # Disable fuse2fs as well to avoid carrying over deps, and it's unused
  HOST_E2FSPROGS_CONF_OPTS += --disable-defrag --disable-fuse2fs
  
  E2FSPROGS_CONF_OPTS = \
  	$(if $(BR2_STATIC_LIBS),,--enable-elf-shlibs) \
  	$(if $(BR2_PACKAGE_E2FSPROGS_DEBUGFS),,--disable-debugfs) \
  	$(if $(BR2_PACKAGE_E2FSPROGS_E2IMAGE),,--disable-imager) \
  	$(if $(BR2_PACKAGE_E2FSPROGS_E4DEFRAG),,--disable-defrag) \
  	$(if $(BR2_PACKAGE_E2FSPROGS_RESIZE2FS),,--disable-resizer) \
  	--disable-uuidd \
  	--disable-libblkid \
  	--disable-libuuid \
  	--enable-fsck \
  	--disable-e2initrd-helper \
  	--disable-testio-debug \
  	--disable-rpath
  
  ifeq ($(BR2_PACKAGE_E2FSPROGS_FUSE2FS),y)
  E2FSPROGS_CONF_OPTS += --enable-fuse2fs
  E2FSPROGS_DEPENDENCIES += libfuse
  else
  E2FSPROGS_CONF_OPTS += --disable-fuse2fs
  endif
  
  ifeq ($(BR2_nios2),y)
  E2FSPROGS_CONF_ENV += ac_cv_func_fallocate=no
  endif
  
  # Some programs are built for the host, but use definitions guessed by
  # the configure script (i.e with the cross-compiler). Help them by
  # saying that <sys/stat.h> is available on the host, which is needed
  # for util/subst.c to build properly.
  E2FSPROGS_CONF_ENV += BUILD_CFLAGS="-DHAVE_SYS_STAT_H"
  
  ifeq ($(BR2_NEEDS_GETTEXT_IF_LOCALE),y)
  # util-linux libuuid pulls in libintl if needed, so ensure we also
  # link against it, otherwise static linking fails
  E2FSPROGS_CONF_ENV += LIBS=-lintl
  endif
  
  E2FSPROGS_MAKE_OPTS = \
  	LDCONFIG=true
  
  define HOST_E2FSPROGS_INSTALL_CMDS
  	$(HOST_MAKE_ENV) $(MAKE) -C $(@D) install install-libs
  endef
  
  # binaries to keep or remove
  E2FSPROGS_BINTARGETS_$(BR2_PACKAGE_E2FSPROGS_BADBLOCKS) += usr/sbin/badblocks
  E2FSPROGS_BINTARGETS_$(BR2_PACKAGE_E2FSPROGS_CHATTR) += usr/bin/chattr
  E2FSPROGS_BINTARGETS_$(BR2_PACKAGE_E2FSPROGS_DUMPE2FS) += usr/sbin/dumpe2fs
  E2FSPROGS_BINTARGETS_$(BR2_PACKAGE_E2FSPROGS_E2FREEFRAG) += usr/sbin/e2freefrag
  E2FSPROGS_BINTARGETS_$(BR2_PACKAGE_E2FSPROGS_E2FSCK) += usr/sbin/e2fsck
  E2FSPROGS_BINTARGETS_$(BR2_PACKAGE_E2FSPROGS_E2LABEL) += usr/sbin/e2label
  E2FSPROGS_BINTARGETS_$(BR2_PACKAGE_E2FSPROGS_E2UNDO) += usr/sbin/e2undo
  E2FSPROGS_BINTARGETS_$(BR2_PACKAGE_E2FSPROGS_E4DEFRAG) += usr/sbin/e4defrag
  E2FSPROGS_BINTARGETS_$(BR2_PACKAGE_E2FSPROGS_FILEFRAG) += usr/sbin/filefrag
  E2FSPROGS_BINTARGETS_$(BR2_PACKAGE_E2FSPROGS_FSCK) += usr/sbin/fsck
  E2FSPROGS_BINTARGETS_$(BR2_PACKAGE_E2FSPROGS_LOGSAVE) += usr/sbin/logsave
  E2FSPROGS_BINTARGETS_$(BR2_PACKAGE_E2FSPROGS_LSATTR) += usr/bin/lsattr
  E2FSPROGS_BINTARGETS_$(BR2_PACKAGE_E2FSPROGS_MKE2FS) += usr/sbin/mke2fs
  E2FSPROGS_BINTARGETS_$(BR2_PACKAGE_E2FSPROGS_MKLOSTFOUND) += usr/sbin/mklost+found
  E2FSPROGS_BINTARGETS_$(BR2_PACKAGE_E2FSPROGS_UUIDGEN) += usr/bin/uuidgen
  
  # files to remove
  E2FSPROGS_TXTTARGETS_ = \
  	usr/sbin/mkfs.ext[234] \
  	usr/sbin/mkfs.ext4dev \
  	usr/sbin/fsck.ext[234] \
  	usr/sbin/fsck.ext4dev \
  	usr/sbin/tune2fs
  
  define E2FSPROGS_TARGET_REMOVE_UNNEEDED
  	rm -f $(addprefix $(TARGET_DIR)/, $(E2FSPROGS_BINTARGETS_))
  	rm -f $(addprefix $(TARGET_DIR)/, $(E2FSPROGS_TXTTARGETS_))
  endef
  
  E2FSPROGS_POST_INSTALL_TARGET_HOOKS += E2FSPROGS_TARGET_REMOVE_UNNEEDED
  
  define E2FSPROGS_TARGET_MKE2FS_SYMLINKS
  	ln -sf mke2fs $(TARGET_DIR)/usr/sbin/mkfs.ext2
  	ln -sf mke2fs $(TARGET_DIR)/usr/sbin/mkfs.ext3
  	ln -sf mke2fs $(TARGET_DIR)/usr/sbin/mkfs.ext4
  	ln -sf mke2fs $(TARGET_DIR)/usr/sbin/mkfs.ext4dev
  endef
  
  ifeq ($(BR2_PACKAGE_E2FSPROGS_MKE2FS),y)
  E2FSPROGS_POST_INSTALL_TARGET_HOOKS += E2FSPROGS_TARGET_MKE2FS_SYMLINKS
  endif
  
  define E2FSPROGS_TARGET_E2FSCK_SYMLINKS
  	ln -sf e2fsck $(TARGET_DIR)/usr/sbin/fsck.ext2
  	ln -sf e2fsck $(TARGET_DIR)/usr/sbin/fsck.ext3
  	ln -sf e2fsck $(TARGET_DIR)/usr/sbin/fsck.ext4
  	ln -sf e2fsck $(TARGET_DIR)/usr/sbin/fsck.ext4dev
  endef
  
  ifeq ($(BR2_PACKAGE_E2FSPROGS_E2FSCK),y)
  E2FSPROGS_POST_INSTALL_TARGET_HOOKS += E2FSPROGS_TARGET_E2FSCK_SYMLINKS
  endif
  
  # If BusyBox is included, its configuration may supply its own variant
  # of ext2-related tools. Since Buildroot desires having full blown
  # variants take precedence (in this case, e2fsprogs), we want to remove
  # BusyBox's variant of e2fsprogs provided binaries. e2fsprogs targets
  # /usr/{bin,sbin} where BusyBox targets /{bin,sbin}. We will attempt to
  # remove BusyBox-generated ext2-related tools from /{bin,sbin}. We need
  # to do this in the pre-install stage to ensure we do not accidentally
  # remove e2fsprogs's binaries in usr-merged environments (ie. if they
  # are removed, they would be re-installed in this package's install
  # stage).
  ifeq ($(BR2_PACKAGE_BUSYBOX),y)
  E2FSPROGS_DEPENDENCIES += busybox
  
  define E2FSPROGS_REMOVE_BUSYBOX_APPLETS
  	$(RM) -f $(TARGET_DIR)/bin/chattr
  	$(RM) -f $(TARGET_DIR)/bin/lsattr
  	$(RM) -f $(TARGET_DIR)/sbin/fsck
  	$(RM) -f $(TARGET_DIR)/sbin/tune2fs
  	$(RM) -f $(TARGET_DIR)/sbin/e2label
  endef
  E2FSPROGS_PRE_INSTALL_TARGET_HOOKS += E2FSPROGS_REMOVE_BUSYBOX_APPLETS
  endif
  
  define E2FSPROGS_TARGET_TUNE2FS_SYMLINK
  	ln -sf e2label $(TARGET_DIR)/usr/sbin/tune2fs
  endef
  
  ifeq ($(BR2_PACKAGE_E2FSPROGS_TUNE2FS),y)
  E2FSPROGS_POST_INSTALL_TARGET_HOOKS += E2FSPROGS_TARGET_TUNE2FS_SYMLINK
  endif
  
  $(eval $(autotools-package))
  $(eval $(host-autotools-package))