From fdce798dca64b48481fd002e8f1ac30302f48e0e Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Sat, 25 Mar 2017 10:10:24 +0100 Subject: added missing makefile for z80 and fixed gitignore --- sw/z80/makefile | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 sw/z80/makefile (limited to 'sw/z80/makefile') diff --git a/sw/z80/makefile b/sw/z80/makefile new file mode 100644 index 0000000..94646a9 --- /dev/null +++ b/sw/z80/makefile @@ -0,0 +1,27 @@ +#### +# source code settings +# +OSNAME := helvetiOS + +CSOURCES := $(wildcard *.c) +BINARY := $(OSNAME).bin + +### +# compiler settings +# +CC := zcc +CARGS := -Wall -I . -DDEBUG -crt0 loader -asm z80asm -nostdlib + +all: $(BINARY) + +# build binary +$(BINARY): $(CSOURCES) + cp loader.asm loader.opt + $(CC) $(CARGS) $(CSOURCES) -o $@ + +dis: $(BINARY) + z80dasm -a -g 0h $< + +clean: + - rm $(BINARY) + - rm loader.opt -- cgit v1.2.1 From 752e0fd9ec166ea8a513294fd44b7203af03d684 Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Tue, 2 May 2017 00:06:10 +0200 Subject: switch to sdcc - update of the makefile to use sdcc, since it is more popular and it's easier to insall on other computers - fix of crt0.s (old loader.asm) for the new compiler - change of the structure in the source code folder to separate betweeen libc and kernel code --- sw/z80/makefile | 34 ++++++++++++++++++++++------------ 1 file changed, 22 insertions(+), 12 deletions(-) (limited to 'sw/z80/makefile') diff --git a/sw/z80/makefile b/sw/z80/makefile index 94646a9..ecdd9a4 100644 --- a/sw/z80/makefile +++ b/sw/z80/makefile @@ -2,26 +2,36 @@ # source code settings # OSNAME := helvetiOS - -CSOURCES := $(wildcard *.c) -BINARY := $(OSNAME).bin + +CSOURCES := $(wildcard kernel/*.c) $(wildcard libc/*.c) +HEXFILE := build/$(OSNAME).hex +BINARY := build/$(OSNAME).bin ### # compiler settings -# -CC := zcc -CARGS := -Wall -I . -DDEBUG -crt0 loader -asm z80asm -nostdlib + +CC := sdcc + +CFLAGS := -mz80 --no-std-crt0 crt0.rel \ + -I kernel/include -I libc/include -DDEBUG + +LDFLAGS := --code-loc 0x0800 --data-loc 0x8000 all: $(BINARY) # build binary -$(BINARY): $(CSOURCES) - cp loader.asm loader.opt - $(CC) $(CARGS) $(CSOURCES) -o $@ +$(BINARY): $(CSOURCES) crt0.rel + mkdir -p build + $(CC) $(CFLAGS) $(LDFLSGS) $(CSOURCES) -o $(HEXFILE) + xxd -r -p $(HEXFILE) $(BINARY) + +crt0.rel: crt0.s + sdasz80 -o $< dis: $(BINARY) - z80dasm -a -g 0h $< + z80dasm -a -g 0h $< -o $(OSNAME).s clean: - - rm $(BINARY) - - rm loader.opt + - rm build/* + - rm $(OSNAME).s + - rm crt0.rel -- cgit v1.2.1 From 1ec8f14f03322e3fe1f56f4abcbc85f5c2934dfc Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Tue, 2 May 2017 16:14:41 +0200 Subject: fix for sdcc makefile fix for the old makefile, because it could't compile more than one source file. new libc directory with mem.c to start implementing the standard C library (or at least the part we need). --- sw/z80/makefile | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) (limited to 'sw/z80/makefile') diff --git a/sw/z80/makefile b/sw/z80/makefile index ecdd9a4..3d682ca 100644 --- a/sw/z80/makefile +++ b/sw/z80/makefile @@ -4,6 +4,7 @@ OSNAME := helvetiOS CSOURCES := $(wildcard kernel/*.c) $(wildcard libc/*.c) +OBJECTS := $(patsubst %.c,build/%.rel,$(CSOURCES)) HEXFILE := build/$(OSNAME).hex BINARY := build/$(OSNAME).bin @@ -12,26 +13,33 @@ BINARY := build/$(OSNAME).bin CC := sdcc -CFLAGS := -mz80 --no-std-crt0 crt0.rel \ +CFLAGS := -mz80 \ -I kernel/include -I libc/include -DDEBUG -LDFLAGS := --code-loc 0x0800 --data-loc 0x8000 +LDFLAGS := -mz80 --no-std-crt0 crt0.rel \ + --code-loc 0x0800 --data-loc 0x8000 +.PHONY: dirs dis clean all: $(BINARY) # build binary -$(BINARY): $(CSOURCES) crt0.rel - mkdir -p build - $(CC) $(CFLAGS) $(LDFLSGS) $(CSOURCES) -o $(HEXFILE) +$(BINARY): $(OBJECTS) dirs + $(CC) $(LDFLAGS) $(OBJECTS) -o $(HEXFILE) xxd -r -p $(HEXFILE) $(BINARY) +$(OBJECTS): build/%.rel : %.c $(CSOURCES) dirs crt0.rel + $(CC) $(CFLAGS) -c $< -o $@ + crt0.rel: crt0.s sdasz80 -o $< +dirs: + mkdir -p build build/kernel build/libc + dis: $(BINARY) z80dasm -a -g 0h $< -o $(OSNAME).s clean: - - rm build/* + - rm -rd build/* - rm $(OSNAME).s - rm crt0.rel -- cgit v1.2.1