Skip to content

Instantly share code, notes, and snippets.

@ao-kenji
Created December 30, 2024 12:13
Show Gist options
  • Save ao-kenji/ad2fede01e446074410a35d67aa84845 to your computer and use it in GitHub Desktop.
Save ao-kenji/ad2fede01e446074410a35d67aa84845 to your computer and use it in GitHub Desktop.
Patch for building Fuzix Compiler Kit on OpenBSD
diff --git a/CPP/main.c b/CPP/main.c
index 31b6235..75f76bf 100644
--- a/CPP/main.c
+++ b/CPP/main.c
@@ -22,7 +22,7 @@ char *token_txn(int);
void pr_indent(int);
void hash_line(void);
-#if defined(__linux__)
+#if defined(__linux__) || defined(__OpenBSD__) || defined(__NetBSD__)
char *_ltoa(long v)
{
static char buf[32];
diff --git a/Makefile b/Makefile
index a71852a..a42a8f7 100644
--- a/Makefile
+++ b/Makefile
@@ -77,184 +77,184 @@ $(OBJS3): $(INC1) $(INC2)
backend-super8.o: backend-super8.c backend-z8.c
CPP:
- (cd CPP; make)
+ (cd CPP; $(MAKE))
cc: cc.o
- gcc -g3 $< -o cc
+ $(CC) -g3 $< -o cc
cc0: $(OBJS0)
- gcc -g3 $(OBJS0) -o cc0
+ $(CC) -g3 $(OBJS0) -o cc0
cc1.8080:$(OBJS1) target-8080.o
- gcc -g3 $(OBJS1) target-8080.o -o cc1.8080
+ $(CC) -g3 $(OBJS1) target-8080.o -o cc1.8080
cc1.8086:$(OBJS1) target-8086.o
- gcc -g3 $(OBJS1) target-8086.o -o cc1.8086
+ $(CC) -g3 $(OBJS1) target-8086.o -o cc1.8086
cc1.z80:$(OBJS1) target-z80.o
- gcc -g3 $(OBJS1) target-z80.o -o cc1.z80
+ $(CC) -g3 $(OBJS1) target-z80.o -o cc1.z80
cc1.thread:$(OBJS1) target-threadcode.o
- gcc -g3 $(OBJS1) target-threadcode.o -o cc1.thread
+ $(CC) -g3 $(OBJS1) target-threadcode.o -o cc1.thread
cc1.byte:$(OBJS1) target-bytecode.o
- gcc -g3 $(OBJS1) target-bytecode.o -o cc1.byte
+ $(CC) -g3 $(OBJS1) target-bytecode.o -o cc1.byte
cc1.6502:$(OBJS1) target-6502.o
- gcc -g3 $(OBJS1) target-6502.o -o cc1.6502
+ $(CC) -g3 $(OBJS1) target-6502.o -o cc1.6502
cc1.65c816:$(OBJS1) target-65c816.o
- gcc -g3 $(OBJS1) target-65c816.o -o cc1.65c816
+ $(CC) -g3 $(OBJS1) target-65c816.o -o cc1.65c816
cc1.z8:$(OBJS1) target-z8.o
- gcc -g3 $(OBJS1) target-z8.o -o cc1.z8
+ $(CC) -g3 $(OBJS1) target-z8.o -o cc1.z8
cc1.super8:$(OBJS1) target-super8.o
- gcc -g3 $(OBJS1) target-super8.o -o cc1.super8
+ $(CC) -g3 $(OBJS1) target-super8.o -o cc1.super8
cc1.1802:$(OBJS1) target-1802.o
- gcc -g3 $(OBJS1) target-1802.o -o cc1.1802
+ $(CC) -g3 $(OBJS1) target-1802.o -o cc1.1802
cc1.6800:$(OBJS1) target-6800.o
- gcc -g3 $(OBJS1) target-6800.o -o cc1.6800
+ $(CC) -g3 $(OBJS1) target-6800.o -o cc1.6800
cc1.6809:$(OBJS1) target-6800.o
- gcc -g3 $(OBJS1) target-6800.o -o cc1.6809
+ $(CC) -g3 $(OBJS1) target-6800.o -o cc1.6809
cc1.8070:$(OBJS1) target-8070.o
- gcc -g3 $(OBJS1) target-8070.o -o cc1.8070
+ $(CC) -g3 $(OBJS1) target-8070.o -o cc1.8070
cc1.ee200:$(OBJS1) target-ee200.o
- gcc -g3 $(OBJS1) target-ee200.o -o cc1.ee200
+ $(CC) -g3 $(OBJS1) target-ee200.o -o cc1.ee200
cc1.nova:$(OBJS1) target-nova.o
- gcc -g3 $(OBJS1) target-nova.o -o cc1.nova
+ $(CC) -g3 $(OBJS1) target-nova.o -o cc1.nova
cc1.ddp:$(OBJS1) target-ddp.o
- gcc -g3 $(OBJS1) target-ddp.o -o cc1.ddp
+ $(CC) -g3 $(OBJS1) target-ddp.o -o cc1.ddp
cc1.7000:$(OBJS1) target-tms7000.o
- gcc -g3 $(OBJS1) target-tms7000.o -o cc1.7000
+ $(CC) -g3 $(OBJS1) target-tms7000.o -o cc1.7000
cc1.hc08:$(OBJS1) target-hc08.o
- gcc -g3 $(OBJS1) target-hc08.o -o cc1.hc08
+ $(CC) -g3 $(OBJS1) target-hc08.o -o cc1.hc08
cc1.gb:$(OBJS1) target-gb.o
- gcc -g3 $(OBJS1) target-gb.o -o cc1.gb
+ $(CC) -g3 $(OBJS1) target-gb.o -o cc1.gb
cc2: $(OBJS2)
- gcc -g3 $(OBJS2) -o cc2
+ $(CC) -g3 $(OBJS2) -o cc2
cc2.8080: $(OBJS3)
- gcc -g3 $(OBJS3) -o cc2.8080
+ $(CC) -g3 $(OBJS3) -o cc2.8080
cc2.8086: $(OBJS4)
- gcc -g3 $(OBJS4) -o cc2.8086
+ $(CC) -g3 $(OBJS4) -o cc2.8086
cc2.z80: $(OBJS5)
- gcc -g3 $(OBJS5) -o cc2.z80
+ $(CC) -g3 $(OBJS5) -o cc2.z80
cc2.thread: $(OBJS9)
- gcc -g3 $(OBJS9) -o cc2.thread
+ $(CC) -g3 $(OBJS9) -o cc2.thread
cc2.6502: $(OBJS11)
- gcc -g3 $(OBJS11) -o cc2.6502
+ $(CC) -g3 $(OBJS11) -o cc2.6502
cc2.65c816: $(OBJS12)
- gcc -g3 $(OBJS12) -o cc2.65c816
+ $(CC) -g3 $(OBJS12) -o cc2.65c816
cc2.z8: $(OBJS13)
- gcc -g3 $(OBJS13) -o cc2.z8
+ $(CC) -g3 $(OBJS13) -o cc2.z8
cc2.super8: $(OBJS14)
- gcc -g3 $(OBJS14) -o cc2.super8
+ $(CC) -g3 $(OBJS14) -o cc2.super8
cc2.1802: $(OBJS15)
- gcc -g3 $(OBJS15) -o cc2.1802
+ $(CC) -g3 $(OBJS15) -o cc2.1802
cc2.6800: $(OBJS16)
- gcc -g3 $(OBJS16) -o cc2.6800
+ $(CC) -g3 $(OBJS16) -o cc2.6800
cc2.6809: $(OBJS17)
- gcc -g3 $(OBJS17) -o cc2.6809
+ $(CC) -g3 $(OBJS17) -o cc2.6809
cc2.8070: $(OBJS8)
- gcc -g3 $(OBJS8) -o cc2.8070
+ $(CC) -g3 $(OBJS8) -o cc2.8070
cc2.ee200: $(OBJS7)
- gcc -g3 $(OBJS7) -o cc2.ee200
+ $(CC) -g3 $(OBJS7) -o cc2.ee200
cc2.nova: $(OBJS10)
- gcc -g3 $(OBJS10) -o cc2.nova
+ $(CC) -g3 $(OBJS10) -o cc2.nova
cc2.ddp: $(OBJS18)
- gcc -g3 $(OBJS18) -o cc2.ddp
+ $(CC) -g3 $(OBJS18) -o cc2.ddp
cc2.7000: $(OBJS19)
- gcc -g3 $(OBJS19) -o cc2.7000
+ $(CC) -g3 $(OBJS19) -o cc2.7000
cc2.hc08: $(OBJS20)
- gcc -g3 $(OBJS20) -o cc2.hc08
+ $(CC) -g3 $(OBJS20) -o cc2.hc08
cc2.gb: $(OBJS21)
- gcc -g3 $(OBJS21) -o cc2.gb
+ $(CC) -g3 $(OBJS21) -o cc2.gb
support6303:
- (cd support6303; make)
+ (cd support6303; $(MAKE))
support6502:
- (cd support6502; make)
+ (cd support6502; $(MAKE))
support65c816:
- (cd support65c816; make)
+ (cd support65c816; $(MAKE))
support6800:
- (cd support6800; make)
+ (cd support6800; $(MAKE))
support6803:
- (cd support6803; make)
+ (cd support6803; $(MAKE))
support6809:
- (cd support6809; make)
+ (cd support6809; $(MAKE))
support68hc11:
- (cd support68hc11; make)
+ (cd support68hc11; $(MAKE))
support8070:
- (cd support8070; make)
+ (cd support8070; $(MAKE))
support8080:
- (cd support8080; make)
+ (cd support8080; $(MAKE))
support8085:
- (cd support8085; make)
+ (cd support8085; $(MAKE))
supportee200:
- (cd supportee200; make)
+ (cd supportee200; $(MAKE))
supportnova:
- (cd supportnova; make)
+ (cd supportnova; $(MAKE))
supportnova3:
- (cd supportnova3; make)
+ (cd supportnova3; $(MAKE))
supportsuper8:
- (cd supportsuper8; make)
+ (cd supportsuper8; $(MAKE))
supporttms7000:
- (cd supporttms7000; make)
+ (cd supporttms7000; $(MAKE))
supportz8:
- (cd supportz8; make)
+ (cd supportz8; $(MAKE))
supportz80:
- (cd supportz80; make)
+ (cd supportz80; $(MAKE))
test:
- (cd test; make)
+ (cd test; $(MAKE))
clean:
- (cd CPP; make clean)
+ (cd CPP; $(MAKE) clean)
rm -f cc cc0 copt
rm -f cc6502 cc65c816
rm -f cc1.1802 cc2.1802
@@ -274,23 +274,23 @@ clean:
rm -f cc1.hc08 cc2.hc08
rm -f cc1.gb cc2.gb
rm -f *~ *.o
- (cd support6303; make clean)
- (cd support6502; make clean)
- (cd support65c816; make clean)
- (cd support6800; make clean)
- (cd support6803; make clean)
- (cd support6809; make clean)
- (cd support68hc11; make clean)
- (cd support8080; make clean)
- (cd supportee200; make clean)
- (cd supportnova; make clean)
- (cd supportnova3; make clean)
- (cd supportsuper8; make clean)
- (cd support8085; make clean)
- (cd supporttms7000; make clean)
- (cd supportz80; make clean)
- (cd supportz8; make clean)
- (cd test; make clean)
+ (cd support6303; $(MAKE) clean)
+ (cd support6502; $(MAKE) clean)
+ (cd support65c816; $(MAKE) clean)
+ (cd support6800; $(MAKE) clean)
+ (cd support6803; $(MAKE) clean)
+ (cd support6809; $(MAKE) clean)
+ (cd support68hc11; $(MAKE) clean)
+ (cd support8080; $(MAKE) clean)
+ (cd supportee200; $(MAKE) clean)
+ (cd supportnova; $(MAKE) clean)
+ (cd supportnova3; $(MAKE) clean)
+ (cd supportsuper8; $(MAKE) clean)
+ (cd support8085; $(MAKE) clean)
+ (cd supporttms7000; $(MAKE) clean)
+ (cd supportz80; $(MAKE) clean)
+ (cd supportz8; $(MAKE) clean)
+ (cd test; $(MAKE) clean)
# New install version. This is used by both the install rules, as we need
# to bootstrap build a toolchain with no support library to build the toolchain
@@ -426,10 +426,10 @@ bootinst:
# 68HC08
mkdir -p $(CCROOT)/lib/hc08
mkdir -p $(CCROOT)/lib/hc08/include/
- cp lorderhc08 $(CCROOT)/bin/lorderhc08
+# cp lorderhc08 $(CCROOT)/bin/lorderhc08
cp cc1.hc08 $(CCROOT)/lib
cp cc2.hc08 $(CCROOT)/lib
- cp rules.hc08 $(CCROOT)/lib
+# cp rules.hc08 $(CCROOT)/lib
# Gameboy
mkdir -p $(CCROOT)/lib/gb
mkdir -p $(CCROOT)/lib/gb/include/
diff --git a/cpp b/cpp
index 8938da4..6591d14 100755
--- a/cpp
+++ b/cpp
@@ -3,7 +3,8 @@
#
if [ -e /lib/cpp ] ; then
/lib/cpp -undef -nostdinc $*
-else
+elif [ -e /bin/cpp ] ; then
/bin/cpp -undef -nostdinc $*
+else
+ /usr/bin/cpp -undef -nostdinc -notraditional -Wno-unused-command-line-argument $*
fi
-
diff --git a/test/Makefile b/test/Makefile
index 50a803e..4118abc 100644
--- a/test/Makefile
+++ b/test/Makefile
@@ -3,7 +3,7 @@ all: emu6502 emu65c816 emu6800 emu85 emuz8 emuz80 byte1802 emu6809 \
testcrt0.o testcrtz80.o testcrt0_6502.o testcrt0_65c816.o \
testcrt0_6303.o testcrt0_6803.o testcrt0_6809.o testcrt0_z8.o \
testcrt0_byte1802.o testcrt0_ee200.o testcrt0_nova.o testcrt0_nova3.o \
- testcrt0_6800.o testcrt0_8070.o testcrt0_tms7000.o
+ testcrt0_6800.o testcrt0_tms7000.o
emu85: emu85.o intel_8085_emulator.o
$(CC) emu85.o intel_8085_emulator.o -o emu85
@@ -27,22 +27,22 @@ emuz8: emuz8.o z8.o
$(CC) emuz8.o z8.o -o emuz8
emuz80.o: emuz80.c
- (cd libz80; make)
+ (cd libz80; $(MAKE))
$(CC) $(CFLAGS) -c emuz80.c
emuz80: emuz80.o z80dis.o
- (cd libz80; make)
+ (cd libz80; $(MAKE))
$(CC) emuz80.o libz80/libz80.o z80dis.o -o emuz80
emu6502: emu6502.o 6502.o 6502dis.o
$(CC) emu6502.o 6502.o 6502dis.o -o emu6502
emu65c816: emu65c816.o
- (cd lib65c816; make)
+ (cd lib65c816; $(MAKE))
$(CC) emu65c816.o lib65c816/src/lib65816.a -o emu65c816
emu65c816.o: emu65c816.c
- (cd lib65c816; make)
+ (cd lib65c816; $(MAKE))
$(CC) $(CFLAGS) -c -Ilib65c816 emu65c816.c
6800.o: 6800.c 6800.h
@@ -104,8 +104,8 @@ testcrt0_6803.o: testcrt0_6803.s
testcrt0_6809.o: testcrt0_6809.s
fcc -m6809 -c testcrt0_6809.s
-testcrt0_8070.o: testcrt0_8070.s
- fcc -m8070 -c testcrt0_8070.s
+#testcrt0_8070.o: testcrt0_8070.s
+# fcc -m8070 -c testcrt0_8070.s
testcrt0_ee200.o: testcrt0_ee200.s
fcc -mee200 -c testcrt0_ee200.s
@@ -126,6 +126,5 @@ clean:
rm -f *.o tests/*.o *~ tests/*~ emu85 tests/*.map *.log emuz80
rm -f emu6502 byte1802 emu65c816 emuz8 emu6809 ee200 nova
rm -f wtests/*.o
- (cd libz80; make clean)
- (cd lib65c816; make clean)
-
+ (cd libz80; $(MAKE) clean)
+ (cd lib65c816; $(MAKE) clean)
diff --git a/test/lib65c816/config.mk b/test/lib65c816/config.mk
index 23b3690..3029910 100644
--- a/test/lib65c816/config.mk
+++ b/test/lib65c816/config.mk
@@ -1,6 +1,6 @@
-CC := gcc
+CC := cc
CCFLAGS := -c -O2 -fomit-frame-pointer $(CCOPTS) -DDEBUG -Werror
-LD := gcc
+LD := cc
LDFLAGS :=
PREFIX := /opt/v65c816/
diff --git a/test/libz80/codegen/Makefile b/test/libz80/codegen/Makefile
index 8dbf031..2f67371 100644
--- a/test/libz80/codegen/Makefile
+++ b/test/libz80/codegen/Makefile
@@ -1,7 +1,7 @@
all: mktables
mktables: mktables.c
- gcc -g -o mktables mktables.c
+ $(CC) -g -o mktables mktables.c
force: clean opcodes
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment