# This Source Code Form is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the MPL was not distributed with this # file, You can obtain one at http://mozilla.org/MPL/2.0/. DEPTH = @DEPTH@ topsrcdir = @top_srcdir@ srcdir = @srcdir@ VPATH = @srcdir@ include $(DEPTH)/config/autoconf.mk DIST_FILES = package-name.txt include $(topsrcdir)/mobile/android/base/android-services-files.mk MOZGLUE_JAVA_FILES := \ mozglue/ByteBufferInputStream.java \ mozglue/DirectBufferAllocator.java \ mozglue/NativeReference.java \ mozglue/NativeZip.java \ $(NULL) MOZGLUE_PP_JAVA_FILES := \ mozglue/GeckoLoader.java \ $(NULL) UTIL_JAVA_FILES := \ util/ActivityResultHandler.java \ util/ActivityResultHandlerMap.java \ util/Clipboard.java \ util/EventDispatcher.java \ util/FloatUtils.java \ util/GamepadUtils.java \ util/GeckoBackgroundThread.java \ util/GeckoEventListener.java \ util/GeckoEventResponder.java \ util/GeckoJarReader.java \ util/HardwareUtils.java \ util/INIParser.java \ util/INISection.java \ util/JSONUtils.java \ util/StringUtils.java \ util/ThreadUtils.java \ util/UiAsyncTask.java \ $(NULL) FENNEC_JAVA_FILES = \ ANRReporter.java \ ActivityHandlerHelper.java \ AlertNotification.java \ AlignRightLinkPreference.java \ AllCapsTextView.java \ AndroidImport.java \ AndroidImportPreference.java \ AnimatedHeightLayout.java \ AppNotificationClient.java \ AwesomeBar.java \ AwesomebarResultHandler.java \ AwesomeBarTabs.java \ animation/AnimatorProxy.java \ animation/HeightChangeAnimation.java \ animation/PropertyAnimator.java \ animation/Rotate3DAnimation.java \ animation/ViewHelper.java \ awesomebar/AwesomeBarTab.java \ awesomebar/AllPagesTab.java \ awesomebar/BookmarksTab.java \ awesomebar/HistoryTab.java \ BackButton.java \ BrowserApp.java \ BrowserToolbar.java \ BrowserToolbarBackground.java \ CameraImageResultHandler.java \ CameraVideoResultHandler.java \ CanvasDelegate.java \ CheckableLinearLayout.java \ ClickableWhenDisabledEditText.java \ ContextGetter.java \ CustomEditText.java \ db/BrowserDB.java \ db/LocalBrowserDB.java \ db/DBUtils.java \ DataReportingNotification.java \ Distribution.java \ DoorHanger.java \ DoorHangerPopup.java \ EditBookmarkDialog.java \ Favicons.java \ FilePickerResultHandler.java \ FilePickerResultHandlerSync.java \ FindInPageBar.java \ FlowLayout.java \ FontSizePreference.java \ FormAssistPopup.java \ ForwardButton.java \ GeckoAccessibility.java \ GeckoApplication.java \ GeckoApp.java \ GeckoAppShell.java \ GeckoActivity.java \ GeckoBatteryManager.java \ GeckoConnectivityReceiver.java \ GeckoEditable.java \ GeckoEvent.java \ GeckoHalDefines.java \ GeckoInputConnection.java \ GeckoMessageReceiver.java \ GeckoPreferences.java \ GeckoPreferenceFragment.java \ GeckoProfile.java \ GeckoSmsManager.java \ GeckoThread.java \ GeckoJavaSampler.java \ GlobalHistory.java \ GeckoView.java \ health/BrowserHealthRecorder.java \ health/BrowserHealthReporter.java \ InputMethods.java \ JavaAddonManager.java \ LightweightTheme.java \ LightweightThemeDrawable.java \ LinkPreference.java \ MemoryMonitor.java \ MotionEventInterceptor.java \ MultiChoicePreference.java \ NotificationClient.java \ NotificationHandler.java \ NotificationHelper.java \ NotificationService.java \ NSSBridge.java \ OrderedBroadcastHelper.java \ PrefsHelper.java \ PrivateDataPreference.java \ PrivateTab.java \ ProfileMigrator.java \ Prompt.java \ PromptInput.java \ PromptService.java \ Restarter.java \ SearchEngine.java \ sqlite/ByteBufferInputStream.java \ sqlite/MatrixBlobCursor.java \ sqlite/SQLiteBridge.java \ sqlite/SQLiteBridgeException.java \ ReaderModeUtils.java \ RemoteTabs.java \ RobocopAPI.java \ ServiceNotificationClient.java \ ScrollAnimator.java \ SessionParser.java \ SetupScreen.java \ ShapedButton.java \ SharedPreferencesHelper.java \ SiteIdentityPopup.java \ SmsManager.java \ SuggestClient.java \ SurfaceBits.java \ SyncPreference.java \ Tab.java \ TabCounter.java \ Tabs.java \ TabsPanel.java \ TabsTray.java \ TabsAccessor.java \ TailTouchDelegate.java \ Telemetry.java \ TextSelection.java \ TextSelectionHandle.java \ ThumbnailHelper.java \ TouchEventInterceptor.java \ UpdateServiceHelper.java \ VideoPlayer.java \ WebAppAllocator.java \ WebAppImpl.java \ ZoomConstraints.java \ braille/com/googlecode/eyesfree/braille/selfbraille/ISelfBrailleService.java \ braille/com/googlecode/eyesfree/braille/selfbraille/SelfBrailleClient.java \ braille/com/googlecode/eyesfree/braille/selfbraille/WriteData.java \ db/BrowserContract.java \ db/BrowserProvider.java \ db/FormHistoryProvider.java \ db/PerProfileContentProvider.java \ db/PasswordsProvider.java \ db/TabsProvider.java \ gfx/Axis.java \ gfx/BitmapUtils.java \ gfx/BufferedCairoImage.java \ gfx/CairoGLInfo.java \ gfx/CairoImage.java \ gfx/CairoUtils.java \ gfx/DisplayPortCalculator.java \ gfx/DisplayPortMetrics.java \ gfx/DrawTimingQueue.java \ gfx/FloatSize.java \ gfx/GeckoLayerClient.java \ gfx/GfxInfoThread.java \ gfx/GLController.java \ gfx/ImmutableViewportMetrics.java \ gfx/InputConnectionHandler.java \ gfx/IntSize.java \ gfx/JavaPanZoomController.java \ gfx/Layer.java \ gfx/LayerMarginsAnimator.java \ gfx/LayerRenderer.java \ gfx/LayerView.java \ gfx/NativePanZoomController.java \ gfx/NinePatchTileLayer.java \ gfx/PanningPerfAPI.java \ gfx/PanZoomController.java \ gfx/PanZoomTarget.java \ gfx/PluginLayer.java \ gfx/PointUtils.java \ gfx/ProgressiveUpdateData.java \ gfx/RectUtils.java \ gfx/ScrollbarLayer.java \ gfx/SimpleScaleGestureDetector.java \ gfx/SingleTileLayer.java \ gfx/SubdocumentScrollHelper.java \ gfx/TextLayer.java \ gfx/TextureGenerator.java \ gfx/TextureReaper.java \ gfx/TileLayer.java \ gfx/TouchEventHandler.java \ gfx/ViewTransform.java \ gfx/VirtualLayer.java \ menu/GeckoMenu.java \ menu/GeckoMenuInflater.java \ menu/GeckoMenuItem.java \ menu/GeckoSubMenu.java \ menu/MenuItemActionBar.java \ menu/MenuItemActionView.java \ menu/MenuItemDefault.java \ menu/MenuPanel.java \ menu/MenuPopup.java \ widget/AboutHome.java \ widget/AboutHomeView.java \ widget/AboutHomeSection.java \ widget/ActivityChooserModel.java \ widget/AddonsSection.java \ widget/ButtonToast.java \ widget/ArrowPopup.java \ widget/DateTimePicker.java \ widget/Divider.java \ widget/FaviconView.java \ widget/GeckoPopupMenu.java \ widget/GeckoActionProvider.java \ widget/IconTabWidget.java \ widget/LastTabsSection.java \ widget/LinkTextView.java \ widget/PromoBox.java \ widget/RemoteTabsSection.java \ widget/TopSitesView.java \ widget/TabRow.java \ widget/ThumbnailView.java \ widget/TwoWayView.java \ GeckoNetworkManager.java \ GeckoScreenOrientationListener.java \ UpdateService.java \ GeckoUpdateReceiver.java \ ReferrerReceiver.java \ $(NULL) WEBSOCKETS_JAVA_FILES := \ websockets/HybiParser.java \ websockets/WebSocketClient.java \ $(NULL) ifdef MOZ_WEBRTC WEBRTC_VIDEO_CAPTURE_JAVA_FILES = \ CaptureCapabilityAndroid.java \ VideoCaptureAndroid.java \ VideoCaptureDeviceInfoAndroid.java \ $(NULL) WEBRTC_AUDIO_CAPTURE_JAVA_FILES = \ WebRTCAudioDevice.java \ $(NULL) WEBRTC_JAVA_FILES = \ $(addprefix $(DEPTH)/media/webrtc/trunk/webrtc/modules/video_capture/android/java/org/webrtc/videoengine/, $(WEBRTC_VIDEO_CAPTURE_JAVA_FILES)) \ $(addprefix $(DEPTH)/media/webrtc/trunk/webrtc/modules/audio_device/android/org/webrtc/voiceengine/, $(WEBRTC_AUDIO_CAPTURE_JAVA_FILES)) \ $(NULL) endif ifdef MOZ_ANDROID_ANR_REPORTER DEFINES += -DMOZ_ANDROID_ANR_REPORTER=1 endif FENNEC_PP_JAVA_VIEW_FILES = \ GeckoButton.java \ GeckoImageButton.java \ GeckoImageView.java \ GeckoEditText.java \ GeckoFrameLayout.java \ GeckoLinearLayout.java \ GeckoRelativeLayout.java \ GeckoTextSwitcher.java \ GeckoTextView.java \ $(NULL) FENNEC_PP_JAVA_FILES = \ App.java \ AppConstants.java \ SysInfo.java \ WebApp.java \ WebApps.java \ $(NULL) FENNEC_PP_XML_FILES = \ res/xml/preferences.xml \ res/xml/searchable.xml \ $(NULL) ifneq (,$(findstring -march=armv7,$(OS_CFLAGS))) MIN_CPU_VERSION=7 else MIN_CPU_VERSION=5 endif MOZ_APP_BUILDID=$(shell cat $(DEPTH)/config/buildid) ifeq (,$(ANDROID_VERSION_CODE)) ifeq ($(CPU_ARCH),arm) ifeq ($(MIN_CPU_VERSION),7) ANDROID_VERSION_CODE=$(shell cat $(DEPTH)/config/buildid | cut -c1-10) else # decrement the version code by 1 for armv6 builds so armv7 builds will win any compatability ties ANDROID_VERSION_CODE=$(shell echo $$((`cat $(DEPTH)/config/buildid | cut -c1-10` - 1))) endif else #not arm, so x86 # increment the version code by 1 for x86 builds so they are offered to x86 phones that have arm emulators ANDROID_VERSION_CODE=$(shell echo $$((`cat $(DEPTH)/config/buildid | cut -c1-10` + 1))) endif endif UA_BUILDID=$(shell echo $(ANDROID_VERSION_CODE) | cut -c1-8) MOZ_BUILD_TIMESTAMP=$(shell echo `$(PYTHON) $(topsrcdir)/toolkit/xre/make-platformini.py --print-timestamp`) ifdef MOZ_UPDATER DEFINES += -DMOZ_UPDATER=$(MOZ_UPDATER) endif # 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) \ -DANDROID_CPU_ARCH=$(ANDROID_CPU_ARCH) \ -DANDROID_VERSION_CODE=$(ANDROID_VERSION_CODE) \ -DCPU_ARCH=$(CPU_ARCH) \ -DGRE_MILESTONE=$(GRE_MILESTONE) \ -DMOZILLA_OFFICIAL=$(MOZILLA_OFFICIAL) \ -DMOZ_APP_ABI=$(TARGET_XPCOM_ABI) \ -DMOZ_APP_BASENAME=$(MOZ_APP_BASENAME) \ -DMOZ_APP_BUILDID=$(MOZ_APP_BUILDID) \ -DMOZ_APP_DISPLAYNAME="$(MOZ_APP_DISPLAYNAME)" \ -DMOZ_APP_ID=$(MOZ_APP_ID) \ -DMOZ_APP_NAME=$(MOZ_APP_NAME) \ -DMOZ_APP_VENDOR=$(MOZ_APP_VENDOR) \ -DMOZ_APP_VERSION=$(MOZ_APP_VERSION) \ -DMOZ_BUILD_TIMESTAMP=$(MOZ_BUILD_TIMESTAMP) \ -DMOZ_CHILD_PROCESS_NAME=$(MOZ_CHILD_PROCESS_NAME) \ -DMOZ_CRASHREPORTER=$(MOZ_CRASHREPORTER) \ -DMOZ_MIN_CPU_VERSION=$(MIN_CPU_VERSION) \ -DMOZ_UPDATE_CHANNEL=$(MOZ_UPDATE_CHANNEL) \ -DOMNIJAR_NAME=$(OMNIJAR_NAME) \ -DOS_TARGET=$(OS_TARGET) \ -DTARGET_XPCOM_ABI=$(TARGET_XPCOM_ABI) \ -DUA_BUILDID=$(UA_BUILDID) \ $(NULL) ifdef MOZ_PKG_SPECIAL DEFINES += -DMOZ_PKG_SPECIAL=$(MOZ_PKG_SPECIAL) endif ifdef MOZ_LINKER_EXTRACT DEFINES += -DMOZ_LINKER_EXTRACT=1 endif GARBAGE += \ AndroidManifest.xml \ classes.dex \ $(MOZGLUE_PP_JAVA_FILES) \ $(FENNEC_PP_JAVA_FILES) \ $(FENNEC_PP_JAVA_VIEW_FILES) \ $(SYNC_PP_JAVA_FILES) \ gecko.ap_ \ res/values/strings.xml \ R.java \ $(FENNEC_PP_XML_FILES) \ $(SYNC_PP_RES_XML) \ package-name.txt \ fennec_ids.txt \ Manifest.java \ javah.out \ jni-stubs.inc \ $(NULL) GARBAGE_DIRS += classes db jars res sync services MOZ_ANDROID_SHARED_ID = "$(ANDROID_PACKAGE_NAME).sharedID" MOZ_ANDROID_SHARED_ACCOUNT_TYPE = "$(ANDROID_PACKAGE_NAME)_sync" # 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 ICON_PATH_XHDPI = $(topsrcdir)/$(MOZ_BRANDING_DIRECTORY)/content/fennec_96x96.png ICON_PATH_XXHDPI = $(topsrcdir)/$(MOZ_BRANDING_DIRECTORY)/content/fennec_144x144.png # we released these builds to the public with shared IDs and need to keep them ifeq (org.mozilla.firefox,$(ANDROID_PACKAGE_NAME)) MOZ_ANDROID_SHARED_ID = "org.mozilla.firefox.sharedID" MOZ_ANDROID_SHARED_ACCOUNT_TYPE = "org.mozilla.firefox_sync" else ifeq (org.mozilla.firefox_beta,$(ANDROID_PACKAGE_NAME)) MOZ_ANDROID_SHARED_ID = "org.mozilla.firefox.sharedID" MOZ_ANDROID_SHARED_ACCOUNT_TYPE = "org.mozilla.firefox_sync" else ifeq (org.mozilla.fennec_aurora,$(ANDROID_PACKAGE_NAME)) MOZ_ANDROID_SHARED_ID = "org.mozilla.fennec.sharedID" MOZ_ANDROID_SHARED_ACCOUNT_TYPE = "org.mozilla.fennec_sync" else ifeq (org.mozilla.fennec,$(ANDROID_PACKAGE_NAME)) MOZ_ANDROID_SHARED_ID = "org.mozilla.fennec.sharedID" MOZ_ANDROID_SHARED_ACCOUNT_TYPE = "org.mozilla.fennec_sync" endif else ICON_PATH = $(topsrcdir)/$(MOZ_BRANDING_DIRECTORY)/content/icon48.png ICON_PATH_HDPI = $(topsrcdir)/$(MOZ_BRANDING_DIRECTORY)/content/icon64.png endif ifdef MOZ_ANDROID_SHARED_ID DEFINES += -DMOZ_ANDROID_SHARED_ID="$(MOZ_ANDROID_SHARED_ID)" endif ifdef MOZ_ANDROID_SHARED_ACCOUNT_TYPE DEFINES += -DMOZ_ANDROID_SHARED_ACCOUNT_TYPE="$(MOZ_ANDROID_SHARED_ACCOUNT_TYPE)" endif RES_LAYOUT = \ $(SYNC_RES_LAYOUT) \ res/layout/abouthome_content.xml \ res/layout/arrow_popup.xml \ 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_allpages_list.xml \ res/layout/awesomebar_row.xml \ res/layout/awesomebar_search.xml \ res/layout/awesomebar_suggestion_row.xml \ res/layout/awesomebar_suggestion_item.xml \ res/layout/awesomebar_suggestion_prompt.xml \ res/layout/awesomebar_tab_indicator.xml \ res/layout/awesomebar_tabs.xml \ res/layout/bookmark_edit.xml \ res/layout/browser_toolbar.xml \ res/layout/datetime_picker.xml \ res/layout/doorhanger.xml \ res/layout/doorhanger_button.xml \ res/layout/find_in_page_content.xml \ res/layout/font_size_preference.xml \ res/layout/gecko_app.xml \ res/layout/web_app.xml \ res/layout/launch_app_list.xml \ res/layout/launch_app_listitem.xml \ res/layout/menu_action_bar.xml \ res/layout/menu_item_action_view.xml \ res/layout/menu_popup.xml \ res/layout/notification_icon_text.xml \ res/layout/notification_progress.xml \ res/layout/notification_progress_text.xml \ res/layout/preference_rightalign_icon.xml \ res/layout/site_setting_item.xml \ res/layout/site_setting_title.xml \ res/layout/setup_screen.xml \ res/layout/shared_ui_components.xml \ res/layout/site_identity.xml \ res/layout/remote_tabs_child.xml \ res/layout/remote_tabs_group.xml \ res/layout/tabs_panel.xml \ res/layout/tabs_counter.xml \ res/layout/tabs_panel_header.xml \ res/layout/tabs_panel_indicator.xml \ res/layout/tabs_item_cell.xml \ res/layout/tabs_item_row.xml \ res/layout/text_selection_handles.xml \ res/layout/list_item_header.xml \ res/layout/select_dialog_list.xml \ res/layout/select_dialog_multichoice.xml \ res/layout/select_dialog_singlechoice.xml \ res/layout/simple_dropdown_item_1line.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 \ res/layout/videoplayer.xml \ $(NULL) RES_LAYOUT_LARGE_V11 = \ res/layout-large-v11/awesomebar_search.xml \ res/layout-large-v11/browser_toolbar.xml \ $(NULL) RES_LAYOUT_LARGE_LAND_V11 = \ res/layout-large-land-v11/tabs_panel.xml \ res/layout-large-land-v11/tabs_panel_header.xml \ res/layout-large-land-v11/tabs_panel_footer.xml \ $(NULL) RES_LAYOUT_XLARGE_V11 = \ res/layout-xlarge-v11/awesomebar_search.xml \ res/layout-xlarge-v11/font_size_preference.xml \ res/layout-xlarge-v11/remote_tabs_child.xml \ res/layout-xlarge-v11/remote_tabs_group.xml \ $(NULL) RES_LAYOUT_XLARGE_LAND_V11 = \ res/layout-xlarge-land-v11/abouthome_content.xml \ $(NULL) RES_VALUES = \ $(SYNC_RES_VALUES) \ res/values/attrs.xml \ res/values/arrays.xml \ res/values/colors.xml \ res/values/dimens.xml \ res/values/integers.xml \ res/values/layout.xml \ res/values/styles.xml \ res/values/themes.xml \ $(NULL) RES_VALUES_LAND = \ res/values-land/integers.xml \ res/values-land/layout.xml \ res/values-land/styles.xml \ $(NULL) RES_VALUES_V11 = \ $(SYNC_RES_VALUES_V11) \ res/values-v11/colors.xml \ res/values-v11/dimens.xml \ res/values-v11/styles.xml \ res/values-v11/themes.xml \ $(NULL) RES_VALUES_LARGE_V11 = \ $(SYNC_RES_VALUES_LARGE_V11) \ res/values-large-v11/dimens.xml \ res/values-large-v11/layout.xml \ res/values-large-v11/styles.xml \ res/values-large-v11/themes.xml \ $(NULL) RES_VALUES_LARGE_LAND_V11 = \ res/values-large-land-v11/styles.xml \ $(NULL) RES_VALUES_XLARGE_V11 = \ res/values-xlarge-v11/dimens.xml \ res/values-xlarge-v11/integers.xml \ res/values-xlarge-v11/styles.xml \ $(NULL) RES_VALUES_V14 = \ res/values-v14/styles.xml \ $(NULL) RES_XML = \ res/xml/preferences_customize.xml \ res/xml/preferences_display.xml \ res/xml/preferences_privacy.xml \ res/xml/preferences_vendor.xml \ $(SYNC_RES_XML) \ $(NULL) RES_XML_V11 = \ res/xml-v11/preference_headers.xml \ res/xml-v11/preferences_customize_tablet.xml \ res/xml-v11/preferences.xml \ $(NULL) RES_ANIM = \ res/anim/awesomebar_fade_in.xml \ res/anim/popup_show.xml \ res/anim/popup_hide.xml \ res/anim/awesomebar_fade_out.xml \ res/anim/awesomebar_hold_still.xml \ res/anim/grow_fade_in.xml \ res/anim/grow_fade_in_center.xml \ res/anim/shrink_fade_out.xml \ $(NULL) RES_DRAWABLE_MDPI = \ res/drawable-mdpi/blank.png \ res/drawable-mdpi/favicon.png \ res/drawable-mdpi/folder.png \ res/drawable-mdpi/abouthome_icon.png \ res/drawable-mdpi/abouthome_logo_dark.png \ res/drawable-mdpi/abouthome_logo_light.png \ res/drawable-mdpi/abouthome_promo_box_bg.9.png \ res/drawable-mdpi/abouthome_promo_box_pressed_bg.9.png \ res/drawable-mdpi/abouthome_promo_logo_apps.png \ res/drawable-mdpi/abouthome_promo_logo_sync.png \ res/drawable-mdpi/abouthome_thumbnail.png \ res/drawable-mdpi/abouthome_thumbnail_bg.png \ res/drawable-mdpi/abouthome_thumbnail_add.png \ res/drawable-mdpi/address_bar_bg_shadow.png \ res/drawable-mdpi/alert_addon.png \ res/drawable-mdpi/alert_app.png \ res/drawable-mdpi/alert_download.png \ res/drawable-mdpi/alert_camera.png \ res/drawable-mdpi/alert_mic.png \ res/drawable-mdpi/alert_mic_camera.png \ res/drawable-mdpi/arrow_popup_bg.9.png \ res/drawable-mdpi/autocomplete_list_bg.9.png \ res/drawable-mdpi/awesomebar_tab_center.9.png \ res/drawable-mdpi/awesomebar_tab_left.9.png \ res/drawable-mdpi/awesomebar_tab_right.9.png \ res/drawable-mdpi/awesomebar_sep_left.9.png \ res/drawable-mdpi/awesomebar_sep_right.9.png \ res/drawable-mdpi/desktop_notification.png \ res/drawable-mdpi/ic_addons_empty.png \ res/drawable-mdpi/ic_awesomebar_go.png \ res/drawable-mdpi/ic_awesomebar_reader.png \ res/drawable-mdpi/ic_awesomebar_search.png \ res/drawable-mdpi/ic_awesomebar_star.png \ res/drawable-mdpi/ic_awesomebar_tab.png \ res/drawable-mdpi/ic_menu_addons_filler.png \ res/drawable-mdpi/ic_menu_bookmark_add.png \ res/drawable-mdpi/ic_menu_bookmark_remove.png \ res/drawable-mdpi/ic_menu_character_encoding.png \ res/drawable-mdpi/ic_menu_close_all_tabs.png \ res/drawable-mdpi/ic_menu_forward.png \ res/drawable-mdpi/ic_menu_new_private_tab.png \ res/drawable-mdpi/ic_menu_new_tab.png \ res/drawable-mdpi/ic_menu_reload.png \ res/drawable-mdpi/ic_status_logo.png \ res/drawable-mdpi/progress_spinner_1.png \ res/drawable-mdpi/progress_spinner_2.png \ res/drawable-mdpi/progress_spinner_3.png \ res/drawable-mdpi/progress_spinner_4.png \ res/drawable-mdpi/progress_spinner_5.png \ res/drawable-mdpi/progress_spinner_6.png \ res/drawable-mdpi/progress_spinner_7.png \ res/drawable-mdpi/progress_spinner_8.png \ res/drawable-mdpi/progress_spinner_9.png \ res/drawable-mdpi/progress_spinner_10.png \ res/drawable-mdpi/progress_spinner_11.png \ res/drawable-mdpi/progress_spinner_12.png \ res/drawable-mdpi/tab_indicator_divider.9.png \ res/drawable-mdpi/tab_indicator_selected.9.png \ res/drawable-mdpi/tab_indicator_selected_focused.9.png \ res/drawable-mdpi/spinner_default.9.png \ res/drawable-mdpi/spinner_focused.9.png \ res/drawable-mdpi/spinner_pressed.9.png \ res/drawable-mdpi/tab_new.png \ res/drawable-mdpi/tab_new_pb.png \ res/drawable-mdpi/tab_close.png \ res/drawable-mdpi/tab_thumbnail_default.png \ res/drawable-mdpi/tab_thumbnail_shadow.png \ res/drawable-mdpi/tabs_count.png \ res/drawable-mdpi/tabs_count_foreground.png \ res/drawable-mdpi/toast.9.png \ res/drawable-mdpi/toast_button_focused.9.png \ res/drawable-mdpi/toast_button_pressed.9.png \ res/drawable-mdpi/toast_divider.9.png \ res/drawable-mdpi/address_bar_url_default.9.png \ res/drawable-mdpi/address_bar_url_default_pb.9.png \ res/drawable-mdpi/address_bar_url_pressed.9.png \ res/drawable-mdpi/address_bar_url_pressed_pb.9.png \ res/drawable-mdpi/find_close.png \ res/drawable-mdpi/find_next.png \ res/drawable-mdpi/find_prev.png \ res/drawable-mdpi/larry_blue.png \ res/drawable-mdpi/larry_green.png \ res/drawable-mdpi/menu.png \ res/drawable-mdpi/menu_pb.png \ res/drawable-mdpi/menu_panel_bg.9.png \ res/drawable-mdpi/menu_popup_bg.9.png \ res/drawable-mdpi/menu_popup_arrow_bottom.png \ res/drawable-mdpi/menu_popup_arrow_top.png \ res/drawable-mdpi/menu_item_check.png \ res/drawable-mdpi/menu_item_more.png \ res/drawable-mdpi/menu_item_uncheck.png \ res/drawable-mdpi/site_security_blocked_mixed_content.png \ res/drawable-mdpi/site_security_loaded_mixed_content.png \ res/drawable-mdpi/site_security_identified.png \ res/drawable-mdpi/site_security_verified.png \ res/drawable-mdpi/tabs_normal.png \ res/drawable-mdpi/tabs_private.png \ res/drawable-mdpi/tabs_synced.png \ res/drawable-mdpi/urlbar_stop.png \ res/drawable-mdpi/reader.png \ res/drawable-mdpi/reader_active.png \ res/drawable-mdpi/reading_list.png \ res/drawable-mdpi/validation_arrow.png \ res/drawable-mdpi/validation_arrow_inverted.png \ res/drawable-mdpi/validation_bg.9.png \ res/drawable-mdpi/bookmarkdefaults_favicon_support.png \ res/drawable-mdpi/bookmarkdefaults_favicon_addons.png \ res/drawable-mdpi/handle_end.png \ res/drawable-mdpi/handle_middle.png \ res/drawable-mdpi/handle_start.png \ res/drawable-mdpi/scrollbar.png \ res/drawable-mdpi/shadow.png \ res/drawable-mdpi/start.png \ res/drawable-mdpi/marketplace.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/blank.png \ 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_dark.png \ res/drawable-hdpi/abouthome_logo_light.png \ res/drawable-hdpi/abouthome_promo_box_bg.9.png \ res/drawable-hdpi/abouthome_promo_box_pressed_bg.9.png \ res/drawable-hdpi/abouthome_promo_logo_apps.png \ res/drawable-hdpi/abouthome_promo_logo_sync.png \ res/drawable-hdpi/abouthome_thumbnail.png \ res/drawable-hdpi/abouthome_thumbnail_bg.png \ res/drawable-hdpi/abouthome_thumbnail_add.png \ res/drawable-hdpi/address_bar_bg_shadow.png \ res/drawable-hdpi/alert_addon.png \ res/drawable-hdpi/alert_app.png \ res/drawable-hdpi/alert_download.png \ res/drawable-hdpi/alert_camera.png \ res/drawable-hdpi/alert_mic.png \ res/drawable-hdpi/alert_mic_camera.png \ res/drawable-hdpi/arrow_popup_bg.9.png \ res/drawable-hdpi/awesomebar_tab_center.9.png \ res/drawable-hdpi/awesomebar_tab_left.9.png \ res/drawable-hdpi/awesomebar_tab_right.9.png \ res/drawable-hdpi/awesomebar_sep_left.9.png \ res/drawable-hdpi/awesomebar_sep_right.9.png \ res/drawable-hdpi/ic_addons_empty.png \ res/drawable-hdpi/ic_awesomebar_go.png \ res/drawable-hdpi/ic_awesomebar_reader.png \ res/drawable-hdpi/ic_awesomebar_search.png \ res/drawable-hdpi/ic_awesomebar_star.png \ res/drawable-hdpi/ic_awesomebar_tab.png \ res/drawable-hdpi/ic_menu_addons_filler.png \ res/drawable-hdpi/ic_menu_bookmark_add.png \ res/drawable-hdpi/ic_menu_bookmark_remove.png \ res/drawable-hdpi/ic_menu_character_encoding.png \ res/drawable-hdpi/ic_menu_close_all_tabs.png \ res/drawable-hdpi/ic_menu_forward.png \ res/drawable-hdpi/ic_menu_new_private_tab.png \ res/drawable-hdpi/ic_menu_new_tab.png \ res/drawable-hdpi/ic_menu_reload.png \ res/drawable-hdpi/ic_status_logo.png \ res/drawable-hdpi/tab_indicator_divider.9.png \ res/drawable-hdpi/tab_indicator_selected.9.png \ res/drawable-hdpi/tab_indicator_selected_focused.9.png \ res/drawable-hdpi/spinner_default.9.png \ res/drawable-hdpi/spinner_focused.9.png \ res/drawable-hdpi/spinner_pressed.9.png \ res/drawable-hdpi/tab_new.png \ res/drawable-hdpi/tab_new_pb.png \ res/drawable-hdpi/tab_close.png \ res/drawable-hdpi/tab_thumbnail_default.png \ res/drawable-hdpi/tab_thumbnail_shadow.png \ res/drawable-hdpi/tabs_count.png \ res/drawable-hdpi/tabs_count_foreground.png \ res/drawable-hdpi/address_bar_url_default.9.png \ res/drawable-hdpi/address_bar_url_default_pb.9.png \ res/drawable-hdpi/address_bar_url_pressed.9.png \ res/drawable-hdpi/address_bar_url_pressed_pb.9.png \ res/drawable-hdpi/find_close.png \ res/drawable-hdpi/find_next.png \ res/drawable-hdpi/find_prev.png \ res/drawable-hdpi/larry_blue.png \ res/drawable-hdpi/larry_green.png \ res/drawable-hdpi/menu.png \ res/drawable-hdpi/menu_pb.png \ res/drawable-hdpi/menu_panel_bg.9.png \ res/drawable-hdpi/menu_popup_bg.9.png \ res/drawable-hdpi/menu_popup_arrow_bottom.png \ res/drawable-hdpi/menu_popup_arrow_top.png \ res/drawable-hdpi/menu_item_check.png \ res/drawable-hdpi/menu_item_more.png \ res/drawable-hdpi/menu_item_uncheck.png \ res/drawable-hdpi/site_security_blocked_mixed_content.png \ res/drawable-hdpi/site_security_loaded_mixed_content.png \ res/drawable-hdpi/site_security_identified.png \ res/drawable-hdpi/site_security_verified.png \ res/drawable-hdpi/tabs_normal.png \ res/drawable-hdpi/tabs_private.png \ res/drawable-hdpi/tabs_synced.png \ res/drawable-hdpi/urlbar_stop.png \ res/drawable-hdpi/reader.png \ res/drawable-hdpi/reader_active.png \ res/drawable-hdpi/reading_list.png \ res/drawable-hdpi/validation_arrow.png \ res/drawable-hdpi/validation_arrow_inverted.png \ res/drawable-hdpi/validation_bg.9.png \ res/drawable-hdpi/handle_end.png \ res/drawable-hdpi/handle_middle.png \ res/drawable-hdpi/handle_start.png \ $(addprefix res/drawable-hdpi/,$(notdir $(SYNC_RES_DRAWABLE_HDPI))) \ $(NULL) RES_DRAWABLE_XHDPI = \ res/drawable-xhdpi/blank.png \ res/drawable-xhdpi/favicon.png \ res/drawable-xhdpi/folder.png \ res/drawable-xhdpi/abouthome_icon.png \ res/drawable-xhdpi/abouthome_logo_dark.png \ res/drawable-xhdpi/abouthome_logo_light.png \ res/drawable-xhdpi/abouthome_promo_box_bg.9.png \ res/drawable-xhdpi/abouthome_promo_box_pressed_bg.9.png \ res/drawable-xhdpi/abouthome_promo_logo_apps.png \ res/drawable-xhdpi/abouthome_promo_logo_sync.png \ res/drawable-xhdpi/abouthome_thumbnail.png \ res/drawable-xhdpi/abouthome_thumbnail_bg.png \ res/drawable-xhdpi/abouthome_thumbnail_add.png \ res/drawable-xhdpi/address_bar_bg_shadow.png \ res/drawable-xhdpi/address_bar_url_default.9.png \ res/drawable-xhdpi/address_bar_url_default_pb.9.png \ res/drawable-xhdpi/address_bar_url_pressed.9.png \ res/drawable-xhdpi/address_bar_url_pressed_pb.9.png \ res/drawable-xhdpi/alert_addon.png \ res/drawable-xhdpi/alert_app.png \ res/drawable-xhdpi/alert_download.png \ res/drawable-xhdpi/alert_camera.png \ res/drawable-xhdpi/alert_mic.png \ res/drawable-xhdpi/alert_mic_camera.png \ res/drawable-xhdpi/arrow_popup_bg.9.png \ res/drawable-xhdpi/awesomebar_tab_center.9.png \ res/drawable-xhdpi/awesomebar_tab_left.9.png \ res/drawable-xhdpi/awesomebar_tab_right.9.png \ res/drawable-xhdpi/awesomebar_sep_left.9.png \ res/drawable-xhdpi/awesomebar_sep_right.9.png \ res/drawable-xhdpi/ic_addons_empty.png \ res/drawable-xhdpi/ic_awesomebar_go.png \ res/drawable-xhdpi/ic_awesomebar_reader.png \ res/drawable-xhdpi/ic_awesomebar_search.png \ res/drawable-xhdpi/ic_awesomebar_star.png \ res/drawable-xhdpi/ic_awesomebar_tab.png \ res/drawable-xhdpi/ic_menu_addons_filler.png \ res/drawable-xhdpi/ic_menu_bookmark_add.png \ res/drawable-xhdpi/ic_menu_bookmark_remove.png \ res/drawable-xhdpi/ic_menu_close_all_tabs.png \ res/drawable-xhdpi/ic_menu_character_encoding.png \ res/drawable-xhdpi/ic_menu_forward.png \ res/drawable-xhdpi/ic_menu_new_private_tab.png \ res/drawable-xhdpi/ic_menu_new_tab.png \ res/drawable-xhdpi/ic_menu_reload.png \ res/drawable-xhdpi/ic_status_logo.png \ res/drawable-xhdpi/spinner_default.9.png \ res/drawable-xhdpi/spinner_focused.9.png \ res/drawable-xhdpi/spinner_pressed.9.png \ res/drawable-xhdpi/tab_new.png \ res/drawable-xhdpi/tab_new_pb.png \ res/drawable-xhdpi/tab_close.png \ res/drawable-xhdpi/tab_thumbnail_default.png \ res/drawable-xhdpi/tab_thumbnail_shadow.png \ res/drawable-xhdpi/tabs_count.png \ res/drawable-xhdpi/tabs_count_foreground.png \ res/drawable-xhdpi/find_close.png \ res/drawable-xhdpi/find_next.png \ res/drawable-xhdpi/find_prev.png \ res/drawable-xhdpi/urlbar_stop.png \ res/drawable-xhdpi/reader.png \ res/drawable-xhdpi/reader_active.png \ res/drawable-xhdpi/reading_list.png \ res/drawable-xhdpi/larry_blue.png \ res/drawable-xhdpi/larry_green.png \ res/drawable-xhdpi/menu.png \ res/drawable-xhdpi/menu_pb.png \ res/drawable-xhdpi/menu_panel_bg.9.png \ res/drawable-xhdpi/menu_popup_bg.9.png \ res/drawable-xhdpi/menu_popup_arrow_bottom.png \ res/drawable-xhdpi/menu_popup_arrow_top.png \ res/drawable-xhdpi/menu_item_check.png \ res/drawable-xhdpi/menu_item_more.png \ res/drawable-xhdpi/menu_item_uncheck.png \ res/drawable-xhdpi/tab_indicator_divider.9.png \ res/drawable-xhdpi/tab_indicator_selected.9.png \ res/drawable-xhdpi/tab_indicator_selected_focused.9.png \ res/drawable-xhdpi/site_security_blocked_mixed_content.png \ res/drawable-xhdpi/site_security_loaded_mixed_content.png \ res/drawable-xhdpi/site_security_identified.png \ res/drawable-xhdpi/site_security_verified.png \ res/drawable-xhdpi/tabs_normal.png \ res/drawable-xhdpi/tabs_private.png \ res/drawable-xhdpi/tabs_synced.png \ res/drawable-xhdpi/validation_arrow.png \ res/drawable-xhdpi/validation_arrow_inverted.png \ res/drawable-xhdpi/validation_bg.9.png \ res/drawable-xhdpi/handle_end.png \ res/drawable-xhdpi/handle_middle.png \ res/drawable-xhdpi/handle_start.png \ $(NULL) RES_DRAWABLE_MDPI_V11 = \ res/drawable-mdpi-v11/alert_addon.png \ res/drawable-mdpi-v11/alert_app.png \ res/drawable-mdpi-v11/alert_download.png \ res/drawable-mdpi-v11/alert_camera.png \ res/drawable-mdpi-v11/alert_mic.png \ res/drawable-mdpi-v11/alert_mic_camera.png \ res/drawable-mdpi-v11/firefox_settings_alert.png \ res/drawable-mdpi-v11/ic_menu_addons.png \ res/drawable-mdpi-v11/ic_menu_apps.png \ res/drawable-mdpi-v11/ic_menu_back.png \ res/drawable-mdpi-v11/ic_menu_bookmark_add.png \ res/drawable-mdpi-v11/ic_menu_bookmark_remove.png \ res/drawable-mdpi-v11/ic_menu_desktop_mode_off.png \ res/drawable-mdpi-v11/ic_menu_desktop_mode_on.png \ res/drawable-mdpi-v11/ic_menu_downloads.png \ res/drawable-mdpi-v11/ic_menu_find_in_page.png \ res/drawable-mdpi-v11/ic_menu_forward.png \ res/drawable-mdpi-v11/ic_menu_new_private_tab.png \ res/drawable-mdpi-v11/ic_menu_new_tab.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_settings.png \ res/drawable-mdpi-v11/ic_menu_share.png \ res/drawable-mdpi-v11/ic_menu_tools.png \ res/drawable-mdpi-v11/ic_menu_quit.png \ res/drawable-mdpi-v11/ic_status_logo.png \ $(NULL) RES_DRAWABLE_HDPI_V11 = \ res/drawable-hdpi-v11/alert_addon.png \ res/drawable-hdpi-v11/alert_app.png \ res/drawable-hdpi-v11/alert_download.png \ res/drawable-hdpi-v11/alert_camera.png \ res/drawable-hdpi-v11/alert_mic.png \ res/drawable-hdpi-v11/alert_mic_camera.png \ res/drawable-hdpi-v11/firefox_settings_alert.png \ res/drawable-hdpi-v11/ic_menu_addons.png \ res/drawable-hdpi-v11/ic_menu_apps.png \ res/drawable-hdpi-v11/ic_menu_back.png \ res/drawable-hdpi-v11/ic_menu_bookmark_add.png \ res/drawable-hdpi-v11/ic_menu_bookmark_remove.png \ res/drawable-hdpi-v11/ic_menu_desktop_mode_off.png \ res/drawable-hdpi-v11/ic_menu_desktop_mode_on.png \ res/drawable-hdpi-v11/ic_menu_downloads.png \ res/drawable-hdpi-v11/ic_menu_find_in_page.png \ res/drawable-hdpi-v11/ic_menu_forward.png \ res/drawable-hdpi-v11/ic_menu_new_private_tab.png \ res/drawable-hdpi-v11/ic_menu_new_tab.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_settings.png \ res/drawable-hdpi-v11/ic_menu_share.png \ res/drawable-hdpi-v11/ic_menu_tools.png \ res/drawable-hdpi-v11/ic_menu_quit.png \ res/drawable-hdpi-v11/ic_status_logo.png \ $(NULL) RES_DRAWABLE_XHDPI_V11 = \ res/drawable-xhdpi-v11/alert_addon.png \ res/drawable-xhdpi-v11/alert_app.png \ res/drawable-xhdpi-v11/alert_download.png \ res/drawable-xhdpi-v11/alert_camera.png \ res/drawable-xhdpi-v11/alert_mic.png \ res/drawable-xhdpi-v11/alert_mic_camera.png \ res/drawable-xhdpi-v11/firefox_settings_alert.png \ res/drawable-xhdpi-v11/ic_menu_addons.png \ res/drawable-xhdpi-v11/ic_menu_apps.png \ res/drawable-xhdpi-v11/ic_menu_back.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_desktop_mode_off.png \ res/drawable-xhdpi-v11/ic_menu_desktop_mode_on.png \ res/drawable-xhdpi-v11/ic_menu_downloads.png \ res/drawable-xhdpi-v11/ic_menu_find_in_page.png \ res/drawable-xhdpi-v11/ic_menu_forward.png \ res/drawable-xhdpi-v11/ic_menu_new_private_tab.png \ res/drawable-xhdpi-v11/ic_menu_new_tab.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_settings.png \ res/drawable-xhdpi-v11/ic_menu_share.png \ res/drawable-xhdpi-v11/ic_menu_tools.png \ res/drawable-xhdpi-v11/ic_menu_quit.png \ res/drawable-xhdpi-v11/ic_status_logo.png \ $(NULL) RES_DRAWABLE_LARGE_MDPI_V11 = \ res/drawable-large-mdpi-v11/arrow_popup_bg.9.png \ res/drawable-large-mdpi-v11/ic_menu_reload.png \ res/drawable-large-mdpi-v11/ic_menu_forward.png \ res/drawable-large-mdpi-v11/menu.png \ $(NULL) RES_DRAWABLE_LARGE_HDPI_V11 = \ res/drawable-large-hdpi-v11/arrow_popup_bg.9.png \ res/drawable-large-hdpi-v11/ic_menu_reload.png \ res/drawable-large-hdpi-v11/ic_menu_forward.png \ res/drawable-large-hdpi-v11/menu.png \ $(NULL) RES_DRAWABLE_LARGE_XHDPI_V11 = \ res/drawable-large-xhdpi-v11/arrow_popup_bg.9.png \ res/drawable-large-xhdpi-v11/ic_menu_reload.png \ res/drawable-large-xhdpi-v11/ic_menu_forward.png \ res/drawable-large-xhdpi-v11/menu.png \ $(NULL) RES_DRAWABLE_XLARGE_MDPI_V11 = \ res/drawable-xlarge-mdpi-v11/awesomebar_tab_center.9.png \ res/drawable-xlarge-mdpi-v11/awesomebar_tab_left.9.png \ res/drawable-xlarge-mdpi-v11/awesomebar_tab_right.9.png \ res/drawable-xlarge-mdpi-v11/awesomebar_sep_left.9.png \ res/drawable-xlarge-mdpi-v11/awesomebar_sep_right.9.png \ res/drawable-xlarge-mdpi-v11/ic_menu_bookmark_add.png \ res/drawable-xlarge-mdpi-v11/ic_menu_bookmark_remove.png \ $(NULL) RES_DRAWABLE_XLARGE_HDPI_V11 = \ res/drawable-xlarge-hdpi-v11/awesomebar_tab_center.9.png \ res/drawable-xlarge-hdpi-v11/awesomebar_tab_left.9.png \ res/drawable-xlarge-hdpi-v11/awesomebar_tab_right.9.png \ res/drawable-xlarge-hdpi-v11/awesomebar_sep_left.9.png \ res/drawable-xlarge-hdpi-v11/awesomebar_sep_right.9.png \ res/drawable-xlarge-hdpi-v11/ic_menu_bookmark_add.png \ res/drawable-xlarge-hdpi-v11/ic_menu_bookmark_remove.png \ $(NULL) RES_DRAWABLE_XLARGE_XHDPI_V11 = \ res/drawable-xlarge-xhdpi-v11/awesomebar_tab_center.9.png \ res/drawable-xlarge-xhdpi-v11/awesomebar_tab_left.9.png \ res/drawable-xlarge-xhdpi-v11/awesomebar_tab_right.9.png \ res/drawable-xlarge-xhdpi-v11/awesomebar_sep_left.9.png \ res/drawable-xlarge-xhdpi-v11/awesomebar_sep_right.9.png \ res/drawable-xlarge-xhdpi-v11/ic_menu_bookmark_add.png \ res/drawable-xlarge-xhdpi-v11/ic_menu_bookmark_remove.png \ $(NULL) RES_COLOR = \ res/color/abouthome_section_more_text.xml \ res/color/abouthome_section_subtitle.xml \ res/color/abouthome_section_title.xml \ res/color/awesome_bar_title.xml \ res/color/awesome_bar_title_hint.xml \ res/color/primary_text.xml \ res/color/primary_text_inverse.xml \ res/color/secondary_text.xml \ res/color/secondary_text_inverse.xml \ res/color/select_item_multichoice.xml \ res/color/tertiary_text.xml \ res/color/tertiary_text_inverse.xml \ $(NULL) RES_MENU = \ res/menu/abouthome_topsites_contextmenu.xml \ res/menu/awesomebar_contextmenu.xml \ res/menu/browser_app_menu.xml \ res/menu/gecko_app_menu.xml \ res/menu/titlebar_contextmenu.xml \ res/menu-large-v11/browser_app_menu.xml \ res/menu-v11/browser_app_menu.xml \ res/menu-xlarge-v11/browser_app_menu.xml \ $(NULL) JAVA_CLASSPATH = $(ANDROID_SDK)/android.jar ifdef MOZ_CRASHREPORTER FENNEC_JAVA_FILES += CrashReporter.java RES_DRAWABLE_MDPI += res/drawable-mdpi/crash_reporter.png RES_LAYOUT += res/layout/crash_reporter.xml endif MOZ_ANDROID_DRAWABLES += \ $(SYNC_RES_DRAWABLE) \ mobile/android/base/resources/drawable/abouthome_logo.xml \ mobile/android/base/resources/drawable/abouthome_promo_box.xml \ mobile/android/base/resources/drawable/action_bar_button.xml \ mobile/android/base/resources/drawable/action_bar_button_inverse.xml \ mobile/android/base/resources/drawable/address_bar_bg.xml \ mobile/android/base/resources/drawable/address_bar_bg_shadow_repeat.xml \ mobile/android/base/resources/drawable/address_bar_nav_button.xml \ mobile/android/base/resources/drawable/address_bar_right_edge.xml \ mobile/android/base/resources/drawable/address_bar_url.xml \ mobile/android/base/resources/drawable/awesomebar_listview_divider.xml \ mobile/android/base/resources/drawable/awesomebar_header_row.xml \ mobile/android/base/resources/drawable/awesomebar_tab_indicator.xml \ mobile/android/base/resources/drawable/awesomebar_tab_selected.xml \ mobile/android/base/resources/drawable/awesomebar_tab_unselected.xml \ mobile/android/base/resources/drawable/divider_vertical.xml \ mobile/android/base/resources/drawable/favicon_bg.xml \ mobile/android/base/resources/drawable/handle_end_level.xml \ mobile/android/base/resources/drawable/handle_start_level.xml \ mobile/android/base/resources/drawable/ic_menu_back.xml \ mobile/android/base/resources/drawable/ic_menu_desktop_mode_off.xml \ mobile/android/base/resources/drawable/ic_menu_desktop_mode_on.xml \ mobile/android/base/resources/drawable/ic_menu_quit.xml \ mobile/android/base/resources/drawable/menu_item_state.xml \ mobile/android/base/resources/drawable/menu_level.xml \ mobile/android/base/resources/drawable/progress_spinner.xml \ mobile/android/base/resources/drawable/remote_tabs_child_divider.xml \ mobile/android/base/resources/drawable/shaped_button.xml \ mobile/android/base/resources/drawable/site_security_level.xml \ mobile/android/base/resources/drawable/spinner.xml \ mobile/android/base/resources/drawable/suggestion_selector.xml \ mobile/android/base/resources/drawable/tab_new_level.xml \ mobile/android/base/resources/drawable/tab_row.xml \ mobile/android/base/resources/drawable/tab_thumbnail.xml \ mobile/android/base/resources/drawable/tabs_panel_indicator.xml \ mobile/android/base/resources/drawable/textbox_bg.xml \ mobile/android/base/resources/drawable/toast_button.xml \ mobile/android/base/resources/drawable/webapp_titlebar_bg.xml \ $(NULL) MOZ_BRANDING_DRAWABLE_MDPI = $(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_LARGE_LAND_V11) $(RES_LAYOUT_LARGE_V11) $(RES_LAYOUT_XLARGE_V11) $(RES_LAYOUT_XLARGE_LAND_V11) $(RES_VALUES) $(RES_VALUES_LAND) $(RES_VALUES_V11) $(RES_VALUES_LARGE_V11) $(RES_VALUES_LARGE_LAND_V11) $(RES_VALUES_XLARGE_V11) $(RES_VALUES_LAND_V14) $(RES_VALUES_V14) $(RES_XML) $(RES_XML_V11) $(RES_ANIM) $(RES_DRAWABLE_MDPI) $(RES_DRAWABLE_LDPI) $(RES_DRAWABLE_HDPI) $(RES_DRAWABLE_XHDPI) $(RES_DRAWABLE_MDPI_V11) $(RES_DRAWABLE_HDPI_V11) $(RES_DRAWABLE_XHDPI_V11) $(RES_DRAWABLE_LARGE_MDPI_V11) $(RES_DRAWABLE_LARGE_HDPI_V11) $(RES_DRAWABLE_LARGE_XHDPI_V11) $(RES_DRAWABLE_XLARGE_MDPI_V11) $(RES_DRAWABLE_XLARGE_HDPI_V11) $(RES_DRAWABLE_XLARGE_XHDPI_V11) $(RES_COLOR) $(RES_MENU) RES_DIRS= \ res/layout \ res/layout-large-v11 \ res/layout-large-land-v11 \ res/layout-xlarge-v11 \ res/layout-xlarge-land-v11 \ res/values \ res/values-v11 \ res/values-large-v11 \ res/values-xlarge-v11 \ res/values-land-v14 \ res/xml \ res/xml-v11 \ res/anim \ res/drawable-ldpi \ res/drawable-mdpi \ res/drawable-hdpi \ res/drawable-xhdpi \ res/drawable \ res/drawable-mdpi-v11 \ res/drawable-hdpi-v11 \ res/drawable-xhdpi-v11 \ res/drawable-large-mdpi-v11 \ res/drawable-large-hdpi-v11 \ res/drawable-large-xhdpi-v11 \ res/drawable-xlarge-mdpi-v11 \ res/drawable-xlarge-hdpi-v11 \ res/drawable-xlarge-xhdpi-v11 \ res/color \ res/menu \ res/menu-v11 \ res/menu-large-v11 \ res/menu-xlarge-v11 \ $(NULL) ALL_JARS = \ jars/gecko-browser.jar \ jars/gecko-mozglue.jar \ jars/gecko-util.jar \ jars/sync-thirdparty.jar \ jars/websockets.jar \ $(NULL) ifdef MOZ_WEBRTC ALL_JARS += jars/webrtc.jar endif 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: $(ALL_JARS) @echo "DX classes.dex" $(DX) --dex --output=classes.dex jars $(ANDROID_COMPAT_LIB) jars/gecko-browser.jar: jars/gecko-mozglue.jar jars/gecko-util.jar jars/sync-thirdparty.jar jars/websockets.jar $(addprefix $(srcdir)/,$(FENNEC_JAVA_FILES)) $(FENNEC_PP_JAVA_FILES) $(FENNEC_PP_JAVA_VIEW_FILES) $(addprefix $(srcdir)/,$(SYNC_JAVA_FILES)) $(SYNC_PP_JAVA_FILES) R.java @echo "JAR gecko-browser.jar" $(NSINSTALL) -D classes/gecko-browser $(JAVAC) $(JAVAC_FLAGS) -Xlint:all,-deprecation,-fallthrough -d classes/gecko-browser -classpath "jars/gecko-mozglue.jar:jars/gecko-util.jar:jars/sync-thirdparty.jar:jars/websockets.jar" $(addprefix $(srcdir)/,$(FENNEC_JAVA_FILES)) $(FENNEC_PP_JAVA_FILES) $(FENNEC_PP_JAVA_VIEW_FILES) $(addprefix $(srcdir)/,$(SYNC_JAVA_FILES)) $(SYNC_PP_JAVA_FILES) R.java $(JAR) cMf jars/gecko-browser.jar -C classes/gecko-browser . jars/gecko-mozglue.jar: $(addprefix $(srcdir)/,$(MOZGLUE_JAVA_FILES)) $(MOZGLUE_PP_JAVA_FILES) jars @echo "JAR gecko-mozglue.jar" $(NSINSTALL) -D classes/gecko-mozglue $(JAVAC) $(JAVAC_FLAGS) -Xlint:all -d classes/gecko-mozglue $(addprefix $(srcdir)/,$(MOZGLUE_JAVA_FILES)) $(MOZGLUE_PP_JAVA_FILES) $(JAR) cMf jars/gecko-mozglue.jar -C classes/gecko-mozglue . jars/gecko-util.jar: jars/gecko-mozglue.jar $(addprefix $(srcdir)/,$(UTIL_JAVA_FILES)) jars @echo "JAR gecko-util.jar" $(NSINSTALL) -D classes/gecko-util $(JAVAC) $(JAVAC_FLAGS) -Xlint:all,-deprecation -d classes/gecko-util -classpath "jars/gecko-mozglue.jar" $(addprefix $(srcdir)/,$(UTIL_JAVA_FILES)) $(JAR) cMf jars/gecko-util.jar -C classes/gecko-util . jars/sync-thirdparty.jar: $(addprefix $(srcdir)/,$(SYNC_THIRDPARTY_JAVA_FILES)) jars @echo "JAR sync-thirdparty.jar" $(NSINSTALL) -D classes/sync-thirdparty $(JAVAC) $(JAVAC_FLAGS) -d classes/sync-thirdparty $(addprefix $(srcdir)/,$(SYNC_THIRDPARTY_JAVA_FILES)) $(JAR) cMf jars/sync-thirdparty.jar -C classes/sync-thirdparty . jars/websockets.jar: $(addprefix $(srcdir)/, $(WEBSOCKETS_JAVA_FILES)) jars @echo "JAR websockets.jar" $(NSINSTALL) -D classes/websockets $(JAVAC) $(JAVAC_FLAGS) -Xlint:all,-serial -d classes/websockets $(addprefix $(srcdir)/,$(WEBSOCKETS_JAVA_FILES)) $(JAR) cMf jars/websockets.jar -C classes/websockets . ifdef MOZ_WEBRTC jars/webrtc.jar: $(addprefix $(srcdir)/, $(WEBRTC_JAVA_FILES)) jars jars/gecko-browser.jar jars/gecko-util.jar @echo "JAR webrtc.jar" $(NSINSTALL) -D classes/webrtc $(JAVAC) $(JAVAC_FLAGS) -d classes/webrtc -classpath classes/gecko-browser:classes/gecko-util $(addprefix $(srcdir)/,$(WEBRTC_JAVA_FILES)) $(JAR) cMf jars/webrtc.jar -C classes/webrtc . endif jars: @echo "MKDIR jars" $(NSINSTALL) -D jars CLASSES_WITH_JNI= \ org.mozilla.gecko.GeckoAppShell \ org.mozilla.gecko.GeckoJavaSampler \ org.mozilla.gecko.gfx.NativePanZoomController \ org.mozilla.gecko.ANRReporter \ $(NULL) ifdef MOZ_WEBSMS_BACKEND # Note: if you are building with MOZ_WEBSMS_BACKEND turned on, then # you will get a build error because the generated jni-stubs.inc will # be different than the one checked in (i.e. it will have the sms-related # JNI stubs as well). Just copy the generated file to mozglue/android/ # like the error message says and rebuild. All should be well after that. CLASSES_WITH_JNI += org.mozilla.gecko.GeckoSmsManager endif jni-stubs.inc: jars/gecko-browser.jar jars/gecko-mozglue.jar jars/gecko-util.jar jars/sync-thirdparty.jar $(JAVAH) -o javah.out -bootclasspath $(JAVA_BOOTCLASSPATH) -classpath $(subst $(NULL) $(NULL),:,$^) $(CLASSES_WITH_JNI) $(PYTHON) $(topsrcdir)/mobile/android/base/jni-generator.py javah.out $@ 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. SERVICES_MANIFEST_FRAGMENTS = $(wildcard $(topsrcdir)/mobile/android/services/manifests/*.in) android-tgts = \ AndroidManifest.xml \ $(MOZGLUE_PP_JAVA_FILES) \ $(FENNEC_PP_JAVA_FILES) \ $(SYNC_PP_JAVA_FILES) \ package-name.txt \ $(NULL) android-preqs = \ Makefile.in \ $(call mkdir_deps,$(sort $(dir $(MOZGLUE_PP_JAVA_FILES)))) \ $(call mkdir_deps,$(sort $(dir $(FENNEC_PP_JAVA_FILES)))) \ $(call mkdir_deps,$(sort $(dir $(SYNC_PP_JAVA_FILES)))) \ $(SERVICES_MANIFEST_FRAGMENTS) \ WebAppManifestFragment.xml.in \ WebAppsFragments.java \ $(NULL) $(android-tgts): % : %.in $(android-preqs) $(PYTHON) $(topsrcdir)/config/Preprocessor.py \ $(AUTOMATION_PPARGS) -DOBJDIR="`pwd`" $(DEFINES) $(ACDEFINES) $< > $@ # Add a predefined number of WebApp classes to the WebApps class. # These are used so that each webapp can launch in its own process # Keep this number in sync with the max web apps in WebAppAllocator.java NUM_WEB_APPS=100 WebAppManifestFragment.xml.in: WebAppManifestFragment.xml.frag @rm -f $@ @for n in `$(PYTHON) -c "for x in range($(NUM_WEB_APPS)): print x"`; do \ cat $< | sed s,@APPNUM@,$$n,g >> $@ ; \ done WebAppsFragments.java: WebAppsFragment.java.frag @rm -f $@ @for n in `$(PYTHON) -c "for x in range($(NUM_WEB_APPS)): print x"`; do \ cat $< | sed s,@APPNUM@,$$n,g >> $@ ; \ done # Replace @VIEWTYPE@ with different View names. $(FENNEC_PP_JAVA_VIEW_FILES): GeckoView.java.frag @rm -f $@ cat $< | sed s,@VIEWTYPE@,$(patsubst Gecko%.java,%,$@),g >> $@ ; \ res/drawable-mdpi/icon.png: $(MOZ_APP_ICON) $(NSINSTALL) -D res/drawable-mdpi cp $(ICON_PATH) $@ res/drawable-hdpi/icon.png: $(MOZ_APP_ICON) $(NSINSTALL) -D res/drawable-hdpi cp $(ICON_PATH_HDPI) $@ res/drawable-xhdpi/icon.png: $(MOZ_APP_ICON) $(NSINSTALL) -D res/drawable-xhdpi cp $(ICON_PATH_XHDPI) $@ res/drawable-xxhdpi/icon.png: $(MOZ_APP_ICON) $(NSINSTALL) -D res/drawable-xxhdpi cp $(ICON_PATH_XXHDPI) $@ RES_DRAWABLE = $(addprefix res/drawable/,$(notdir $(MOZ_ANDROID_DRAWABLES))) $(RES_DRAWABLE): $(addprefix $(topsrcdir)/,$(MOZ_ANDROID_DRAWABLES)) $(NSINSTALL) -D res/drawable $(NSINSTALL) $^ res/drawable/ RES_BRANDING_DRAWABLE_MDPI = $(addprefix res/drawable-mdpi/,$(notdir $(MOZ_BRANDING_DRAWABLE_MDPI))) $(RES_BRANDING_DRAWABLE_MDPI): $(addprefix $(topsrcdir)/,$(MOZ_BRANDING_DRAWABLE_MDPI)) $(NSINSTALL) -D res/drawable-mdpi $(NSINSTALL) $^ res/drawable-mdpi/ $(RES_DIRS): $(subst res/,$(srcdir)/resources/,$(RESOURCES)) $(RM) -r $@ $(NSINSTALL) -D $@ $(RESOURCES): $(RES_DIRS) $(subst res/,$(srcdir)/resources/,$(RESOURCES)) @echo "creating $@" $(NSINSTALL) $(subst res/,$(srcdir)/resources/,$@) $(dir $@) res/values/strings.xml: $(MAKE) -C locales R.java: $(MOZ_APP_ICON) $(RESOURCES) $(RES_DRAWABLE) $(RES_BRANDING_DRAWABLE_MDPI) $(PP_RES_XML) res/drawable-mdpi/icon.png res/drawable-hdpi/icon.png res/drawable-xhdpi/icon.png res/drawable-xxhdpi/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-mdpi/icon.png res/drawable-hdpi/icon.png res/drawable-xhdpi/icon.png res/drawable-xxhdpi/icon.png $(RESOURCES) $(RES_DRAWABLE) $(RES_BRANDING_DRAWABLE_MDPI) $(PP_RES_XML) res/values/strings.xml FORCE $(AAPT) package -f -M AndroidManifest.xml -I $(ANDROID_SDK)/android.jar -S res -F $@ fennec_ids.txt: fennec-ids-generator.py R.java $(PYTHON) $(topsrcdir)/mobile/android/base/fennec-ids-generator.py -i R.java -o $@ libs:: classes.dex package-name.txt jni-stubs.inc fennec_ids.txt $(INSTALL) classes.dex $(FINAL_TARGET) $(INSTALL) package-name.txt $(FINAL_TARGET) @(diff jni-stubs.inc $(topsrcdir)/mozglue/android/jni-stubs.inc >/dev/null) || \ (echo "*** Error: The jni-stubs have changed. Copy $(CURDIR)/jni-stubs.inc to $(topsrcdir)/mozglue/android" && exit 1)