-# simple makefile
-INC=./inc
-CC=bcc
-LD=ld86
-AS=nasm
+#
+# makefile for swan-sdk
+#
-all:
- $(LD) -M src/*.o
+OUT = test.wsc
+CC = ia16-elf-gcc
+LD = ia16-elf-ld
+ODIR = obj
+ADIR = objs
+SDIR = src
+INC = -Iinc
-# use -x to for -ffreestanding
-c-files:
- $(CC) -O -c src/*.c
-init:
- $(AS) -fas86 src/*.s -i $(INC)
+CFLAGS = -march=v30# use NEC v30 chip
+CFLAGS += -ffreestanding# no stdlib
+CFLAGS += -fno-pic# for use of inline asm
-clean:
- rm -rf src/*.o
+_OBJS = entry.o main.o # todo: make sure entry is forced as entry point for linker
+
+OBJS = $(patsubst %,$(ODIR)/%,$(_OBJS))
+
+LDFILE = swan.ld
+
+
+$(ODIR)/%.o: $(SDIR)/%.c
+ $(CC) -c $(INC) -o $@ $< $(CFLAGS)
+$(ODIR)/entry.o: $(SDIR)/entry.S
+ $(CC) -c $(INC) -o $@ $< $(CFLAGS)
+$(OUT): $(OBJS)
+ $(LD) -T $(LDFILE) $^ -o $(OUT) -Map=output.map
+
+add:
+ ./romheader
+run:
+ mednafen test.wsc
+
+.PHONY: clean
+
+clean:
+ rm -f $(ODIR)/*.o $(OUT)