|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147 |
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Q := @
-
- BINARY = project
-
- FP_FLAGS ?= -msoft-float
- ARCH_FLAGS = -mthumb -mcpu=cortex-m0 $(FP_FLAGS)
-
-
-
-
- PREFIX ?= arm-none-eabi
- CC := $(PREFIX)-gcc
- LD := $(PREFIX)-gcc
- OBJCOPY := $(PREFIX)-objcopy
- OBJDUMP := $(PREFIX)-objdump
-
-
-
-
- LDSCRIPT = $(BINARY).ld
-
- ELMOASMFUNCTIONS = elmoasmfunctions.o
-
-
- SOURCES = ntt.c poly.c polyvec.c reduce.c $(BINARY).c
- HEADERS = ntt.h poly.h polyvec.h reduce.h params.h
- OBJECTS = ntt.o poly.o polyvec.o reduce.o $(BINARY).o
-
-
-
-
- CFLAGS += -Os -g
- CFLAGS += -Wextra -Wshadow -Wimplicit-function-declaration
- CFLAGS += -Wredundant-decls -Wmissing-prototypes -Wstrict-prototypes
- CFLAGS += -fno-common -ffunction-sections -fdata-sections
-
-
-
-
- CPPFLAGS += -MD
- CPPFLAGS += -Wall -Wundef
-
-
-
-
- LDFLAGS += --static -nostartfiles
- LDFLAGS += -T$(LDSCRIPT)
- LDFLAGS += -Wl,-Map=$(*).map
- LDFLAGS += -Wl,--gc-sections
-
-
-
-
-
- LDLIBS += -Wl,--start-group -lc -lgcc -lnosys -Wl,--end-group
-
-
-
-
-
- all: elf bin list
- elf: $(BINARY).elf
- bin: $(BINARY).bin
- list: $(BINARY).list
-
- images: $(BINARY).images
-
- $(BINARY).images: $(BINARY).bin $(BINARY).list $(BINARY).map
-
- $(BINARY).bin: $(BINARY).elf
- $(Q)$(OBJCOPY) -Obinary $(BINARY).elf $(BINARY).bin
-
- $(BINARY).list: $(BINARY).elf
- $(Q)$(OBJDUMP) -S $(BINARY).elf > $(BINARY).list
-
- $(BINARY).elf $(BINARY).map: $(OBJECTS) $(LDSCRIPT)
- $(Q)$(LD) $(LDFLAGS) vector.o $(ARCH_FLAGS) $(OBJECTS) $(ELMOASMFUNCTIONS) $(LDLIBS) -o $(BINARY).elf
-
- %.o: %.c $(HEADER)
- $(Q)$(CC) $(CFLAGS) $(CPPFLAGS) $(ARCH_FLAGS) -c -o $@ $<
-
- clean:
- $(Q)$(RM) $(OBJECTS) $(BINARY).d $(BINARY).elf $(BINARY).bin $(BINARY).list $(BINARY).map
|