diff options
Diffstat (limited to 'docs/howto_SDK_git_cygwin.txt')
-rw-r--r-- | docs/howto_SDK_git_cygwin.txt | 189 |
1 files changed, 0 insertions, 189 deletions
diff --git a/docs/howto_SDK_git_cygwin.txt b/docs/howto_SDK_git_cygwin.txt deleted file mode 100644 index 622c5928b..000000000 --- a/docs/howto_SDK_git_cygwin.txt +++ /dev/null @@ -1,189 +0,0 @@ -Copyright (C) 2009 The Android Open Source Project - -Licensed under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. - - -Subject: How to get the android source code using Cygwin and Git -Date: 2009/04/27 -Updated: 2009/05/21 -Updated: 2010/03/30 - - -Table of content: - 1- Goals and Requirements - 2- Getting the code, the simple way - 3- SSH issues - 4- Advanced Tricks - - -------------------------- -1- Goals and Requirements -------------------------- - -This document explains how to checkout the Android source from the git -repositories under Windows. - -As stated in development/docs/howto_build_SDK.txt, one can't build the whole -Android source code under Windows. You can only build the SDK tools for -Windows. - -There are a number of caveats in checking out the code from Git under Windows. -This document tries to explain them. - -First you will need to meet the following requirements: -- You must have Cygwin installed. But wait! You CANNOT use the latest Cygwin 1.7. - Instead you MUST use the "legacy Cygwin 1.5" that you can find at this page: - - http://cygwin.org/win-9x.html - - Don't mind the page title, just grab setup-legacy.exe and it will works just fine - under XP or Vista. - -- You must install Cyginw using the "Unix / Binary" mode. - If you don't do that, git will fail to properly compute some SHA1 keys. - -- You need the "git" and "curl" packages to checkout the code. - If you plan to contribute, you might want to get "gitk" also. - - Note: if you want to build the SDK, check the howto_build_SDK.txt file - for a list of extra required packages. - The short summary is that you need at least these: - autoconf, bison, curl, flex, gcc, g++, git, gnupg, make, mingw-zlib, python, unzip, zip - and you must avoid the "readline" package. - - ------------------------------------ -2- Getting the code, the simple way ------------------------------------ - -Out of the box, "repo" and "git" will work just fine under Cygwin: - - $ repo init -u git://android.git.kernel.org/platform/manifest.git - $ repo sync - -And you're done. You can build as explained in howto_build_SDK.txt and ignore -the rest of this document. - - -------------- -3- SSH issues -------------- - -If you maintain your own private repository using an SSH server, you might get -some "mux/ssh" errors. In this case try this: - - $ repo init -u ssh://my.private.ssh.repo/platform/manifest.git - $ export GIT_SSH=ssh - $ repo sync - - ------------------- -4- Advanced Tricks ------------------- - -There is one remaining issue with the default repo/git options: - -If you plan on contributing, you will notice that even after a fresh "repo -sync" some projects are marked as having modified files. This happens on the -"bionic" and the "external/iptables" project. The issue is that they have files -which have the same name yet differ only by their case-sensitivity. Since the -Windows filesystem is not case-sensitive, this confuses Git. - -Solution: we can simply ignore these projects as they are not needed to build -the Windows SDK. - -To do this you just need to create a file .repo/local_manifest.xml that -provides a list of projects to ignore: - -<?xml version="1.0" encoding="UTF-8"?> -<manifest> - <remove-project name="platform/external/iptables" /> -</manifest> - -The other thing we can do is tell git not to track the files that cause -problems: - - cd bionic - git update-index --assume-unchanged \ - libc/kernel/common/linux/netfilter/xt_CONNMARK.h \ - libc/kernel/common/linux/netfilter/xt_MARK.h \ - libc/kernel/common/linux/netfilter_ipv6/ip6t_HL.h - - cd external/tcpdump; - git update-index --assume-unchanged \ - tests/print-X.new \ - tests/print-XX.new - - -Here's a script that takes care of all these details. It performs the repo -init, creates the appropriate local_manifest.xml, does a repo sync as -needed and tell git to ignore the offending files: - ------------- -#!/bin/bash - -set -e # fail on errors - -URL=ssh://android-git.corp.google.com:29418/platform/manifest.git -BRANCH=donut -if [ "$1" == "-b" ]; then shift; BRANCH=$1; shift; fi - -# repo init if there's no .repo directory -if [[ ! -d .repo ]]; then - repo init -u $URL -b $BRANCH -fi - -# create a local_manifest to exclude projects that cause problems under Windows -# due to the case-insenstivines of the file system. -L=.repo/local_manifest.xml -if [[ ! -f $L ]]; then - - cat > $L <<EOF -<?xml version="1.0" encoding="UTF-8"?> -<manifest> -<remove-project name="platform/external/iptables" /> -</manifest> -EOF -fi - -# sync using the native ssh client if necessary -[[ $URL != ${URL/ssh/} ]] && export GIT_SSH=ssh -repo sync $@ - - -# These files cause trouble too, we need to ignore them -(cd bionic; -git update-index --assume-unchanged \ - libc/kernel/common/linux/netfilter/xt_CONNMARK.h \ - libc/kernel/common/linux/netfilter/xt_MARK.h \ - libc/kernel/common/linux/netfilter_ipv6/ip6t_HL.h -) -(cd external/tcpdump; -git update-index --assume-unchanged \ - tests/print-X.new \ - tests/print-XX.new -) ------------- - -Simply extract this to a "my_sync.sh" file and try the following: - $ mkdir android_src - $ cd android_src - $ chmod +x mysync.sh - $ ./mysync.sh - - --end- - - - - |