{"id":20245567,"url":"https://github.com/noloader/cryptopp-android-mk","last_synced_at":"2025-10-07T01:37:15.327Z","repository":{"id":47815170,"uuid":"146093361","full_name":"noloader/cryptopp-android-mk","owner":"noloader","description":"Android.mk build files for Crypto++ project ","archived":false,"fork":false,"pushed_at":"2024-02-13T21:59:29.000Z","size":8981,"stargazers_count":33,"open_issues_count":1,"forks_count":12,"subscribers_count":9,"default_branch":"master","last_synced_at":"2025-09-12T00:30:57.803Z","etag":null,"topics":["android","c-plus-plus","wei-dai-crypto"],"latest_commit_sha":null,"homepage":"","language":"Makefile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/noloader.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-08-25T12:27:29.000Z","updated_at":"2024-12-18T05:54:58.000Z","dependencies_parsed_at":"2024-11-14T09:27:02.449Z","dependency_job_id":"1323730f-6eb0-40c5-b97a-3f65a9a8d3c3","html_url":"https://github.com/noloader/cryptopp-android-mk","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/noloader/cryptopp-android-mk","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/noloader%2Fcryptopp-android-mk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/noloader%2Fcryptopp-android-mk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/noloader%2Fcryptopp-android-mk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/noloader%2Fcryptopp-android-mk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/noloader","download_url":"https://codeload.github.com/noloader/cryptopp-android-mk/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/noloader%2Fcryptopp-android-mk/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278708074,"owners_count":26031932,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-06T02:00:05.630Z","response_time":65,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","c-plus-plus","wei-dai-crypto"],"created_at":"2024-11-14T09:22:07.854Z","updated_at":"2025-10-07T01:37:15.308Z","avatar_url":"https://github.com/noloader.png","language":"Makefile","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Crypto++ Android.mk\r\n\r\nThis repository contains Android build files for Wei Dai's [Crypto++](http://github.com/weidai11/cryptopp). It supplies `Android.mk` and `Application.mk` for Crypto++ for those who want to use Android build tools.\r\n\r\nThe purpose of Crypto++ Android build is two-fold:\r\n\r\n1. better support Android distributions\r\n2. supplement the GNUmakefile which is reaching its limits with repsect to GNUmake-based configuration\r\n\r\nThe initial `Android.mk` and `Application.mk` based on Alex Afanasyev's pull request at http://github.com/weidai11/cryptopp/pull/3. The pull request went unmerged because we did not want to add the directory structure to accommodate Android builds. Though we did not merge Afanasyev's pull request, Afanasyev should get the credit for this work.\r\n\r\nThere is a wiki page available that discusses the Android build system and the Crypto++ project files in more detail at [Android.mk (Command Line)](https://www.cryptopp.com/wiki/Android.mk_(Command_Line)).\r\n\r\n## Testing\r\n\r\nThe Android build files are a work in progress, so use them at your own risk. With that said \u003ctt\u003ecryptest-ndk.sh\u003c/tt\u003e is used to test the build system.\r\n\r\nIn September 2016 the library added \u003ctt\u003ecryptest-ndk.sh\u003c/tt\u003e to help test the Android.mk gear. The script is located in Crypto++'s \u003ctt\u003eTestScripts\u003c/tt\u003e directory. The script downloads the Android.mk project files and builds the library.\r\n\r\nIf you want to use \u003ctt\u003ecryptest-ndk.sh\u003c/tt\u003e to drive things then perform the following steps.\r\n\r\n```\r\ncd cryptopp\r\ncp -p TestScripts/cryptest-ndk.sh .\r\nbash cryptest-ndk.sh\r\n```\r\n\r\n## Workflow\r\nThe general workflow is clone Wei Dai's crypto++, fetch the Android files, and then build using `ndk-build`:\r\n\r\n    git clone http://github.com/weidai11/cryptopp.git\r\n    cd cryptopp\r\n\r\n    wget -O Android.mk https://raw.githubusercontent.com/noloader/cryptopp-android/master/Android.mk\r\n    wget -O Application.mk https://raw.githubusercontent.com/noloader/cryptopp-android/master/Application.mk\r\n    wget -O make_neon.sh https://raw.githubusercontent.com/noloader/cryptopp-android/master/make_neon.sh\r\n\r\n    # Create *.neon source files for armeabi-v7a\r\n    bash make_neon.sh\r\n\r\n    ndk-build NDK_PROJECT_PATH=... NDK_APPLICATION_MK=...\r\n\r\n## ZIP Files\r\n\r\nIf you are working from a Crypto++ release zip file, then you should download the same cryptopp-android release zip file. Both Crypto++ and this project use the same release tags, such as CRYPTOPP_8_0_0.\r\n\r\nIf you mix and match Master with a release zip file then things may not work as expected. You may find the build project files reference a source file that is not present in the Crypto++ release.\r\n\r\n## Prerequisites\r\n\r\nBefore running the Android project please ensure you have the following installed:\r\n\r\n1. Android NDK\r\n2. Android SDK\r\n3. `ANDROID_NDK_ROOT` envar set\r\n4. `ANDROID_SDK_ROOT` envar set\r\n\r\n`ANDROID_NDK_ROOT` and `ANDROID_SDK_ROOT` are NDK and SDK environmental variables used by the Android tools. They should be set whenever you use Android's command line tools. The project does not use environmental variables from Eclipse or Android Studio like `ANDROID_HOME` or `ANDROID_SDK_HOME`. Also see [Recommended NDK Directory?](http://groups.google.com/group/android-ndk/browse_thread/thread/a998e139aca71d77) on the Android NDK mailing list.\r\n\r\n## Integration\r\nThe Android build files require an unusal filesystem layout. Your Crypto++ source files will be located in a folder like `\u003cproject root\u003e/cryptopp-7.1`. `Android.mk` and `Application.mk` will be located in a folder like `\u003cproject root\u003e/jni`. You must set `CRYPTOPP_ROOT` in `Android.mk` to a value like `../cryptopp-7.1/`. The trailing slash is important because the build system uses GNU Make's `addprefix` which is a simple concatenation.\r\n\r\nTo run the script issue `ndk-build` with several NDK build variables set. `NDK_PROJECT_PATH` and `NDK_APPLICATION_MK` are required when not using Android default paths like `jni/`.\r\n\r\n    cd cryptopp\r\n    ndk-build V=1 NDK_PROJECT_PATH=\"$PWD\" NDK_APPLICATION_MK=\"$PWD/Application.mk\"\r\n\r\nAccording to [NDK Build](http://developer.android.com/ndk/guides/ndk-build) you should set `NDK_DEBUG=1` for debug builds and `NDK_DEBUG=0` for release builds. You can also set `NDK_LOG=1` and `V=1` for verbose NDK builds which should help with diagnostics.\r\n\r\n## Collaboration\r\nWe would like all maintainers to be collaborators on this repo. If you are a maintainer then please contact us so we can send you an invite.\r\n\r\nIf you are a collaborator then make changes as you see fit. You don't need to ask for permission to make a change. Noloader is not an Android expert so there are probably lots of opportunities for improvement.\r\n\r\nKeep in mind other folks may be using the files, so try not to break things for the other guy. We have to be mindful of different versions of the NDK and API versions.\r\n\r\nEverything in this repo is release under Public Domain code. If the license or terms is unpalatable for you, then don't feel obligated to commit.\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnoloader%2Fcryptopp-android-mk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnoloader%2Fcryptopp-android-mk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnoloader%2Fcryptopp-android-mk/lists"}