mobile/android/base/Makefile.in
author David Anderson <danderson@mozilla.com>
Mon, 30 Apr 2012 12:53:32 -0700
changeset 106178 44911569fb04d891073656cac1f794495723f573
parent 106163 0e6d579045c8200b5433098f418a3c1ebbf64a1b
parent 92643 72e069288a7e3317c93f7ee0957377da2cfd0729
child 106193 c660397f6ab25e596d6fd1a2ce3eb2ca1b52626f
permissions -rw-r--r--
Merge from mozilla-central.

# ***** BEGIN LICENSE BLOCK *****
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
#
# The contents of this file are subject to the Mozilla Public License Version
# 1.1 (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
# http://www.mozilla.org/MPL/
#
# Software distributed under the License is distributed on an "AS IS" basis,
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
# for the specific language governing rights and limitations under the
# License.
#
# The Original Code is the Mozilla browser.
#
# The Initial Developer of the Original Code is
#   Mozilla Foundation
# Portions created by the Initial Developer are Copyright (C) 2009-2010
# the Initial Developer. All Rights Reserved.
#
# Contributor(s):
#   Vladimir Vukicevic <vladimir@pobox.com>
#   Richard Newman <rnewman@mozilla.com>
#
# Alternatively, the contents of this file may be used under the terms of
# either the GNU General Public License Version 2 or later (the "GPL"), or
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
# in which case the provisions of the GPL or the LGPL are applicable instead
# of those above. If you wish to allow use of your version of this file only
# under the terms of either the GPL or the LGPL, and not to allow others to
# use your version of this file under the terms of the MPL, indicate your
# decision by deleting the provisions above and replace them with the notice
# and other provisions required by the GPL or the LGPL. If you do not delete
# the provisions above, a recipient may use your version of this file under
# the terms of any one of the MPL, the GPL or the LGPL.
#
# ***** END LICENSE BLOCK *****

DEPTH		= ../../..
topsrcdir	= @top_srcdir@
srcdir		= @srcdir@
VPATH		= @srcdir@

include $(DEPTH)/config/autoconf.mk
include $(topsrcdir)/ipc/app/defs.mk

DIRS = locales

DIST_FILES = package-name.txt

SYNC_JAVA_FILES=$(shell cat $(topsrcdir)/mobile/android/sync/java-sources.mn | tr '\n' ' ';)
SYNC_PP_JAVA_FILES=$(shell cat $(topsrcdir)/mobile/android/sync/preprocess-sources.mn | tr '\n' ' ';)
SYNC_THIRDPARTY_JAVA_FILES=$(shell cat $(topsrcdir)/mobile/android/sync/java-third-party-sources.mn | tr '\n' ' ';)
SYNC_RES_DRAWABLE=$(shell cat $(topsrcdir)/mobile/android/sync/android-drawable-resources.mn | tr '\n' ' ';)
SYNC_RES_DRAWABLE_LDPI=$(shell cat $(topsrcdir)/mobile/android/sync/android-drawable-ldpi-resources.mn | tr '\n' ' ';)
SYNC_RES_DRAWABLE_MDPI=$(shell cat $(topsrcdir)/mobile/android/sync/android-drawable-mdpi-resources.mn | tr '\n' ' ';)
SYNC_RES_DRAWABLE_HDPI=$(shell cat $(topsrcdir)/mobile/android/sync/android-drawable-hdpi-resources.mn | tr '\n' ' ';)
SYNC_RES_LAYOUT=$(shell cat $(topsrcdir)/mobile/android/sync/android-layout-resources.mn | tr '\n' ' ';)
SYNC_RES_VALUES=$(shell cat $(topsrcdir)/mobile/android/sync/android-values-resources.mn | tr '\n' ' ';)
SYNC_RES_XML=res/xml/sync_authenticator.xml
SYNC_PP_RES_XML=res/xml/sync_syncadapter.xml res/xml/sync_options.xml

FENNEC_JAVA_FILES = \
  AboutHomeContent.java \
  AboutHomeSection.java \
  AlertNotification.java \
  AwesomeBar.java \
  AwesomeBarTabs.java \
  BrowserToolbar.java \
  ConfirmPreference.java \
  SyncPreference.java \
  db/AndroidBrowserDB.java \
  db/BrowserDB.java \
  db/LocalBrowserDB.java \
  db/DBUtils.java \
  DoorHanger.java \
  DoorHangerPopup.java \
  Favicons.java \
  FloatUtils.java \
  FormAssistPopup.java \
  GeckoActionBar.java \
  GeckoApplication.java \
  GeckoApp.java \
  GeckoAppShell.java \
  GeckoAsyncTask.java \
  GeckoBatteryManager.java \
  GeckoBackgroundThread.java \
  GeckoConnectivityReceiver.java \
  GeckoEvent.java \
  GeckoEventListener.java \
  GeckoEventResponder.java \
  GeckoHalDefines.java \
  GeckoInputConnection.java \
  GeckoJarReader.java \
	GeckoMessageReceiver.java \
  GeckoPreferences.java \
  GeckoProfile.java \
  GeckoStateListDrawable.java \
  GeckoThread.java \
  GlobalHistory.java \
  GeckoViewsFactory.java \
  LinkPreference.java \
  LinkTextView.java \
	NSSBridge.java \
  ProfileMigrator.java \
  PromptService.java \
  sqlite/ByteBufferInputStream.java \
  sqlite/MatrixBlobCursor.java \
  sqlite/SQLiteBridge.java \
  sqlite/SQLiteBridgeException.java \
  RemoteTabs.java \
  SetupScreen.java \
  SurfaceBits.java \
  Tab.java \
  Tabs.java \
  TabsTray.java \
  TabsAccessor.java \
  Telemetry.java \
  gfx/BitmapUtils.java \
  gfx/BufferedCairoImage.java \
  gfx/CairoGLInfo.java \
  gfx/CairoImage.java \
  gfx/CairoUtils.java \
  gfx/CheckerboardImage.java \
  gfx/DisplayPortCalculator.java \
  gfx/DisplayPortMetrics.java \
  gfx/DrawTimingQueue.java \
  gfx/FloatSize.java \
  gfx/GeckoLayerClient.java \
  gfx/GLController.java \
  gfx/ImmutableViewportMetrics.java \
  gfx/InputConnectionHandler.java \
  gfx/IntSize.java \
  gfx/Layer.java \
  gfx/LayerController.java \
  gfx/LayerRenderer.java \
  gfx/LayerView.java \
  gfx/PluginLayer.java \
  gfx/NinePatchTileLayer.java \
  gfx/PanningPerfAPI.java \
  gfx/PointUtils.java \
  gfx/RectUtils.java \
  gfx/ScreenshotLayer.java \
  gfx/ScrollbarLayer.java \
  gfx/SingleTileLayer.java \
  gfx/SurfaceTextureLayer.java \
  gfx/TextLayer.java \
  gfx/TextureGenerator.java \
  gfx/TextureReaper.java \
  gfx/TileLayer.java \
  gfx/TouchEventHandler.java \
  gfx/ViewTransform.java \
  gfx/ViewportMetrics.java \
  gfx/VirtualLayer.java \
  ui/Axis.java \
  ui/PanZoomController.java \
  ui/SimpleScaleGestureDetector.java \
  ui/SubdocumentScrollHelper.java \
  GeckoNetworkManager.java \
  GeckoScreenOrientationListener.java \
  $(NULL)

ifdef MOZ_WEBSMS_BACKEND
FENNEC_JAVA_FILES += GeckoSmsManager.java
endif

FENNEC_PP_JAVA_FILES = \
  App.java \
  GeckoActivity.java \
  LauncherShortcuts.java \
  NotificationHandler.java \
  Restarter.java \
  db/BrowserContract.java \
  db/BrowserProvider.java \
  db/PasswordsProvider.java \
  db/FormHistoryProvider.java \
  db/TabsProvider.java \
  db/GeckoProvider.java \
  SmsManager.java \
  $(NULL)

FENNEC_PP_XML_FILES = \
  res/layout/abouthome_content.xml \
  res/menu/gecko_menu.xml \
  $(NULL)


ifneq (,$(findstring -march=armv7,$(OS_CFLAGS)))
MIN_CPU_VERSION=7
else
MIN_CPU_VERSION=5
endif

ifeq (,$(ANDROID_VERSION_CODE))
ANDROID_VERSION_CODE=$(shell $(PYTHON) $(topsrcdir)/toolkit/xre/make-platformini.py --print-buildid | cut -c1-10)
endif

UA_BUILDID=$(shell $(PYTHON) $(topsrcdir)/toolkit/xre/make-platformini.py --print-buildid | cut -c1-8)

DEFINES += \
  -DANDROID_PACKAGE_NAME=$(ANDROID_PACKAGE_NAME) \
  -DMOZ_APP_DISPLAYNAME="$(MOZ_APP_DISPLAYNAME)" \
  -DMOZ_APP_NAME=$(MOZ_APP_NAME) \
  -DMOZ_APP_VERSION=$(MOZ_APP_VERSION) \
  -DMOZ_CHILD_PROCESS_NAME=$(MOZ_CHILD_PROCESS_NAME) \
  -DMOZ_MIN_CPU_VERSION=$(MIN_CPU_VERSION) \
  -DMOZ_CRASHREPORTER=$(MOZ_CRASHREPORTER) \
  -DANDROID_VERSION_CODE=$(ANDROID_VERSION_CODE) \
  -DMOZILLA_OFFICIAL=$(MOZILLA_OFFICIAL) \
  -DUA_BUILDID=$(UA_BUILDID) \
  $(NULL)

GARBAGE += \
  AndroidManifest.xml  \
  classes.dex  \
  $(FENNEC_PP_JAVA_FILES) \
  $(SYNC_PP_JAVA_FILES) \
  gecko.ap_  \
  res/values/strings.xml \
  R.java \
  $(FENNEC_PP_XML_FILES) \
  $(SYNC_PP_RES_XML) \
  package-name.txt \
  Manifest.java \
  $(NULL)

GARBAGE_DIRS += classes res sync db

# Bug 567884 - Need a way to find appropriate icons during packaging
ifeq ($(MOZ_APP_NAME),fennec)
ICON_PATH = $(topsrcdir)/$(MOZ_BRANDING_DIRECTORY)/content/fennec_48x48.png
ICON_PATH_HDPI = $(topsrcdir)/$(MOZ_BRANDING_DIRECTORY)/content/fennec_72x72.png

# we released these builds to the public with shared IDs and need to keep them
ifeq (org.mozilla.firefox,$(ANDROID_PACKAGE_NAME))
DEFINES += -DMOZ_ANDROID_SHARED_ID="org.mozilla.firefox.sharedID"
else ifeq (org.mozilla.firefox_beta,$(ANDROID_PACKAGE_NAME))
DEFINES += -DMOZ_ANDROID_SHARED_ID="org.mozilla.firefox.sharedID"
else ifeq (org.mozilla.fennec_aurora,$(ANDROID_PACKAGE_NAME))
DEFINES += -DMOZ_ANDROID_SHARED_ID="org.mozilla.fennec.sharedID"
else ifeq (org.mozilla.fennec,$(ANDROID_PACKAGE_NAME))
DEFINES += -DMOZ_ANDROID_SHARED_ID="org.mozilla.fennec.sharedID"
endif

else
ICON_PATH = $(topsrcdir)/$(MOZ_BRANDING_DIRECTORY)/content/icon48.png
ICON_PATH_HDPI = $(topsrcdir)/$(MOZ_BRANDING_DIRECTORY)/content/icon64.png
DEFINES += -DMOZ_ANDROID_SHARED_ID="$(ANDROID_PACKAGE_NAME).sharedID"
endif

RES_LAYOUT = \
  $(SYNC_RES_LAYOUT) \
  res/layout/autocomplete_list.xml \
  res/layout/autocomplete_list_item.xml \
  res/layout/awesomebar.xml \
  res/layout/awesomebar_actionbar.xml \
  res/layout/awesomebar_folder_row.xml \
  res/layout/awesomebar_header_row.xml \
  res/layout/awesomebar_row.xml \
  res/layout/awesomebar_search.xml \
  res/layout/awesomebar_tab_indicator.xml \
  res/layout/awesomebar_tabs.xml \
  res/layout/bookmark_edit.xml \
  res/layout/browser_toolbar.xml \
  res/layout/doorhangerpopup.xml \
  res/layout/doorhanger.xml \
  res/layout/gecko_app.xml \
  res/layout/launch_app_list.xml \
  res/layout/launch_app_listitem.xml \
  res/layout/notification_icon_text.xml \
  res/layout/notification_progress.xml \
  res/layout/notification_progress_text.xml \
  res/layout/site_setting_title.xml \
  res/layout/setup_screen.xml \
  res/layout/remote_tabs.xml \
  res/layout/remote_tabs_child.xml \
  res/layout/remote_tabs_group.xml \
  res/layout/tabs_row.xml \
  res/layout/tabs_tray.xml \
  res/layout/list_item_header.xml \
  res/layout/select_dialog_list.xml \
  res/layout/abouthome_addon_row.xml \
  res/layout/abouthome_last_tabs_row.xml \
  res/layout/abouthome_section.xml \
  res/layout/abouthome_remote_tab_row.xml \
  res/layout/abouthome_topsite_item.xml \
  res/layout/validation_message.xml \
  $(NULL)

RES_LAYOUT_V11 = \
  res/layout-v11/gecko_app.xml \
  $(NULL)
 
RES_LAYOUT_LAND_V14 = \
  res/layout-land-v14/browser_toolbar.xml \
  $(NULL)

RES_VALUES = \
  $(SYNC_RES_VALUES) \
  res/values/attrs.xml \
  res/values/arrays.xml \
  res/values/colors.xml \
  res/values/styles.xml \
  res/values/themes.xml \
  $(NULL)

RES_VALUES_V11 = \
  res/values-v11/styles.xml \
  res/values-v11/themes.xml \
  $(NULL)

RES_XML = \
	res/xml/preferences.xml \
	$(SYNC_RES_XML) \
	$(NULL)

RES_ANIM = \
  res/anim/grow_fade_in.xml \
  res/anim/shrink_fade_out.xml \
  $(NULL)

RES_DRAWABLE_NODPI = \
  res/drawable-nodpi/abouthome_bg.png \
  res/drawable-nodpi/abouthome_topsites_bg.png \
  res/drawable-nodpi/background.png \
  res/drawable-nodpi/tabs_tray_bg.png \
  res/drawable-nodpi/tabs_tray_pressed_bg.png \
  $(NULL)

RES_DRAWABLE_BASE = \
  res/drawable/favicon.png \
  res/drawable/folder.png \
  res/drawable/abouthome_icon.png \
  res/drawable/abouthome_logo.png \
  res/drawable/abouthome_separator.9.png \
  res/drawable/abouthome_sync_logo.png \
  res/drawable/abouthome_sync_bg.9.png \
  res/drawable/abouthome_sync_pressed_bg.9.png \
  res/drawable/abouthome_thumbnail.png \
  res/drawable/awesomebar_tab.9.png \
  res/drawable/awesomebar_tab_pressed.9.png \
  res/drawable/ic_addons_empty.png \
  res/drawable/ic_awesomebar_go.png \
  res/drawable/ic_awesomebar_search.png \
  res/drawable/ic_awesomebar_star.png \
  res/drawable/ic_menu_bookmark_add.png \
  res/drawable/ic_menu_bookmark_remove.png \
  res/drawable/ic_menu_find_in_page.png \
  res/drawable/ic_menu_reload.png \
  res/drawable/ic_menu_save_as_pdf.png \
  res/drawable/ic_menu_share.png \
  res/drawable/ic_menu_forward.png \
  res/drawable/tab_new.png \
  res/drawable/tab_close.png \
  res/drawable/tab_thumbnail_default.png \
  res/drawable/tab_thumbnail_shadow.png \
  res/drawable/tab_selected.png \
  res/drawable/tabs_normal.png \
  res/drawable/tabs_pressed.png \
  res/drawable/tabs_more.png \
  res/drawable/tabs_plus.png \
  res/drawable/address_bar_texture_port.png \
  res/drawable/address_bar_url_bg.9.png \
  res/drawable/address_bar_url_outline.9.png \
  res/drawable/doorhanger_arrow.png \
  res/drawable/doorhanger_bg.9.png \
  res/drawable/doorhanger_shadow_bg.9.png \
  res/drawable/doorhanger_popup_bg.9.png \
  res/drawable/site_security_identified.png \
  res/drawable/site_security_verified.png \
  res/drawable/urlbar_stop.png \
  res/drawable/validation_arrow.png \
  res/drawable/validation_arrow_inverted.png \
  res/drawable/validation_bg.9.png \
  res/drawable/bookmarkdefaults_favicon_support.png \
  res/drawable/bookmarkdefaults_favicon_addons.png \
  $(addprefix res/drawable-mdpi/,$(notdir $(SYNC_RES_DRAWABLE_MDPI))) \
  $(NULL)

RES_DRAWABLE_LDPI = \
  $(addprefix res/drawable-ldpi/,$(notdir $(SYNC_RES_DRAWABLE_LDPI))) \
  $(NULL)

RES_DRAWABLE_HDPI = \
  res/drawable-hdpi/favicon.png \
  res/drawable-hdpi/folder.png \
  res/drawable-hdpi/home_bg.png \
  res/drawable-hdpi/home_star.png \
  res/drawable-hdpi/abouthome_icon.png \
  res/drawable-hdpi/abouthome_logo.png \
  res/drawable-hdpi/abouthome_separator.9.png \
  res/drawable-hdpi/abouthome_sync_logo.png \
  res/drawable-hdpi/abouthome_sync_bg.9.png \
  res/drawable-hdpi/abouthome_sync_pressed_bg.9.png \
  res/drawable-hdpi/abouthome_thumbnail.png \
  res/drawable-hdpi/address_bar_bg_shadow.png \
  res/drawable-hdpi/awesomebar_tab.9.png \
  res/drawable-hdpi/awesomebar_tab_pressed.9.png \
  res/drawable-hdpi/ic_addons_empty.png \
  res/drawable-hdpi/ic_awesomebar_go.png \
  res/drawable-hdpi/ic_awesomebar_search.png \
  res/drawable-hdpi/ic_awesomebar_star.png \
  res/drawable-hdpi/ic_menu_bookmark_add.png \
  res/drawable-hdpi/ic_menu_bookmark_remove.png \
  res/drawable-hdpi/ic_menu_find_in_page.png \
  res/drawable-hdpi/ic_menu_reload.png \
  res/drawable-hdpi/ic_menu_save_as_pdf.png \
  res/drawable-hdpi/ic_menu_share.png \
  res/drawable-hdpi/ic_menu_forward.png \
  res/drawable-hdpi/tab_new.png \
  res/drawable-hdpi/tab_close.png \
  res/drawable-hdpi/tab_thumbnail_default.png \
  res/drawable-hdpi/tab_thumbnail_shadow.png \
  res/drawable-hdpi/tab_selected.png \
  res/drawable-hdpi/tabs_normal.png \
  res/drawable-hdpi/tabs_pressed.png \
  res/drawable-hdpi/tabs_more.png \
  res/drawable-hdpi/tabs_plus.png \
  res/drawable-hdpi/address_bar_texture_port.png \
  res/drawable-hdpi/address_bar_url_bg.9.png \
  res/drawable-hdpi/address_bar_url_outline.9.png \
  res/drawable-hdpi/doorhanger_arrow.png \
  res/drawable-hdpi/doorhanger_bg.9.png \
  res/drawable-hdpi/doorhanger_shadow_bg.9.png \
  res/drawable-hdpi/doorhanger_popup_bg.9.png \
  res/drawable-hdpi/site_security_identified.png \
  res/drawable-hdpi/site_security_verified.png \
  res/drawable-hdpi/urlbar_stop.png \
  res/drawable-hdpi/validation_arrow.png \
  res/drawable-hdpi/validation_arrow_inverted.png \
  res/drawable-hdpi/validation_bg.9.png \
  $(addprefix res/drawable-hdpi/,$(notdir $(SYNC_RES_DRAWABLE_HDPI))) \
  $(NULL)

RES_DRAWABLE_MDPI_V11 = \
  res/drawable-mdpi-v11/ic_menu_bookmark_add.png \
  res/drawable-mdpi-v11/ic_menu_bookmark_remove.png \
  res/drawable-mdpi-v11/ic_menu_find_in_page.png \
  res/drawable-mdpi-v11/ic_menu_reload.png \
  res/drawable-mdpi-v11/ic_menu_save_as_pdf.png \
  res/drawable-mdpi-v11/ic_menu_share.png \
  res/drawable-mdpi-v11/ic_menu_forward.png \
  $(NULL)

RES_DRAWABLE_HDPI_V11 = \
  res/drawable-hdpi-v11/ic_menu_bookmark_add.png \
  res/drawable-hdpi-v11/ic_menu_bookmark_remove.png \
  res/drawable-hdpi-v11/ic_menu_find_in_page.png \
  res/drawable-hdpi-v11/ic_menu_reload.png \
  res/drawable-hdpi-v11/ic_menu_save_as_pdf.png \
  res/drawable-hdpi-v11/ic_menu_share.png \
  res/drawable-hdpi-v11/ic_menu_forward.png \
  $(NULL)

RES_DRAWABLE_XHDPI_V11 = \
  res/drawable-xhdpi-v11/favicon.png \
  res/drawable-xhdpi-v11/folder.png \
  res/drawable-xhdpi-v11/abouthome_icon.png \
  res/drawable-xhdpi-v11/abouthome_logo.png \
  res/drawable-xhdpi-v11/abouthome_separator.9.png \
  res/drawable-xhdpi-v11/abouthome_sync_logo.png \
  res/drawable-xhdpi-v11/abouthome_sync_bg.9.png \
  res/drawable-xhdpi-v11/abouthome_sync_pressed_bg.9.png \
  res/drawable-xhdpi-v11/abouthome_thumbnail.png \
  res/drawable-xhdpi-v11/address_bar_bg_shadow.png \
  res/drawable-xhdpi-v11/awesomebar_tab.9.png \
  res/drawable-xhdpi-v11/awesomebar_tab_pressed.9.png \
  res/drawable-xhdpi-v11/ic_addons_empty.png \
  res/drawable-xhdpi-v11/ic_awesomebar_go.png \
  res/drawable-xhdpi-v11/ic_awesomebar_search.png \
  res/drawable-xhdpi-v11/ic_awesomebar_star.png \
  res/drawable-xhdpi-v11/ic_menu_bookmark_add.png \
  res/drawable-xhdpi-v11/ic_menu_bookmark_remove.png \
  res/drawable-xhdpi-v11/ic_menu_find_in_page.png \
  res/drawable-xhdpi-v11/ic_menu_reload.png \
  res/drawable-xhdpi-v11/ic_menu_save_as_pdf.png \
  res/drawable-xhdpi-v11/ic_menu_share.png \
  res/drawable-xhdpi-v11/tab_new.png \
  res/drawable-xhdpi-v11/tab_close.png \
  res/drawable-xhdpi-v11/tab_thumbnail_default.png \
  res/drawable-xhdpi-v11/tab_thumbnail_shadow.png \
  res/drawable-xhdpi-v11/tab_selected.png \
  res/drawable-xhdpi-v11/tabs_normal.png \
  res/drawable-xhdpi-v11/tabs_pressed.png \
  res/drawable-xhdpi-v11/tabs_more.png \
  res/drawable-xhdpi-v11/tabs_plus.png \
  res/drawable-xhdpi-v11/address_bar_texture_port.png \
  res/drawable-xhdpi-v11/address_bar_url_bg.9.png \
  res/drawable-xhdpi-v11/address_bar_url_outline.9.png \
  res/drawable-xhdpi-v11/doorhanger_arrow.png \
  res/drawable-xhdpi-v11/doorhanger_bg.9.png \
  res/drawable-xhdpi-v11/doorhanger_shadow_bg.9.png \
  res/drawable-xhdpi-v11/doorhanger_popup_bg.9.png \
  res/drawable-xhdpi-v11/urlbar_stop.png \
  res/drawable-xhdpi-v11/site_security_identified.png \
  res/drawable-xhdpi-v11/site_security_verified.png \
  res/drawable-xhdpi-v11/tabs_button_tail.9.png \
  res/drawable-xhdpi-v11/validation_arrow.png \
  res/drawable-xhdpi-v11/validation_arrow_inverted.png \
  res/drawable-xhdpi-v11/validation_bg.9.png \
  $(NULL)

RES_DRAWABLE_LAND_V14 = \
  res/drawable-land-v14/address_bar_bg.xml \
  $(NULL)

RES_DRAWABLE_LAND_MDPI_V14 = \
  res/drawable-land-mdpi-v14/ic_awesomebar_go.png \
  res/drawable-land-mdpi-v14/ic_awesomebar_search.png \
  res/drawable-land-mdpi-v14/address_bar_texture_land.png \
  res/drawable-land-mdpi-v14/address_bar_url_bg.9.png \
  res/drawable-land-mdpi-v14/address_bar_url_outline.9.png \
  res/drawable-land-mdpi-v14/tabs_normal.png \
  res/drawable-land-mdpi-v14/tabs_pressed.png \
  res/drawable-land-mdpi-v14/tabs_more.png \
  res/drawable-land-mdpi-v14/tabs_plus.png \
  res/drawable-land-mdpi-v14/urlbar_stop.png \
  res/drawable-land-mdpi-v14/site_security_identified.png \
  res/drawable-land-mdpi-v14/site_security_verified.png \
  $(NULL)

RES_DRAWABLE_LAND_HDPI_V14 = \
  res/drawable-land-hdpi-v14/ic_awesomebar_go.png \
  res/drawable-land-hdpi-v14/ic_awesomebar_search.png \
  res/drawable-land-hdpi-v14/address_bar_texture_land.png \
  res/drawable-land-hdpi-v14/address_bar_url_bg.9.png \
  res/drawable-land-hdpi-v14/address_bar_url_outline.9.png \
  res/drawable-land-hdpi-v14/tabs_normal.png \
  res/drawable-land-hdpi-v14/tabs_pressed.png \
  res/drawable-land-hdpi-v14/tabs_more.png \
  res/drawable-land-hdpi-v14/tabs_plus.png \
  res/drawable-land-hdpi-v14/urlbar_stop.png \
  res/drawable-land-hdpi-v14/site_security_identified.png \
  res/drawable-land-hdpi-v14/site_security_verified.png \
  $(NULL)

RES_DRAWABLE_LAND_XHDPI_V14 = \
  res/drawable-land-xhdpi-v14/ic_awesomebar_go.png \
  res/drawable-land-xhdpi-v14/ic_awesomebar_search.png \
  res/drawable-land-xhdpi-v14/address_bar_texture_land.png \
  res/drawable-land-xhdpi-v14/address_bar_url_bg.9.png \
  res/drawable-land-xhdpi-v14/address_bar_url_outline.9.png \
  res/drawable-land-xhdpi-v14/tabs_normal.png \
  res/drawable-land-xhdpi-v14/tabs_pressed.png \
  res/drawable-land-xhdpi-v14/tabs_more.png \
  res/drawable-land-xhdpi-v14/tabs_plus.png \
  res/drawable-land-xhdpi-v14/urlbar_stop.png \
  res/drawable-land-xhdpi-v14/site_security_identified.png \
  res/drawable-land-xhdpi-v14/site_security_verified.png \
  res/drawable-land-xhdpi-v14/tabs_button_tail.9.png \
  $(NULL)

RES_COLOR = \
  res/color/awesomebar_tab_text.xml

RES_MENU = \
  res/menu/awesomebar_contextmenu.xml \
  $(NULL)

JAVA_CLASSPATH = $(ANDROID_SDK)/android.jar

ifdef MOZ_CRASHREPORTER
FENNEC_PP_JAVA_FILES += CrashReporter.java
MOZ_ANDROID_DRAWABLES += mobile/android/base/resources/drawable/crash_reporter.png
RES_LAYOUT += res/layout/crash_reporter.xml
endif

MOZ_ANDROID_DRAWABLES += \
  $(SYNC_RES_DRAWABLE)                                                          \
  mobile/android/base/resources/drawable/abouthome_bg_repeat.xml                \
  mobile/android/base/resources/drawable/abouthome_sync_box.xml                 \
  mobile/android/base/resources/drawable/abouthome_topsites_bg_repeat.xml       \
  mobile/android/base/resources/drawable/address_bar_bg.xml                     \
  mobile/android/base/resources/drawable/address_bar_bg_shadow.png              \
  mobile/android/base/resources/drawable/address_bar_bg_shadow_repeat.xml       \
  mobile/android/base/resources/drawable/address_bar_url_default.xml            \
  mobile/android/base/resources/drawable/address_bar_url_pressed.xml            \
  mobile/android/base/resources/drawable/autocomplete_list_bg.9.png             \
  mobile/android/base/resources/drawable/awesomebar_tab_indicator.xml           \
  mobile/android/base/resources/drawable/awesomebar_tab_press.xml               \
  mobile/android/base/resources/drawable/awesomebar_tab_press_selected.xml      \
  mobile/android/base/resources/drawable/awesomebar_tab_selected.xml            \
  mobile/android/base/resources/drawable/awesomebar_tab_unselected.xml          \
  mobile/android/base/resources/drawable/desktop_notification.png               \
  mobile/android/base/resources/drawable/gecko_actionbar_bg.xml                 \
  mobile/android/base/resources/drawable/progress_spinner.xml                   \
  mobile/android/base/resources/drawable/progress_spinner_1.png                 \
  mobile/android/base/resources/drawable/progress_spinner_2.png                 \
  mobile/android/base/resources/drawable/progress_spinner_3.png                 \
  mobile/android/base/resources/drawable/progress_spinner_4.png                 \
  mobile/android/base/resources/drawable/progress_spinner_5.png                 \
  mobile/android/base/resources/drawable/progress_spinner_6.png                 \
  mobile/android/base/resources/drawable/progress_spinner_7.png                 \
  mobile/android/base/resources/drawable/progress_spinner_8.png                 \
  mobile/android/base/resources/drawable/progress_spinner_9.png                 \
  mobile/android/base/resources/drawable/progress_spinner_10.png                \
  mobile/android/base/resources/drawable/progress_spinner_11.png                \
  mobile/android/base/resources/drawable/progress_spinner_12.png                \
  mobile/android/base/resources/drawable/progress_spinner_13.png                \
  mobile/android/base/resources/drawable/progress_spinner_14.png                \
  mobile/android/base/resources/drawable/progress_spinner_15.png                \
  mobile/android/base/resources/drawable/progress_spinner_16.png                \
  mobile/android/base/resources/drawable/progress_spinner_17.png                \
  mobile/android/base/resources/drawable/progress_spinner_18.png                \
  mobile/android/base/resources/drawable/remote_tabs_group_bg_repeat.xml        \
  mobile/android/base/resources/drawable/start.png                              \
  mobile/android/base/resources/drawable/site_security_level.xml                \
  mobile/android/base/resources/drawable/tabs_button.xml                        \
  mobile/android/base/resources/drawable/tabs_button_tail.xml                   \
  mobile/android/base/resources/drawable/tabs_level.xml                         \
  mobile/android/base/resources/drawable/tabs_tray_bg_repeat.xml                \
  mobile/android/base/resources/drawable/tabs_tray_pressed_bg_repeat.xml        \
  mobile/android/base/resources/drawable/tabs_tray_close_button.xml             \
  mobile/android/base/resources/drawable/tabs_tray_list_divider.xml             \
  mobile/android/base/resources/drawable/tabs_tray_list_selector.xml            \
  mobile/android/base/resources/drawable/shadow.png                             \
  $(NULL)

MOZ_ANDROID_DRAWABLES += $(shell if test -e $(topsrcdir)/$(MOZ_BRANDING_DIRECTORY)/android-resources.mn; then cat $(topsrcdir)/$(MOZ_BRANDING_DIRECTORY)/android-resources.mn | tr '\n' ' ';  fi)

RESOURCES=$(RES_LAYOUT) $(RES_LAYOUT_V11) $(RES_LAYOUT_LAND_V14) $(RES_VALUES) $(RES_VALUES_V11) $(RES_XML) $(RES_ANIM) $(RES_DRAWABLE_NODPI) $(RES_DRAWABLE_BASE) $(RES_DRAWABLE_LDPI) $(RES_DRAWABLE_HDPI) $(RES_DRAWABLE_MDPI_V11) $(RES_DRAWABLE_HDPI_V11) $(RES_DRAWABLE_XHDPI_V11) $(RES_DRAWABLE_LAND_V14) $(RES_DRAWABLE_LAND_MDPI_V14) $(RES_DRAWABLE_LAND_HDPI_V14) $(RES_DRAWABLE_LAND_XHDPI_V14) $(RES_COLOR) $(RES_MENU)

RES_DIRS= \
  res/layout              \
  res/layout-v11          \
  res/layout-land-v14     \
  res/values              \
  res/values-v11          \
  res/xml                 \
  res/anim                \
  res/drawable-nodpi      \
  res/drawable-ldpi       \
  res/drawable-mdpi       \
  res/drawable-hdpi       \
  res/drawable            \
  res/drawable-mdpi-v9    \
  res/drawable-hdpi-v9    \
  res/drawable-mdpi-v11   \
  res/drawable-hdpi-v11   \
  res/drawable-xhdpi-v11  \
  res/drawable-land-v14   \
  res/drawable-land-mdpi-v14  \
  res/drawable-land-hdpi-v14  \
  res/drawable-land-xhdpi-v14 \
  res/color                   \
  res/menu                    \
  res/menu-v11                \
  $(NULL)


include $(topsrcdir)/config/rules.mk

# Override the Java settings with some specific android settings
include $(topsrcdir)/config/android-common.mk

# Note that we're going to set up a dependency directly between embed_android.dex and the java files
# Instead of on the .class files, since more than one .class file might be produced per .java file
# Sync dependencies are provided in a single jar. Sync classes themselves are delivered as source,
# because Android resource classes must be compiled together in order to avoid overlapping resource
# indices.
classes.dex: $(FENNEC_JAVA_FILES) $(FENNEC_PP_JAVA_FILES) $(SYNC_JAVA_FILES) $(SYNC_PP_JAVA_FILES) $(SYNC_THIRDPARTY_JAVA_FILES) R.java
	$(NSINSTALL) -D classes
	$(JAVAC) $(JAVAC_FLAGS) -d classes $(addprefix $(srcdir)/,$(SYNC_THIRDPARTY_JAVA_FILES))
	$(JAVAC) $(JAVAC_FLAGS) -Xlint:all,-deprecation,-fallthrough -d classes -classpath classes $(addprefix $(srcdir)/,$(FENNEC_JAVA_FILES)) $(FENNEC_PP_JAVA_FILES) $(addprefix $(srcdir)/,$(SYNC_JAVA_FILES)) $(SYNC_PP_JAVA_FILES) R.java
	$(DX) --dex --output=$@ classes

PP_RES_XML= \
  $(SYNC_PP_RES_XML) \
  $(FENNEC_PP_XML_FILES) \
  $(NULL)

# This is kinda awful; if any of the source files change, we remake them all.
$(PP_RES_XML): $(patsubst res/%,$(srcdir)/resources/%.in,$(PP_RES_XML))
	$(PYTHON) $(topsrcdir)/config/Preprocessor.py \
             $(AUTOMATION_PPARGS) $(DEFINES) $(ACDEFINES) $(subst res,$(srcdir)/resources,$@).in > $@

# AndroidManifest.xml includes these files, so they need to be marked as dependencies.
SYNC_MANIFEST_FRAGMENTS = $(wildcard $(topsrcdir)/mobile/android/sync/manifests/*.in)

AndroidManifest.xml $(FENNEC_PP_JAVA_FILES) $(SYNC_PP_JAVA_FILES) package-name.txt: % : %.in Makefile.in $(SYNC_MANIFEST_FRAGMENTS)
	mkdir -p db sync/repositories/android
	$(PYTHON) $(topsrcdir)/config/Preprocessor.py \
             $(AUTOMATION_PPARGS) $(DEFINES) $(ACDEFINES) $< > $@

res/drawable/icon.png: $(MOZ_APP_ICON)
	$(NSINSTALL) -D res/drawable
	cp $(ICON_PATH) $@

res/drawable-hdpi/icon.png: $(MOZ_APP_ICON)
	$(NSINSTALL) -D res/drawable-hdpi
	cp $(ICON_PATH_HDPI) $@

RES_DRAWABLE = $(addprefix res/drawable/,$(notdir $(MOZ_ANDROID_DRAWABLES)))
$(RES_DRAWABLE): $(addprefix $(topsrcdir)/,$(MOZ_ANDROID_DRAWABLES))
	$(NSINSTALL) -D res/drawable
	$(NSINSTALL) $^ res/drawable/

res/values/defaults.xml: $(topsrcdir)/$(MOZ_BRANDING_DIRECTORY)/res/values/defaults.xml
	$(NSINSTALL) -D res/values
	$(NSINSTALL) $^  res/values

$(RES_DIRS):
	$(RM) -r $@
	$(NSINSTALL) -D $@

$(RESOURCES): $(RES_DIRS) $(subst res/,$(srcdir)/resources/,$(RESOURCES))
	@echo "creating $@"
	$(NSINSTALL) $(subst res/,$(srcdir)/resources/,$@) $(dir $@)


R.java: $(MOZ_APP_ICON) $(RESOURCES) $(RES_DRAWABLE) $(RES_DRAWABLE_LDPI) $(RES_DRAWABLE_MDPI) $(RES_DRAWABLE_HDPI) $(PP_RES_XML) res/values/defaults.xml res/drawable/sync_ic_launcher.png res/drawable/icon.png res/drawable-hdpi/icon.png res/values/strings.xml AndroidManifest.xml FORCE
	$(AAPT) package -f -M AndroidManifest.xml -I $(ANDROID_SDK)/android.jar -S res -J . --custom-package org.mozilla.gecko

gecko.ap_: AndroidManifest.xml res/drawable/sync_ic_launcher.png res/drawable/icon.png res/drawable-hdpi/icon.png $(RESOURCES) $(RES_DRAWABLE) $(RES_DRAWABLE_LDPI) $(RES_DRAWABLE_MDPI) $(RES_DRAWABLE_HDPI) $(PP_RES_XML) res/values/defaults.xml res/values/strings.xml FORCE
	$(AAPT) package -f -M AndroidManifest.xml -I $(ANDROID_SDK)/android.jar  -S res -F $@

libs:: classes.dex package-name.txt
	$(INSTALL) classes.dex $(FINAL_TARGET)
	$(INSTALL) package-name.txt $(FINAL_TARGET)