[package] add mount.ntfs-3.g
[openwrt/svn-archive/archive.git] / utils / ntfs-3g / Makefile
1 #
2 # Copyright (C) 2007-2010 OpenWrt.org
3 #
4 # This is free software, licensed under the GNU General Public License v2.
5 # See /LICENSE for more information.
6 #
7
8 include $(TOPDIR)/rules.mk
9
10 PKG_NAME:=ntfs-3g
11 PKG_RELEASE:=4
12
13 PKG_VERSION:=2010.5.22
14
15 ## 2010.3.6 needs a recent uclibc 0.9.30.2 or greater
16 ## this has been fixed in 2010.5.16, keeping this in case this happens again
17 #PKG_UCLIBC_VERSION:=$(call qstrip,$(CONFIG_UCLIBC_VERSION))
18 #ifneq (,$(or $(findstring !0.9.29,!$(PKG_UCLIBC_VERSION)),$(findstring !0.9.30.1!,!$(PKG_UCLIBC_VERSION)!) ))
19 # PKG_VERSION:=2010.1.16
20 #endif
21
22 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tgz
23 PKG_SOURCE_URL:=http://www.tuxera.com/opensource/
24
25 PKG_MD5SUM_2010.1.16:=e104c914e8d7d29ee83e63d46afbba25
26 PKG_MD5SUM_2010.3.6:=12ce21aa044c6068a4df6e8cbd3c5cfa
27 PKG_MD5SUM_2010.5.16:=aeff7659a4943c9223d79116f051a863
28 PKG_MD5SUM_2010.5.22:=caa08c73220a7106c76f697b7a7915ec
29 PKG_MD5SUM:=$(PKG_MD5SUM_$(PKG_VERSION))
30
31 PKG_FIXUP:=libtool
32 PKG_INSTALL:=1
33
34 # release contains fuseext/int hint
35 PKG_RELEASE:=$(PKG_RELEASE)$(if $(CONFIG_PACKAGE_NTFS-3G_USE_LIBFUSE),-fuseext,-fuseint)
36
37 # define build dir, respect fuseext/int
38 PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)-$(PKG_RELEASE)
39
40 include $(INCLUDE_DIR)/package.mk
41
42 define Package/ntfs-3g/common
43 SECTION:=utils
44 CATEGORY:=Utilities
45 URL:=http://www.tuxera.com
46 SUBMENU:=Filesystem
47 TITLE:=Stable Read/Write NTFS Driver
48 MAINTAINER:=Bud <wrt_buddhay@gmx.net>
49 endef
50
51 define Package/ntfs-3g
52 $(call Package/ntfs-3g/common)
53 DEPENDS:= +kmod-fuse +PACKAGE_NTFS-3G_USE_LIBFUSE:libfuse
54 DEPENDS+= +libpthread
55 endef
56
57 define Package/ntfs-3g/description
58 Ntfs-3g is a NTFS driver, which can create, remove, rename,
59 move files, directories, hard links, and streams. It can read
60 and write files, including streams and sparse files. It can
61 handle special files like symbolic links, devices, and FIFOs.
62 Moreover it can also read transparently compressed files.
63
64 Contains:
65 - ntfs-3g
66 - ntfs-3g.probe
67
68 endef
69
70 define Package/ntfs-3g/config
71 config PACKAGE_NTFS-3G_USE_LIBFUSE
72 bool "use external FUSE library, selects package libfuse"
73 default n
74 depends on PACKAGE_ntfs-3g
75 ---help---
76 Ntfs-3g by default uses a minimalized lite version of FUSE.
77 If libfuse is part of your filesystem anyway (because of sshfs, owfs
78 etc.) it makes sense to activate this option and save some kilobytes
79 of space.
80
81 endef
82
83 define Package/ntfs-3g-utils
84 $(call Package/ntfs-3g/common)
85 TITLE:=ntfs-3g utilities (ntfs-3g.secaudit, ntfs-3g.usermap)
86 DEFAULT:=n
87 DEPENDS+= +ntfs-3g
88 endef
89
90 define Package/ntfs-3g-utils/description
91 Additional ntfs-3g utilities. Not included by default for size
92 considerations. All binaries except ntfs-3g, ntfs-3g.probe.
93
94 Currently:
95 - ntfs-3g.secaudit
96 - ntfs-3g.usermap
97
98 endef
99
100 define Package/mount.ntfs-3g
101 $(call Package/ntfs-3g/common)
102 TITLE:=ntfs-3g mount helper
103 DEFAULT:=y
104 DEPENDS+= +ntfs-3g
105 endef
106
107 define Package/mount.ntfs-3g/description
108 ntfs-3g mount helper. You must enable busybox mount helper too.
109 endef
110
111 CONFIGURE_ARGS += \
112 --enable-shared \
113 --enable-static
114
115 # configure/make according selection
116 ifdef CONFIG_PACKAGE_NTFS-3G_USE_LIBFUSE
117 CONFIGURE_ARGS += --with-fuse=external
118 TARGET_CPPFLAGS:=-I$(STAGING_DIR)/usr/include/fuse $(TARGET_CPPFLAGS)
119 else
120 CONFIGURE_ARGS += --with-fuse=internal
121 TARGET_CPPFLAGS:=-I../include/fuse-lite $(TARGET_CPPFLAGS)
122 endif
123
124 # redefine prepare to extract to our build dir
125 define Build/Prepare
126 rm -rf $(PKG_BUILD_DIR)/
127 mkdir -p $(PKG_BUILD_DIR)/
128 $(TAR) -xzf $(DL_DIR)/$(PKG_SOURCE) -C $(PKG_BUILD_DIR) --strip 1
129 endef
130
131 define Build/InstallDev
132 $(INSTALL_DIR) $(1)/usr/include
133 $(CP) $(PKG_INSTALL_DIR)/usr/include/ntfs-3g $(1)/usr/include/
134 $(INSTALL_DIR) $(1)/usr/lib
135 $(CP) $(PKG_INSTALL_DIR)/usr/lib/libntfs-3g.{la,a,so*} $(1)/usr/lib/
136 endef
137
138 define Package/ntfs-3g/install
139 $(INSTALL_DIR) $(1)/usr/bin
140 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/ntfs-3g{,.probe} $(1)/usr/bin/
141 $(INSTALL_DIR) $(1)/usr/lib
142 $(CP) $(PKG_INSTALL_DIR)/usr/lib/libntfs-3g.so.* $(1)/usr/lib/
143 endef
144
145 define Package/mount.ntfs-3g/install
146 $(INSTALL_DIR) $(1)/sbin
147 $(CP) $(PKG_INSTALL_DIR)/sbin/mount.ntfs-3g $(1)/sbin/
148 endef
149
150 define Package/mount.ntfs-3g/postinst
151 #!/bin/sh
152
153 if [ -z "$$(grep ^\\ntfs-3g: $${IPKG_INSTROOT}/etc/filesystems)" ]; then
154 echo "ntfs-3g" >> $${IPKG_INSTROOT}/etc/filesystems
155 fi
156
157 endef
158
159 define Package/ntfs-3g-utils/install
160 $(INSTALL_DIR) $(1)/usr/bin
161 $(FIND) $(PKG_INSTALL_DIR)/usr/bin/ -type f ! -name ntfs-3g.probe ! -name ntfs-3g -exec $(INSTALL_BIN) {} $(1)/usr/bin/ \;
162 endef
163
164 $(eval $(call BuildPackage,ntfs-3g))
165 $(eval $(call BuildPackage,ntfs-3g-utils))
166 $(eval $(call BuildPackage,mount.ntfs-3g))
167