COMPILATION.md
These are generic instructions should work on almost any GNU/Linux, macOS, BSD, or similar.
If you want specific instructions for some distributions, check the wiki.
Keep in mind using the pre-built packages when available.
fuse >= 3.0.0
automake
C++14 compiler
make
libcurl
libxml2 >= 2.9
openssl/gnutls/nss
mime.types (the package providing depends on the OS)
/etc/mime.types as default regardless of the OS/etc/apache2/mime.types if OS is macOSmime option without detecting these default filespkg-config (or your OS equivalent)
NOTE
If you have any trouble about details on required packages, see INSTALL_PACKAGES in linux-ci-helper.sh.
git clone https://github.com/s3fs-fuse/s3fs-fuse.git
cd s3fs-fuse
./autogen.sh
./configure
--with-openssl, --with-gnutls or --with-nss when executing configure. (If omitted, it is equivalent to --with-openssl.)make
sudo make install
Install prerequisites:
brew tap macos-fuse-t/homebrew-cask
brew install autoconf automake fuse-t libtool pkg-config
Clone source code:
git clone https://github.com/s3fs-fuse/s3fs-fuse.git
Finally compile:
cd s3fs-fuse
./autogen.sh
./configure
make
On Windows, use MSYS2 to compile for itself.
Install WinFsp to your machine. Note it should be installed with developer mode to include header files.
Install dependencies onto MSYS2:
pacman -S git autoconf automake gcc make pkg-config openssl-devel libcurl-devel libxml2-devel libzstd-devel
Clone this repository, then change directory into the cloned one.
Copy WinFsp files to the directory:
cp -r "/c/Program Files (x86)/WinFsp" "./WinFsp"
Write fuse.pc to resolve the package correctly:
cat > ./fuse.pc << 'EOS'
arch=x64
prefix=${pcfiledir}/WinFsp
incdir=${prefix}/inc/fuse
implib=${prefix}/bin/winfsp-${arch}.dll
Name: fuse
Description: WinFsp FUSE compatible API
Version: 2.8.4
URL: http://www.secfs.net/winfsp/
Libs: "${implib}"
Cflags: -I"${incdir}"
EOS
Compile using the command line:
./autogen.sh
PKG_CONFIG_PATH="$PKG_CONFIG_PATH:$(pwd)" ./configure
make CXXFLAGS="-I/usr/include"
Copy binary files to distribute at one place:
mkdir ./bin
cp ./src/s3fs.exe ./bin/
cp ./WinFsp/bin/winfsp-x64.dll ./bin/
cp /usr/bin/msys-*.dll ./bin/
Distribute these files.