Компилиране на CHDK под Linux[]
Това е процедурата, използвана за компилиране на изходния код на CHDK под Linux (актуална към Април 2007).
- Създайте директория, в която да сложите изходния код на CHDK.
> mkdir ~/chdk && cd ~/chdk
- Вземете кода на CHDK.
> svn co https://tools.assembla.com/svn/chdk/trunk
или
> svn co https://tools.assembla.com/svn/chdk/branches/grand
- Или обновете изходния код
> cd grand && svn up
- Инсталирайте крос-компилатор
- Вземете изходните кодове на gcc и binutils от хранилище на GNU (repository). За предпочитане е да използвате последните налични версии.
- Определете място за крос-компилатора във вашия компютър.
> mkdir ~/arm-elf
- Инструктирайте компютъра, че ще стартирате програми от това място.
> export PATH=${HOME}/arm-elf/bin:$PATH
- Създайте работна област и компилирайте binutils и gcc.
> mkdir ~/wa > cd ~/wa > tar xvfj ../src/rlx_dist/binutils-2.17.tar.bz2 > tar xvfj ../src/rlx_dist/gcc-4.1.2.tar.bz2
> cd binutils-2.17 > ./configure --srcdir=../binutils-2.17 --target=arm-elf \ --prefix=~/arm-elf > make > make install > cd ..
- Редактирайте файла <gcc-4.1.2/gcc/config/arm/t-arm-elf>, за да включите следните линии, без знака "#" пред тях.
MULTILIB_EXCEPTIONS += *mapcs-26/*mthumb-interwork MULTILIB_OPTIONS += mno-thumb-interwork/mthumb-interwork MULTILIB_DIRNAMES += normal interwork
> mkdir gcc-4.1.2-arm-elf && cd gcc-4.1.2-arm-elf > ../gcc-4.1.2/configure --srcdir=../gcc-4.1.2 --target=arm-elf --with-cpu=arm9 --disable-libm --disable-libc --disable-threads --disable-nls --disable-libssp --disable-intl --disable-libiberty --enable-languages=c --with-softfloat-supp --with-float=soft --prefix=~/arm-elf > make > make install
- С това приключва инсталацията на крос-компилатора.
- Компилиране на CHDK. Влезте в директорията 'trunk' или 'grand'.
> cd ~/chdk/grand
- Редактирайте файла <makefile.inc>, за да изберете PLATFORM и PLATFORMSUB за вашата камера: просто махнете знака "#" където е нужно. Освен това, добавете следния ред в началото на файла <makefile.inc>, за да укажете местонахождението на крос-компилатора за ARM платформа,
PATH := $(HOME)/arm-elf/bin:$(PATH)
- Вече трябва да сте готови да компилирате всичко.
> make fir
- PS.FIR трябва да бъде създаден в директорията "bin".
- Ако искате да компилирате CHDK за друга камера, просто изпълнете командата make с аргументи PLATFORM и PLATFORMSUB. Например:
> make PLATFORM=a620 PLATFORMSUB=100f fir
- За да компилирате CHDK за всички камери, напишете:
> make batch-zip
Алтернативен метод с gcc-3.4.6[]
В CHDK е включен пач за компилиране с gcc-3.4.6. Той представлява проста инсталация, ако искате да ползвате тази версия на gcc. Този метод използва глобална интсалация на инструментите arm-elf.
Не забравяйте да изтриете всички стойности на променливата CFLAGS, които може да сте установили вече:
> export CFLAGS=""
Компилиране и инсталиране на binutils[]
Разархивирайте изходния код, влезте в директорията където е той и напишете:
> mkdir binutils-2.17-arm-elf > cd binutils-2.17-arm-elf/ > ../configure --srcdir=../ --target=arm-elf && make && sudo make install
Компилиране и инсталиране на GCC-3.4.6[]
Изтеглете gcc-3.4.6, разархивирайте го и влезте в директорията му. Използвайте пача, който идва с CHDK:
> patch -p0 < [path_to_hdk]/grand/tools/patches/gcc-3.4-arm.diff
- Компилирайте кода:
> mkdir gcc-arm-elf > cd gcc-arm-elf/ > ../configure --srcdir=../ --target=arm-elf --with-cpu=arm9 \ --with-newlib --enable-multilib --enable-languages=c \ && make && sudo make install
Вече можете да компилирате CHDK, както е описано по-горе.