Makefile для сборки нескольких файлов в разных папках - PullRequest
0 голосов
/ 24 ноября 2011

Я пытался использовать компилятор MSP GCC. Я написал make-файл для одного файла и могу компилировать и прошивать на устройстве MSP430.

Я не знаю, как написать make-файл для многих исходных файлов в разных папках, взаимозависимых друг с другом.

Я занимаюсь разработкой серийного производного структура папок и файлов выглядит следующим образом

serial_driver/App
serial_driver/App/inc/app.h
serial_driver/App/inc/app.c
serial_driver/controller
serial_driver/controller/inc/hardware.h
serial_driver/controller/inc/globaldef.h
serial_driver/controller/src/ctrl.c
serial_driver/UART
serial_driver/UART/inc/uart.h
serial_driver/UART/src/uart.c

Может ли кто-нибудь дать какие-нибудь идеи для написания make-файлов для этого проекта и как его расширить в будущих крупных проектах.

Спасибо и С уважением Ашок Кумар П

Ответы [ 2 ]

1 голос
/ 24 ноября 2011

Один из вариантов - добавить make-файл в каждый каталог, и из родительского make-файла вы можете вызвать каждый make-файл с параметром -C.

например:

в каталоге App вы можете иметь свой make-файл, а из make-файла - serial_driver

вы можете иметь Statememt

make -C ./App

этот оператор выполнит make-файл в каталоге приложения

Подобным образом вы можете вызывать все make-файлы в подкаталогах таким образом.

0 голосов
/ 25 ноября 2011

Я использую rake (Ruby make) вместо make (Я НЕНАВИЖУ make, это так расстраивает и отлаживает как дерьмо)

У меня есть пример системы рейка здесь , где у меня есть небольшие проекты в моей рабочей области. Rakefile каждого проекта ссылается на файл Rakefile.include на том же уровне, что и папки проекта, где происходит вся магия. Это довольно хорошо задокументировано, если вы хотите взглянуть на это. Он настроен для панели запуска, но может быть изменен на что угодно. Также имеется полное руководство по установке последней версии mspgcc.

Круто то, что вы можете сделать

rake mcu=msp430g2553
rake install

И он скомпилирует все исходные файлы в вашем проекте (включая подпапки, подпапки и т. Д.) Для этой конкретной версии msp430 и установит ее на панель запуска. (Установка на панель запуска выполняется с помощью mspdebug)

...