siwicom/C/Makefile

64 lines
1.2 KiB
Makefile

MCU_TARGET = atmega48
DEFS =
OPTIMIZE = -Os
LIB = SiWiCom
LIB_C_SRC = rfProtocol.c cc1100.c spi.c usart.c pcProtocol.c
LIB_A_SRC =
LIB_OBJ = $(LIB_A_SRC:.S=.o) $(LIB_C_SRC:.c=.o)
LIBFILE = lib$(LIB).a
ASFLAGS = -c -mmcu=$(MCU_TARGET) -DMCU=$(MCU_TARGET) -Wa,-gstabs $(DEFS)
CFLAGS = -g -Wall $(OPTIMIZE) -mmcu=$(MCU_TARGET) $(DEFS) -I.
CPPFLAGS = $(OPTIMIZE) -mmcu=$(MCU_TARGET) $(DEFS) -I.
AS = avr-gcc -x assembler-with-cpp
CC = avr-gcc
CPP = avr-cpp
AR = avr-ar
RANLIB = avr-ranlib
OBJDUMP = avr-objdump
OBJCOPY = avr-objcopy
EXTRA_CLEAN_FILES =
.PHONY: all clean
all: $(LIBFILE) lst
%o: %S
$(AS) $(ASFLAGS) $< -o $@
%.d: %.c
set -e; $(CC) -MM $(CPPFLAGS) $< \
| sed 's/\($*\)\.o[ :]*/\1.o $@ : /g' > $@; \
[ -s $@ ] || rm -f $@
%.d: %.S
set -e; $(AS) -MM $(CPPFLAGS) $< \
| sed 's/\($*\)\.o[ :]*/\1.o $@ : /g' > $@; \
[ -s $@ ] || rm -f $@
$(LIBFILE): $(LIBFILE)($(LIB_OBJ))
$(RANLIB) $@
clean:
-rm -rf *.o *.d *~ $(LIBFILE) *.lst *.map $(EXTRA_CLEAN_FILES)
lst: $(LIB_OBJ:%.o=%.lst)
%.lst: %.o
$(OBJDUMP) -h -S $< > $@
# Cleaning up unnecessary files
-rm -rf *.lst
#EOF