CHDK/Bulgarian/Modifying the CHDK Sources

Изисквания
Ако желаете да модифицирате изходния код на CHDK, за да компилирате собствена версия, ще имате нуда от:


 * Познания по програмния език C. (тук има онлайн самоучители и ресурси)
 * Прост текстов редактор, с който да модифицирате програмния код. По-добре е обаче да използвате специализиран редактор, който разпознава синтаксиса на езика (например Notepad++) или някоя интегрирана среда за разработка под C.
 * Изходния код (Как да го вземем).
 * Инструкции как да компилирате CHDK, които могад да бъдат намерени тук: за Linux, за Windows.
 * SVN-клиент може да се окаже полезен, ако искате да участвате в разработването на CHDK или ако искате да държите актуална вашата версия (вижте тук).

Процедура
Сама процедура е ясна сама по себе си: разучете добре изходния код, направете нужните модификации, компилирайте кода и тествайте върху вашата камера.

Не се страхувайте да променяте каквото и да било! От гледна точка на сигурността, можете да модифицирате които файлове пожелаете. В изходния код няма функции, които да позволяват обновяване (или заменяне) на оригиналния фирмуер на камерата (прочетете това). Така че, най-лошото нещо, което може да се случи е, че кодът няма да работи. Ако това стане, изключете камерата или махнете батериите и всичко ще бъде наред.

Напътствия за кода
Изходният код
 * trunk – версията на Vitaly. Тя не съдържа богатата функционалност на версията на GrAnd, затова е добре да започнете оттук ако искате на пренесете CHDK за друга камера, за която още няма поддръжка.
 * branches
 * grand – версията на GrAnd. Това е вероятно изходния код, от който е компилирана версията на CHDK, която използвате във вашата камера.
 * bin – за двоични файлове. Нормално тук няма нищо. След компилиране на кода тук ще откриете готовите бинарни файлове.
 * core – ядрото на CHDK. Ако искате да добавите нещо, или да промените съществуваща функционалност, това е вероятно единствената директория, в която трябва да погледнете. (Може също и в 'lib' и 'include'.)
 * doc - документация. Не е необходима за компилиране на ваша собствена версия.
 * fonts - шрифтове. Не е необходима за компилиране на вашата версия.
 * include - Заглавни (header) файлове. Погледнете също 'core'.
 * lib – библиотеки (libraries): някои математически и стандартни функции на C, uBASIC, шрифтове, други неща. Вижте също 'core'.
 * loader – Първоначалният код, стартиран от камерата. Няма нужда да променяте тук каквото и да било (освен ако не пренасяте CHDK за друг модел камера).
 * platform – код, който е специфичен за конкретен модел камера и дори фирмуер. Тук трябва да модифицирате нещо, само ако добавяте нови референции (указатели) към функции от оригиналния фирмуер на камерата.
 * script – примерни скриптове. Не е необходима за компилиране на собствената ви версия.
 * tools – някои инструменти, за да улеснят живота ви :). Тук трябва да модифицирате нещо, само ако добавяте нови указатели към функции от оригиналния фирмуер на камерата.

Вижте също и тук.