| # |
| # GNU Make makefile for building static libraries for use with the Android NDK |
| # Copyright (C) 2016, Alexander Bruines <alexander.bruines@gmail.com> |
| # |
| # This file is made available under the Creative Commons CC0 1.0 |
| # Universal Public Domain Dedication. |
| # |
| # The person who associated a work with this deed has dedicated |
| # the work to the public domain by waiving all of his or her rights |
| # to the work worldwide under copyright law, including all related |
| # and neighboring rights, to the extent allowed by law. You can copy, |
| # modify, distribute and perform the work, even for commercial purposes, |
| # all without asking permission. |
| # |
| # The test apps are intended to be adapted for use in your code, which |
| # may be proprietary. So unlike the library itself, they are licensed |
| # Public Domain. |
| # |
| |
| # |
| # This makefile is fully intergrated with this Android Studio project and |
| # it will be called automaticaly when you build the project with Gradle. |
| # |
| # The source packages for the libraries will be automaticaly downloaded. |
| # Alternativly you can provide your own sources by placing the following |
| # files in the 'jni' directory: |
| # |
| # zlib-1.2.8.tar.gz |
| # openssl-1.0.2g.tar.gz |
| # libwebsockets.tar.gz |
| # |
| # This makefile was tested with the latest NDK/SDK and Android Studio at the |
| # time of this writing. As these software packages evolve changes to this |
| # makefile may be needed or it may become obselete... |
| # |
| # This makefile was made for use in Linux but you may be able to edit it |
| # and make it work under Windows. |
| # |
| # At least on Debian, building openssl requires package xutils-dev |
| # for makedepend. Ofcourse the standard development packages must also be |
| # installed, but xutils-dev is not that obvious in this case... |
| # |
| # Makedepend will most likely print a lot of warnings during the 'make depend' |
| # stage of building openssl. In this case these warnings can be safely ignored. |
| # |
| |
| # Include Application.mk but do not complain if it is not found |
| # |
| ifeq ($(MAKE_NO_INCLUDES),) |
| -include Application.mk |
| endif |
| |
| # Location of the NDK. |
| # |
| ifeq ($(NDK_ROOT),) |
| NDK_ROOT := /opt/Android/SDK/ndk-bundle |
| endif |
| |
| # Select the ABIs to compile for |
| # |
| NDK_APP_ABI = $(APP_ABI) |
| ifeq ($(NDK_APP_ABI),) |
| # Set to 'all' if APP_ABI is undefined |
| NDK_APP_ABI = all |
| endif |
| ifeq ($(NDK_APP_ABI),all) |
| # Translate 'all' to the individual targets |
| NDK_APP_ABI = armeabi armeabi-v7a arm64-v8a mips mips64 x86 x86_64 |
| else |
| # Use the targets from APP_ABI |
| NDK_APP_ABI = $(APP_ABI) |
| endif |
| |
| # Select the Android platform to compile for |
| # |
| ifeq ($(APP_PLATFORM),) |
| # use a level that supports all specified ABIs if none was specified |
| APP_PLATFORM = android-21 |
| endif |
| |
| NDK_MAKE_TOOLCHAIN := $(NDK_ROOT)/build/tools/make_standalone_toolchain.py |
| |
| # |
| # The source packages we want/need |
| # Zlib and openssl should be defined in Application.mk, libwebsockets is |
| # cloned from github |
| # |
| |
| ifeq ($(ZLIB_VERSION),) |
| ZLIB_VERSION := 1.2.8 |
| endif |
| ifeq ($(OPENSSL_VERSION),) |
| OPENSSL_VERSION := 1.0.2g |
| endif |
| |
| ifeq ($(ZLIB_TGZ_SOURCE),) |
| ZLIB_TGZ_SOURCE := zlib-$(ZLIB_VERSION).tar.gz |
| endif |
| ifeq ($(OPENSSL_TGZ_SOURCE),) |
| OPENSSL_TGZ_SOURCE := openssl-$(OPENSSL_VERSION).tar.gz |
| endif |
| LIBWEBSOCKETS_TGZ_SOURCE := libwebsockets.tar.gz |
| |
| # The names of the directories in the source tgz files |
| ZLIB_DIR := $(basename $(basename $(ZLIB_TGZ_SOURCE))) |
| OPENSSL_DIR := $(basename $(basename $(OPENSSL_TGZ_SOURCE))) |
| LIBWEBSOCKETS_DIR := $(basename $(basename $(LIBWEBSOCKETS_TGZ_SOURCE))) |
| |
| # The URLs used to fetch the source tgz files |
| ZLIB_TGZ_URL := http://prdownloads.sourceforge.net/libpng/$(ZLIB_TGZ_SOURCE) |
| OPENSSL_TGZ_URL := https://openssl.org/source/$(OPENSSL_TGZ_SOURCE) |
| ifeq ($(LIBWEBSOCKETS_GIT_URL),) |
| LIBWEBSOCKETS_GIT_URL := https://github.com/warmcat/libwebsockets.git |
| endif |
| |
| # These values are the same as the values for $TARGET_ARCH_ABI in Android.mk |
| # This way 'make $TARGET_ARCH_ABI' builds libraries for that ABI. |
| # This is also the name for the directory where the libraries are installed to. |
| # |
| TARGET_X86 := x86 |
| TARGET_X86_64 := x86_64 |
| TARGET_ARM := armeabi |
| TARGET_ARM_V7A := armeabi-v7a |
| TARGET_ARM_V7A_HARD := armeabi-v7a-hard |
| TARGET_ARM64_V8A := arm64-v8a |
| TARGET_MIPS := mips |
| TARGET_MIPS64 := mips64 |
| |
| # The Android NDK API version to build the libraries with. |
| # |
| # android-9 ... android-19 support arm mips and x86 |
| # android-21 and higher also support arm64 mips64 and x86_64 |
| # |
| # These should be set to the same value as APP_PLATFORM (Application.mk) |
| # |
| # http://developer.android.com/ndk/guides/stable_apis.html |
| # |
| # If you change these or APP_PLATFORM you must do a 'make clean' |
| # |
| # Note: |
| # libraries compiled for android-21 and upwards are incompatible with devices below that version! |
| # http://stackoverflow.com/questions/28740315/android-ndk-getting-java-lang-unsatisfiedlinkerror-dlopen-failed-cannot-loca |
| # |
| TARGET_X86_NDK_API := $(subst android-,,$(APP_PLATFORM)) |
| TARGET_X86_64_NDK_API := $(subst android-,,$(APP_PLATFORM)) |
| TARGET_ARM_NDK_API := $(subst android-,,$(APP_PLATFORM)) |
| TARGET_ARM_V7A_NDK_API := $(subst android-,,$(APP_PLATFORM)) |
| TARGET_ARM_V7A_HARD_NDK_API := $(subst android-,,$(APP_PLATFORM)) |
| TARGET_ARM64_V8A_NDK_API := $(subst android-,,$(APP_PLATFORM)) |
| TARGET_MIPS_NDK_API := $(subst android-,,$(APP_PLATFORM)) |
| TARGET_MIPS64_NDK_API := $(subst android-,,$(APP_PLATFORM)) |
| |
| # The configure arguments to pass to the OpenSSL Configure script |
| # (--prefix and --openssldir are added automaticaly). |
| # (note: use no-asm on x86 and x86_64 to generate fully position independent code) |
| # |
| # x86 |
| TARGET_X86_OPENSSL_CONFIG_TARGET := android-x86 |
| TARGET_X86_OPENSSL_CONFIG := no-asm no-shared no-idea no-mdc2 no-rc5 no-zlib no-zlib-dynamic enable-tlsext no-ssl2 no-ssl3 enable-ec enable-ecdh enable-ecp |
| # x86_64 |
| TARGET_X86_64_OPENSSL_CONFIG_TARGET := linux-x86_64 |
| TARGET_X86_64_OPENSSL_CONFIG := no-asm no-shared no-idea no-mdc2 no-rc5 no-zlib no-zlib-dynamic enable-tlsext no-ssl2 no-ssl3 enable-ec enable-ecdh enable-ecp enable-ec_nistp_64_gcc_128 |
| # armeabi |
| TARGET_ARM_OPENSSL_CONFIG_TARGET := android |
| TARGET_ARM_OPENSSL_CONFIG := no-shared no-idea no-mdc2 no-rc5 no-zlib no-zlib-dynamic enable-tlsext no-ssl2 no-ssl3 enable-ec enable-ecdh enable-ecp |
| # armeabi-v7a |
| TARGET_ARM_V7A_OPENSSL_CONFIG_TARGET := android-armv7 |
| TARGET_ARM_V7A_OPENSSL_CONFIG := no-shared no-idea no-mdc2 no-rc5 no-zlib no-zlib-dynamic enable-tlsext no-ssl2 no-ssl3 enable-ec enable-ecdh enable-ecp |
| # armeabi-v7a-hard |
| TARGET_ARM_V7A_HARD_OPENSSL_CONFIG_TARGET := android-armv7 |
| TARGET_ARM_V7A_HARD_OPENSSL_CONFIG := no-shared no-idea no-mdc2 no-rc5 no-zlib no-zlib-dynamic enable-tlsext no-ssl2 no-ssl3 enable-ec enable-ecdh enable-ecp |
| # arm64-v8a |
| TARGET_ARM64_V8A_OPENSSL_CONFIG_TARGET := android |
| TARGET_ARM64_V8A_OPENSSL_CONFIG := no-shared no-idea no-mdc2 no-rc5 no-zlib no-zlib-dynamic enable-tlsext no-ssl2 no-ssl3 enable-ec enable-ecdh enable-ecp |
| # mips |
| TARGET_MIPS_OPENSSL_CONFIG_TARGET := android-mips |
| TARGET_MIPS_OPENSSL_CONFIG := no-shared no-idea no-mdc2 no-rc5 no-zlib no-zlib-dynamic enable-tlsext no-ssl2 no-ssl3 enable-ec enable-ecdh enable-ecp |
| # mips64 |
| TARGET_MIPS64_OPENSSL_CONFIG_TARGET := android |
| TARGET_MIPS64_OPENSSL_CONFIG := no-shared no-idea no-mdc2 no-rc5 no-zlib no-zlib-dynamic enable-tlsext no-ssl2 no-ssl3 enable-ec enable-ecdh enable-ecp |
| |
| # The cmake configuration options for libwebsockets per target ABI, |
| # --prefix and openssl library/header paths are set automaticaly and |
| # the location of zlib should be picked up by CMake |
| # x86 |
| TARGET_X86_LWS_OPTIONS = \ |
| -DCMAKE_C_COMPILER=$(shell pwd)/$(TOOLCHAIN_X86)/bin/$(TOOLCHAIN_X86_PREFIX)-gcc \ |
| -DCMAKE_AR=$(shell pwd)/$(TOOLCHAIN_X86)/bin/$(TOOLCHAIN_X86_PREFIX)-ar \ |
| -DCMAKE_RANLIB=$(shell pwd)/$(TOOLCHAIN_X86)/bin/$(TOOLCHAIN_X86_PREFIX)-ranlib \ |
| -DCMAKE_C_FLAGS="$$CFLAGS" \ |
| -DLWS_WITH_SHARED=OFF \ |
| -DLWS_WITH_STATIC=ON \ |
| -DLWS_WITHOUT_DAEMONIZE=ON \ |
| -DLWS_WITHOUT_TESTAPPS=ON \ |
| -DLWS_IPV6=OFF \ |
| -DLWS_USE_BUNDLED_ZLIB=OFF \ |
| -DLWS_WITH_SSL=ON \ |
| -DLWS_WITH_HTTP2=ON \ |
| -DCMAKE_BUILD_TYPE=Release |
| # x86_64 |
| TARGET_X86_64_LWS_OPTIONS = \ |
| -DCMAKE_C_COMPILER=$(shell pwd)/$(TOOLCHAIN_X86_64)/bin/$(TOOLCHAIN_X86_64_PREFIX)-gcc \ |
| -DCMAKE_AR=$(shell pwd)/$(TOOLCHAIN_X86_64)/bin/$(TOOLCHAIN_X86_64_PREFIX)-ar \ |
| -DCMAKE_RANLIB=$(shell pwd)/$(TOOLCHAIN_X86_64)/bin/$(TOOLCHAIN_X86_64_PREFIX)-ranlib \ |
| -DCMAKE_C_FLAGS="$$CFLAGS" \ |
| -DLWS_WITH_SHARED=OFF \ |
| -DLWS_WITH_STATIC=ON \ |
| -DLWS_WITHOUT_DAEMONIZE=ON \ |
| -DLWS_WITHOUT_TESTAPPS=ON \ |
| -DLWS_IPV6=OFF \ |
| -DLWS_USE_BUNDLED_ZLIB=OFF \ |
| -DLWS_WITH_SSL=ON \ |
| -DLWS_WITH_HTTP2=ON \ |
| -DCMAKE_BUILD_TYPE=Release |
| # armeabi |
| TARGET_ARM_LWS_OPTIONS = \ |
| -DCMAKE_C_COMPILER=$(shell pwd)/$(TOOLCHAIN_ARM)/bin/$(TOOLCHAIN_ARM_PREFIX)-gcc \ |
| -DCMAKE_AR=$(shell pwd)/$(TOOLCHAIN_ARM)/bin/$(TOOLCHAIN_ARM_PREFIX)-ar \ |
| -DCMAKE_RANLIB=$(shell pwd)/$(TOOLCHAIN_ARM)/bin/$(TOOLCHAIN_ARM_PREFIX)-ranlib \ |
| -DCMAKE_C_FLAGS="$$CFLAGS" \ |
| -DLWS_WITH_SHARED=OFF \ |
| -DLWS_WITH_STATIC=ON \ |
| -DLWS_WITHOUT_DAEMONIZE=ON \ |
| -DLWS_WITHOUT_TESTAPPS=ON \ |
| -DLWS_IPV6=OFF \ |
| -DLWS_USE_BUNDLED_ZLIB=OFF \ |
| -DLWS_WITH_SSL=ON \ |
| -DLWS_WITH_HTTP2=ON \ |
| -DCMAKE_BUILD_TYPE=Release |
| # armeabi-v7a |
| TARGET_ARM_V7A_LWS_OPTIONS = \ |
| -DCMAKE_C_COMPILER=$(shell pwd)/$(TOOLCHAIN_ARM_V7A)/bin/$(TOOLCHAIN_ARM_V7A_PREFIX)-gcc \ |
| -DCMAKE_AR=$(shell pwd)/$(TOOLCHAIN_ARM_V7A)/bin/$(TOOLCHAIN_ARM_V7A_PREFIX)-ar \ |
| -DCMAKE_RANLIB=$(shell pwd)/$(TOOLCHAIN_ARM_V7A)/bin/$(TOOLCHAIN_ARM_V7A_PREFIX)-ranlib \ |
| -DCMAKE_C_FLAGS="$$CFLAGS" \ |
| -DLWS_WITH_SHARED=OFF \ |
| -DLWS_WITH_STATIC=ON \ |
| -DLWS_WITHOUT_DAEMONIZE=ON \ |
| -DLWS_WITHOUT_TESTAPPS=ON \ |
| -DLWS_IPV6=OFF \ |
| -DLWS_USE_BUNDLED_ZLIB=OFF \ |
| -DLWS_WITH_SSL=ON \ |
| -DLWS_WITH_HTTP2=ON \ |
| -DCMAKE_BUILD_TYPE=Release |
| # armeabi-v7a-hard |
| TARGET_ARM_V7A_HARD_LWS_OPTIONS = \ |
| -DCMAKE_C_COMPILER=$(shell pwd)/$(TOOLCHAIN_ARM_V7A_HARD)/bin/$(TOOLCHAIN_ARM_V7A_HARD_PREFIX)-gcc \ |
| -DCMAKE_AR=$(shell pwd)/$(TOOLCHAIN_ARM_V7A_HARD)/bin/$(TOOLCHAIN_ARM_V7A_HARD_PREFIX)-ar \ |
| -DCMAKE_RANLIB=$(shell pwd)/$(TOOLCHAIN_ARM_V7A_HARD)/bin/$(TOOLCHAIN_ARM_V7A_HARD_PREFIX)-ranlib \ |
| -DCMAKE_C_FLAGS="$$CFLAGS" \ |
| -DLWS_WITH_SHARED=OFF \ |
| -DLWS_WITH_STATIC=ON \ |
| -DLWS_WITHOUT_DAEMONIZE=ON \ |
| -DLWS_WITHOUT_TESTAPPS=ON \ |
| -DLWS_IPV6=OFF \ |
| -DLWS_USE_BUNDLED_ZLIB=OFF \ |
| -DLWS_WITH_SSL=ON \ |
| -DLWS_WITH_HTTP2=ON \ |
| -DCMAKE_BUILD_TYPE=Release |
| # arm64-v8a |
| TARGET_ARM64_V8A_LWS_OPTIONS = \ |
| -DCMAKE_C_COMPILER=$(shell pwd)/$(TOOLCHAIN_ARM64_V8A)/bin/$(TOOLCHAIN_ARM64_V8A_PREFIX)-gcc \ |
| -DCMAKE_AR=$(shell pwd)/$(TOOLCHAIN_ARM64_V8A)/bin/$(TOOLCHAIN_ARM64_V8A_PREFIX)-ar \ |
| -DCMAKE_RANLIB=$(shell pwd)/$(TOOLCHAIN_ARM64_V8A)/bin/$(TOOLCHAIN_ARM64_V8A_PREFIX)-ranlib \ |
| -DCMAKE_C_FLAGS="$$CFLAGS" \ |
| -DLWS_WITH_SHARED=OFF \ |
| -DLWS_WITH_STATIC=ON \ |
| -DLWS_WITHOUT_DAEMONIZE=ON \ |
| -DLWS_WITHOUT_TESTAPPS=ON \ |
| -DLWS_IPV6=OFF \ |
| -DLWS_USE_BUNDLED_ZLIB=OFF \ |
| -DLWS_WITH_SSL=ON \ |
| -DLWS_WITH_HTTP2=ON \ |
| -DCMAKE_BUILD_TYPE=Release |
| # mips |
| TARGET_MIPS_LWS_OPTIONS = \ |
| -DCMAKE_C_COMPILER=$(shell pwd)/$(TOOLCHAIN_MIPS)/bin/$(TOOLCHAIN_MIPS_PREFIX)-gcc \ |
| -DCMAKE_AR=$(shell pwd)/$(TOOLCHAIN_MIPS)/bin/$(TOOLCHAIN_MIPS_PREFIX)-ar \ |
| -DCMAKE_RANLIB=$(shell pwd)/$(TOOLCHAIN_MIPS)/bin/$(TOOLCHAIN_MIPS_PREFIX)-ranlib \ |
| -DCMAKE_C_FLAGS="$$CFLAGS" \ |
| -DLWS_WITH_SHARED=OFF \ |
| -DLWS_WITH_STATIC=ON \ |
| -DLWS_WITHOUT_DAEMONIZE=ON \ |
| -DLWS_WITHOUT_TESTAPPS=ON \ |
| -DLWS_IPV6=OFF \ |
| -DLWS_USE_BUNDLED_ZLIB=OFF \ |
| -DLWS_WITH_SSL=ON \ |
| -DLWS_WITH_HTTP2=ON \ |
| -DCMAKE_BUILD_TYPE=Release |
| # mips64 |
| TARGET_MIPS64_LWS_OPTIONS = \ |
| -DCMAKE_C_COMPILER=$(shell pwd)/$(TOOLCHAIN_MIPS64)/bin/$(TOOLCHAIN_MIPS64_PREFIX)-gcc \ |
| -DCMAKE_AR=$(shell pwd)/$(TOOLCHAIN_MIPS64)/bin/$(TOOLCHAIN_MIPS64_PREFIX)-ar \ |
| -DCMAKE_RANLIB=$(shell pwd)/$(TOOLCHAIN_MIPS64)/bin/$(TOOLCHAIN_MIPS64_PREFIX)-ranlib \ |
| -DCMAKE_C_FLAGS="$$CFLAGS" \ |
| -DLWS_WITH_SHARED=OFF \ |
| -DLWS_WITH_STATIC=ON \ |
| -DLWS_WITHOUT_DAEMONIZE=ON \ |
| -DLWS_WITHOUT_TESTAPPS=ON \ |
| -DLWS_IPV6=OFF \ |
| -DLWS_USE_BUNDLED_ZLIB=OFF \ |
| -DLWS_WITH_SSL=ON \ |
| -DLWS_WITH_HTTP2=ON \ |
| -DCMAKE_BUILD_TYPE=Release |
| |
| # |
| # Toolchain configuration |
| # |
| |
| # The directory names for the different toolchains |
| TOOLCHAIN_X86 := toolchains/x86 |
| TOOLCHAIN_X86_64 := toolchains/x86_64 |
| TOOLCHAIN_ARM := toolchains/arm |
| TOOLCHAIN_ARM_V7A := toolchains/arm-v7a |
| TOOLCHAIN_ARM_V7A_HARD := toolchains/arm-v7a-hard |
| TOOLCHAIN_ARM64_V8A := toolchains/arm64-v8a |
| TOOLCHAIN_MIPS := toolchains/mips |
| TOOLCHAIN_MIPS64 := toolchains/mips64 |
| |
| # Use APP_STL to determine what STL to use. |
| # |
| ifeq ($(APP_STL),stlport_static) |
| TOOLCHAIN_STL := stlport |
| else ifeq ($(APP_STL),stlport_shared) |
| TOOLCHAIN_STL := stlport |
| else ifeq ($(APP_STL),gnustl_static) |
| TOOLCHAIN_STL := gnustl |
| else ifeq ($(APP_STL),gnustl_shared) |
| TOOLCHAIN_STL := gnustl |
| else ifeq ($(APP_STL),c++_static) |
| TOOLCHAIN_STL := libc++ |
| else ifeq ($(APP_STL),c++_shared) |
| TOOLCHAIN_STL := libc++ |
| endif |
| |
| # The settings to use for the individual toolchains: |
| # x86 |
| TOOLCHAIN_X86_API := $(TARGET_X86_NDK_API) |
| TOOLCHAIN_X86_PREFIX := i686-linux-android |
| TOOLCHAIN_X86_FLAGS := -march=i686 -msse3 -mstackrealign -mfpmath=sse |
| TOOLCHAIN_X86_LINK := |
| TOOLCHAIN_X86_PLATFORM_HEADERS := $(shell pwd)/$(TOOLCHAIN_X86)/sysroot/usr/include |
| TOOLCHAIN_X86_PLATFORM_LIBS := $(shell pwd)/$(TOOLCHAIN_X86)/sysroot/usr/lib |
| # x86_64 |
| TOOLCHAIN_X86_64_API := $(TARGET_X86_64_NDK_API) |
| TOOLCHAIN_X86_64_PREFIX := x86_64-linux-android |
| TOOLCHAIN_X86_64_FLAGS := |
| TOOLCHAIN_X86_64_LINK := |
| TOOLCHAIN_X86_64_PLATFORM_HEADERS := $(shell pwd)/$(TOOLCHAIN_X86_64)/sysroot/usr/include |
| TOOLCHAIN_X86_64_PLATFORM_LIBS := $(shell pwd)/$(TOOLCHAIN_X86_64)/sysroot/usr/lib |
| # arm |
| TOOLCHAIN_ARM_API := $(TARGET_ARM_NDK_API) |
| TOOLCHAIN_ARM_PREFIX := arm-linux-androideabi |
| TOOLCHAIN_ARM_FLAGS := -mthumb |
| TOOLCHAIN_ARM_LINK := |
| TOOLCHAIN_ARM_PLATFORM_HEADERS := $(shell pwd)/$(TOOLCHAIN_ARM)/sysroot/usr/include |
| TOOLCHAIN_ARM_PLATFORM_LIBS := $(shell pwd)/$(TOOLCHAIN_ARM)/sysroot/usr/lib |
| # arm-v7a |
| TOOLCHAIN_ARM_V7A_API := $(TARGET_ARM_V7A_NDK_API) |
| TOOLCHAIN_ARM_V7A_PREFIX := arm-linux-androideabi |
| TOOLCHAIN_ARM_V7A_FLAGS := -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 |
| TOOLCHAIN_ARM_V7A_LINK := -march=armv7-a -Wl,--fix-cortex-a8 |
| TOOLCHAIN_ARM_V7A_PLATFORM_HEADERS := $(shell pwd)/$(TOOLCHAIN_ARM_V7A)/sysroot/usr/include |
| TOOLCHAIN_ARM_V7A_PLATFORM_LIBS := $(shell pwd)/$(TOOLCHAIN_ARM_V7A)/sysroot/usr/lib |
| # arm-v7a-hard |
| TOOLCHAIN_ARM_V7A_HARD_API := $(TARGET_ARM_V7A_HARD_NDK_API) |
| TOOLCHAIN_ARM_V7A_HARD_PREFIX := arm-linux-androideabi |
| TOOLCHAIN_ARM_V7A_HARD_FLAGS := -march=armv7-a -mfpu=vfpv3-d16 -mhard-float -mfloat-abi=hard -D_NDK_MATH_NO_SOFTFP=1 |
| TOOLCHAIN_ARM_V7A_HARD_LINK := -march=armv7-a -Wl,--fix-cortex-a8 -Wl,--no-warn-mismatch -lm_hard |
| TOOLCHAIN_ARM_V7A_HARD_PLATFORM_HEADERS := $(shell pwd)/$(TOOLCHAIN_ARM_V7A_HARD)/sysroot/usr/include |
| TOOLCHAIN_ARM_V7A_HARD_PLATFORM_LIBS := $(shell pwd)/$(TOOLCHAIN_ARM_V7A_HARD)/sysroot/usr/lib |
| # arm64-v8a |
| TOOLCHAIN_ARM64_V8A_API := $(TARGET_ARM64_V8A_NDK_API) |
| TOOLCHAIN_ARM64_V8A_PREFIX := aarch64-linux-android |
| TOOLCHAIN_ARM64_V8A_FLAGS := |
| TOOLCHAIN_ARM64_V8A_LINK := |
| TOOLCHAIN_ARM64_V8A_PLATFORM_HEADERS := $(shell pwd)/$(TOOLCHAIN_ARM64_V8A)/sysroot/usr/include |
| TOOLCHAIN_ARM64_V8A_PLATFORM_LIBS := $(shell pwd)/$(TOOLCHAIN_ARM64_V8A)/sysroot/usr/lib |
| # mips |
| TOOLCHAIN_MIPS_API := $(TARGET_MIPS_NDK_API) |
| TOOLCHAIN_MIPS_PREFIX := mipsel-linux-android |
| TOOLCHAIN_MIPS_FLAGS := |
| TOOLCHAIN_MIPS_LINK := |
| TOOLCHAIN_MIPS_PLATFORM_HEADERS := $(shell pwd)/$(TOOLCHAIN_MIPS)/sysroot/usr/include |
| TOOLCHAIN_MIPS_PLATFORM_LIBS := $(shell pwd)/$(TOOLCHAIN_MIPS)/sysroot/usr/lib |
| # mips64 |
| TOOLCHAIN_MIPS64_API := $(TARGET_MIPS64_NDK_API) |
| TOOLCHAIN_MIPS64_PREFIX := mips64el-linux-android |
| TOOLCHAIN_MIPS64_FLAGS := |
| TOOLCHAIN_MIPS64_LINK := |
| TOOLCHAIN_MIPS64_PLATFORM_HEADERS := $(shell pwd)/$(TOOLCHAIN_MIPS64)/sysroot/usr/include |
| TOOLCHAIN_MIPS64_PLATFORM_LIBS := $(shell pwd)/$(TOOLCHAIN_MIPS64)/sysroot/usr/lib |
| |
| # Environment variables to set while compiling for each ABI |
| # x86 |
| TOOLCHAIN_X86_ENV = \ |
| ANDROID_DEV="$(shell pwd)/$(TOOLCHAIN_X86)/bin" \ |
| CC=$(TOOLCHAIN_X86_PREFIX)-gcc \ |
| CXX=$(TOOLCHAIN_X86_PREFIX)-g++ \ |
| LINK=$(TOOLCHAIN_X86_PREFIX)-g++ \ |
| LD=$(TOOLCHAIN_X86_PREFIX)-ld \ |
| AR=$(TOOLCHAIN_X86_PREFIX)-ar \ |
| RANLIB=$(TOOLCHAIN_X86_PREFIX)-ranlib \ |
| STRIP=$(TOOLCHAIN_X86_PREFIX)-strip \ |
| ARCH_FLAGS="$(TOOLCHAIN_X86_FLAGS)" \ |
| ARCH_LINK="$(TOOLCHAIN_X86_LINK)" \ |
| CPPFLAGS="-I. $(TOOLCHAIN_X86_FLAGS) -I$(TOOLCHAIN_X86_PLATFORM_HEADERS) -fpic -ffunction-sections -funwind-tables -fstack-protector -fno-strict-aliasing -finline-limit=64" \ |
| CXXFLAGS="-I. $(TOOLCHAIN_X86_FLAGS) -I$(TOOLCHAIN_X86_PLATFORM_HEADERS) -fpic -ffunction-sections -funwind-tables -fstack-protector -fno-strict-aliasing -finline-limit=64 -frtti -fexceptions" \ |
| CFLAGS="-I. $(TOOLCHAIN_X86_FLAGS) -I$(TOOLCHAIN_X86_PLATFORM_HEADERS) -fpic -ffunction-sections -funwind-tables -fstack-protector -fno-strict-aliasing -finline-limit=64" \ |
| LDFLAGS="$(TOOLCHAIN_X86_LINK)" \ |
| PATH="$(shell pwd)/$(TOOLCHAIN_X86)/bin:$$PATH" |
| # x86_64 |
| TOOLCHAIN_X86_64_ENV = \ |
| ANDROID_DEV="$(shell pwd)/$(TOOLCHAIN_X86_64)/bin" \ |
| CC=$(TOOLCHAIN_X86_64_PREFIX)-gcc \ |
| CXX=$(TOOLCHAIN_X86_64_PREFIX)-g++ \ |
| LINK=$(TOOLCHAIN_X86_64_PREFIX)-g++ \ |
| LD=$(TOOLCHAIN_X86_64_PREFIX)-ld \ |
| AR=$(TOOLCHAIN_X86_64_PREFIX)-ar \ |
| RANLIB=$(TOOLCHAIN_X86_64_PREFIX)-ranlib \ |
| STRIP=$(TOOLCHAIN_X86_64_PREFIX)-strip \ |
| ARCH_FLAGS="$(TOOLCHAIN_X86_64_FLAGS)" \ |
| ARCH_LINK="$(TOOLCHAIN_X86_64_LINK)" \ |
| CPPFLAGS="-I. $(TOOLCHAIN_X86_64_FLAGS) -I$(TOOLCHAIN_X86_64_PLATFORM_HEADERS) -fpic -ffunction-sections -funwind-tables -fstack-protector -fno-strict-aliasing -finline-limit=64" \ |
| CXXFLAGS="-I. $(TOOLCHAIN_X86_64_FLAGS) -I$(TOOLCHAIN_X86_64_PLATFORM_HEADERS) -fpic -ffunction-sections -funwind-tables -fstack-protector -fno-strict-aliasing -finline-limit=64 -frtti -fexceptions" \ |
| CFLAGS="-I. $(TOOLCHAIN_X86_64_FLAGS) -I$(TOOLCHAIN_X86_64_PLATFORM_HEADERS) -fpic -ffunction-sections -funwind-tables -fstack-protector -fno-strict-aliasing -finline-limit=64" \ |
| LDFLAGS="$(TOOLCHAIN_X86_64_LINK)" \ |
| PATH="$(shell pwd)/$(TOOLCHAIN_X86_64)/bin:$$PATH" |
| # arm |
| TOOLCHAIN_ARM_ENV = \ |
| ANDROID_DEV="$(shell pwd)/$(TOOLCHAIN_ARM)/bin" \ |
| CC=$(TOOLCHAIN_ARM_PREFIX)-gcc \ |
| CXX=$(TOOLCHAIN_ARM_PREFIX)-g++ \ |
| LINK=$(TOOLCHAIN_ARM_PREFIX)-g++ \ |
| LD=$(TOOLCHAIN_ARM_PREFIX)-ld \ |
| AR=$(TOOLCHAIN_ARM_PREFIX)-ar \ |
| RANLIB=$(TOOLCHAIN_ARM_PREFIX)-ranlib \ |
| STRIP=$(TOOLCHAIN_ARM_PREFIX)-strip \ |
| ARCH_FLAGS="$(TOOLCHAIN_ARM_FLAGS)" \ |
| ARCH_LINK="$(TOOLCHAIN_ARM_LINK)" \ |
| CPPFLAGS="-I. $(TOOLCHAIN_ARM_FLAGS) -I$(TOOLCHAIN_ARM_PLATFORM_HEADERS) -fpic -ffunction-sections -funwind-tables -fstack-protector -fno-strict-aliasing -finline-limit=64" \ |
| CXXFLAGS="-I. $(TOOLCHAIN_ARM_FLAGS) -I$(TOOLCHAIN_ARM_PLATFORM_HEADERS) -fpic -ffunction-sections -funwind-tables -fstack-protector -fno-strict-aliasing -finline-limit=64 -frtti -fexceptions" \ |
| CFLAGS="-I. $(TOOLCHAIN_ARM_FLAGS) -I$(TOOLCHAIN_ARM_PLATFORM_HEADERS) -fpic -ffunction-sections -funwind-tables -fstack-protector -fno-strict-aliasing -finline-limit=64" \ |
| LDFLAGS="$(TOOLCHAIN_ARM_LINK)" \ |
| PATH="$(shell pwd)/$(TOOLCHAIN_ARM)/bin:$$PATH" |
| # arm-v7a |
| TOOLCHAIN_ARM_V7A_ENV = \ |
| ANDROID_DEV="$(shell pwd)/$(TOOLCHAIN_ARM_V7A)/bin" \ |
| CC=$(TOOLCHAIN_ARM_V7A_PREFIX)-gcc \ |
| CXX=$(TOOLCHAIN_ARM_V7A_PREFIX)-g++ \ |
| LINK=$(TOOLCHAIN_ARM_V7A_PREFIX)-g++ \ |
| LD=$(TOOLCHAIN_ARM_V7A_PREFIX)-ld \ |
| AR=$(TOOLCHAIN_ARM_V7A_PREFIX)-ar \ |
| RANLIB=$(TOOLCHAIN_ARM_V7A_PREFIX)-ranlib \ |
| STRIP=$(TOOLCHAIN_ARM_V7A_PREFIX)-strip \ |
| ARCH_FLAGS="$(TOOLCHAIN_ARM_V7A_FLAGS)" \ |
| ARCH_LINK="$(TOOLCHAIN_ARM_V7A_LINK)" \ |
| CPPFLAGS="-I. $(TOOLCHAIN_ARM_V7A_FLAGS) -I$(TOOLCHAIN_ARM_V7A_PLATFORM_HEADERS) -fpic -ffunction-sections -funwind-tables -fstack-protector -fno-strict-aliasing -finline-limit=64" \ |
| CXXFLAGS="-I. $(TOOLCHAIN_ARM_V7A_FLAGS) -I$(TOOLCHAIN_ARM_V7A_PLATFORM_HEADERS) -fpic -ffunction-sections -funwind-tables -fstack-protector -fno-strict-aliasing -finline-limit=64 -frtti -fexceptions" \ |
| CFLAGS="-I. $(TOOLCHAIN_ARM_V7A_FLAGS) -I$(TOOLCHAIN_ARM_V7A_PLATFORM_HEADERS) -fpic -ffunction-sections -funwind-tables -fstack-protector -fno-strict-aliasing -finline-limit=64" \ |
| LDFLAGS="$(TOOLCHAIN_ARM_V7A_LINK)" \ |
| PATH="$(shell pwd)/$(TOOLCHAIN_ARM_V7A)/bin:$$PATH" |
| # arm-v7a-hard |
| TOOLCHAIN_ARM_V7A_HARD_ENV = \ |
| ANDROID_DEV="$(shell pwd)/$(TOOLCHAIN_ARM_V7A_HARD)/bin" \ |
| CC=$(TOOLCHAIN_ARM_V7A_HARD_PREFIX)-gcc \ |
| CXX=$(TOOLCHAIN_ARM_V7A_HARD_PREFIX)-g++ \ |
| LINK=$(TOOLCHAIN_ARM_V7A_HARD_PREFIX)-g++ \ |
| LD=$(TOOLCHAIN_ARM_V7A_HARD_PREFIX)-ld \ |
| AR=$(TOOLCHAIN_ARM_V7A_HARD_PREFIX)-ar \ |
| RANLIB=$(TOOLCHAIN_ARM_V7A_HARD_PREFIX)-ranlib \ |
| STRIP=$(TOOLCHAIN_ARM_V7A_HARD_PREFIX)-strip \ |
| ARCH_FLAGS="$(TOOLCHAIN_ARM_V7A_HARD_FLAGS)" \ |
| ARCH_LINK="$(TOOLCHAIN_ARM_V7A_HARD_LINK)" \ |
| CPPFLAGS="-I. $(TOOLCHAIN_ARM_V7A_HARD_FLAGS) -I$(TOOLCHAIN_ARM_V7A_HARD_PLATFORM_HEADERS) -fpic -ffunction-sections -funwind-tables -fstack-protector -fno-strict-aliasing -finline-limit=64" \ |
| CXXFLAGS="-I. $(TOOLCHAIN_ARM_V7A_HARD_FLAGS) -I$(TOOLCHAIN_ARM_V7A_HARD_PLATFORM_HEADERS) -fpic -ffunction-sections -funwind-tables -fstack-protector -fno-strict-aliasing -finline-limit=64 -frtti -fexceptions" \ |
| CFLAGS="-I. $(TOOLCHAIN_ARM_V7A_HARD_FLAGS) -I$(TOOLCHAIN_ARM_V7A_HARD_PLATFORM_HEADERS) -fpic -ffunction-sections -funwind-tables -fstack-protector -fno-strict-aliasing -finline-limit=64" \ |
| LDFLAGS="$(TOOLCHAIN_ARM_V7A_HARD_LINK)" \ |
| PATH="$(shell pwd)/$(TOOLCHAIN_ARM_V7A_HARD)/bin:$$PATH" |
| # arm64-v8a |
| TOOLCHAIN_ARM64_V8A_ENV = \ |
| ANDROID_DEV="$(shell pwd)/$(TOOLCHAIN_ARM64_V8A)/bin" \ |
| CC=$(TOOLCHAIN_ARM64_V8A_PREFIX)-gcc \ |
| CXX=$(TOOLCHAIN_ARM64_V8A_PREFIX)-g++ \ |
| LINK=$(TOOLCHAIN_ARM64_V8A_PREFIX)-g++ \ |
| LD=$(TOOLCHAIN_ARM64_V8A_PREFIX)-ld \ |
| AR=$(TOOLCHAIN_ARM64_V8A_PREFIX)-ar \ |
| RANLIB=$(TOOLCHAIN_ARM64_V8A_PREFIX)-ranlib \ |
| STRIP=$(TOOLCHAIN_ARM64_V8A_PREFIX)-strip \ |
| ARCH_FLAGS="$(TOOLCHAIN_ARM64_V8A_FLAGS)" \ |
| ARCH_LINK="$(TOOLCHAIN_ARM64_V8A_LINK)" \ |
| CPPFLAGS="-I. $(TOOLCHAIN_ARM64_V8A_FLAGS) -I$(TOOLCHAIN_ARM64_V8A_PLATFORM_HEADERS) -fpic -ffunction-sections -funwind-tables -fstack-protector -fno-strict-aliasing -finline-limit=64" \ |
| CXXFLAGS="-I. $(TOOLCHAIN_ARM64_V8A_FLAGS) -I$(TOOLCHAIN_ARM64_V8A_PLATFORM_HEADERS) -fpic -ffunction-sections -funwind-tables -fstack-protector -fno-strict-aliasing -finline-limit=64 -frtti -fexceptions" \ |
| CFLAGS="-I. $(TOOLCHAIN_ARM64_V8A_FLAGS) -I$(TOOLCHAIN_ARM64_V8A_PLATFORM_HEADERS) -fpic -ffunction-sections -funwind-tables -fstack-protector -fno-strict-aliasing -finline-limit=64" \ |
| LDFLAGS="$(TOOLCHAIN_ARM64_V8A_LINK)" \ |
| PATH="$(shell pwd)/$(TOOLCHAIN_ARM64_V8A)/bin:$$PATH" |
| # mips |
| TOOLCHAIN_MIPS_ENV = \ |
| ANDROID_DEV="$(shell pwd)/$(TOOLCHAIN_MIPS)/bin" \ |
| CC=$(TOOLCHAIN_MIPS_PREFIX)-gcc \ |
| CXX=$(TOOLCHAIN_MIPS_PREFIX)-g++ \ |
| LINK=$(TOOLCHAIN_MIPS_PREFIX)-g++ \ |
| LD=$(TOOLCHAIN_MIPS_PREFIX)-ld \ |
| AR=$(TOOLCHAIN_MIPS_PREFIX)-ar \ |
| RANLIB=$(TOOLCHAIN_MIPS_PREFIX)-ranlib \ |
| STRIP=$(TOOLCHAIN_MIPS_PREFIX)-strip \ |
| ARCH_FLAGS="$(TOOLCHAIN_MIPS_FLAGS)" \ |
| ARCH_LINK="$(TOOLCHAIN_MIPS_LINK)" \ |
| CPPFLAGS="-I. $(TOOLCHAIN_MIPS_FLAGS) -I$(TOOLCHAIN_MIPS_PLATFORM_HEADERS) -fpic -ffunction-sections -funwind-tables -fstack-protector -fno-strict-aliasing -finline-limit=64" \ |
| CXXFLAGS="-I. $(TOOLCHAIN_MIPS_FLAGS) -I$(TOOLCHAIN_MIPS_PLATFORM_HEADERS) -fpic -ffunction-sections -funwind-tables -fstack-protector -fno-strict-aliasing -finline-limit=64 -frtti -fexceptions" \ |
| CFLAGS="-I. $(TOOLCHAIN_MIPS_FLAGS) -I$(TOOLCHAIN_MIPS_PLATFORM_HEADERS) -fpic -ffunction-sections -funwind-tables -fstack-protector -fno-strict-aliasing -finline-limit=64" \ |
| LDFLAGS="$(TOOLCHAIN_MIPS_LINK)" \ |
| PATH="$(shell pwd)/$(TOOLCHAIN_MIPS)/bin:$$PATH" |
| # mips64 |
| TOOLCHAIN_MIPS64_ENV = \ |
| ANDROID_DEV="$(shell pwd)/$(TOOLCHAIN_MIPS64)/bin" \ |
| CC=$(TOOLCHAIN_MIPS64_PREFIX)-gcc \ |
| CXX=$(TOOLCHAIN_MIPS64_PREFIX)-g++ \ |
| LINK=$(TOOLCHAIN_MIPS64_PREFIX)-g++ \ |
| LD=$(TOOLCHAIN_MIPS64_PREFIX)-ld \ |
| AR=$(TOOLCHAIN_MIPS64_PREFIX)-ar \ |
| RANLIB=$(TOOLCHAIN_MIPS64_PREFIX)-ranlib \ |
| STRIP=$(TOOLCHAIN_MIPS64_PREFIX)-strip \ |
| ARCH_FLAGS="$(TOOLCHAIN_MIPS64_FLAGS)" \ |
| ARCH_LINK="$(TOOLCHAIN_MIPS64_LINK)" \ |
| CPPFLAGS="-I. $(TOOLCHAIN_MIPS64_FLAGS) -I$(TOOLCHAIN_MIPS64_PLATFORM_HEADERS) -fpic -ffunction-sections -funwind-tables -fstack-protector -fno-strict-aliasing -finline-limit=64" \ |
| CXXFLAGS="-I. $(TOOLCHAIN_MIPS64_FLAGS) -I$(TOOLCHAIN_MIPS64_PLATFORM_HEADERS) -fpic -ffunction-sections -funwind-tables -fstack-protector -fno-strict-aliasing -finline-limit=64 -frtti -fexceptions" \ |
| CFLAGS="-I. $(TOOLCHAIN_MIPS64_FLAGS) -I$(TOOLCHAIN_MIPS64_PLATFORM_HEADERS) -fpic -ffunction-sections -funwind-tables -fstack-protector -fno-strict-aliasing -finline-limit=64" \ |
| LDFLAGS="$(TOOLCHAIN_MIPS64_LINK)" \ |
| PATH="$(shell pwd)/$(TOOLCHAIN_MIPS64)/bin:$$PATH" |
| |
| # |
| # All the external tools we use in this Makefile |
| # |
| |
| AWK := awk |
| CD := cd |
| CMAKE := cmake |
| ECHO := echo |
| EGREP := egrep |
| GIT := git |
| LN := ln |
| MKDIR := mkdir |
| RM := rm |
| SORT := sort |
| TAR := tar |
| WGET := wget |
| |
| # |
| # End of user configurable options. |
| # |
| |
| .PHONY: \ |
| all \ |
| all-x86 \ |
| all-x86_64 \ |
| all-armeabi \ |
| all-armeabi-v7a \ |
| all-armeabi-v7a-hard \ |
| all-arm64-v8a \ |
| all-mips \ |
| all-mips64 \ |
| common \ |
| sources \ |
| toolchains \ |
| toolchain-x86 \ |
| toolchain-x86_64 \ |
| toolchain-armeabi \ |
| toolchain-armeabi-v7a \ |
| toolchain-armeabi-v7a-hard \ |
| toolchain-arm64-v8a \ |
| toolchain-mips \ |
| toolchain-mips64 \ |
| zlib \ |
| zlib-x86 \ |
| zlib-x86_64 \ |
| zlib-armeabi \ |
| zlib-armeabi-v7a \ |
| zlib-armeabi-v7a-hard \ |
| zlib-arm64-v8a \ |
| zlib-mips \ |
| zlib-mips64 \ |
| openssl \ |
| openssl-x86 \ |
| openssl-x86_64 \ |
| openssl-armeabi \ |
| openssl-armeabi-v7a \ |
| openssl-armeabi-v7a-hard \ |
| openssl-arm64-v8a \ |
| openssl-mips \ |
| openssl-mips64 \ |
| libwebsockets \ |
| libwebsockets-x86 \ |
| libwebsockets-x86_64 \ |
| libwebsockets-armeabi \ |
| libwebsockets-armeabi-v7a \ |
| libwebsockets-armeabi-v7a-hard \ |
| libwebsockets-arm64-v8a \ |
| libwebsockets-mips \ |
| libwebsockets-mips64 \ |
| clean-ndk \ |
| clean \ |
| dist-clean \ |
| clean-targets \ |
| clean-target-x86 \ |
| clean-target-x86_64 \ |
| clean-target-armeabi \ |
| clean-target-armeabi-v7a \ |
| clean-target-armeabi-v7a-hard \ |
| clean-target-arm64-v8a \ |
| clean-target-mips \ |
| clean-target-mips64 \ |
| clean-sources \ |
| clean-source-zlib \ |
| clean-source-openssl \ |
| clean-source-libwebsockets \ |
| clean-toolchains \ |
| clean-toolchain-x86 \ |
| clean-toolchain-x86_64 \ |
| clean-toolchain-armeabi \ |
| clean-toolchain-armeabi-v7a \ |
| clean-toolchain-armeabi-v7a-hard \ |
| clean-toolchain-arm64-v8a \ |
| clean-toolchain-mips \ |
| clean-toolchain-mips64 \ |
| list-targets |
| |
| # Default rule: build the libraries for all ABIs defined in NDK_APP_ABI then run ndk-build |
| all: $(NDK_APP_ABI) |
| $(NDK_ROOT)/ndk-build clean |
| $(NDK_ROOT)/ndk-build |
| |
| # Libraries may also be build per ABI |
| all-x86: $(TARGET_X86) |
| all-x86_64: $(TARGET_X86_64) |
| all-armeabi: $(TARGET_ARM) |
| all-armeabi-v7a: $(TARGET_ARM_V7A) |
| all-armeabi-v7a-hard: $(TARGET_ARM_V7A_HARD) |
| all-arm64-v8a: $(TARGET_ARM64_V8A) |
| all-mips: $(TARGET_MIPS) |
| all-mips64: $(TARGET_MIPS64) |
| |
| # Common rule all targets depend on |
| common: ../jniLibs |
| |
| # These rules are called from Android.mk when executing ndk-build |
| $(TARGET_X86): common zlib-x86 openssl-x86 libwebsockets-x86 |
| $(TARGET_X86_64): common zlib-x86_64 openssl-x86_64 libwebsockets-x86_64 |
| $(TARGET_ARM): common zlib-armeabi openssl-armeabi libwebsockets-armeabi |
| $(TARGET_ARM_V7A): common zlib-armeabi-v7a openssl-armeabi-v7a libwebsockets-armeabi-v7a |
| $(TARGET_ARM_V7A_HARD): common zlib-armeabi-v7a-hard openssl-armeabi-v7a-hard libwebsockets-armeabi-v7a-hard |
| $(TARGET_ARM64_V8A): common zlib-arm64-v8a openssl-arm64-v8a libwebsockets-arm64-v8a |
| $(TARGET_MIPS): common zlib-mips openssl-mips libwebsockets-mips |
| $(TARGET_MIPS64): common zlib-mips64 openssl-mips64 libwebsockets-mips64 |
| |
| # |
| # A rule to ensure ../jniLibs points to ../libs |
| # (ndk-build creates ../libs but Gradle looks for ../jniLibs) |
| # |
| |
| ../libs: |
| $(MKDIR) ../libs |
| |
| ../jniLibs: ../libs |
| $(CD) .. && $(LN) -s libs jniLibs |
| |
| # |
| # Some rules to download the sources |
| # |
| |
| sources: $(ZLIB_TGZ_SOURCE) $(OPENSSL_TGZ_SOURCE) $(LIBWEBSOCKETS_TGZ_SOURCE) |
| |
| $(ZLIB_TGZ_SOURCE): |
| $(WGET) -q $(ZLIB_TGZ_URL) |
| |
| $(OPENSSL_TGZ_SOURCE): |
| $(WGET) -q $(OPENSSL_TGZ_URL) |
| |
| $(LIBWEBSOCKETS_TGZ_SOURCE): |
| if [ -d $(LIBWEBSOCKETS_DIR) ]; then $(RM) -fr $(LIBWEBSOCKETS_DIR); fi |
| $(GIT) clone $(LIBWEBSOCKETS_GIT_URL) |
| $(TAR) caf $(LIBWEBSOCKETS_TGZ_SOURCE) $(LIBWEBSOCKETS_DIR) |
| $(RM) -fR $(LIBWEBSOCKETS_DIR) |
| |
| # |
| # Some rules to install the required toolchains |
| # |
| |
| toolchains: \ |
| toolchain-x86 \ |
| toolchain-x86_64 \ |
| toolchain-armeabi \ |
| toolchain-armeabi-v7a \ |
| toolchain-armeabi-v7a-hard \ |
| toolchain-arm64-v8a \ |
| toolchain-mips \ |
| toolchain-mips64 |
| |
| toolchain-x86: $(TOOLCHAIN_X86) |
| toolchain-x86_64: $(TOOLCHAIN_X86_64) |
| toolchain-armeabi: $(TOOLCHAIN_ARM) |
| toolchain-armeabi-v7a: $(TOOLCHAIN_ARM_V7A) |
| toolchain-armeabi-v7a-hard: $(TOOLCHAIN_ARM_V7A_HARD) |
| toolchain-arm64-v8a: $(TOOLCHAIN_ARM64_V8A) |
| toolchain-mips: $(TOOLCHAIN_MIPS) |
| toolchain-mips64: $(TOOLCHAIN_MIPS64) |
| |
| $(TOOLCHAIN_X86): |
| ifneq ($(TOOLCHAIN_STL),) |
| $(NDK_MAKE_TOOLCHAIN) \ |
| --stl $(TOOLCHAIN_STL) \ |
| --api $(TOOLCHAIN_X86_API) \ |
| --arch x86 \ |
| --install-dir $(shell pwd)/$(TOOLCHAIN_X86) |
| else |
| $(NDK_MAKE_TOOLCHAIN) \ |
| --api $(TOOLCHAIN_X86_API) \ |
| --arch x86 \ |
| --install-dir $(shell pwd)/$(TOOLCHAIN_X86) |
| endif |
| |
| $(TOOLCHAIN_X86_64): |
| ifneq ($(TOOLCHAIN_STL),) |
| $(NDK_MAKE_TOOLCHAIN) \ |
| --stl $(TOOLCHAIN_STL) \ |
| --api $(TOOLCHAIN_X86_64_API) \ |
| --arch x86_64 \ |
| --install-dir $(shell pwd)/$(TOOLCHAIN_X86_64) |
| else |
| $(NDK_MAKE_TOOLCHAIN) \ |
| --api $(TOOLCHAIN_X86_64_API) \ |
| --arch x86_64 \ |
| --install-dir $(shell pwd)/$(TOOLCHAIN_X86_64) |
| endif |
| |
| $(TOOLCHAIN_ARM): |
| ifneq ($(TOOLCHAIN_STL),) |
| $(NDK_MAKE_TOOLCHAIN) \ |
| --stl $(TOOLCHAIN_STL) \ |
| --api $(TOOLCHAIN_ARM_API) \ |
| --arch arm \ |
| --install-dir $(shell pwd)/$(TOOLCHAIN_ARM) |
| else |
| $(NDK_MAKE_TOOLCHAIN) \ |
| --api $(TOOLCHAIN_ARM_API) \ |
| --arch arm \ |
| --install-dir $(shell pwd)/$(TOOLCHAIN_ARM) |
| endif |
| |
| $(TOOLCHAIN_ARM_V7A): |
| ifneq ($(TOOLCHAIN_STL),) |
| $(NDK_MAKE_TOOLCHAIN) \ |
| --stl $(TOOLCHAIN_STL) \ |
| --api $(TOOLCHAIN_ARM_V7A_API) \ |
| --arch arm \ |
| --install-dir $(shell pwd)/$(TOOLCHAIN_ARM_V7A) |
| else |
| $(NDK_MAKE_TOOLCHAIN) \ |
| --api $(TOOLCHAIN_ARM_V7A_API) \ |
| --arch arm \ |
| --install-dir $(shell pwd)/$(TOOLCHAIN_ARM_V7A) |
| endif |
| |
| $(TOOLCHAIN_ARM_V7A_HARD): |
| ifneq ($(TOOLCHAIN_STL),) |
| $(NDK_MAKE_TOOLCHAIN) \ |
| --stl $(TOOLCHAIN_STL) \ |
| --api $(TOOLCHAIN_ARM_V7A_HARD_API) \ |
| --arch arm \ |
| --install-dir $(shell pwd)/$(TOOLCHAIN_ARM_V7A_HARD) |
| else |
| $(NDK_MAKE_TOOLCHAIN) \ |
| --api $(TOOLCHAIN_ARM_V7A_HARD_API) \ |
| --arch arm \ |
| --install-dir $(shell pwd)/$(TOOLCHAIN_ARM_V7A_HARD) |
| endif |
| |
| $(TOOLCHAIN_ARM64_V8A): |
| ifneq ($(TOOLCHAIN_STL),) |
| $(NDK_MAKE_TOOLCHAIN) \ |
| --stl $(TOOLCHAIN_STL) \ |
| --api $(TOOLCHAIN_ARM64_V8A_API) \ |
| --arch arm64 \ |
| --install-dir $(shell pwd)/$(TOOLCHAIN_ARM64_V8A) |
| else |
| $(NDK_MAKE_TOOLCHAIN) \ |
| --api $(TOOLCHAIN_ARM64_V8A_API) \ |
| --arch arm64 \ |
| --install-dir $(shell pwd)/$(TOOLCHAIN_ARM64_V8A) |
| endif |
| |
| $(TOOLCHAIN_MIPS): |
| ifneq ($(TOOLCHAIN_STL),) |
| $(NDK_MAKE_TOOLCHAIN) \ |
| --stl $(TOOLCHAIN_STL) \ |
| --api $(TOOLCHAIN_MIPS_API) \ |
| --arch mips \ |
| --install-dir $(shell pwd)/$(TOOLCHAIN_MIPS) |
| else |
| $(NDK_MAKE_TOOLCHAIN) \ |
| --api $(TOOLCHAIN_MIPS_API) \ |
| --arch mips \ |
| --install-dir $(shell pwd)/$(TOOLCHAIN_MIPS) |
| endif |
| |
| $(TOOLCHAIN_MIPS64): |
| ifneq ($(TOOLCHAIN_STL),) |
| $(NDK_MAKE_TOOLCHAIN) \ |
| --stl $(TOOLCHAIN_STL) \ |
| --api $(TOOLCHAIN_MIPS64_API) \ |
| --arch mips64 \ |
| --install-dir $(shell pwd)/$(TOOLCHAIN_MIPS64) |
| else |
| $(NDK_MAKE_TOOLCHAIN) \ |
| --api $(TOOLCHAIN_MIPS64_API) \ |
| --arch mips64 \ |
| --install-dir $(shell pwd)/$(TOOLCHAIN_MIPS64) |
| endif |
| |
| # |
| # Rules to build zlib |
| # |
| |
| zlib: \ |
| zlib-x86 \ |
| zlib-x86_64 \ |
| zlib-armeabi \ |
| zlib-armeabi-v7a \ |
| zlib-armeabi-v7a-hard \ |
| zlib-arm64-v8a \ |
| zlib-mips \ |
| zlib-mips64 |
| |
| zlib-x86: $(TARGET_X86)/lib/libz.a |
| zlib-x86_64: $(TARGET_X86_64)/lib/libz.a |
| zlib-armeabi: $(TARGET_ARM)/lib/libz.a |
| zlib-armeabi-v7a: $(TARGET_ARM_V7A)/lib/libz.a |
| zlib-armeabi-v7a-hard: $(TARGET_ARM_V7A_HARD)/lib/libz.a |
| zlib-arm64-v8a: $(TARGET_ARM64_V8A)/lib/libz.a |
| zlib-mips: $(TARGET_MIPS)/lib/libz.a |
| zlib-mips64: $(TARGET_MIPS64)/lib/libz.a |
| |
| # Extracting/configuring sources |
| |
| $(TARGET_X86)/src/$(ZLIB_DIR): $(ZLIB_TGZ_SOURCE) $(TOOLCHAIN_X86) |
| -$(MKDIR) -p $(TARGET_X86)/src |
| $(TAR) xf $(ZLIB_TGZ_SOURCE) -C $(TARGET_X86)/src |
| $(CD) $(TARGET_X86)/src/$(ZLIB_DIR) && $(TOOLCHAIN_X86_ENV) \ |
| ./configure --static --prefix=$(shell pwd)/$(TARGET_X86) |
| |
| $(TARGET_X86_64)/src/$(ZLIB_DIR): $(ZLIB_TGZ_SOURCE) $(TOOLCHAIN_X86_64) |
| -$(MKDIR) -p $(TARGET_X86_64)/src |
| $(TAR) xf $(ZLIB_TGZ_SOURCE) -C $(TARGET_X86_64)/src |
| $(CD) $(TARGET_X86_64)/src/$(ZLIB_DIR) && $(TOOLCHAIN_X86_64_ENV) \ |
| ./configure --static --prefix=$(shell pwd)/$(TARGET_X86_64) |
| |
| $(TARGET_ARM)/src/$(ZLIB_DIR): $(ZLIB_TGZ_SOURCE) $(TOOLCHAIN_ARM) |
| -$(MKDIR) -p $(TARGET_ARM)/src |
| $(TAR) xf $(ZLIB_TGZ_SOURCE) -C $(TARGET_ARM)/src |
| $(CD) $(TARGET_ARM)/src/$(ZLIB_DIR) && $(TOOLCHAIN_ARM_ENV) \ |
| ./configure --static --prefix=$(shell pwd)/$(TARGET_ARM) |
| |
| $(TARGET_ARM_V7A)/src/$(ZLIB_DIR): $(ZLIB_TGZ_SOURCE) $(TOOLCHAIN_ARM_V7A) |
| -$(MKDIR) -p $(TARGET_ARM_V7A)/src |
| $(TAR) xf $(ZLIB_TGZ_SOURCE) -C $(TARGET_ARM_V7A)/src |
| $(CD) $(TARGET_ARM_V7A)/src/$(ZLIB_DIR) && $(TOOLCHAIN_ARM_V7A_ENV) \ |
| ./configure --static --prefix=$(shell pwd)/$(TARGET_ARM_V7A) |
| |
| $(TARGET_ARM_V7A_HARD)/src/$(ZLIB_DIR): $(ZLIB_TGZ_SOURCE) $(TOOLCHAIN_ARM_V7A_HARD) |
| -$(MKDIR) -p $(TARGET_ARM_V7A_HARD)/src |
| $(TAR) xf $(ZLIB_TGZ_SOURCE) -C $(TARGET_ARM_V7A_HARD)/src |
| $(CD) $(TARGET_ARM_V7A_HARD)/src/$(ZLIB_DIR) && $(TOOLCHAIN_ARM_V7A_HARD_ENV) \ |
| ./configure --static --prefix=$(shell pwd)/$(TARGET_ARM_V7A_HARD) |
| |
| $(TARGET_ARM64_V8A)/src/$(ZLIB_DIR): $(ZLIB_TGZ_SOURCE) $(TOOLCHAIN_ARM64_V8A) |
| -$(MKDIR) -p $(TARGET_ARM64_V8A)/src |
| $(TAR) xf $(ZLIB_TGZ_SOURCE) -C $(TARGET_ARM64_V8A)/src |
| $(CD) $(TARGET_ARM64_V8A)/src/$(ZLIB_DIR) && $(TOOLCHAIN_ARM64_V8A_ENV) \ |
| ./configure --static --prefix=$(shell pwd)/$(TARGET_ARM64_V8A) |
| |
| $(TARGET_MIPS)/src/$(ZLIB_DIR): $(ZLIB_TGZ_SOURCE) $(TOOLCHAIN_MIPS) |
| -$(MKDIR) -p $(TARGET_MIPS)/src |
| $(TAR) xf $(ZLIB_TGZ_SOURCE) -C $(TARGET_MIPS)/src |
| $(CD) $(TARGET_MIPS)/src/$(ZLIB_DIR) && $(TOOLCHAIN_MIPS_ENV) \ |
| ./configure --static --prefix=$(shell pwd)/$(TARGET_MIPS) |
| |
| $(TARGET_MIPS64)/src/$(ZLIB_DIR): $(ZLIB_TGZ_SOURCE) $(TOOLCHAIN_MIPS64) |
| -$(MKDIR) -p $(TARGET_MIPS64)/src |
| $(TAR) xf $(ZLIB_TGZ_SOURCE) -C $(TARGET_MIPS64)/src |
| $(CD) $(TARGET_MIPS64)/src/$(ZLIB_DIR) && $(TOOLCHAIN_MIPS64_ENV) \ |
| ./configure --static --prefix=$(shell pwd)/$(TARGET_MIPS64) |
| |
| # Build/install library |
| |
| $(TARGET_X86)/lib/libz.a: $(TARGET_X86)/src/$(ZLIB_DIR) |
| $(CD) $(TARGET_X86)/src/$(ZLIB_DIR) && $(TOOLCHAIN_X86_ENV) $(MAKE) libz.a |
| $(CD) $(TARGET_X86)/src/$(ZLIB_DIR) && $(TOOLCHAIN_X86_ENV) $(MAKE) install |
| |
| $(TARGET_X86_64)/lib/libz.a: $(TARGET_X86_64)/src/$(ZLIB_DIR) |
| $(CD) $(TARGET_X86_64)/src/$(ZLIB_DIR) && $(TOOLCHAIN_X86_64_ENV) $(MAKE) libz.a |
| $(CD) $(TARGET_X86_64)/src/$(ZLIB_DIR) && $(TOOLCHAIN_X86_64_ENV) $(MAKE) install |
| |
| $(TARGET_ARM)/lib/libz.a: $(TARGET_ARM)/src/$(ZLIB_DIR) |
| $(CD) $(TARGET_ARM)/src/$(ZLIB_DIR) && $(TOOLCHAIN_ARM_ENV) $(MAKE) libz.a |
| $(CD) $(TARGET_ARM)/src/$(ZLIB_DIR) && $(TOOLCHAIN_ARM_ENV) $(MAKE) install |
| |
| $(TARGET_ARM_V7A)/lib/libz.a: $(TARGET_ARM_V7A)/src/$(ZLIB_DIR) |
| $(CD) $(TARGET_ARM_V7A)/src/$(ZLIB_DIR) && $(TOOLCHAIN_ARM_V7A_ENV) $(MAKE) libz.a |
| $(CD) $(TARGET_ARM_V7A)/src/$(ZLIB_DIR) && $(TOOLCHAIN_ARM_V7A_ENV) $(MAKE) install |
| |
| $(TARGET_ARM_V7A_HARD)/lib/libz.a: $(TARGET_ARM_V7A_HARD)/src/$(ZLIB_DIR) |
| $(CD) $(TARGET_ARM_V7A_HARD)/src/$(ZLIB_DIR) && $(TOOLCHAIN_ARM_V7A_HARD_ENV) $(MAKE) libz.a |
| $(CD) $(TARGET_ARM_V7A_HARD)/src/$(ZLIB_DIR) && $(TOOLCHAIN_ARM_V7A_HARD_ENV) $(MAKE) install |
| |
| $(TARGET_ARM64_V8A)/lib/libz.a: $(TARGET_ARM64_V8A)/src/$(ZLIB_DIR) |
| $(CD) $(TARGET_ARM64_V8A)/src/$(ZLIB_DIR) && $(TOOLCHAIN_ARM64_V8A_ENV) $(MAKE) libz.a |
| $(CD) $(TARGET_ARM64_V8A)/src/$(ZLIB_DIR) && $(TOOLCHAIN_ARM64_V8A_ENV) $(MAKE) install |
| |
| $(TARGET_MIPS)/lib/libz.a: $(TARGET_MIPS)/src/$(ZLIB_DIR) |
| $(CD) $(TARGET_MIPS)/src/$(ZLIB_DIR) && $(TOOLCHAIN_MIPS_ENV) $(MAKE) libz.a |
| $(CD) $(TARGET_MIPS)/src/$(ZLIB_DIR) && $(TOOLCHAIN_MIPS_ENV) $(MAKE) install |
| |
| $(TARGET_MIPS64)/lib/libz.a: $(TARGET_MIPS64)/src/$(ZLIB_DIR) |
| $(CD) $(TARGET_MIPS64)/src/$(ZLIB_DIR) && $(TOOLCHAIN_MIPS64_ENV) $(MAKE) libz.a |
| $(CD) $(TARGET_MIPS64)/src/$(ZLIB_DIR) && $(TOOLCHAIN_MIPS64_ENV) $(MAKE) install |
| |
| # |
| # Rules to build OpenSSL |
| # |
| |
| openssl: \ |
| openssl-x86 \ |
| openssl-x86_64 \ |
| openssl-armeabi \ |
| openssl-armeabi-v7a \ |
| openssl-armeabi-v7a-hard \ |
| openssl-arm64-v8a \ |
| openssl-mips \ |
| openssl-mips64 |
| |
| openssl-x86: $(TARGET_X86)/lib/libssl.a |
| openssl-x86_64: $(TARGET_X86_64)/lib/libssl.a |
| openssl-armeabi: $(TARGET_ARM)/lib/libssl.a |
| openssl-armeabi-v7a: $(TARGET_ARM_V7A)/lib/libssl.a |
| openssl-armeabi-v7a-hard: $(TARGET_ARM_V7A_HARD)/lib/libssl.a |
| openssl-arm64-v8a: $(TARGET_ARM64_V8A)/lib/libssl.a |
| openssl-mips: $(TARGET_MIPS)/lib/libssl.a |
| openssl-mips64: $(TARGET_MIPS64)/lib/libssl.a |
| |
| # Extracting/configuring sources |
| |
| $(TARGET_X86)/src/$(OPENSSL_DIR): $(OPENSSL_TGZ_SOURCE) $(TOOLCHAIN_X86) |
| -$(MKDIR) -p $(TARGET_X86)/src |
| $(TAR) xf $(OPENSSL_TGZ_SOURCE) -C $(TARGET_X86)/src |
| $(CD) $(TARGET_X86)/src/$(OPENSSL_DIR) && $(TOOLCHAIN_X86_ENV) \ |
| ./Configure $(TARGET_X86_OPENSSL_CONFIG_TARGET) \ |
| --prefix=$(shell pwd)/$(TARGET_X86) \ |
| --openssldir=$(shell pwd)/$(TARGET_X86)/lib/ssl \ |
| $(TARGET_X86_OPENSSL_CONFIG) |
| |
| $(TARGET_X86_64)/src/$(OPENSSL_DIR): $(OPENSSL_TGZ_SOURCE) $(TOOLCHAIN_X86_64) |
| -$(MKDIR) -p $(TARGET_X86_64)/src |
| $(TAR) xf $(OPENSSL_TGZ_SOURCE) -C $(TARGET_X86_64)/src |
| $(CD) $(TARGET_X86_64)/src/$(OPENSSL_DIR) && $(TOOLCHAIN_X86_64_ENV) \ |
| ./Configure $(TARGET_X86_64_OPENSSL_CONFIG_TARGET) \ |
| --prefix=$(shell pwd)/$(TARGET_X86_64) \ |
| --openssldir=$(shell pwd)/$(TARGET_X86_64)/lib/ssl \ |
| $(TARGET_X86_64_OPENSSL_CONFIG) |
| |
| $(TARGET_ARM)/src/$(OPENSSL_DIR): $(OPENSSL_TGZ_SOURCE) $(TOOLCHAIN_ARM) |
| -$(MKDIR) -p $(TARGET_ARM)/src |
| $(TAR) xf $(OPENSSL_TGZ_SOURCE) -C $(TARGET_ARM)/src |
| $(CD) $(TARGET_ARM)/src/$(OPENSSL_DIR) && $(TOOLCHAIN_ARM_ENV) \ |
| ./Configure $(TARGET_ARM_OPENSSL_CONFIG_TARGET) \ |
| --prefix=$(shell pwd)/$(TARGET_ARM) \ |
| --openssldir=$(shell pwd)/$(TARGET_ARM)/lib/ssl \ |
| $(TARGET_ARM_OPENSSL_CONFIG) |
| |
| $(TARGET_ARM_V7A)/src/$(OPENSSL_DIR): $(OPENSSL_TGZ_SOURCE) $(TOOLCHAIN_ARM_V7A) |
| -$(MKDIR) -p $(TARGET_ARM_V7A)/src |
| $(TAR) xf $(OPENSSL_TGZ_SOURCE) -C $(TARGET_ARM_V7A)/src |
| $(CD) $(TARGET_ARM_V7A)/src/$(OPENSSL_DIR) && $(TOOLCHAIN_ARM_V7A_ENV) \ |
| ./Configure $(TARGET_ARM_V7A_OPENSSL_CONFIG_TARGET) \ |
| --prefix=$(shell pwd)/$(TARGET_ARM_V7A) \ |
| --openssldir=$(shell pwd)/$(TARGET_ARM_V7A)/lib/ssl \ |
| $(TARGET_ARM_V7A_OPENSSL_CONFIG) |
| |
| $(TARGET_ARM_V7A_HARD)/src/$(OPENSSL_DIR): $(OPENSSL_TGZ_SOURCE) $(TOOLCHAIN_ARM_V7A_HARD) |
| -$(MKDIR) -p $(TARGET_ARM_V7A_HARD)/src |
| $(TAR) xf $(OPENSSL_TGZ_SOURCE) -C $(TARGET_ARM_V7A_HARD)/src |
| $(CD) $(TARGET_ARM_V7A_HARD)/src/$(OPENSSL_DIR) && $(TOOLCHAIN_ARM_V7A_HARD_ENV) \ |
| ./Configure $(TARGET_ARM_V7A_HARD_OPENSSL_CONFIG_TARGET) \ |
| --prefix=$(shell pwd)/$(TARGET_ARM_V7A_HARD) \ |
| --openssldir=$(shell pwd)/$(TARGET_ARM_V7A_HARD)/lib/ssl \ |
| $(TARGET_ARM_V7A_HARD_OPENSSL_CONFIG) |
| |
| $(TARGET_ARM64_V8A)/src/$(OPENSSL_DIR): $(OPENSSL_TGZ_SOURCE) $(TOOLCHAIN_ARM64_V8A) |
| -$(MKDIR) -p $(TARGET_ARM64_V8A)/src |
| $(TAR) xf $(OPENSSL_TGZ_SOURCE) -C $(TARGET_ARM64_V8A)/src |
| $(CD) $(TARGET_ARM64_V8A)/src/$(OPENSSL_DIR) && $(TOOLCHAIN_ARM64_V8A_ENV) \ |
| ./Configure $(TARGET_ARM64_V8A_OPENSSL_CONFIG_TARGET) \ |
| --prefix=$(shell pwd)/$(TARGET_ARM64_V8A) \ |
| --openssldir=$(shell pwd)/$(TARGET_ARM64_V8A)/lib/ssl \ |
| $(TARGET_ARM64_V8A_OPENSSL_CONFIG) |
| |
| $(TARGET_MIPS)/src/$(OPENSSL_DIR): $(OPENSSL_TGZ_SOURCE) $(TOOLCHAIN_MIPS) |
| -$(MKDIR) -p $(TARGET_MIPS)/src |
| $(TAR) xf $(OPENSSL_TGZ_SOURCE) -C $(TARGET_MIPS)/src |
| $(CD) $(TARGET_MIPS)/src/$(OPENSSL_DIR) && $(TOOLCHAIN_MIPS_ENV) \ |
| ./Configure $(TARGET_MIPS_OPENSSL_CONFIG_TARGET) \ |
| --prefix=$(shell pwd)/$(TARGET_MIPS) \ |
| --openssldir=$(shell pwd)/$(TARGET_MIPS)/lib/ssl \ |
| $(TARGET_MIPS_OPENSSL_CONFIG) |
| |
| $(TARGET_MIPS64)/src/$(OPENSSL_DIR): $(OPENSSL_TGZ_SOURCE) $(TOOLCHAIN_MIPS64) |
| -$(MKDIR) -p $(TARGET_MIPS64)/src |
| $(TAR) xf $(OPENSSL_TGZ_SOURCE) -C $(TARGET_MIPS64)/src |
| $(CD) $(TARGET_MIPS64)/src/$(OPENSSL_DIR) && $(TOOLCHAIN_MIPS64_ENV) \ |
| ./Configure $(TARGET_MIPS64_OPENSSL_CONFIG_TARGET) \ |
| --prefix=$(shell pwd)/$(TARGET_MIPS64) \ |
| --openssldir=$(shell pwd)/$(TARGET_MIPS64)/lib/ssl \ |
| $(TARGET_MIPS64_OPENSSL_CONFIG) |
| |
| # Build/install library |
| |
| $(TARGET_X86)/lib/libssl.a: $(TARGET_X86)/src/$(OPENSSL_DIR) |
| $(CD) $(TARGET_X86)/src/$(OPENSSL_DIR) && $(TOOLCHAIN_X86_ENV) $(MAKE) depend |
| $(CD) $(TARGET_X86)/src/$(OPENSSL_DIR) && $(TOOLCHAIN_X86_ENV) $(MAKE) build_libs |
| $(CD) $(TARGET_X86)/src/$(OPENSSL_DIR) && $(ECHO) '#!/bin/sh\n\nfalse\n' > apps/openssl |
| $(CD) $(TARGET_X86)/src/$(OPENSSL_DIR) && $(TOOLCHAIN_X86_ENV) $(MAKE) install_sw |
| |
| $(TARGET_X86_64)/lib/libssl.a: $(TARGET_X86_64)/src/$(OPENSSL_DIR) |
| $(CD) $(TARGET_X86_64)/src/$(OPENSSL_DIR) && $(TOOLCHAIN_X86_64_ENV) $(MAKE) depend |
| $(CD) $(TARGET_X86_64)/src/$(OPENSSL_DIR) && $(TOOLCHAIN_X86_64_ENV) $(MAKE) build_libs |
| $(CD) $(TARGET_X86_64)/src/$(OPENSSL_DIR) && $(ECHO) '#!/bin/sh\n\nfalse\n' > apps/openssl |
| $(CD) $(TARGET_X86_64)/src/$(OPENSSL_DIR) && $(TOOLCHAIN_X86_64_ENV) $(MAKE) install_sw |
| |
| $(TARGET_ARM)/lib/libssl.a: $(TARGET_ARM)/src/$(OPENSSL_DIR) |
| $(CD) $(TARGET_ARM)/src/$(OPENSSL_DIR) && $(TOOLCHAIN_ARM_ENV) $(MAKE) depend |
| $(CD) $(TARGET_ARM)/src/$(OPENSSL_DIR) && $(TOOLCHAIN_ARM_ENV) $(MAKE) build_libs |
| $(CD) $(TARGET_ARM)/src/$(OPENSSL_DIR) && $(ECHO) '#!/bin/sh\n\nfalse\n' > apps/openssl |
| $(CD) $(TARGET_ARM)/src/$(OPENSSL_DIR) && $(TOOLCHAIN_ARM_ENV) $(MAKE) install_sw |
| |
| $(TARGET_ARM_V7A)/lib/libssl.a: $(TARGET_ARM_V7A)/src/$(OPENSSL_DIR) |
| $(CD) $(TARGET_ARM_V7A)/src/$(OPENSSL_DIR) && $(TOOLCHAIN_ARM_V7A_ENV) $(MAKE) depend |
| $(CD) $(TARGET_ARM_V7A)/src/$(OPENSSL_DIR) && $(TOOLCHAIN_ARM_V7A_ENV) $(MAKE) build_libs |
| $(CD) $(TARGET_ARM_V7A)/src/$(OPENSSL_DIR) && $(ECHO) '#!/bin/sh\n\nfalse\n' > apps/openssl |
| $(CD) $(TARGET_ARM_V7A)/src/$(OPENSSL_DIR) && $(TOOLCHAIN_ARM_V7A_ENV) $(MAKE) install_sw |
| |
| $(TARGET_ARM_V7A_HARD)/lib/libssl.a: $(TARGET_ARM_V7A_HARD)/src/$(OPENSSL_DIR) |
| $(CD) $(TARGET_ARM_V7A_HARD)/src/$(OPENSSL_DIR) && $(TOOLCHAIN_ARM_V7A_HARD_ENV) $(MAKE) depend |
| $(CD) $(TARGET_ARM_V7A_HARD)/src/$(OPENSSL_DIR) && $(TOOLCHAIN_ARM_V7A_HARD_ENV) $(MAKE) build_libs |
| $(CD) $(TARGET_ARM_V7A_HARD)/src/$(OPENSSL_DIR) && $(ECHO) '#!/bin/sh\n\nfalse\n' > apps/openssl |
| $(CD) $(TARGET_ARM_V7A_HARD)/src/$(OPENSSL_DIR) && $(TOOLCHAIN_ARM_V7A_HARD_ENV) $(MAKE) install_sw |
| |
| $(TARGET_ARM64_V8A)/lib/libssl.a: $(TARGET_ARM64_V8A)/src/$(OPENSSL_DIR) |
| $(CD) $(TARGET_ARM64_V8A)/src/$(OPENSSL_DIR) && $(TOOLCHAIN_ARM64_V8A_ENV) $(MAKE) depend |
| $(CD) $(TARGET_ARM64_V8A)/src/$(OPENSSL_DIR) && $(TOOLCHAIN_ARM64_V8A_ENV) $(MAKE) build_libs |
| $(CD) $(TARGET_ARM64_V8A)/src/$(OPENSSL_DIR) && $(ECHO) '#!/bin/sh\n\nfalse\n' > apps/openssl |
| $(CD) $(TARGET_ARM64_V8A)/src/$(OPENSSL_DIR) && $(TOOLCHAIN_ARM64_V8A_ENV) $(MAKE) install_sw |
| |
| $(TARGET_MIPS)/lib/libssl.a: $(TARGET_MIPS)/src/$(OPENSSL_DIR) |
| $(CD) $(TARGET_MIPS)/src/$(OPENSSL_DIR) && $(TOOLCHAIN_MIPS_ENV) $(MAKE) depend |
| $(CD) $(TARGET_MIPS)/src/$(OPENSSL_DIR) && $(TOOLCHAIN_MIPS_ENV) $(MAKE) build_libs |
| $(CD) $(TARGET_MIPS)/src/$(OPENSSL_DIR) && $(ECHO) '#!/bin/sh\n\nfalse\n' > apps/openssl |
| $(CD) $(TARGET_MIPS)/src/$(OPENSSL_DIR) && $(TOOLCHAIN_MIPS_ENV) $(MAKE) install_sw |
| |
| $(TARGET_MIPS64)/lib/libssl.a: $(TARGET_MIPS64)/src/$(OPENSSL_DIR) |
| $(CD) $(TARGET_MIPS64)/src/$(OPENSSL_DIR) && $(TOOLCHAIN_MIPS64_ENV) $(MAKE) depend |
| $(CD) $(TARGET_MIPS64)/src/$(OPENSSL_DIR) && $(TOOLCHAIN_MIPS64_ENV) $(MAKE) build_libs |
| $(CD) $(TARGET_MIPS64)/src/$(OPENSSL_DIR) && $(ECHO) '#!/bin/sh\n\nfalse\n' > apps/openssl |
| $(CD) $(TARGET_MIPS64)/src/$(OPENSSL_DIR) && $(TOOLCHAIN_MIPS64_ENV) $(MAKE) install_sw |
| |
| # |
| # Rules to build libwebsockets |
| # |
| |
| libwebsockets: \ |
| libwebsockets-x86 \ |
| libwebsockets-x86_64 \ |
| libwebsockets-armeabi \ |
| libwebsockets-armeabi-v7a \ |
| libwebsockets-armeabi-v7a-hard \ |
| libwebsockets-arm64-v8a \ |
| libwebsockets-mips \ |
| libwebsockets-mips64 \ |
| |
| libwebsockets-x86: $(TARGET_X86)/lib/libwebsockets.a |
| libwebsockets-x86_64: $(TARGET_X86_64)/lib/libwebsockets.a |
| libwebsockets-armeabi: $(TARGET_ARM)/lib/libwebsockets.a |
| libwebsockets-armeabi-v7a: $(TARGET_ARM_V7A)/lib/libwebsockets.a |
| libwebsockets-armeabi-v7a-hard: $(TARGET_ARM_V7A_HARD)/lib/libwebsockets.a |
| libwebsockets-arm64-v8a: $(TARGET_ARM64_V8A)/lib/libwebsockets.a |
| libwebsockets-mips: $(TARGET_MIPS)/lib/libwebsockets.a |
| libwebsockets-mips64: $(TARGET_MIPS64)/lib/libwebsockets.a |
| |
| # Extracting/configuring sources |
| |
| $(TARGET_X86)/src/$(LIBWEBSOCKETS_DIR): $(LIBWEBSOCKETS_TGZ_SOURCE) $(TOOLCHAIN_X86) $(TARGET_X86)/lib/libssl.a $(TARGET_X86)/lib/libz.a |
| -$(MKDIR) -p $(TARGET_X86)/src |
| $(TAR) xf $(LIBWEBSOCKETS_TGZ_SOURCE) -C $(TARGET_X86)/src |
| -$(MKDIR) -p $(TARGET_X86)/src/$(LIBWEBSOCKETS_DIR)/build |
| $(CD) $(TARGET_X86)/src/$(LIBWEBSOCKETS_DIR)/build && $(TOOLCHAIN_X86_ENV) \ |
| $(CMAKE) $(TARGET_X86_LWS_OPTIONS) \ |
| -DCMAKE_INSTALL_PREFIX=$(shell pwd)/$(TARGET_X86) \ |
| -DLWS_OPENSSL_LIBRARIES="$(shell pwd)/$(TARGET_X86)/lib/libssl.a;$(shell pwd)/$(TARGET_X86)/lib/libcrypto.a" \ |
| -DLWS_OPENSSL_INCLUDE_DIRS="$(shell pwd)/$(TARGET_X86)/include" \ |
| .. |
| |
| $(TARGET_X86_64)/src/$(LIBWEBSOCKETS_DIR): $(LIBWEBSOCKETS_TGZ_SOURCE) $(TOOLCHAIN_X86_64) $(TARGET_X86_64)/lib/libssl.a $(TARGET_X86_64)/lib/libz.a |
| -$(MKDIR) -p $(TARGET_X86_64)/src |
| $(TAR) xf $(LIBWEBSOCKETS_TGZ_SOURCE) -C $(TARGET_X86_64)/src |
| -$(MKDIR) -p $(TARGET_X86_64)/src/$(LIBWEBSOCKETS_DIR)/build |
| $(CD) $(TARGET_X86_64)/src/$(LIBWEBSOCKETS_DIR)/build && $(TOOLCHAIN_X86_64_ENV) \ |
| $(CMAKE) $(TARGET_X86_64_LWS_OPTIONS) \ |
| -DCMAKE_INSTALL_PREFIX=$(shell pwd)/$(TARGET_X86_64) \ |
| -DLWS_OPENSSL_LIBRARIES="$(shell pwd)/$(TARGET_X86_64)/lib/libssl.a;$(shell pwd)/$(TARGET_X86_64)/lib/libcrypto.a" \ |
| -DLWS_OPENSSL_INCLUDE_DIRS="$(shell pwd)/$(TARGET_X86_64)/include" \ |
| .. |
| |
| $(TARGET_ARM)/src/$(LIBWEBSOCKETS_DIR): $(LIBWEBSOCKETS_TGZ_SOURCE) $(TOOLCHAIN_ARM) $(TARGET_ARM)/lib/libssl.a $(TARGET_ARM)/lib/libz.a |
| -$(MKDIR) -p $(TARGET_ARM)/src |
| $(TAR) xf $(LIBWEBSOCKETS_TGZ_SOURCE) -C $(TARGET_ARM)/src |
| -$(MKDIR) -p $(TARGET_ARM)/src/$(LIBWEBSOCKETS_DIR)/build |
| $(CD) $(TARGET_ARM)/src/$(LIBWEBSOCKETS_DIR)/build && $(TOOLCHAIN_ARM_ENV) \ |
| $(CMAKE) $(TARGET_ARM_LWS_OPTIONS) \ |
| -DCMAKE_INSTALL_PREFIX=$(shell pwd)/$(TARGET_ARM) \ |
| -DLWS_OPENSSL_LIBRARIES="$(shell pwd)/$(TARGET_ARM)/lib/libssl.a;$(shell pwd)/$(TARGET_ARM)/lib/libcrypto.a" \ |
| -DLWS_OPENSSL_INCLUDE_DIRS="$(shell pwd)/$(TARGET_ARM)/include" \ |
| .. |
| |
| $(TARGET_ARM_V7A)/src/$(LIBWEBSOCKETS_DIR): $(LIBWEBSOCKETS_TGZ_SOURCE) $(TOOLCHAIN_ARM_V7A) $(TARGET_ARM_V7A)/lib/libssl.a $(TARGET_ARM_V7A)/lib/libz.a |
| -$(MKDIR) -p $(TARGET_ARM_V7A)/src |
| $(TAR) xf $(LIBWEBSOCKETS_TGZ_SOURCE) -C $(TARGET_ARM_V7A)/src |
| -$(MKDIR) -p $(TARGET_ARM_V7A)/src/$(LIBWEBSOCKETS_DIR)/build |
| $(CD) $(TARGET_ARM_V7A)/src/$(LIBWEBSOCKETS_DIR)/build && $(TOOLCHAIN_ARM_V7A_ENV) \ |
| $(CMAKE) $(TARGET_ARM_V7A_LWS_OPTIONS) \ |
| -DCMAKE_INSTALL_PREFIX=$(shell pwd)/$(TARGET_ARM_V7A) \ |
| -DLWS_OPENSSL_LIBRARIES="$(shell pwd)/$(TARGET_ARM_V7A)/lib/libssl.a;$(shell pwd)/$(TARGET_ARM_V7A)/lib/libcrypto.a" \ |
| -DLWS_OPENSSL_INCLUDE_DIRS="$(shell pwd)/$(TARGET_ARM_V7A)/include" \ |
| .. |
| |
| $(TARGET_ARM_V7A_HARD)/src/$(LIBWEBSOCKETS_DIR): $(LIBWEBSOCKETS_TGZ_SOURCE) $(TOOLCHAIN_ARM_V7A_HARD) $(TARGET_ARM_V7A_HARD)/lib/libssl.a $(TARGET_ARM_V7A_HARD)/lib/libz.a |
| -$(MKDIR) -p $(TARGET_ARM_V7A_HARD)/src |
| $(TAR) xf $(LIBWEBSOCKETS_TGZ_SOURCE) -C $(TARGET_ARM_V7A_HARD)/src |
| -$(MKDIR) -p $(TARGET_ARM_V7A_HARD)/src/$(LIBWEBSOCKETS_DIR)/build |
| $(CD) $(TARGET_ARM_V7A_HARD)/src/$(LIBWEBSOCKETS_DIR)/build && $(TOOLCHAIN_ARM_V7A_HARD_ENV) \ |
| $(CMAKE) $(TARGET_ARM_V7A_HARD_LWS_OPTIONS) \ |
| -DCMAKE_INSTALL_PREFIX=$(shell pwd)/$(TARGET_ARM_V7A_HARD) \ |
| -DLWS_OPENSSL_LIBRARIES="$(shell pwd)/$(TARGET_ARM_V7A_HARD)/lib/libssl.a;$(shell pwd)/$(TARGET_ARM_V7A_HARD)/lib/libcrypto.a" \ |
| -DLWS_OPENSSL_INCLUDE_DIRS="$(shell pwd)/$(TARGET_ARM_V7A_HARD)/include" \ |
| .. |
| |
| $(TARGET_ARM64_V8A)/src/$(LIBWEBSOCKETS_DIR): $(LIBWEBSOCKETS_TGZ_SOURCE) $(TOOLCHAIN_ARM64_V8A) $(TARGET_ARM64_V8A)/lib/libssl.a $(TARGET_ARM64_V8A)/lib/libz.a |
| -$(MKDIR) -p $(TARGET_ARM64_V8A)/src |
| $(TAR) xf $(LIBWEBSOCKETS_TGZ_SOURCE) -C $(TARGET_ARM64_V8A)/src |
| -$(MKDIR) -p $(TARGET_ARM64_V8A)/src/$(LIBWEBSOCKETS_DIR)/build |
| $(CD) $(TARGET_ARM64_V8A)/src/$(LIBWEBSOCKETS_DIR)/build && $(TOOLCHAIN_ARM64_V8A_ENV) \ |
| $(CMAKE) $(TARGET_ARM64_V8A_LWS_OPTIONS) \ |
| -DCMAKE_INSTALL_PREFIX=$(shell pwd)/$(TARGET_ARM64_V8A) \ |
| -DLWS_OPENSSL_LIBRARIES="$(shell pwd)/$(TARGET_ARM64_V8A)/lib/libssl.a;$(shell pwd)/$(TARGET_ARM64_V8A)/lib/libcrypto.a" \ |
| -DLWS_OPENSSL_INCLUDE_DIRS="$(shell pwd)/$(TARGET_ARM64_V8A)/include" \ |
| .. |
| |
| $(TARGET_MIPS)/src/$(LIBWEBSOCKETS_DIR): $(LIBWEBSOCKETS_TGZ_SOURCE) $(TOOLCHAIN_MIPS) $(TARGET_MIPS)/lib/libssl.a $(TARGET_MIPS)/lib/libz.a |
| -$(MKDIR) -p $(TARGET_MIPS)/src |
| $(TAR) xf $(LIBWEBSOCKETS_TGZ_SOURCE) -C $(TARGET_MIPS)/src |
| -$(MKDIR) -p $(TARGET_MIPS)/src/$(LIBWEBSOCKETS_DIR)/build |
| $(CD) $(TARGET_MIPS)/src/$(LIBWEBSOCKETS_DIR)/build && $(TOOLCHAIN_MIPS_ENV) \ |
| $(CMAKE) $(TARGET_MIPS_LWS_OPTIONS) \ |
| -DCMAKE_INSTALL_PREFIX=$(shell pwd)/$(TARGET_MIPS) \ |
| -DLWS_OPENSSL_LIBRARIES="$(shell pwd)/$(TARGET_MIPS)/lib/libssl.a;$(shell pwd)/$(TARGET_MIPS)/lib/libcrypto.a" \ |
| -DLWS_OPENSSL_INCLUDE_DIRS="$(shell pwd)/$(TARGET_MIPS)/include" \ |
| .. |
| |
| $(TARGET_MIPS64)/src/$(LIBWEBSOCKETS_DIR): $(LIBWEBSOCKETS_TGZ_SOURCE) $(TOOLCHAIN_MIPS64) $(TARGET_MIPS64)/lib/libssl.a $(TARGET_MIPS64)/lib/libz.a |
| -$(MKDIR) -p $(TARGET_MIPS64)/src |
| $(TAR) xf $(LIBWEBSOCKETS_TGZ_SOURCE) -C $(TARGET_MIPS64)/src |
| -$(MKDIR) -p $(TARGET_MIPS64)/src/$(LIBWEBSOCKETS_DIR)/build |
| $(CD) $(TARGET_MIPS64)/src/$(LIBWEBSOCKETS_DIR)/build && $(TOOLCHAIN_MIPS64_ENV) \ |
| $(CMAKE) $(TARGET_MIPS64_LWS_OPTIONS) \ |
| -DCMAKE_INSTALL_PREFIX=$(shell pwd)/$(TARGET_MIPS64) \ |
| -DLWS_OPENSSL_LIBRARIES="$(shell pwd)/$(TARGET_MIPS64)/lib/libssl.a;$(shell pwd)/$(TARGET_MIPS64)/lib/libcrypto.a" \ |
| -DLWS_OPENSSL_INCLUDE_DIRS="$(shell pwd)/$(TARGET_MIPS64)/include" \ |
| .. |
| |
| # Build/install library |
| |
| $(TARGET_X86)/lib/libwebsockets.a: $(TARGET_X86)/src/$(LIBWEBSOCKETS_DIR) |
| $(CD) $(TARGET_X86)/src/$(LIBWEBSOCKETS_DIR)/build && $(TOOLCHAIN_X86_ENV) $(MAKE) |
| $(CD) $(TARGET_X86)/src/$(LIBWEBSOCKETS_DIR)/build && $(TOOLCHAIN_X86_ENV) $(MAKE) install |
| |
| $(TARGET_X86_64)/lib/libwebsockets.a: $(TARGET_X86_64)/src/$(LIBWEBSOCKETS_DIR) |
| $(CD) $(TARGET_X86_64)/src/$(LIBWEBSOCKETS_DIR)/build && $(TOOLCHAIN_X86_64_ENV) $(MAKE) |
| $(CD) $(TARGET_X86_64)/src/$(LIBWEBSOCKETS_DIR)/build && $(TOOLCHAIN_X86_64_ENV) $(MAKE) install |
| |
| $(TARGET_ARM)/lib/libwebsockets.a: $(TARGET_ARM)/src/$(LIBWEBSOCKETS_DIR) |
| $(CD) $(TARGET_ARM)/src/$(LIBWEBSOCKETS_DIR)/build && $(TOOLCHAIN_ARM_ENV) $(MAKE) |
| $(CD) $(TARGET_ARM)/src/$(LIBWEBSOCKETS_DIR)/build && $(TOOLCHAIN_ARM_ENV) $(MAKE) install |
| |
| $(TARGET_ARM_V7A)/lib/libwebsockets.a: $(TARGET_ARM_V7A)/src/$(LIBWEBSOCKETS_DIR) |
| $(CD) $(TARGET_ARM_V7A)/src/$(LIBWEBSOCKETS_DIR)/build && $(TOOLCHAIN_ARM_V7A_ENV) $(MAKE) |
| $(CD) $(TARGET_ARM_V7A)/src/$(LIBWEBSOCKETS_DIR)/build && $(TOOLCHAIN_ARM_V7A_ENV) $(MAKE) install |
| |
| $(TARGET_ARM_V7A_HARD)/lib/libwebsockets.a: $(TARGET_ARM_V7A_HARD)/src/$(LIBWEBSOCKETS_DIR) |
| $(CD) $(TARGET_ARM_V7A_HARD)/src/$(LIBWEBSOCKETS_DIR)/build && $(TOOLCHAIN_ARM_V7A_HARD_ENV) $(MAKE) |
| $(CD) $(TARGET_ARM_V7A_HARD)/src/$(LIBWEBSOCKETS_DIR)/build && $(TOOLCHAIN_ARM_V7A_HARD_ENV) $(MAKE) install |
| |
| $(TARGET_ARM64_V8A)/lib/libwebsockets.a: $(TARGET_ARM64_V8A)/src/$(LIBWEBSOCKETS_DIR) |
| $(CD) $(TARGET_ARM64_V8A)/src/$(LIBWEBSOCKETS_DIR)/build && $(TOOLCHAIN_ARM64_V8A_ENV) $(MAKE) |
| $(CD) $(TARGET_ARM64_V8A)/src/$(LIBWEBSOCKETS_DIR)/build && $(TOOLCHAIN_ARM64_V8A_ENV) $(MAKE) install |
| |
| $(TARGET_MIPS)/lib/libwebsockets.a: $(TARGET_MIPS)/src/$(LIBWEBSOCKETS_DIR) |
| $(CD) $(TARGET_MIPS)/src/$(LIBWEBSOCKETS_DIR)/build && $(TOOLCHAIN_MIPS_ENV) $(MAKE) |
| $(CD) $(TARGET_MIPS)/src/$(LIBWEBSOCKETS_DIR)/build && $(TOOLCHAIN_MIPS_ENV) $(MAKE) install |
| |
| $(TARGET_MIPS64)/lib/libwebsockets.a: $(TARGET_MIPS64)/src/$(LIBWEBSOCKETS_DIR) |
| $(CD) $(TARGET_MIPS64)/src/$(LIBWEBSOCKETS_DIR)/build && $(TOOLCHAIN_MIPS64_ENV) $(MAKE) |
| $(CD) $(TARGET_MIPS64)/src/$(LIBWEBSOCKETS_DIR)/build && $(TOOLCHAIN_MIPS64_ENV) $(MAKE) install |
| |
| # |
| # Some rules for housekeeping |
| # |
| |
| clean-ndk: |
| $(NDK_ROOT)/ndk-build clean |
| |
| clean: clean-targets clean-toolchains |
| |
| dist-clean: clean clean-sources |
| |
| clean-targets: \ |
| clean-target-x86 \ |
| clean-target-x86_64 \ |
| clean-target-armeabi \ |
| clean-target-armeabi-v7a \ |
| clean-target-armeabi-v7a-hard \ |
| clean-target-arm64-v8a \ |
| clean-target-mips \ |
| clean-target-mips64 |
| |
| clean-target-x86: |
| -$(RM) -fr $(TARGET_X86) |
| |
| clean-target-x86_64: |
| -$(RM) -fr $(TARGET_X86_64) |
| |
| clean-target-armeabi: |
| -$(RM) -fr $(TARGET_ARM) |
| |
| clean-target-armeabi-v7a: |
| -$(RM) -fr $(TARGET_ARM_V7A) |
| |
| clean-target-armeabi-v7a-hard: |
| -$(RM) -fr $(TARGET_ARM_V7A_HARD) |
| |
| clean-target-arm64-v8a: |
| -$(RM) -fr $(TARGET_ARM64_V8A) |
| |
| clean-target-mips: |
| -$(RM) -fr $(TARGET_MIPS) |
| |
| clean-target-mips64: |
| -$(RM) -fr $(TARGET_MIPS64) |
| |
| clean-sources: \ |
| clean-source-zlib \ |
| clean-source-openssl \ |
| clean-source-libwebsockets |
| |
| clean-source-zlib: |
| -$(RM) $(ZLIB_TGZ_SOURCE) |
| |
| clean-source-openssl: |
| -$(RM) $(OPENSSL_TGZ_SOURCE) |
| |
| clean-source-libwebsockets: |
| -$(RM) $(LIBWEBSOCKETS_TGZ_SOURCE) |
| |
| clean-toolchains: \ |
| clean-toolchain-x86 \ |
| clean-toolchain-x86_64 \ |
| clean-toolchain-armeabi \ |
| clean-toolchain-armeabi-v7a \ |
| clean-toolchain-armeabi-v7a-hard \ |
| clean-toolchain-arm64-v8a \ |
| clean-toolchain-mips \ |
| clean-toolchain-mips64 |
| -$(RM) -fr toolchains |
| |
| clean-toolchain-x86: |
| -$(RM) -fr $(TOOLCHAIN_X86) |
| |
| clean-toolchain-x86_64: |
| -$(RM) -fr $(TOOLCHAIN_X86_64) |
| |
| clean-toolchain-armeabi: |
| -$(RM) -fr $(TOOLCHAIN_ARM) |
| |
| clean-toolchain-armeabi-v7a: |
| -$(RM) -fr $(TOOLCHAIN_ARM_V7A) |
| |
| clean-toolchain-armeabi-v7a-hard: |
| -$(RM) -fr $(TOOLCHAIN_ARM_V7A_HARD) |
| |
| clean-toolchain-arm64-v8a: |
| -$(RM) -fr $(TOOLCHAIN_ARM64_V8A) |
| |
| clean-toolchain-mips: |
| -$(RM) -fr $(TOOLCHAIN_MIPS) |
| |
| clean-toolchain-mips64: |
| -$(RM) -fr $(TOOLCHAIN_MIPS64) |
| |
| # 'make list-targets' prints a list of all targets. |
| # Thanks to: http://stackoverflow.com/questions/4219255/how-do-you-get-the-list-of-targets-in-a-makefile |
| # Modified to allow us to include files in this Makefile. |
| list-targets: MAKE_NO_INCLUDES := 1 |
| export MAKE_NO_INCLUDES |
| list-targets: |
| @$(MAKE) -s list-targets-no-includes |
| list-targets-no-includes: |
| @$(MAKE) -pRrq -f $(lastword $(MAKEFILE_LIST)) : 2>/dev/null | $(AWK) -v RS= -F: '/^# File/,/^# Finished Make data base/ {if ($$1 !~ "^[#.]") {print $$1}}' | $(SORT) | $(EGREP) -v -e '^[^[:alnum:]]' -e '^$@$$' |
| |