TARGET = atmega328 CC = avr-g++ LD = avr-gcc RM = rm AR = ar MKDIR = mkdir OPTIMIZE = -Os PORT = /dev/ttyUSB0 CFLAGS = -g -Wall -W $(OPTIMIZE) -mmcu=$(TARGET) -Iinclude -Iinc CFLAGS += -DF_CPU=16000000UL -D__AVR_ATmega328__ -c LDFLAGS = -g -Wl,-Map,$(OUT)$(BINNAME).map -mmcu=$(TARGET) -lm OBJCOPY = avr-objcopy OBJDUMP = avr-objdump #DUDE = avrdude.exe -B 2.0 -p m8 -c avrispv2 -P com1 DUDE = avrdude -patmega328p -carduino -P$(PORT) -b57600 -D x86_CC = g++ x86_LD = g++ x86_CFLAGS = -g -Wall -W $(OPTIMIZE) -Iinclude -c LIBS = OUT = out/ SRC = src/ SRC2 = src-lib/ O = .o O86 = .obj E = .elf HEX = .hex BIN = .bin SREC = .srec x86 = .exe BINNAME = test vpath %.cpp $(SRC) vpath %.c $(SRC) vpath %.cpp $(SRC2) vpath %.c $(SRC2) vpath %.$(E) $(OUT) OBJS = $(subst $(SRC),$(OUT), $(subst .C,$(O), $(subst .c,$(O), $(subst .cpp,$(O), $(wildcard $(SRC)*.cpp $(SRC)*.c $(SRC)*.C))))) OBJS += $(subst $(SRC2),$(OUT), $(subst .C,$(O), $(subst .c,$(O), $(subst .cpp,$(O), $(wildcard $(SRC2)*.cpp $(SRC2)*.c $(SRC2)*.C))))) OBJS_x86 = $(subst $(SRC),$(OUT), $(subst .C,$(O86), $(subst .c,$(O86), $(subst .cpp,$(O86), $(wildcard $(SRC)*.cpp $(SRC)*.c $(SRC)*.C))))) ########################## all: $(OUT) $(OUT)$(BINNAME)$(E) $(OUT)$(BINNAME)$(HEX) $(OUT)$(BINNAME)$(BIN) all: $(OUT)$(BINNAME)$(SREC) $(OUT)$(BINNAME).S debug: $(OUT) $(OUT)$(BINNAME)$(x86) clean: -rm -rf $(OUT) prog: all $(DUDE) -U flash:w:"$(OUT)$(BINNAME)$(HEX)" ########################## $(OUT)%$(O): %.cpp @echo "[ CC ]" $< @$(CC) $(CFLAGS) -o$@ $< $(OUT)%$(O): %.c @echo "[ CC ]" $< @$(CC) $(CFLAGS) -o$@ $< $(OUT)%$(HEX): $(OUT)%.elf @echo "[ OBJCOPY ]" $@ @$(OBJCOPY) -j .text -j .data -O ihex $< $@ $(OUT)%_eeprom$(HEX): $(OUT)%.elf @echo "[ OBJCOPY ]" $@ @$(OBJCOPY) -j .eeprom --change-section-lma .eeprom=0 -O ihex $< $@ $(OUT)%_eeprom$(SREC): $(OUT)%.elf @echo "[ OBJCOPY ]" $@ @$(OBJCOPY) -j .eeprom --change-section-lma .eeprom=0 -O srec $< $@ $(OUT)%_eeprom$(BIN): $(OUT)%.elf @echo "[ OBJCOPY ]" $@ @$(OBJCOPY) -j .eeprom --change-section-lma .eeprom=0 -O binary $< $@ $(OUT)%$(SREC): $(OUT)%.elf @echo "[ OBJCOPY ]" $@ @$(OBJCOPY) -j .text -j .data -O srec $< $@ $(OUT)%$(BIN): $(OUT)%.elf @echo "[ OBJCOPY ]" $@ @$(OBJCOPY) -j .text -j .data -O binary $< $@ $(OUT)%.S: $(OUT)%.elf @echo "[ OBJDUMP ]" $@ @$(OBJDUMP) -S $< > $@ @echo "[ OBJDUMP ]" $@.d @$(OBJDUMP) -d $< > $@.d $(OUT)%$(O86): %.cpp @echo "[ x86_CC ]" $< @$(x86_CC) $(x86_CFLAGS) -o$@ $< $(OUT)%$(O86): %.c @echo "[ x86_CC ]" $< @$(x86_CC) $(x86_CFLAGS) -o$@ $< $(OUT)$(BINNAME)$(E): $(OBJS) @echo "[ LD ]" $@ @$(LD) $(LDFLAGS) -o $@ $^ $(OUT)$(BINNAME)$(x86): $(OBJS_x86) @echo "[ x86_LD ]" $@ $(x86_LD) $(x86_LDFLAGS) -o $@ $^ $(OUT): @echo "[ MKDIR ]" $@ @-$(MKDIR) $@
no subject
Date: 2012-04-25 07:47 pm (UTC)Компиляция под х86 сломана, но леххко чинится по аналогии (делаем эльф)