aboutsummaryrefslogtreecommitdiffstats
path: root/package/xfsprogs/xfsprogs.mk
blob: f3e0acfa382ff427e2d1f6a7f7f8b9339db6a0ca (plain)
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
#############################################################
#
# xfsprogs
#
#############################################################
XFSPROGS_VERSION:=2.10.2
XFSPROGS_SOURCE=xfsprogs_$(XFSPROGS_VERSION)-1.tar.gz
XFSPROGS_SITE=ftp://oss.sgi.com/projects/xfs/cmd_tars
#XFSPROGS_SITE=ftp://oss.sgi.com/projects/xfs/previous/cmd_tars/
XFSPROGS_DIR=$(BUILD_DIR)/xfsprogs-$(XFSPROGS_VERSION)
XFSPROGS_CAT:=$(ZCAT)
XFSPROGS_BINARY:=mkfs/mkfs.xfs
XFSPROGS_TARGET_BINARY:=sbin/mkfs.xfs

XFSPROGS_STRIP:= fsck/fsck.xfs mkfile/xfs_mkfile rtcp/xfs_rtcp
XFSPROGS_STRIP_LIBDEP:= \
	copy/xfs_copy db/xfs_db growfs/xfs_growfs io/xfs_io \
	logprint/xfs_logprint mkfs/fstyp mkfs/mkfs.xfs \
	repair/xfs_repair quota/xfs_quota

$(DL_DIR)/$(XFSPROGS_SOURCE):
	 $(call DOWNLOAD,$(XFSPROGS_SITE),$(XFSPROGS_SOURCE))

xfsprogs-source: $(DL_DIR)/$(XFSPROGS_SOURCE)

$(XFSPROGS_DIR)/.unpacked: $(DL_DIR)/$(XFSPROGS_SOURCE)
	$(XFSPROGS_CAT) $(DL_DIR)/$(XFSPROGS_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
	toolchain/patch-kernel.sh $(XFSPROGS_DIR) package/xfsprogs/ xfsprogs\*.patch
	touch $(XFSPROGS_DIR)/.unpacked

#XFSPROGS_CONFIG_SHARED:=--disable-shared
XFSPROGS_CONFIG_SHARED:=--enable-shared

$(XFSPROGS_DIR)/.configured: $(XFSPROGS_DIR)/.unpacked
	(cd $(XFSPROGS_DIR); rm -rf config.cache; \
		ac_cv_header_aio_h=yes ac_cv_lib_rt_lio_listio=yes \
		$(TARGET_CONFIGURE_OPTS) \
		$(TARGET_CONFIGURE_ARGS) \
		CPPFLAGS="-I$(E2FSPROGS_DIR)/lib" \
		LDFLAGS="-L$(E2FSPROGS_DIR)/lib" \
		LIBTOOL=$(LIBTOOL_DIR)/libtool \
		INSTALL_USER=$(shell whoami) \
		INSTALL_GROUP=$(shell groups | cut -d" " -f1) \
		./configure \
		--target=$(GNU_TARGET_NAME) \
		--host=$(GNU_TARGET_NAME) \
		--build=$(GNU_HOST_NAME) \
		--exec-prefix=/ \
		$(XFSPROGS_CONFIG_SHARED) \
	)
	touch $(XFSPROGS_DIR)/.configured

$(XFSPROGS_DIR)/$(XFSPROGS_BINARY): $(XFSPROGS_DIR)/.configured
	$(MAKE1) PATH=$(TARGET_PATH) CPPFLAGS="-I$(E2FSPROGS_DIR)/lib" \
		LDFLAGS="-L$(E2FSPROGS_DIR)/lib" -C $(XFSPROGS_DIR)
ifeq ($(XFSPROGS_CONFIG_SHARED),--enable-shared)
	( \
		cd $(XFSPROGS_DIR); \
		$(STRIPCMD) $(XFSPROGS_STRIP); \
		$(STRIPCMD) $(join $(dir $(XFSPROGS_STRIP_LIBDEP)), \
				$(addprefix .libs/,$(notdir $(XFSPROGS_STRIP_LIBDEP)))) \
	)
	$(STRIPCMD) $(XFSPROGS_DIR)/lib*/.libs/lib*.so.*.*
else
	( \
		cd $(XFSPROGS_DIR); \
		$(STRIPCMD) $(XFSPROGS_STRIP) $(XFSPROGS_STRIP_LIBDEP) \
	)
	$(STRIPCMD) $(XFSPROGS_DIR)/lib*/lib*.so.*.*
endif
	touch -c $(XFSPROGS_DIR)/$(XFSPROGS_BINARY)

$(TARGET_DIR)/$(XFSPROGS_TARGET_BINARY): $(XFSPROGS_DIR)/$(XFSPROGS_BINARY)
	$(MAKE1) PATH=$(TARGET_PATH) \
	    DIST_ROOT=$(TARGET_DIR) \
	    exec-prefix=/ \
	    -C $(XFSPROGS_DIR) install
	rm -rf $(TARGET_DIR)/usr/man $(TARGET_DIR)/usr/share/doc
	touch -c $(TARGET_DIR)/$(XFSPROGS_TARGET_BINARY)

xfsprogs: uclibc e2fsprogs libtool-cross $(TARGET_DIR)/$(XFSPROGS_TARGET_BINARY)

xfsprogs-clean:
	rm -f $(TARGET_DIR)/bin/xfs_* $(TARGET_DIR)/sbin/xfs_* $(TARGET_DIR)/sbin/*.xfs
	rm -f $(TARGET_DIR)/usr/lib/libhandle.so*
	rm -f $(TARGET_DIR)/usr/lib/libdisk.so* $(TARGET_DIR)/usr/lib/libxfs.so*
	-$(MAKE1) -C $(XFSPROGS_DIR) clean

xfsprogs-dirclean:
	rm -rf $(XFSPROGS_DIR)

#############################################################
#
# Toplevel Makefile options
#
#############################################################
ifeq ($(BR2_PACKAGE_XFSPROGS),y)
TARGETS+=xfsprogs
endif