# # Makefile for PC-6001 using z80/SDCC # @author Takahide Matsutsuka # # $Id: Makefile.pc-6001,v 1.10 2008/07/20 07:44:39 matsutsuka Exp $ # ifndef CONTIKI $(error CONTIKI not defined! You must specify where CONTIKI resides!) endif # Default values ARCH=PC6001 MEMORY=32K PLATFORM_APPS=$(PLATFORM_APPS_DESKTOP) CONTIKI_TARGET_MAIN = contiki-main.c CTKCONF = NORMAL LOADER = 0 # Target dependent options ifeq ($(MAKECMDGOALS),p62) ARCH=PC6001MK2 else ifeq ($(MAKECMDGOALS),p6A) ARCH=PC6001A else ifeq ($(MAKECMDGOALS),minimal) MEMORY=16K CONTIKI_TARGET_MAIN=contiki-minimal-main.c else ifeq ($(MAKECMDGOALS),serial) CONTIKI_TARGET_MAIN=contiki-serial-main.c else ifeq ($(MAKECMDGOALS),rom) CTKCONF=NOICON MEMORY=ROM LOADER = 1 CONTIKI_TARGET_MAIN=contiki-loader-main.c else ifeq ($(MAKECMDGOALS),load) CTKCONF=NOICON LOADER = 1 CONTIKI_TARGET_MAIN=contiki-loader-main.c else ifeq ($(MAKECMDGOALS),server) CTKCONF=SERVER PLATFORM_APPS = $(PLATFORM_APPS_NETWORK) CONTIKI_TARGET_MAIN=contiki-server-main.c else ifeq ($(MAKECMDGOALS),client) CTKCONF=CLIENT PLATFORM_APPS = $(PLATFORM_APPS_NETWORK) CONTIKI_TARGET_MAIN=contiki-client-main.c endif ### setup default values ifndef HEX2BIN HEX2BINDIR = ../../tools/z80/hex2bin/ HEX2BIN = $(HEX2BINDIR)/hexameter endif ### setup flags to be used in compiler, assembler, and HEX2BIN PLATFORM = $(CONTIKI)/platform/$(TARGET) CONTIKI_TARGET_DIRS = . ctk dev loader CFLAGS += -DMEMORY_$(MEMORY) -DARCH_$(ARCH) -DCTK_$(CTKCONF) #-Wp-includecontiki-conf.h ifeq ($(MEMORY),16K) LDFLAGS += --code-loc 0xc40f --data-loc 0 HEX2BINFLAGS = -d TAPE=contki $(HEX2BINDIR)/ihx/mode1.ihx -o contiki.p6 else ifeq ($(MEMORY),ROM) LDFLAGS += --code-loc 0x4004 --data-loc 0xf000 HEX2BINFLAGS = -d ROMEXEC=4004 $(HEX2BINDIR)/ihx/rom60.ihx -b 4000 -o contiki.rom else ifeq ($(ARCH),PC6001MK2) LDFLAGS += --code-loc 0x800f --data-loc 0 HEX2BINFLAGS = -d TAPE=contki $(HEX2BINDIR)/ihx/mode5.ihx -o contiki2.p6 else LDFLAGS += --code-loc 0x840f --data-loc 0 HEX2BINFLAGS = -d TAPE=contki $(HEX2BINDIR)/ihx/mode2.ihx -o contiki.p6 endif ifeq ($(LOADER),1) CFLAGS += -DWITH_LOADER_ARCH=1 endif ### Include platform-depend application makefiles ifdef PLATFORM_APPS PLATFORM_APPDIRS += ${addprefix $(PLATFORM)/apps/, $(PLATFORM_APPS)} PLATFORM_APPINCLUDES = ${foreach APP, $(PLATFORM_APPS), $(PLATFORM)/apps/$(APP)/Makefile.$(APP)} -include $(PLATFORM_APPINCLUDES) PLATFORM_APP_SOURCES = ${foreach APP, $(PLATFORM_APPS), $($(APP)_src)} PLATFORM_DSC_SOURCES = ${foreach APP, $(PLATFORM_APPS), $($(APP)_dsc)} CONTIKI_SOURCEFILES += $(PLATFORM_APP_SOURCES) $(PLATFORM_DSC_SOURCES) endif CONTIKI_TARGET_SOURCEFILES = \ $(CTK) cfs-ram.c serial.c slip.c \ resolv.c loader_arch.c \ ctk-conio_arch.c $(CONTIKI_TARGET_MAIN) #you can use the below instead of ctk-conio_arch.c, ctk-conio_arch-asm.cS, # and libconio_arch-asm.cS #ctk-conio_arch-source.c CONTIKI_ASMFILES += getkey.S isprint_arch.S clock.S rs232-asm.S CONTIKI_CASMFILES += ctk-conio_arch-asm.cS libconio_arch-asm.cS\ libconio_arch-small.cS CONTIKI_SOURCEFILES += $(CONTIKI_TARGET_SOURCEFILES) CLEAN += *.rom *.p6 *.asm contiki: $(HEX2BIN) contiki.p6 .SUFFIXES: %.p6: %.ihx $(HEX2BIN) $(HEX2BINFLAGS) $< $(HEX2BINDIR)/ihx/suffix.ihx %.rom: %.ihx $(HEX2BIN) $(HEX2BINFLAGS) $< $(HEX2BIN): cd $(HEX2BINDIR); make remove-ctk: rm -f obj_$(TARGET)/ctk*; rm -f contiki.ihex remove-net: rm -f ${addprefix obj_$(TARGET)/,uip*.o hc.o psock.o rawpacket-udp.o resolv.o slip*.o tcp*.o uaod*.o rime*.o http*.o web*.o}; rm -f contiki.ihex remove-mt: rm -f obj_$(TARGET)/mt*.o rm -f contiki.ihex ### Define the CPU directory CONTIKI_CPU=$(CONTIKI)/cpu/z80 include $(CONTIKI_CPU)/Makefile.z80 ### Setup directory search path for source files PROJECTDIRS += $(PLATFORM_APPDIRS)