Skip to content

Commit

Permalink
build: Only use *_FOR_BUILD envvars when cross-compiling
Browse files Browse the repository at this point in the history
This isn't pretty, but it will have to do for now.
  • Loading branch information
oleavr committed Sep 27, 2022
1 parent 2b310fa commit d8411b8
Show file tree
Hide file tree
Showing 5 changed files with 44 additions and 9 deletions.
8 changes: 7 additions & 1 deletion Makefile.macos.mk
Original file line number Diff line number Diff line change
Expand Up @@ -343,9 +343,15 @@ build/frida-ios-universal/usr/lib/frida/frida-gadget.dylib: \

define make-ios-env-rule
build/frida-env-ios-$1.rc: releng/setup-env.sh build/frida-version.h
@for os_arch in $$(build_os_arch) ios-$1; do \
@if [ $1 != $$(build_os_arch) ]; then \
cross=yes; \
else \
cross=no; \
fi; \
for os_arch in $$(build_os_arch) ios-$1; do \
if [ ! -f build/frida-env-$$$$os_arch.rc ]; then \
FRIDA_HOST=$$$$os_arch \
FRIDA_CROSS=$$$$cross \
FRIDA_PREFIX="$$(abspath build/frida-ios-$1/usr)" \
FRIDA_ASAN=$$(FRIDA_ASAN) \
XCODE11="$$(XCODE11)" \
Expand Down
8 changes: 7 additions & 1 deletion Makefile.sdk.mk
Original file line number Diff line number Diff line change
Expand Up @@ -117,9 +117,15 @@ $(eval $(call make-package-rules,$(packages),fs))


build/fs-env-%.rc:
@for os_arch in $(build_os_arch) $*; do \
@if [ $* != $(build_os_arch) ]; then \
cross=yes; \
else \
cross=no; \
fi; \
for os_arch in $(build_os_arch) $*; do \
if [ ! -f build/fs-env-$$os_arch.rc ]; then \
FRIDA_HOST=$$os_arch \
FRIDA_CROSS=$$cross \
FRIDA_ASAN=$(FRIDA_ASAN) \
FRIDA_ENV_NAME=fs \
FRIDA_ENV_SDK=none \
Expand Down
11 changes: 8 additions & 3 deletions Makefile.toolchain.mk
Original file line number Diff line number Diff line change
Expand Up @@ -158,16 +158,21 @@ build/ft-%/manifest/ninja.pkg: build/ft-env-%.rc deps/.ninja-stamp


build/ft-env-%.rc: build/ft-executable.symbols build/ft-executable.version
@for os_arch in $(build_os_arch) $*; do \
@if [ $* != $(build_os_arch) ]; then \
cross=yes; \
else \
cross=no; \
fi; \
for os_arch in $(build_os_arch) $*; do \
if [ ! -f build/ft-env-$$os_arch.rc ]; then \
FRIDA_HOST=$$os_arch $(frida_env_config) ./releng/setup-env.sh; \
FRIDA_HOST=$$os_arch FRIDA_CROSS=$$cross $(frida_env_config) ./releng/setup-env.sh; \
case $$? in \
0) \
;; \
2) \
if [ "$$os_arch" = "$(build_os_arch)" ]; then \
MAKE=$(MAKE) ./releng/bootstrap-toolchain.sh $$os_arch || exit 1; \
FRIDA_HOST=$$os_arch $(frida_env_config) ./releng/setup-env.sh || exit 1; \
FRIDA_HOST=$$os_arch FRIDA_CROSS=$$cross $(frida_env_config) ./releng/setup-env.sh || exit 1; \
else \
exit 1; \
fi \
Expand Down
24 changes: 21 additions & 3 deletions releng/frida.mk
Original file line number Diff line number Diff line change
Expand Up @@ -42,18 +42,30 @@ frida_tools = \
$(NULL)

build/frida-env-%.rc: releng/setup-env.sh build/frida-version.h
@for os_arch in $(build_os_arch) $*; do \
@if [ $* != $(build_os_arch) ]; then \
cross=yes; \
else \
cross=no; \
fi; \
for os_arch in $(build_os_arch) $*; do \
if [ ! -f build/frida-env-$$os_arch.rc ]; then \
FRIDA_HOST=$$os_arch \
FRIDA_CROSS=$$cross \
FRIDA_ASAN=$(FRIDA_ASAN) \
XCODE11="$(XCODE11)" \
./releng/setup-env.sh || exit 1; \
fi \
done
build/frida_thin-env-%.rc: releng/setup-env.sh build/frida-version.h
@for os_arch in $(build_os_arch) $*; do \
@if [ $* != $(build_os_arch) ]; then \
cross=yes; \
else \
cross=no; \
fi; \
for os_arch in $(build_os_arch) $*; do \
if [ ! -f build/frida_thin-env-$$os_arch.rc ]; then \
FRIDA_HOST=$$os_arch \
FRIDA_CROSS=$$cross \
FRIDA_ASAN=$(FRIDA_ASAN) \
FRIDA_ENV_NAME=frida_thin \
XCODE11="$(XCODE11)" \
Expand All @@ -67,9 +79,15 @@ build/frida_thin-env-%.rc: releng/setup-env.sh build/frida-version.h
[ ! -d toolchain-$* ] && ln -s frida_thin-toolchain-$* toolchain-$*; \
true
build/frida_gir-env-%.rc: releng/setup-env.sh build/frida-version.h
@for os_arch in $(build_os_arch) $*; do \
@if [ $* != $(build_os_arch) ]; then \
cross=yes; \
else \
cross=no; \
fi; \
for os_arch in $(build_os_arch) $*; do \
if [ ! -f build/frida_gir-env-$$os_arch.rc ]; then \
FRIDA_HOST=$$os_arch \
FRIDA_CROSS=$$cross \
FRIDA_ASAN=$(FRIDA_ASAN) \
FRIDA_ENV_NAME=frida_gir \
XCODE11="$(XCODE11)" \
Expand Down
2 changes: 1 addition & 1 deletion releng/setup-env.sh
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ read_toolchain_variable ()
local var_name=$1
local fallback=$2

if [ $host_os_arch == $build_os_arch ]; then
if [ $host_os_arch == $build_os_arch ] && [ "$FRIDA_CROSS" == yes ]; then
local contextual_var_name=${var_name}_FOR_BUILD
else
local contextual_var_name=${var_name}
Expand Down

0 comments on commit d8411b8

Please sign in to comment.