4040 detected_OS := $(strip $(shell uname) )
4141endif
4242
43+ CGO_CFLAGS =
44+ CGO_LDFLAGS = -v
45+
4346ifeq ($(MAKECMDGOALS ) ,statusgo-android-library)
4447 ARCH ?= arm64
4548 ANDROID_NDK_ROOT ?= $(shell find /nix/store -path "* android-sdk-ndk-27.2.12479018/libexec/android-sdk/ndk/27.2.12479018" -type d 2>/dev/null | head -1)
@@ -50,7 +53,9 @@ ifeq ($(MAKECMDGOALS),statusgo-android-library)
5053 else
5154 MOBILE_GOARCH := $(ARCH )
5255 endif
53- ANDROID_BUILD_FLAGS := CC="$(ANDROID_NDK_ROOT ) /toolchains/llvm/prebuilt/$(HOST_OS ) -x86_64/bin/clang --target=aarch64-linux-android$(ANDROID_API ) --sysroot=$(ANDROID_NDK_ROOT ) /toolchains/llvm/prebuilt/$(HOST_OS ) -x86_64/sysroot" CGO_CFLAGS="-Os -flto -fembed-bitcode" CGO_LDFLAGS="-Os -flto" CGO_ENABLED=1 GOOS=android GOARCH=$(MOBILE_GOARCH )
56+ ANDROID_BUILD_FLAGS := CC="$(ANDROID_NDK_ROOT ) /toolchains/llvm/prebuilt/$(HOST_OS ) -x86_64/bin/clang --target=aarch64-linux-android$(ANDROID_API ) --sysroot=$(ANDROID_NDK_ROOT ) /toolchains/llvm/prebuilt/$(HOST_OS ) -x86_64/sysroot" CGO_ENABLED=1 GOOS=android GOARCH=$(MOBILE_GOARCH )
57+ CGO_CFLAGS += -Os -flto -fembed-bitcode
58+ CGO_LDFLAGS += -Os -flto
5459endif
5560
5661ifeq ($(MAKECMDGOALS ) ,statusgo-ios-library)
@@ -62,7 +67,9 @@ ifeq ($(MAKECMDGOALS),statusgo-ios-library)
6267 else
6368 MOBILE_GOARCH := $(ARCH )
6469 endif
65- IOS_BUILD_FLAGS := CGO_LDFLAGS="-Os -flto" CGO_ENABLED=1 GOOS=ios GOARCH=$(MOBILE_GOARCH )
70+ IOS_BUILD_FLAGS := CGO_ENABLED=1 GOOS=ios GOARCH=$(MOBILE_GOARCH )
71+ CGO_CFLAGS += -Os -flto -arch $(ARCH) -isysroot $$(xcrun --sdk $(IPHONE_SDK) --show-sdk-path) -miphoneos-version-min=$(IOS_TARGET) -fembed-bitcode
72+ CGO_LDFLAGS += -Os -flto
6673endif
6774
6875ifeq ($(detected_OS ) ,Darwin)
7986 GOBIN_SHARED_LIB_CGO_LDFLAGS := CGO_LDFLAGS="-Wl,-soname,libstatus.so.0"
8087endif
8188
82- CGO_CFLAGS = -I/$(JAVA_HOME ) /include -I/$(JAVA_HOME ) /include/darwin
8389export GOPATH ?= $(HOME ) /go
8490
8591GIT_ROOT ?= $(dir $(realpath $(lastword $(MAKEFILE_LIST ) ) ) )
@@ -88,12 +94,16 @@ GIT_AUTHOR ?= $(shell git config user.email || echo $$USER)
8894
8995BUILD_TAGS ?= gowaku_no_rln
9096
97+ NWAKU_DIR ?= $(CURDIR ) /third_party/nwaku
9198ifeq ($(USE_NWAKU ) , true)
92- BUILD_TAGS += use_nwaku
99+ BUILD_TAGS += use_nwaku
100+ CGO_CFLAGS += -I${NWAKU_DIR}/library/
101+ CGO_LDFLAGS += -L${NWAKU_DIR}/build/ -lwaku -Wl,-rpath,${NWAKU_DIR}/build/
93102endif
94103
95104BUILD_FLAGS ?= -ldflags=""
96105BUILD_FLAGS_MOBILE ?=
106+ BUILD_ENV = CGO_CFLAGS="$(CGO_CFLAGS ) " CGO_LDFLAGS="$(CGO_LDFLAGS ) "
97107
98108networkid ?= StatusChain
99109
@@ -165,34 +175,30 @@ all: $(GO_CMD_NAMES)
165175.PHONY : $(GO_CMD_NAMES ) $(GO_CMD_PATHS ) $(GO_CMD_BUILDS )
166176$(GO_CMD_BUILDS ) : generate
167177$(GO_CMD_BUILDS ) : # #@build Build any Go project from cmd folder
168- go build -mod=vendor -v \
178+ $( BUILD_ENV ) go build -mod=vendor -v \
169179 -tags ' $(BUILD_TAGS)' $(BUILD_FLAGS ) \
170180 -o ./$@ ./cmd/$(notdir $@ )
171181 @echo " Compilation done."
172182 @echo " Run \" build/bin/$( notdir $@ ) -h\" to view available commands."
173183
174184
175- NWAKU_DIR ?= $(CURDIR ) /third_party/nwaku
176185LIBWAKU := $(NWAKU_DIR ) /build/libwaku.$(LIBWAKU_EXT )
177- export CGO_CFLAGS = -I${NWAKU_DIR}/library/
178- export CGO_LDFLAGS = -L${NWAKU_DIR}/build/ -lwaku -L${NWAKU_DIR} -Wl,-rpath,${NWAKU_DIR}/build/
179186
180187$(LIBWAKU ) :
181188ifeq ($(USE_NWAKU ) ,true)
182189 @echo "Building libwaku"
183- git submodule update --init
190+ git submodule update --init --recursive
184191 $(MAKE) -C $(NWAKU_DIR) libwaku
185192endif
186193
187- build-libwaku : $(LIBWAKU ) )
194+ build-libwaku : $(LIBWAKU )
188195
189196test-libwaku : | $(LIBWAKU )
190- go test -tags ' $(BUILD_TAGS) use_nwaku ' -run TestDial ./wakuv2/... -count 1 -v -json | jq -r ' .Output'
197+ $( BUILD_ENV ) go test -tags ' $(BUILD_TAGS)' -run TestDial ./wakuv2/... \ - count 1 -v -json | jq -r ' .Output'
191198
192- clean-libwaku : WAKU_GO_BINDINGS_DIR ?= $$(go list -m -f '{{.Dir}}' github.com/waku-org/waku-go-bindings )
193199clean-libwaku :
194200 @echo " Removing libwaku"
195- $(MAKE ) -C " ${WAKU_GO_BINDINGS_DIR } /waku" clean
201+ $(MAKE ) -C " ${NWAKU_DIR } /waku" clean
196202
197203rebuild-libwaku : | clean-libwaku $(LIBWAKU )
198204
@@ -229,7 +235,7 @@ statusgo-c-bindings:
229235statusgo-library : generate
230236statusgo-library : statusgo-c-bindings $(LIBWAKU ) # #@cross-compile Build status-go as static library for current platform
231237 @echo " Building static library..."
232- go build \
238+ $( BUILD_ENV ) go build \
233239 -tags ' $(BUILD_TAGS)' \
234240 $(BUILD_FLAGS ) \
235241 -buildmode=c-archive \
@@ -242,7 +248,7 @@ statusgo-shared-library: generate
242248statusgo-shared-library : statusgo-c-bindings $(LIBWAKU ) # #@cross-compile Build status-go as shared library for current platform
243249 @echo " Building shared library..."
244250 @echo " Tags: $( BUILD_TAGS) "
245- $(GOBIN_SHARED_LIB_CFLAGS ) $(GOBIN_SHARED_LIB_CGO_LDFLAGS ) go build \
251+ $(BUILD_ENV ) $( GOBIN_SHARED_LIB_CFLAGS ) $(GOBIN_SHARED_LIB_CGO_LDFLAGS ) go build \
246252 -tags ' $(BUILD_TAGS)' \
247253 $(BUILD_FLAGS ) \
248254 -buildmode=c-shared \
@@ -259,7 +265,7 @@ endif
259265
260266statusgo-android-library : generate statusgo-c-bindings $(LIBWAKU ) # #@cross-compile Build status-go as Android mobile library
261267 @echo " Building Android mobile library..."
262- $(ANDROID_BUILD_FLAGS ) go build -buildmode=c-shared -tags ' gowaku_no_rln nowatchdog disable_torrent' \
268+ $(BUILD_ENV ) $( ANDROID_BUILD_FLAGS ) go build -buildmode=c-shared -tags ' gowaku_no_rln nowatchdog disable_torrent' \
263269 -ldflags=" -checklinkname=0 -X github.com/status-im/status-go/vendor/github.com/ethereum/go-ethereum/metrics.EnabledStr=true" \
264270 -o " build/bin/libstatus.so" ./build/bin/statusgo-lib
265271 @echo " Android library built"
@@ -269,8 +275,7 @@ statusgo-ios-library: generate statusgo-c-bindings $(LIBWAKU) ##@cross-compile B
269275 @echo " Building iOS mobile library..."
270276 DEVELOPER_DIR=" /Applications/Xcode.app/Contents/Developer" \
271277 CC=" $$ (xcrun --sdk $( IPHONE_SDK) --find clang)" \
272- CGO_CFLAGS=" -Os -flto -arch $( ARCH) -isysroot $$ (xcrun --sdk $( IPHONE_SDK) --show-sdk-path) -miphoneos-version-min=$( IOS_TARGET) -fembed-bitcode" \
273- $(IOS_BUILD_FLAGS ) go build -buildmode=c-archive -tags ' gowaku_no_rln nowatchdog disable_torrent' \
278+ $(BUILD_ENV ) $(IOS_BUILD_FLAGS ) go build -buildmode=c-archive -tags ' gowaku_no_rln nowatchdog disable_torrent' \
274279 -ldflags=" -checklinkname=0 -X github.com/status-im/status-go/vendor/github.com/ethereum/go-ethereum/metrics.EnabledStr=true" \
275280 -o " build/bin/libstatus.a" ./build/bin/statusgo-lib
276281 @echo " iOS library built"
@@ -305,7 +310,7 @@ generate: GO_GENERATE_CMD ?= $$(which go-generate-fast || echo 'go generate')
305310generate : export GO_GENERATE_FAST_DEBUG ?= false
306311generate : export GO_GENERATE_FAST_RECACHE ?= false
307312generate : # #@ Run generate for all given packages using go-generate-fast, fallback to `go generate` (e.g. for docker)
308- @GOROOT=$$(go env GOROOT ) $(GO_GENERATE_CMD ) $(PACKAGES )
313+ @# GOROOT=$$(go env GOROOT) $(GO_GENERATE_CMD) $(PACKAGES)
309314
310315generate-contracts :
311316 go generate ./contracts
0 commit comments