EDIT: the root cause of the problem was due to Git autocrlf
set to true
. Under Linux, it should be set to input
:
git config --global core.autocrlf input
(original answer)
The problem comes from Windows end-of-lines (EOL) so you'll have to convert all scripts to unix-style EOL through dos2unix
(run apt-get install dos2unix
on Ubuntu) and then convert your scripts:
dos2unix build/envsetup.sh sdk/bash_completion/adb.bash
Then all vendorsetup.sh
(that will prevent the "command not found" error you get):
find device/ -name vendorsetup.sh -exec dos2unix {} \;
And one last to run the choosecombo
script:
dos2unix build/core/find-jdk-tools-jar.sh
EDIT: In order to finish the overall compilation, the exhaustive conversion:
find . -name '*.sh' -exec dos2unix {} \;
find . -name '*.py' -exec dos2unix {} \;
find . -name '*.c' -exec dos2unix {} \;
find . -name '*.h' -exec dos2unix {} \;
find . -name '*.cpp' -exec dos2unix {} \;
find . -name '*.hpp' -exec dos2unix {} \;
find . -name '*.txt' -exec dos2unix {} \;
find . -name 'Config.in' -exec dos2unix {} \;
find . -name 'Config.src' -exec dos2unix {} \;
find . -name 'Makefile' -exec dos2unix {} \;
find . -name 'mkmakefile' -exec dos2unix {} \;
find . -name 'Kconfig*' -exec dos2unix {} \;
find . -name rmtypedefs -exec dos2unix {} \;
find . -name apicheck -exec dos2unix {} \;
find . -name seapp_contexts -exec dos2unix {} \;
dos2unix external/busybox/scripts/* external/busybox/applets/* kernel/scripts/* dalvik/dx/etc/* prebuilts/sdk/tools/*
The *.sh
for all shell scripts, and *.py
for all python scripts (used during make
compilation), as well as .c
and .cpp
file (obviously) and other files used by makefiles.
Of course you could go the over-overkill find . -type f -exec dos2unix -s -k -o {} \;
and let dos2unix
decide which files are text and which are binary.
There might be other. I'll edit this answer as I find new ones...