Привет!
В процессе разработки некоего проекта захотел вытащить часть кода в опенсорс. Проект специфичный, код под 6502, что в принципе не особо дает разгуляться компиляции в виде библиотеки. Поэтому план такой:
- Выделить код в отдельные файлы
- Написать make-файл чтобы он компилировал их в .o в отдельный каталог
- Создать инструкцию для разработчиков как попросить их make инклуднуть мои объектники.
1 и 2 в принципе ерунда. Задумался над 3. А если у них не make? А если cmake? Кто может подсказать, что мне написать в инструкции (какие-то минимальные действия) чтобы не сильно напрягать человека когда он будет использовать мой проект?
В конкретно для 6502 всё очень плохо в плане качества кода и разработок, поэтому каких-то стандартных make-файлов или сред нет.
Вот, что используют пара проектов этой направленности при работе с объектниками:
$(NAME).nes: $(NAME).o crt0.o $(CFG)
$(LD65) -C $(CFG) -o $(NAME).nes crt0.o $(NAME).o nes.lib -Ln labels.txt --dbgfile dbg.txt
rm *.o
@echo $(NAME).nes created
```bat
@del example.o
@del example.nes
@del example.map.txt
@del example.labels.txt
@del example.nes.ram.nl
@del example.nes.0.nl
@del example.nes.1.nl
@del example.nes.dbg
@echo.
@echo Compiling...
cc65\bin\ca65 example.s -g -o example.o
@IF ERRORLEVEL 1 GOTO failure
@echo.
@echo Linking...
cc65\bin\ld65 -o example.nes -C example.cfg example.o -m example.map.txt -Ln example.labels.txt --dbgfile example.nes.dbg
@IF ERRORLEVEL 1 GOTO failure
@echo.
@echo Generating FCEUX debug symbols...
python example_fceux_symbols.py
@echo.
@echo Success!
@pause
@GOTO endbuild
:failure
@echo.
@echo Build error!
@pause
:endbuild
#!/bin/sh
ca65 crt0.s
cc65 -Oi example1.c --add-source
ca65 example1.s
./cc65/bin/ld65 -C nrom_128_horz.cfg -o draw25.nes crt0.o example1.o runtime2.lib