osd-contiki/cpu/z80/Makefile.z80

64 lines
1.8 KiB
Makefile

#
# Makefile for z80/SDCC
# @author Takahide Matsutsuka <markn@markn.org>
#
# $Id: Makefile.z80,v 1.6 2007/09/11 12:11:38 matsutsuka Exp $
#
### Compiler definitions
CC = sdcc
LD = sdcc
#LD = link-z80
AS = as-z80
AR = sdcclib
OBJCOPY = objcopy
STRIP = strip
### Custom rules
CUSTOM_RULE_C_TO_OBJECTDIR_D=1
CUSTOM_RULE_ALLOBJS_TO_TARGETLIB=1
CUSTOM_RULE_LINK=1
### Default flags
CFLAGS += --std-c99 --vc -mz80
ASFLAGS += -l
LDFLAGS +=
AROPTS = -a
### CPU-dependent directories
CONTIKI_CPU_DIRS = . dev lib
### CPU-dependent source files
CONTIKI_SOURCEFILES += strcasecmp.c mtarch.c uip_arch.c \
libconio_arch.c log-conio.c rs232.c rs232-slip.c
CONTIKI_ASMFILES += uip_arch-asm.S
CONTIKI_HASMOBJECTFILES = ${addprefix $(OBJECTDIR)/,$(CONTIKI_HASMFILES:.hS=.o)}
CONTIKI_PLATFORM_DIRS = $(PLATFORM_APPDIRS) \
${addprefix $(CONTIKI)/platform/$(TARGET)/, $(CONTIKI_TARGET_DIRS)}
#".hS" suffix means assembler file with #include directive
#so that a developer can use definitions of C-style include file
#in assembler file. Make sure the header file contains only compiler
#directives. (i.e. #define, etc.)
vpath %.hS $(CONTIKI_PLATFORM_DIRS)
ifndef CUSTOM_RULE_HS_TO_OBJECTDIR_O
$(OBJECTDIR)/%.o: %.hS
cp $< $(OBJECTDIR)/$*.c
$(CC) $(CFLAGS) -E $(OBJECTDIR)/$*.c > $(OBJECTDIR)/tmp
perl -pe "s/^#(.*)/;$$1/" $(OBJECTDIR)/tmp > $(OBJECTDIR)/$*.S
$(AS) $(ASFLAGS) -o $@ $(OBJECTDIR)/$*.S
rm -f $(OBJECTDIR)/tmp
endif
#CUSTOM_RULE_ALLOBJS_TO_TARGETLIB
contiki-$(TARGET).a: $(CONTIKI_OBJECTFILES) $(PROJECT_OBJECTFILES) $(CONTIKI_ASMOBJECTFILES) $(CONTIKI_HASMOBJECTFILES)
for target in $^; do $(AR) $(AROPTS) $@ $$target; done
#CUSTOM_RULE_LINK
contiki.ihex: contiki-$(TARGET).a
$(LD) $(LDFLAGS) -DAUTOSTART_ENABLE $(CONTIKI_TARGET_MAIN) -lcontiki-$(TARGET).a -o $@