Avr-gcc:make
GNU Make - это программа для сборки программ. почитать можно здесь
я же приведу простой мэйкфайл чтоб начинающим не нужно было его писать самим.
Пример Makefile
<source lang="bash">
- Makefile
- output filename
program_name := main
- source directories ('.' - current dir)
source_dirs := .
- source_dirs := . includes
- source_dirs := $(addprefix ../,$(source_dirs))
- uC type
mcu := atmega128
- CPU freq
f_cpu := 14745600UL
- compiler flags
cpflags := -mmcu=$(mcu) -Wall -g -O2 -DF_CPU=$(f_cpu)
- linker flags
ldflags := -mmcu=$(mcu) -Wl
- - do not need to edit ----------------------------------------------
rm := rm -rf
- compiller
cc := avr-g++ cclog := compile.log
- avr-objcopy
objcpy := avr-objcopy
- doxygen
doxygen := doxygen doxylog := doxygen.log
search_wildcards := $(addsuffix /*.cpp,$(source_dirs))
$(addsuffix .out,$(program_name)): $(notdir $(patsubst %.cpp,%.o, $(wildcard $(search_wildcards) ) ) ) $(cc) $(ldflags) $^ -o $@ 2>>$(cclog) $(objcpy) -R.eeprom -O ihex $(addsuffix .out,$(program_name)) $(addsuffix .hex,$(program_name)) $(doxygen) 2>> $(doxylog)
VPATH := $(source_dirs)
%.o: %.cpp $(cc) $(cpflags) $(addprefix -I,$(source_dirs)) -MD -c $< 2>>$(cclog)
include $(wildcard *.d)
clean: $(rm) $(addsuffix .out,$(program_name)) $(addsuffix .hex,$(program_name)) *.d *.o $(cclog) $(doxylog) doc </source>