Skip to content

Commit 1d87602

Browse files
committed
Rearranged some things, added Flamewing mdcomp/mdtools
1 parent eceda28 commit 1d87602

File tree

10 files changed

+131
-93
lines changed

10 files changed

+131
-93
lines changed

Makefile

+18-6
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,13 @@
11
export MARSDEV ?= ${HOME}/mars
22

3+
.PHONY: all m68k-toolchain m68k-gdb sh-toolchain
4+
.PHONY: tools z80-tools sik-tools flamewing-tools sgdk
35

4-
.PHONY: all m68k-toolchain m68k-gdb sh-toolchain tools sgdk
6+
# Default everything except SH toolchain
7+
all: m68k-toolchain tools sgdk
58

6-
all: m68k-toolchain tools
9+
# Everyone's tools
10+
tools: z80-tools sik-tools flamewing-tools
711

812
m68k-toolchain:
913
make -C toolchain ARCH=m68k
@@ -14,16 +18,22 @@ m68k-gdb:
1418
sh-toolchain:
1519
make -C toolchain ARCH=sh
1620

17-
tools:
18-
make -C tools
21+
z80-tools:
22+
make -C z80-tools
23+
24+
sik-tools:
25+
make -C sik-tools
26+
27+
flamewing-tools:
28+
make -C flamewing-tools
1929

2030
sgdk:
2131
make -C sgdk
2232

2333

2434
.PHONY: clean toolchain-clean gdb-clean tools-clean sgdk-clean
2535

26-
clean: toolchain-clean tools-clean
36+
clean: toolchain-clean tools-clean sgdk-clean
2737

2838
toolchain-clean:
2939
make -C toolchain clean
@@ -32,7 +42,9 @@ gdb-clean:
3242
make -C gdb clean
3343

3444
tools-clean:
35-
make -C tools clean
45+
make -C z80-tools clean
46+
make -C sik-tools clean
47+
make -C flamewing-tools clean
3648

3749
sgdk-clean:
3850
make -C sgdk clean

README.md

+7-10
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,12 @@ You probably shouldn't try using this for 32X dev,
55
I don't have any examples yet and am still learning how that thing works.
66

77

8-
### Install this stuff first
8+
### Install this stuff first (Debian package names)
99

10-
* Native GNU toolchain: `build-essential` on Debian/Ubuntu
10+
* Native GNU toolchain: `build-essential` (GCC >= 5.1.0)
1111
* GNU Autotools: `libtool` `autoconf` `automake` `autopoint` `gettext`
12-
* Everything else: `wget` `texinfo` `libpng16-dev`
13-
* And if you want SGDK, Java
12+
* Everything else: `wget` `texinfo` `libpng-dev` (libpng == 1.6)
13+
* And for SGDK's lz4w compression, `openjdk-8-jre-headless` (Java >= 6)
1414

1515

1616
### Compiling
@@ -21,7 +21,9 @@ Possible targets to install are:
2121
* `m68k-toolchain`: GNU toolchain for Motorola 68000 (MegaDrive)
2222
* `m68k-gdb`: GNU debugger for M68000
2323
* `sh-toolchain`: GNU toolchain for SH-2 (32X / Saturn)
24-
* `tools`: A couple Z80 assemblers and various tools I find useful
24+
* `z80-tools`: Z80 Assemblers (just sjasm right now, z80asm is having issues building)
25+
* `sik-tools`: Sik's mdtools
26+
* `flamewing-tools`: Flamewing's mdtools, useful for ROM hacking
2527
* `sgdk`: SGDK and its tools (rescomp, xgmtool, etc)
2628

2729
By default, only the `m68k-toolchain` and `tools` targets are built.
@@ -35,11 +37,6 @@ like this: `make MARSDEV=/where/to/install`.
3537
The `examples` directory contains various skeleton/example projects to base others on.
3638
For more information on each read [examples/README.md](examples/README.md).
3739

38-
Naming convention:
39-
* `md-`: Bare metal MegaDrive project, requires `m68k-toolchain` and `tools`
40-
* `sgdk-`: SGDK MegaDrive project, requires `m68k-toolchain`, `tools`, and `sgdk`
41-
* `mars-`: 32X project, requires `m68k-toolchain`, `sh-toolchain`, and `tools`
42-
4340
Should be as easy as a `make` for any of them.
4441

4542

flamewing-tools/Makefile

+26
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
MARSBIN = $(MARSDEV)/bin
2+
MARSINC = $(MARSDEV)/include
3+
MARSLIB = $(MARSDEV)/lib
4+
5+
all: clean $(MARSINC) $(MARSLIB)
6+
# mdtools depends on mdcomp, install that first
7+
git clone https://github.com/flamewing/mdcomp
8+
cd mdcomp && ./autogen.sh "--prefix=$(MARSDEV)" \
9+
&& make install
10+
git clone https://github.com/flamewing/mdtools
11+
cd mdtools && ./autogen.sh "--prefix=$(MARSDEV)" \
12+
"CPPFLAGS=-I$(MARSINC) -L$(MARSLIB)" "LDFLAGS=-L$(MARSLIB)" \
13+
&& make install
14+
15+
$(MARSBIN):
16+
mkdir -p $(MARSBIN)
17+
18+
$(MARSINC):
19+
mkdir -p $(MARSINC)
20+
21+
$(MARSLIB):
22+
mkdir -p $(MARSLIB)
23+
24+
clean:
25+
rm -rf mdtools
26+
rm -rf mdcomp

sik-tools/Makefile

+45
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
MARSBIN = $(MARSDEV)/bin
2+
3+
MDTILER = $(MARSBIN)/mdtiler
4+
SLZ = $(MARSBIN)/slz
5+
UFTC = $(MARSBIN)/uftc
6+
MML2ESF = $(MARSBIN)/mml2esf
7+
PCM2EWF = $(MARSBIN)/pcm2ewf
8+
TFI2EIF = $(MARSBIN)/tfi2eif
9+
10+
.PHONY: all clean
11+
12+
all: $(MDTILER) $(SLZ) $(UFTC) $(MML2ESF) $(PCM2EWF) $(TFI2EIF)
13+
14+
mdtools:
15+
git clone https://github.com/sikthehedgehog/mdtools
16+
17+
$(MDTILER): mdtools $(MARSBIN)
18+
make -C mdtools/mdtiler/tool
19+
cp -f mdtools/mdtiler/tool/mdtiler $(MDTILER)
20+
21+
$(SLZ): mdtools $(MARSBIN)
22+
make -C mdtools/slz/tool
23+
cp -f mdtools/slz/tool/slz $(SLZ)
24+
25+
$(UFTC): mdtools $(MARSBIN)
26+
make -C mdtools/uftc/tool
27+
cp -f mdtools/uftc/tool/uftc $(UFTC)
28+
29+
$(MML2ESF): mdtools $(MARSBIN)
30+
make -C mdtools/mml2esf/tool
31+
cp -f mdtools/mml2esf/tool/mml2esf $(MML2ESF)
32+
33+
$(PCM2EWF): mdtools $(MARSBIN)
34+
make -C mdtools/pcm2ewf/tool
35+
cp -f mdtools/pcm2ewf/tool/pcm2ewf $(PCM2EWF)
36+
37+
$(TFI2EIF): mdtools $(MARSBIN)
38+
make -C mdtools/tfi2eif/tool
39+
cp -f mdtools/tfi2eif/tool/tfi2eif $(TFI2EIF)
40+
41+
$(MARSBIN):
42+
mkdir -p $(MARSBIN)
43+
44+
clean:
45+
rm -rf mdtools

toolchain/Makefile

+6-1
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ BINUTILS_DIR = binutils-$(BINUTILS_VER)
77
GCC_PKG = $(GCC_DIR).tar.gz
88
BINUTILS_PKG = $(BINUTILS_DIR).tar.gz
99

10+
LDSCRIPTS = $(MARSDEV)/ldscripts
11+
1012
TARGET = $(ARCH)-elf
1113
PREFIX = $(MARSDEV)/$(TARGET)
1214
PATH := $(PREFIX)/bin:$(PATH)
@@ -24,7 +26,7 @@ endif
2426

2527
.PHONY: all binutils gcc clean
2628

27-
all: $(BINUTILS_DIR) $(GCC_DIR) binutils gcc
29+
all: $(BINUTILS_DIR) $(GCC_DIR) binutils gcc $(LDSCRIPTS)
2830

2931
binutils: BUILD_DIR=$(BINUTILS_DIR)/build
3032
binutils:
@@ -68,6 +70,9 @@ $(BINUTILS_PKG):
6870
$(GCC_PKG):
6971
@wget https://mirrors.tripadvisor.com/gnu/gcc/gcc-$(GCC_VER)/$(GCC_PKG)
7072

73+
$(LDSCRIPTS):
74+
cp -rf ldscripts/ $(LDSCRIPTS)
75+
7176
clean:
7277
rm -rf $(GCC_DIR)
7378
rm -rf $(BINUTILS_DIR)
File renamed without changes.
File renamed without changes.
File renamed without changes.

tools/Makefile

-76
This file was deleted.

z80-tools/Makefile

+29
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
MARSBIN = $(MARSDEV)/bin
2+
3+
SJASM = $(MARSBIN)/sjasm
4+
Z80ASM = $(MARSBIN)/z80asm
5+
6+
.PHONY: all clean
7+
8+
all: $(SJASM)
9+
#$(Z80ASM)
10+
11+
$(SJASM): $(MARSBIN)
12+
rm -rf sjasm
13+
git clone https://github.com/konamiman/sjasm --branch v0.39 --single-branch
14+
# Are you fucking kidding me
15+
mv sjasm/Sjasm/Sjasm.cpp sjasm/Sjasm/sjasm.cpp
16+
cd sjasm/Sjasm && make -f ../Makefile
17+
cp -f sjasm/Sjasm/sjasm $(SJASM)
18+
19+
$(Z80ASM): $(MARSBIN)
20+
rm -rf z80asm
21+
git clone https://git.savannah.nongnu.org/git/z80asm.git
22+
cd z80asm && autoreconf -f -i && ./configure && make
23+
cp -f z80asm/src/z80asm $(Z80ASM)
24+
25+
$(MARSBIN):
26+
mkdir -p $(MARSBIN)
27+
28+
clean:
29+
rm -rf sjasm z80asm

0 commit comments

Comments
 (0)