| -rw-r--r-- | README | 115 |
1 files changed, 37 insertions, 78 deletions
@@ -1,6 +1,6 @@ -This git module contains the necessary rules to auto-configure -Wayland, Weston and their dependencies for Android, creating the -Android build files. +This git repository contains specifications used by the anagrman tool to +create local_manifest.xml files with the specified modules (project bundles +or feature packages). The following instructions will guide you in downloading a complete Android OS source tree, extract the firmware blobs, build, and install. If you need @@ -10,10 +10,10 @@ https://developers.google.com/android/nexus/images 1. Preparations: -wayland-scanner - Get git://anongit.freedesktop.org/wayland/wayland , - use branch master, build wayland-scanner, and put it into - your $PATH. +anagrman + Get git://git.collabora.co.uk/git/android/anagrman.git + From there you get the command 'anagrman' which is a python + script. It will be needed later for creating a local_manifest.xml. Set up udev rules for Galaxy Nexus, as described in http://source.android.com/source/initializing.html @@ -25,19 +25,15 @@ so that you have the 'repo' command in your PATH. 2. Downloading: -Download the wayland_aggregate, if you haven't already: -$ git clone git://git.collabora.co.uk/git/user/pq/wayland_aggregate.git -$ cd wayland_aggregate -$ git checkout -b mybranch origin/android-4.0.1_r1.2-b -$ cd .. - -Get the Android tree used for Samsung Galaxy Nexus, ITL41F: +Get the Android tree used for Samsung Galaxy Nexus: $ mkdir galaxy-nexus && cd galaxy-nexus -$ repo init -u https://android.googlesource.com/platform/manifest -b android-4.0.1_r1.2 -$ cd .. +$ repo init -u git://git.collabora.co.uk/git/android/manifest.git -Link in the local manifest: -$ ln -s /path/to/wayland_aggregate/conf/local_manifest.xml galaxy-nexus/.repo/local_manifest.xml +Select the modules you want with anagrman, a local_manifest.xml file is +written in the current directory. This example selects wayland: +$ cd .repo +$ anagrman -m wayland +$ cd .. Fetch it all, this will take a while: $ cd galaxy-nexus && repo sync -j2 @@ -110,17 +106,13 @@ into your device. We assume you have executed Section 3, Environment setup. -Generate Android build files, may take few minutes: -$ cd galaxy-nexus -$ make wayland-aggregate-configure - -NOTE: the configure target *must* always be made non-parallel, do not use -j here. -Otherwise the configure interdependencies may fail. - -Then, build everything: +To build everything: $ m -That will take several hours. +That will take several hours. The build process will configure all +projects that use autotools, and generate their Android makefiles. Due to +this process, GNU Make will automatically reload all makefiles 2-3 times +during the first build. 8. Installing @@ -138,43 +130,18 @@ You install everything into your device by: $ fastboot -w flashall The device will reboot automatically, and afterwards you should -have Weston on the screen with simple-touch. Don't worry if the +have the new Android OS running in your device. Don't worry if the device "spontaneously" reboots once more. That is just Android -finalising the installation, but Weston does not know to show -information about it. - -If nothing appears on screen in few minutes, something is wrong. See -Appendix A, Troubleshooting. - - - 9. Using the demos - -Simple-touch first appears as a light gray box. If you press volume-up key, -it will maximise itself. Touch the box to draw. Due to a minor bug, the -first touch will be ignored. - -Volume-up clears, volume-down changes color, and the power button -immediately powers off the device (not press and hold, just a press). - -The screen is multitouch, and each simultaneous touch gets a different -color. - -If you launch 'adb shell', you may start other demo apps: -$ simple-shm -$ clickdot -$ flower - -However, these are not touch device aware, so you cannot interact with -them. Launching them may also remove the keyboard focus from the simple-touch -application, in which case you need to kill simple-touch and re-launch it to -have it respond to keys again. +finalising the installation. +If nothing appears on screen in few minutes, something could be wrong. +See Appendix A, Troubleshooting. Appendix A. Troubleshooting: If after building 'repo sync' fails with a dirty source tree, try -$ make wayland-aggregate-reset +$ make contrib-reset If the command 'adb root' fails with "adbd cannot run as root in production builds", verify that you chose a userdebug variant for 'lunch'. @@ -186,31 +153,23 @@ If after installation, the device does not show anything on screen, try to see what it is doing: $ adb logcat '*:V' -If you see: -I//system/bin/weston( 2270): [09:28:46.417] Failed to find an EGL config. -I//system/bin/weston( 2270): [09:28:46.417] EGL error state: EGL_SUCCESS -(0x3000) -I//system/bin/weston( 2270): [09:28:46.417] caught segv - -You most likely do not have the firmware properly installed in your Android -source tree. - Appendix B. Special make targets: -wayland-aggregate-reset - For ever git repo under this aggregate, runs the equivalent of +contrib-reset + For every autotools project, run the equivalent of 'git reset --hard HEAD' and 'git clean -dxf'. Does not remove any build products, that are outside the source - trees (all Android build system products). - -wayland-aggregate-clean - Runs the clean-<module> targets for all modules under this - aggregate. Needs a configured tree, as some cleaning rules - come through androgenizer. Removes Android build system + trees (all Android build system products). Usually used with + contrib-clean as: 'make contrib-clean contrib-reset' + +contrib-clean + Runs the clean-<module> targets for all non-AOSP modules. + Note, that is not a special clean-up rule like 'clean' is. + If there are makefiles to generate, they will be generated, + before contrib-clean runs. Removes Android build system products with the benefit of not wiping the whole out/. -wayland-aggregate-debug - Prints some info, like configure, clean and reset targets, - and found pkg-configs. - +contrib-debug + Prints some info, like configure variables + and found pkg-config packages. |
