]>
Commit | Line | Data |
---|---|---|
1 | include_rules | |
2 | ||
3 | PROG = stamp-monitor | |
4 | ||
5 | FATFSD = $(TOP)/fatfs/source | |
6 | FATFS = $(FATFSD)/ff.c $(FATFSD)/ffunicode.c | |
7 | ||
8 | SRC = main.c | |
9 | SRC += cli.c cli_readline.c command.c command_tbl.c | |
10 | SRC += cmd_run.c cmd_boot.c cmd_misc.c | |
11 | SRC += cmd_date.c cmd_mem.c cmd_gpio.c cmd_attach.c | |
12 | SRC += cmd_loadihex.c cmd_loadcpm3.c cmd_sd.c cmd_fat.c | |
13 | SRC += env.c xmalloc.c con-utils.c print-utils.c | |
14 | SRC += getopt-min.c eval_arg.c | |
15 | SRC += timer.c serial.c i2c.c bcd.c pcf8583.c mmc.c | |
16 | SRC += background.c z180-serv.c z80-if.c gpio.c | |
17 | SRC += $(FATFS) | |
18 | ||
19 | #TODO: time lib | |
20 | SRC += ../time/asctime_r.c ../time/gmtime_r.c ../time/mk_gmtime.c | |
21 | SRC += ../time/print_lz.c ../time/isLeap.c | |
22 | SRC += ../time/time.c ../time/fatfs_time.c | |
23 | SRC += ../time/system_time.c ../time/set_system_time.c | |
24 | ||
25 | ASRC += ../time/system_tick.S | |
26 | ||
27 | SRC_Z = ../z180/hdrom.c ../z180/cfboot.c | |
28 | ||
29 | #TARGETS = $(PROG).elf | |
30 | ||
31 | ifdef MCU | |
32 | MCU_TARGET = @(MCU) | |
33 | else | |
34 | MCU_TARGET = atmega1281 | |
35 | endif | |
36 | ifeq ($(MCU_TARGET),atmega1281) | |
37 | DEFS += -DMCU_STRING=\"ATmega1281\" | |
38 | else | |
39 | DEFS += -DMCU_STRING=\"ATmega2561\" | |
40 | endif | |
41 | ||
42 | F_CPU = 18432000UL | |
43 | DEFS += -DF_CPU=$(F_CPU) | |
44 | ||
45 | INCLUDES += -I$(TOP)/include | |
46 | ||
47 | #INCLUDES += -I../z180 | |
48 | ||
49 | ############################################################################### | |
50 | ||
51 | TOOLCHAINDIR = | |
52 | TOOLCHAIN = avr | |
53 | ||
54 | CC = $(TOOLCHAIN)-gcc | |
55 | LD = $(TOOLCHAIN)-gcc | |
56 | AR = $(TOOLCHAIN)-ar | |
57 | AS = $(TOOLCHAIN)-as | |
58 | OBJCOPY = $(TOOLCHAIN)-objcopy | |
59 | OBJDUMP = $(TOOLCHAIN)-objdump | |
60 | SIZE = $(TOOLCHAIN)-size | |
61 | GDB = $(TOOLCHAIN)-gdb | |
62 | ||
63 | ############################################################################### | |
64 | ||
65 | ifdef DEBUG | |
66 | SRC += debug.c | |
67 | DEFS += -DDEBUG=2 | |
68 | endif | |
69 | ||
70 | CFLAGS = -g -Os | |
71 | CFLAGS += -mmcu=$(MCU_TARGET) | |
72 | CFLAGS += -std=gnu11 | |
73 | CFLAGS += -Wall -Wextra | |
74 | CFLAGS += -Wredundant-decls | |
75 | CFLAGS += -mrelax | |
76 | CFLAGS += -fno-common | |
77 | CFLAGS += -ffunction-sections | |
78 | CFLAGS += -fdata-sections | |
79 | CFLAGS += -fno-tree-loop-optimize | |
80 | CFLAGS += -fno-move-loop-invariants | |
81 | CFLAGS += -fno-split-wide-types | |
82 | #CFLAGS += -flto | |
83 | CFLAGS += -fshort-enums | |
84 | ||
85 | #CFLAGS += -fdiagnostics-color=always | |
86 | #CFLAGS += -save-temps -fverbose-asm | |
87 | ||
88 | CFLAGS_$(FATFS) = -fno-strict-aliasing | |
89 | ||
90 | CFLAGS += $(INCLUDES) | |
91 | ||
92 | CPPFLAGS += $(DEFS) | |
93 | ||
94 | #ASFLAGS += -Wa,-adhlns=$(<:.S=.lst),-gstabs | |
95 | ASFLAGS += -mmcu=$(MCU_TARGET) -x assembler-with-cpp $(ASFLAGS) | |
96 | ||
97 | # Linker flags | |
98 | LDFLAGS += -Wl,--gc-sections | |
99 | LDFLAGS += -Wl,--cref | |
100 | ||
101 | # Assemble: create object files from assembler source files. | |
102 | #.S.o: | |
103 | # $(CC) -c $(ALL_ASFLAGS) $< -o $@ | |
104 | ||
105 | ||
106 | !as = |> ^ AS %f^ $(CC) $(ASFLAGS) -c %f -o %o |> %B.o | |
107 | !cc = |> ^ CC %f^ $(CC) $(CFLAGS) $(CPPFLAGS) $(CFLAGS_%f) -c %f -o %o |> %B.o | |
108 | #!cc = |> ^ CC %f^ $(CC) $(CFLAGS) $(CPPFLAGS) $(CFLAGS_%f) -c %f -o %o |> %B.o | %B.s %B.i | |
109 | !LINK = |> ^ LINK %o^ $(LD) $(CFLAGS) $(LDFLAGS) -Wl,-Map=%O.map %f $(LDLIBS) -o %o |> | %O.map | |
110 | !OBJCOPY= |> ^ OBJCOPY %o^ $(OBJCOPY) -Oihex %f %o |> | |
111 | !OBJDUMP= |> ^ OBJDUMP %o^ $(OBJDUMP) -h -S %f > %o |> %O.lss | |
112 | !SIZE = |> ^ SIZE^ $(SIZE) %f |> | |
113 | ||
114 | : foreach $(ASRC) |> !as |> {objs} | |
115 | : foreach $(SRC) | ../z180/hdrom.h ../z180/cfboot.h |> !cc |> {objs} | |
116 | : foreach $(SRC_Z) |> !cc -D'const=const __flash' |> {objs} | |
117 | ||
118 | : {objs} |> !LINK |> $(PROG).elf | |
119 | : $(PROG).elf |> !OBJCOPY |> %B.hex | |
120 | : $(PROG).elf |> !OBJDUMP |> %B.lss | |
121 | : $(PROG).elf |> !SIZE |> |