From 78aa7890e01f0fb3e6b2a1776bcaa7019a36d410 Mon Sep 17 00:00:00 2001 From: resver Date: Tue, 4 Dec 2012 16:34:03 +0000 Subject: [PATCH] OS X support: - use proper macro for inode numbers bitness management; - switch to 64-bit inode numbers (this requires Mac OS X 10.5 or later); - switch from unmaintained MacFUSE to OSXFUSE (http://osxfuse.github.com). git-svn-id: http://exfat.googlecode.com/svn/trunk@298 60bc1c72-a15a-11de-b98f-4500b42dc123 --- SConstruct | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/SConstruct b/SConstruct index 3206c54..ab270c2 100644 --- a/SConstruct +++ b/SConstruct @@ -28,6 +28,7 @@ conf = Configure(env) destdir = env.get('DESTDIR', '/sbin'); targets = [] libs = ['exfat'] +libfuse = 'fuse' if 'CC' in os.environ: conf.env.Replace(CC = os.environ['CC']) @@ -53,13 +54,13 @@ conf.env.Append(LIBPATH = ['libexfat']) if platform.system() == 'Linux': conf.env.Append(CPPDEFINES = '_GNU_SOURCE'); -# __DARWIN_64_BIT_INO_T=0 define is needed because since Snow Leopard inode -# numbers are 64-bit by default, but libfuse operates 32-bit ones. This define -# forces 32-bit inode declaration in system headers, but it's also possible to -# link against libfuse_ino64 instead. +# Use 64-bit inode numbers (introduced in Mac OS X 10.5 Leopard). Require +# OSXFUSE (http://osxfuse.github.com). if platform.system() == 'Darwin': - conf.env.Append(CPPDEFINES = {'__DARWIN_64_BIT_INO_T' : 0}) + conf.env.Append(CPPDEFINES = '_DARWIN_USE_64_BIT_INODE') conf.env.Append(CPPDEFINES = {'__DARWIN_UNIX03' : 1}) + conf.env.Append(CPPPATH = ['/usr/local/include/osxfuse']) + libfuse = 'osxfuse_i64' # FreeBSD does not support block devices, only raw devices. Ublio is required # for unaligned I/O and caching. @@ -99,7 +100,7 @@ def program(pattern, output, alias, libs): env.Library('libexfat/exfat', Glob('libexfat/*.c')) -program('fuse/*.c', 'fuse/mount.exfat-fuse', 'mount.exfat', [libs + ['fuse']]) +program('fuse/*.c', 'fuse/mount.exfat-fuse', 'mount.exfat', [libs + [libfuse]]) program('dump/*.c', 'dump/dumpexfat', None, libs) program('fsck/*.c', 'fsck/exfatfsck', 'fsck.exfat', libs) program('mkfs/*.c', 'mkfs/mkexfatfs', 'mkfs.exfat', libs) -- 2.11.0