Im making an ndk build for android, but I need to do https requests so im using openssl. I wanted the setup of the project to be automatic but I keep getting "Please run the same make command again" error every time I run the setup within make but its fine running the commands in the console.
androidVersion:=28
ndkRoot = $(shell pwd)/../android/ndk/25.2.9519653#https://developer.android.com/ndk/downloads/
opensslDir = ./openssl# Download from https://github.com/openssl/openssl/releases/latest ...
openssl:
export ANDROID_NDK_ROOT=$(ndkRoot) ; \
PATH=$$ANDROID_NDK_ROOT/toolchains/llvm/prebuilt/linux-x86_64/bin:$$ANDROID_NDK_ROOT/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin:$$PATH ; \
cd $(opensslDir); \
./Configure android-arm -D__ANDROID_API__=$(androidVersion); \
$(MAKE) ; \
$(MAKE) ; \
$(MAKE)
output:
> make -B
export ANDROID_NDK_ROOT=/home/me/a/../android/ndk/25.2.9519653 ; \
PATH=$ANDROID_NDK_ROOT/toolchains/llvm/prebuilt/linux-x86_64/bin:$ANDROID_NDK_ROOT/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin:$PATH ; \
cd ./openssl; \
./Configure android-arm -D__ANDROID_API__=28; \
make ; \
make ; \
make ; \
Configuring OpenSSL version 3.1.2 for target android-arm
Using os-specific seed configuration
Created configdata.pm
Running configdata.pm
Created Makefile.in
Created Makefile
**********************************************************************
*** ***
*** OpenSSL has been successfully configured ***
*** ***
*** If you encounter a problem while building, please open an ***
*** issue on GitHub <https://github.com/openssl/openssl/issues> ***
*** and include the output from the following command: ***
*** ***
*** perl configdata.pm --dump ***
*** ***
*** (If you are new to OpenSSL, you might want to consult the ***
*** 'Troubleshooting' section in the INSTALL.md file first) ***
*** ***
**********************************************************************
make[1]: Entering directory '/home/me/a/openssl'
Detected changed: Configure config build.info crypto/build.info ssl/build.info apps/build.info util/build.info tools/build.info fuzz/build.info providers/build.info doc/build.info test/build.info engines/build.info crypto/objects/build.info crypto/buffer/build.info crypto/bio/build.info crypto/stack/build.info crypto/lhash/build.info crypto/rand/build.info crypto/evp/build.info crypto/asn1/build.info crypto/pem/build.info crypto/x509/build.info crypto/conf/build.info crypto/txt_db/build.info crypto/pkcs7/build.info crypto/pkcs12/build.info crypto/ui/build.info crypto/kdf/build.info crypto/store/build.info crypto/property/build.info crypto/md4/build.info crypto/md5/build.info crypto/sha/build.info crypto/mdc2/build.info crypto/hmac/build.info crypto/ripemd/build.info crypto/whrlpool/build.info crypto/poly1305/build.info crypto/siphash/build.info crypto/sm3/build.info crypto/des/build.info crypto/aes/build.info crypto/rc2/build.info crypto/rc4/build.info crypto/idea/build.info crypto/aria/build.info crypto/bf/build.info crypto/cast/build.info crypto/camellia/build.info crypto/seed/build.info crypto/sm4/build.info crypto/chacha/build.info crypto/modes/build.info crypto/bn/build.info crypto/ec/build.info crypto/rsa/build.info crypto/dsa/build.info crypto/dh/build.info crypto/sm2/build.info crypto/dso/build.info crypto/engine/build.info crypto/err/build.info crypto/comp/build.info crypto/http/build.info crypto/ocsp/build.info crypto/cms/build.info crypto/ts/build.info crypto/srp/build.info crypto/cmac/build.info crypto/ct/build.info crypto/async/build.info crypto/ess/build.info crypto/crmf/build.info crypto/cmp/build.info crypto/encode_decode/build.info crypto/ffc/build.info apps/lib/build.info providers/common/build.info providers/implementations/build.info doc/man1/build.info providers/common/der/build.info providers/implementations/digests/build.info providers/implementations/ciphers/build.info providers/implementations/rands/build.info providers/implementations/macs/build.info providers/implementations/kdfs/build.info providers/implementations/exchange/build.info providers/implementations/keymgmt/build.info providers/implementations/signature/build.info providers/implementations/asymciphers/build.info providers/implementations/encode_decode/build.info providers/implementations/storemgmt/build.info providers/implementations/kem/build.info providers/implementations/rands/seeding/build.info Configurations/00-base-templates.conf Configurations/10-main.conf Configurations/15-android.conf
/usr/bin/perl configdata.pm -r
Configuring OpenSSL version 3.1.2 for target android-arm
Using os-specific seed configuration
Created configdata.pm
Running configdata.pm
Created Makefile.in
Created Makefile
**********************************************************************
*** ***
*** OpenSSL has been successfully configured ***
*** ***
*** If you encounter a problem while building, please open an ***
*** issue on GitHub <https://github.com/openssl/openssl/issues> ***
*** and include the output from the following command: ***
*** ***
*** perl configdata.pm --dump ***
*** ***
*** (If you are new to OpenSSL, you might want to consult the ***
*** 'Troubleshooting' section in the INSTALL.md file first) ***
*** ***
**********************************************************************
**************************************************
*** ***
*** Please run the same make command again ***
*** ***
**************************************************
make[1]: Leaving directory '/home/me/a/openssl'
make[1]: Entering directory '/home/me/a/openssl'
Detected changed: Configure config build.info crypto/build.info ssl/build.info apps/build.info util/build.info tools/build.info fuzz/build.info providers/build.info doc/build.info test/build.info engines/build.info crypto/objects/build.info crypto/buffer/build.info crypto/bio/build.info crypto/stack/build.info crypto/lhash/build.info crypto/rand/build.info crypto/evp/build.info crypto/asn1/build.info crypto/pem/build.info crypto/x509/build.info crypto/conf/build.info crypto/txt_db/build.info crypto/pkcs7/build.info crypto/pkcs12/build.info crypto/ui/build.info crypto/kdf/build.info crypto/store/build.info crypto/property/build.info crypto/md4/build.info crypto/md5/build.info crypto/sha/build.info crypto/mdc2/build.info crypto/hmac/build.info crypto/ripemd/build.info crypto/whrlpool/build.info crypto/poly1305/build.info crypto/siphash/build.info crypto/sm3/build.info crypto/des/build.info crypto/aes/build.info crypto/rc2/build.info crypto/rc4/build.info crypto/idea/build.info crypto/aria/build.info crypto/bf/build.info crypto/cast/build.info crypto/camellia/build.info crypto/seed/build.info crypto/sm4/build.info crypto/chacha/build.info crypto/modes/build.info crypto/bn/build.info crypto/ec/build.info crypto/rsa/build.info crypto/dsa/build.info crypto/dh/build.info crypto/sm2/build.info crypto/dso/build.info crypto/engine/build.info crypto/err/build.info crypto/comp/build.info crypto/http/build.info crypto/ocsp/build.info crypto/cms/build.info crypto/ts/build.info crypto/srp/build.info crypto/cmac/build.info crypto/ct/build.info crypto/async/build.info crypto/ess/build.info crypto/crmf/build.info crypto/cmp/build.info crypto/encode_decode/build.info crypto/ffc/build.info apps/lib/build.info providers/common/build.info providers/implementations/build.info doc/man1/build.info providers/common/der/build.info providers/implementations/digests/build.info providers/implementations/ciphers/build.info providers/implementations/rands/build.info providers/implementations/macs/build.info providers/implementations/kdfs/build.info providers/implementations/exchange/build.info providers/implementations/keymgmt/build.info providers/implementations/signature/build.info providers/implementations/asymciphers/build.info providers/implementations/encode_decode/build.info providers/implementations/storemgmt/build.info providers/implementations/kem/build.info providers/implementations/rands/seeding/build.info Configurations/00-base-templates.conf Configurations/10-main.conf Configurations/15-android.conf
/usr/bin/perl configdata.pm -r
Configuring OpenSSL version 3.1.2 for target android-arm
Using os-specific seed configuration
Created configdata.pm
Running configdata.pm
Created Makefile.in
Created Makefile
**********************************************************************
*** ***
*** OpenSSL has been successfully configured ***
*** ***
*** If you encounter a problem while building, please open an ***
*** issue on GitHub <https://github.com/openssl/openssl/issues> ***
*** and include the output from the following command: ***
*** ***
*** perl configdata.pm --dump ***
*** ***
*** (If you are new to OpenSSL, you might want to consult the ***
*** 'Troubleshooting' section in the INSTALL.md file first) ***
*** ***
**********************************************************************
**************************************************
*** ***
*** Please run the same make command again ***
*** ***
**************************************************
make[1]: Leaving directory '/home/me/a/openssl'
make[1]: Entering directory '/home/me/a/openssl'
Detected changed: Configure config build.info crypto/build.info ssl/build.info apps/build.info util/build.info tools/build.info fuzz/build.info providers/build.info doc/build.info test/build.info engines/build.info crypto/objects/build.info crypto/buffer/build.info crypto/bio/build.info crypto/stack/build.info crypto/lhash/build.info crypto/rand/build.info crypto/evp/build.info crypto/asn1/build.info crypto/pem/build.info crypto/x509/build.info crypto/conf/build.info crypto/txt_db/build.info crypto/pkcs7/build.info crypto/pkcs12/build.info crypto/ui/build.info crypto/kdf/build.info crypto/store/build.info crypto/property/build.info crypto/md4/build.info crypto/md5/build.info crypto/sha/build.info crypto/mdc2/build.info crypto/hmac/build.info crypto/ripemd/build.info crypto/whrlpool/build.info crypto/poly1305/build.info crypto/siphash/build.info crypto/sm3/build.info crypto/des/build.info crypto/aes/build.info crypto/rc2/build.info crypto/rc4/build.info crypto/idea/build.info crypto/aria/build.info crypto/bf/build.info crypto/cast/build.info crypto/camellia/build.info crypto/seed/build.info crypto/sm4/build.info crypto/chacha/build.info crypto/modes/build.info crypto/bn/build.info crypto/ec/build.info crypto/rsa/build.info crypto/dsa/build.info crypto/dh/build.info crypto/sm2/build.info crypto/dso/build.info crypto/engine/build.info crypto/err/build.info crypto/comp/build.info crypto/http/build.info crypto/ocsp/build.info crypto/cms/build.info crypto/ts/build.info crypto/srp/build.info crypto/cmac/build.info crypto/ct/build.info crypto/async/build.info crypto/ess/build.info crypto/crmf/build.info crypto/cmp/build.info crypto/encode_decode/build.info crypto/ffc/build.info apps/lib/build.info providers/common/build.info providers/implementations/build.info doc/man1/build.info providers/common/der/build.info providers/implementations/digests/build.info providers/implementations/ciphers/build.info providers/implementations/rands/build.info providers/implementations/macs/build.info providers/implementations/kdfs/build.info providers/implementations/exchange/build.info providers/implementations/keymgmt/build.info providers/implementations/signature/build.info providers/implementations/asymciphers/build.info providers/implementations/encode_decode/build.info providers/implementations/storemgmt/build.info providers/implementations/kem/build.info providers/implementations/rands/seeding/build.info Configurations/00-base-templates.conf Configurations/10-main.conf Configurations/15-android.conf
/usr/bin/perl configdata.pm -r
Configuring OpenSSL version 3.1.2 for target android-arm
Using os-specific seed configuration
Created configdata.pm
Running configdata.pm
Created Makefile.in
Created Makefile
**********************************************************************
*** ***
*** OpenSSL has been successfully configured ***
*** ***
*** If you encounter a problem while building, please open an ***
*** issue on GitHub <https://github.com/openssl/openssl/issues> ***
*** and include the output from the following command: ***
*** ***
*** perl configdata.pm --dump ***
*** ***
*** (If you are new to OpenSSL, you might want to consult the ***
*** 'Troubleshooting' section in the INSTALL.md file first) ***
*** ***
**********************************************************************
**************************************************
*** ***
*** Please run the same make command again ***
*** ***
**************************************************
make[1]: Leaving directory '/home/me/a/openssl'
The problem is using -B
on the make
command line. By giving this option, you are asking make
to always rebuild everything in the makefile every time it runs. Recall also that options like that are passed down to sub-makes (they have to be since else you would not be rebuilding the entire project) and so that means the make instances your rules invoke also get -B
and they also rebuild everything all the time.
Because everything is always rebuilt, the "Detected changed" check in these makefiles thinks they are always being changed (which they are) and so it always reports this message.
You don't make clear why you wanted to use -B
but if, for example, you have a subdirectory named openssl
then the target:
openssl:
with no prerequisites will always be satisfied, because openssl
exists in the current directory and there's no prerequisite to cause it to be considered out of date. You can rename the target in your makefile to be something that doesn't exist in the directory, or use .PHONY (among other methods) to force make to rebuild that specific target every time.