# ***** 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 # Richard Newman # # 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 USE_AUTOTARGETS_MK = 1 # mkdir_deps include $(topsrcdir)/config/makefiles/makeutils.mk # Enhanced error checking javac-xlint = -Xlint:all,-deprecation,-fallthrough DIRS = locales # Directory deps dir-classes = $(call mkdir_deps,classes) dir-res-drawable = $(call mkdir_deps,res/drawable) dir-res-drawable-hdpi = $(call mkdir_deps,res/drawable-hdpi) dir-res-values = $(call mkdir_deps,res/values) # Local vars to avoid typos dir-ts = .deps/ts gecko-ap = gecko.ap_ manifest-xml = AndroidManifest.xml pkg-name = package-name.txt R-java = R.java strings-xml = res/values/strings.xml GENERATED_DIRS += $(dir-ts) DIST_FILES = $(pkg-name) include $(topsrcdir)/mobile/android/base/android-sync-files.mk #These SYNC_ variables could be moved to android-sync/fennec-copy-code.sh 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 \ SiteIdentityPopup.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) # Mangle our package name to avoid Bug 750548. DEFINES += \ -DMANGLED_ANDROID_PACKAGE_NAME=$(subst fennec,f3nn3c,$(ANDROID_PACKAGE_NAME)) \ -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) ifdef MOZ_LINKER_EXTRACT DEFINES += -DMOZ_LINKER_EXTRACT=1 endif GARBAGE += \ $(manifest-xml) \ classes.dex \ $(FENNEC_PP_JAVA_FILES) \ $(SYNC_PP_JAVA_FILES) \ $(gecko-ap) \ $(strings-xml) \ $(R-java) \ $(FENNEC_PP_XML_FILES) \ $(SYNC_PP_RES_XML) \ $(pkg-name) \ 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/site_identity_popup.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/larry_blue.png \ res/drawable/larry_green.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/larry_blue.png \ res/drawable-hdpi/larry_green.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/larry_blue.png \ res/drawable-xhdpi-v11/larry_green.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) GENERATED_DIRS += $(RES_DIRS) 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. ########################################################################### # Problems to contend with: # ------------------------------------------------------------------------- # o Third party sources will not compile cleanly with -Werror -Xlint:all # For now maintain separate -dep and -excl{usion} lists so dependencies # and command lines can be handled separately. This layer can be used # to transition files over to using stricter compiler flags by moving # files between lists. The layer should be removed after all files # have been transitioned. # o A 1-to-1 dep mapping (%.class: %.java) would be beneficial. # This would allow updating individual classes within a jarfile. # $(wildcard) can be used to gather anonymous classes. ########################################################################### ########################################################################### third-party-classes = $(dir-ts)/third-party-classes.ts # ----------------------------------------------------------------------- # -classes: block classes.dex compile until 3rd party has finished ########################################################################### third-party-src=\ $(addprefix $(srcdir)/,$(SYNC_THIRDPARTY_JAVA_FILES)) \ $(NULL) third-party-preqs=\ $(dir-classes) \ $(third-party-src) \ $(NULL) third-party-excl=\ $(dir-classes) \ $(srcdir)/Makefile.in \ $(NULL) # todo: review deps, target should use $? rather than $^. third-party-classes: $(third-party-classes) $(third-party-classes): $(third-party-preqs) $(if $(filter-out $(third-party-excl),$^),(\ $(JAVAC) $(JAVAC_FLAGS) -d classes $(filter-out $(third-party-excl),$^)\ )) @$(TOUCH) $@ $(third-party-preqs): $(srcdir)/Makefile.in ########################################################################### classes-dex-src=\ $(addprefix $(srcdir)/,$(FENNEC_JAVA_FILES)) \ $(FENNEC_PP_JAVA_FILES) \ $(addprefix $(srcdir)/,$(SYNC_JAVA_FILES)) \ $(SYNC_PP_JAVA_FILES) \ $(R-java) \ $(NULL) classes-dex-preqs=\ $(dir-classes) \ $(third-party-classes) \ $(classes-dex-src) \ $(third-party-src) \ $(NULL) classes-dex-preqs-excl=\ $(dir-classes) \ $(third-party-classes) \ $(third-party-src) \ $(srcdir)/Makefile.in \ $(NULL) classes.dex: $(classes-dex-preqs) $(if $(filter-out $(classes-dex-preqs-excl),$?),(\ $(JAVAC) $(JAVAC_FLAGS) $(javac-xlint) \ -d classes -classpath classes \ $(filter-out $(classes-dex-preqs-excl),$?)\ )) $(DX) --dex --output=$@ classes # todo: replace $(srcdir)/Makefile.in with $(GLOBAL_DEPS) $(classes-dex-preqs) : $(srcdir)/Makefile.in ########################################################################### 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) gen-preqs =\ $(call mkdir_deps,db sync/repositories/android) \ $(SYNC_MANIFEST_FRAGMENTS) \ $(NULL) gen-tgts =\ $(manifest-xml) \ $(FENNEC_PP_JAVA_FILES) \ $(SYNC_PP_JAVA_FILES) \ $(pkg-name) \ $(NULL) $(gen-tgts): % : %.in $(gen-preqs) $(PYTHON) $(topsrcdir)/config/Preprocessor.py \ $(AUTOMATION_PPARGS) $(DEFINES) $(ACDEFINES) $< > $@ $(gen-preqs): $(srcdir)/Makefile.in ##################### res/drawable/icon.png: $(dir-res-drawable) $(MOZ_APP_ICON) cp $(ICON_PATH) $@ res/drawable-hdpi/icon.png: $(dir-res-drawable-hdpi) $(MOZ_APP_ICON) cp $(ICON_PATH_HDPI) $@ ##################### res-drawable-preqs =\ $(dir-res-drawable) \ $(addprefix $(topsrcdir)/,$(MOZ_ANDROID_DRAWABLES)) \ $(NULL) RES_DRAWABLE = $(addprefix res/drawable/,$(notdir $(MOZ_ANDROID_DRAWABLES))) $(RES_DRAWABLE): $(res-drawable-preqs) $(NSINSTALL) $^ res/drawable/ ##################### res-defaults-preqs =\ $(dir-res-values) \ $(topsrcdir)/$(MOZ_BRANDING_DIRECTORY)/res/values/defaults.xml \ $(NULL) res/values/defaults.xml: $(res-defaults-preqs) $(NSINSTALL) $^ res/values # note: deps += $(RES_DIRS) moved to GENERATED_DIRS $(RESOURCES): $(subst res/,$(srcdir)/resources/,$(RESOURCES)) @echo "creating $@" $(NSINSTALL) $(subst res/,$(srcdir)/resources/,$@) $(dir $@) ## Common preqs for R.java and gecko.ap_ ########################################## rg-common-preqs =\ $(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 \ $(strings-xml) \ $(if $(IS_LANGUAGE_REPACK),FORCE) \ $(NULL) ## R.java ########### R-java-preqs =\ $(MOZ_APP_ICON) \ $(rg-common-preqs) \ $(manifest-xml) \ $(NULL) $(R-java): $(R-java-preqs) $(AAPT) package -f -M $(manifest-xml) -I $(ANDROID_SDK)/android.jar -S res -J . --custom-package org.mozilla.gecko ## gecko.ap_ ############## gecko-ap-preqs =\ $(manifest-xml) \ $(rg-common-preqs) \ $(NULL) $(gecko-ap): $(gecko-ap-preqs) $(AAPT) package -f -M $(manifest-xml) -I $(ANDROID_SDK)/android.jar -S res -F $@ ################# libs-install = $(dir-ts)/libs-install.ts libs:: $(R-java) $(gecko-ap) third-party-classes $(libs-install) $(libs-install): classes.dex $(pkg-name) $(INSTALL) $^ $(FINAL_TARGET) $(TOUCH) $@