Android.mk vs Application.mk

12.8k Views Asked by At

I'm a little fuzzy about the use of Android.mk & Application.mk

I've tried reading APPLICATION-MK.HTML & ANDROID-MK.HTML in the documentation that comes with NDK, but still confused about the purpose of two makefiles.

I'll be really grateful to anyone who could help me understand this.

2

There are 2 best solutions below

1
On

Each module requires one and only one Android.mk. If all you ever have is one module in your native application, the Application.mk is redundant (however there are a few things that can only be controlled by the Application.mk if you veer from default behavior). However, if you have many modules, ergo many Android.mk files in your project, than the Application.mk can be useful for providing application-wide settings that apply to ALL modules.

0
On

Quote from docs/OVERVIEW.html

While an Android.mk file describes your modules to the build system, the Application.mk file describes your application itself. See the docs/APPLICATION-MK.html document to understand what this file allows you to do. This includes, among others:

  • The exact list of modules required by your application.

  • The CPU architecture(s) to generate machine code for.

  • Optional information, like whether you want a release or debug build, specific C or C++ compiler flags and others that should apply to all modules being built.

This file is optional: by default the NDK will provide one that simply builds all the modules listed from your Android.mk (and all the makefiles it includes) and target the default CPU ABI (armeabi).

hope it helps