Add simple FreeBSD support, make the minio project compilable

This commit is contained in:
Anis Elleuch 2016-03-26 21:36:33 +01:00
parent 1b0bc814c4
commit 663f24064b
6 changed files with 61 additions and 6 deletions

View file

@ -19,10 +19,14 @@ endif
ifeq ($(CPU), x86_64)
HOST := $(HOST)64
else
ifeq ($(CPU), amd64)
HOST := $(HOST)64
else
ifeq ($(CPU), i686)
HOST := $(HOST)32
endif
endif
endif
#############################################
@ -41,6 +45,10 @@ ifndef (OS)
else
ifeq ($(HOST), Darwin32)
arch = clang
else
ifeq ($(HOST), FreeBSD64)
arch = gcc
endif
endif
endif
endif
@ -84,7 +92,7 @@ isa-l:
@echo "Configuring $@:"
@git clone -q https://github.com/minio/isa-l.git
@cd isa-l; make -f Makefile.unx arch=$(arch) >/dev/null; mv include isa-l;
@cd isa-l; ${MAKE} -f Makefile.unx arch=$(arch) >/dev/null; mv include isa-l;
lint:
@echo "Running $@:"

View file

@ -141,6 +141,9 @@ is_supported_os() {
"Linux")
os="linux"
;;
"FreeBSD")
os="freebsd"
;;
"Darwin")
osx_host_version=$(env sw_vers -productVersion)
check_version "${osx_host_version}" "${OSX_VERSION}"
@ -155,7 +158,7 @@ is_supported_os() {
is_supported_arch() {
local supported
case ${UNAME##* } in
"x86_64")
"x86_64" | "amd64")
supported=1
;;
"arm"*)

View file

@ -19,8 +19,8 @@ _init() {
shopt -s extglob
PWD=$(pwd)
GOPATH=$(go env GOPATH)
PWD=$(pwd -P)
GOPATH=$(cd "$(go env GOPATH)" ; env pwd -P)
}
main() {

View file

@ -1,4 +1,4 @@
// +build darwin windows 386 arm !cgo
// +build freebsd darwin windows 386 arm !cgo
/*
* Minio Cloud Storage, (C) 2014-2016 Minio, Inc.

View file

@ -1,4 +1,4 @@
// +build darwin windows 386 arm !cgo
// +build freebsd darwin windows 386 arm !cgo
/*
* Minio Cloud Storage, (C) 2014-2016 Minio, Inc.

44
pkg/disk/type_unix.go Normal file
View file

@ -0,0 +1,44 @@
// +build freebsd
/*
* Minio Cloud Storage, (C) 2015 Minio, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package disk
import (
"strconv"
"syscall"
)
// fsType2StringMap - list of filesystems supported by donut on linux
var fsType2StringMap = map[string]string{
"35": "UFS",
}
// getFSType returns the filesystem type of the underlying mounted filesystem
func getFSType(path string) (string, error) {
s := syscall.Statfs_t{}
err := syscall.Statfs(path, &s)
if err != nil {
return "", err
}
fsTypeHex := strconv.FormatInt(int64(s.Type), 16)
fsTypeString, ok := fsType2StringMap[fsTypeHex]
if ok == false {
return "UNKNOWN", nil
}
return fsTypeString, nil
}