Ситуация: пишу тысячу строк кода, например для работы с device, отлаживаю, всё такое, потом отдаю коллеге. Тот должен подключть к своему проекту device.h, написать некоторые функции, зависящие от разводки платы или модификации МК: device_sendbyte(), device_getbyte() и вроде всё.
Код
//файл device.h для работы с device
extern void device_sendbyte( uint8_t byte ); //напиши сам
extern uint8_t device_getbyte( void ); //напиши сам
struct {
char * name;
//...
}
int device_some_action();
int device_another_action();
extern void device_sendbyte( uint8_t byte ); //напиши сам
extern uint8_t device_getbyte( void ); //напиши сам
struct {
char * name;
//...
}
int device_some_action();
int device_another_action();
Вроде всё хорошо, но только человеку придётся добавлять в свой проект мои исходники, и они будут у него постоянно make clean -> make all, захламляя и без того неудобочитаемую консоль своими OMG! Warning!
Хочу на выходе что-то самодостаточное, полагаю должно называться device.o и быть объектным файлом.
Я вроде могу превратить исходник в объектный файл, но что потом? Глобальные переменные из модуля, они подружатся сами с init-секциями? А если в нём используется F_CPU, который неизвестен при компиляции модуля? Стоит ли заморачиваться, когда модуль на пару тысяч строк исходников? А как коллега это чудо продукт компиляции к своему проекту должен прикручивать?
Спасибо.
PS Использоваться должно только на atmega.