aboutsummaryrefslogtreecommitdiff
path: root/depends
diff options
context:
space:
mode:
authorlaanwj <126646+laanwj@users.noreply.github.com>2022-02-02 20:00:45 +0100
committerlaanwj <126646+laanwj@users.noreply.github.com>2022-02-02 20:00:53 +0100
commitc545a7aeb1d559377933c7b2e6edc2d4a37b33fb (patch)
tree8a1789e10682399380a8072a0cb20d63aba9538b /depends
parentdf669230cf2001dd869e897bb4f2d9c46f9accd9 (diff)
parentae9175f6086aa6c177084365c795e78c580eac1d (diff)
Merge bitcoin/bitcoin#23948: build: add support for FreeBSD to depends
ae9175f6086aa6c177084365c795e78c580eac1d build: add FreeBSD support to depends (fanquake) Pull request description: Setup to use the system Clang (11.0.1 as of FreeBSD 13.0). Doesn't build the Qt package; that requires a few additional changes. The current issue is that FreeBSDs `byacc` seems to have an issue parsing something in libxkbcommon. Work in progress branch here: https://github.com/fanquake/bitcoin/tree/depends_support_freebsd_qt. In any case, I don't think building the Qt libs on FreeBSD is a super high priority (I'd also have no way to test the GUI). ACKs for top commit: laanwj: ACK ae9175f6086aa6c177084365c795e78c580eac1d Tree-SHA512: 1ecc7855f0195f68c96e534bd77ce17c3975db1dfb3caa35302c2b46643c8c30f75b1c2e1735cf69f1eddb70447d11e67e7f339ef5497336cdff7a59b32be961
Diffstat (limited to 'depends')
-rw-r--r--depends/Makefile2
-rw-r--r--depends/builders/freebsd.mk5
-rw-r--r--depends/hosts/freebsd.mk31
-rw-r--r--depends/packages/bdb.mk1
-rw-r--r--depends/packages/boost.mk1
-rw-r--r--depends/packages/libevent.mk1
-rw-r--r--depends/packages/sqlite.mk1
-rw-r--r--depends/packages/zeromq.mk1
8 files changed, 43 insertions, 0 deletions
diff --git a/depends/Makefile b/depends/Makefile
index 73e2af5501..003778b375 100644
--- a/depends/Makefile
+++ b/depends/Makefile
@@ -76,6 +76,7 @@ build_vendor=$(word 2,$(subst -, ,$(build)))
full_build_os:=$(subst $(build_arch)-$(build_vendor)-,,$(build))
build_os:=$(findstring linux,$(full_build_os))
build_os+=$(findstring darwin,$(full_build_os))
+build_os+=$(findstring freebsd,$(full_build_os))
build_os:=$(strip $(build_os))
ifeq ($(build_os),)
build_os=$(full_build_os)
@@ -86,6 +87,7 @@ host_vendor=$(word 2,$(subst -, ,$(canonical_host)))
full_host_os:=$(subst $(host_arch)-$(host_vendor)-,,$(canonical_host))
host_os:=$(findstring linux,$(full_host_os))
host_os+=$(findstring darwin,$(full_host_os))
+host_os+=$(findstring freebsd,$(full_host_os))
host_os+=$(findstring mingw32,$(full_host_os))
ifeq (android,$(findstring android,$(full_host_os)))
diff --git a/depends/builders/freebsd.mk b/depends/builders/freebsd.mk
new file mode 100644
index 0000000000..465f58e04d
--- /dev/null
+++ b/depends/builders/freebsd.mk
@@ -0,0 +1,5 @@
+build_freebsd_CC=clang
+build_freebsd_CXX=clang++
+
+build_freebsd_SHA256SUM = shasum -a 256
+build_freebsd_DOWNLOAD = curl --location --fail --connect-timeout $(DOWNLOAD_CONNECT_TIMEOUT) --retry $(DOWNLOAD_RETRIES) -o
diff --git a/depends/hosts/freebsd.mk b/depends/hosts/freebsd.mk
new file mode 100644
index 0000000000..307f844331
--- /dev/null
+++ b/depends/hosts/freebsd.mk
@@ -0,0 +1,31 @@
+freebsd_CFLAGS=-pipe
+freebsd_CFLAGS_CXXFLAGS=$(freebsd_CFLAGS)
+
+freebsd_CFLAGS_release_CFLAGS=-O2
+freebsd_CFLAGS_release_CXXFLAGS=$(freebsd_release_CFLAGS)
+
+freebsd_CFLAGS_debug_CFLAGS=-O1
+freebsd_CFLAGS_debug_CXXFLAGS=$(freebsd_debug_CFLAGS)
+
+ifeq (86,$(findstring 86,$(build_arch)))
+i686_freebsd_CC=clang -m32
+i686_freebsd_CXX=clang++ -m32
+i686_freebsd_AR=ar
+i686_freebsd_RANLIB=ranlib
+i686_freebsd_NM=nm
+i686_freebsd_STRIP=strip
+
+x86_64_freebsd_CC=clang -m64
+x86_64_freebsd_CXX=clang++ -m64
+x86_64_freebsd_AR=ar
+x86_64_freebsd_RANLIB=ranlib
+x86_64_freebsd_NM=nm
+x86_64_freebsd_STRIP=strip
+else
+i686_freebsd_CC=$(default_host_CC) -m32
+i686_freebsd_CXX=$(default_host_CXX) -m32
+x86_64_freebsd_CC=$(default_host_CC) -m64
+x86_64_freebsd_CXX=$(default_host_CXX) -m64
+endif
+
+freebsd_cmake_system=FreeBSD
diff --git a/depends/packages/bdb.mk b/depends/packages/bdb.mk
index 8a3116bb3b..4e74c95a8e 100644
--- a/depends/packages/bdb.mk
+++ b/depends/packages/bdb.mk
@@ -10,6 +10,7 @@ define $(package)_set_vars
$(package)_config_opts=--disable-shared --enable-cxx --disable-replication --enable-option-checking
$(package)_config_opts_mingw32=--enable-mingw
$(package)_config_opts_linux=--with-pic
+$(package)_config_opts_freebsd=--with-pic
$(package)_config_opts_android=--with-pic
$(package)_cflags+=-Wno-error=implicit-function-declaration
$(package)_cxxflags+=-std=c++17
diff --git a/depends/packages/boost.mk b/depends/packages/boost.mk
index fe2425ffaf..9d3ba321f9 100644
--- a/depends/packages/boost.mk
+++ b/depends/packages/boost.mk
@@ -25,6 +25,7 @@ endif
$(package)_config_libraries=filesystem,system,test
$(package)_cxxflags+=-std=c++17
$(package)_cxxflags_linux=-fPIC
+$(package)_cxxflags_freebsd=-fPIC
$(package)_cxxflags_android=-fPIC
$(package)_cxxflags_x86_64=-fcf-protection=full
endef
diff --git a/depends/packages/libevent.mk b/depends/packages/libevent.mk
index 0af5412d94..2305f96d27 100644
--- a/depends/packages/libevent.mk
+++ b/depends/packages/libevent.mk
@@ -12,6 +12,7 @@ define $(package)_set_vars
$(package)_config_opts += --disable-dependency-tracking --enable-option-checking
$(package)_config_opts_release=--disable-debug-mode
$(package)_config_opts_linux=--with-pic
+ $(package)_config_opts_freebsd=--with-pic
$(package)_config_opts_android=--with-pic
$(package)_cppflags_mingw32=-D_WIN32_WINNT=0x0601
endef
diff --git a/depends/packages/sqlite.mk b/depends/packages/sqlite.mk
index af5e0d09c9..36b6df7f6e 100644
--- a/depends/packages/sqlite.mk
+++ b/depends/packages/sqlite.mk
@@ -7,6 +7,7 @@ $(package)_sha256_hash=486748abfb16abd8af664e3a5f03b228e5f124682b0c942e157644bf6
define $(package)_set_vars
$(package)_config_opts=--disable-shared --disable-readline --disable-dynamic-extensions --enable-option-checking
$(package)_config_opts_linux=--with-pic
+$(package)_config_opts_freebsd=--with-pic
endef
define $(package)_preprocess_cmds
diff --git a/depends/packages/zeromq.mk b/depends/packages/zeromq.mk
index f5478a88c4..c56ec5c2bd 100644
--- a/depends/packages/zeromq.mk
+++ b/depends/packages/zeromq.mk
@@ -12,6 +12,7 @@ define $(package)_set_vars
$(package)_config_opts += --disable-libunwind --disable-radix-tree --without-gcov --disable-dependency-tracking
$(package)_config_opts += --disable-Werror --disable-drafts --enable-option-checking
$(package)_config_opts_linux=--with-pic
+ $(package)_config_opts_freebsd=--with-pic
$(package)_config_opts_android=--with-pic
$(package)_cxxflags+=-std=c++17
endef