diff --git a/arch/build.py b/arch/build.py index b2ee3e80..f6ed5a7f 100644 --- a/arch/build.py +++ b/arch/build.py @@ -28,3 +28,75 @@ proto( ) protocc(name="proto_lib", srcs=[".+proto"], deps=["lib+common_proto_lib"]) + +cxxlibrary( + name="arch", + srcs=[ + "./arch.cc", + "./aeslanier/decoder.cc", + "./agat/agat.cc", + "./agat/decoder.cc", + "./agat/encoder.cc", + "./amiga/amiga.cc", + "./amiga/decoder.cc", + "./amiga/encoder.cc", + "./apple2/decoder.cc", + "./apple2/encoder.cc", + "./brother/decoder.cc", + "./brother/encoder.cc", + "./c64/c64.cc", + "./c64/decoder.cc", + "./c64/encoder.cc", + "./f85/decoder.cc", + "./fb100/decoder.cc", + "./ibm/decoder.cc", + "./ibm/encoder.cc", + "./macintosh/decoder.cc", + "./macintosh/encoder.cc", + "./micropolis/decoder.cc", + "./micropolis/encoder.cc", + "./mx/decoder.cc", + "./northstar/decoder.cc", + "./northstar/encoder.cc", + "./rolandd20/decoder.cc", + "./smaky6/decoder.cc", + "./tartu/decoder.cc", + "./tartu/encoder.cc", + "./tids990/decoder.cc", + "./tids990/encoder.cc", + "./victor9k/decoder.cc", + "./victor9k/encoder.cc", + "./zilogmcz/decoder.cc", + ], + hdrs={ + "arch/ibm/ibm.h": "./ibm/ibm.h", + "arch/apple2/data_gcr.h": "./apple2/data_gcr.h", + "arch/apple2/apple2.h": "./apple2/apple2.h", + "arch/amiga/amiga.h": "./amiga/amiga.h", + "arch/smaky6/smaky6.h": "./smaky6/smaky6.h", + "arch/tids990/tids990.h": "./tids990/tids990.h", + "arch/zilogmcz/zilogmcz.h": "./zilogmcz/zilogmcz.h", + "arch/amiga/amiga.h": "./amiga/amiga.h", + "arch/f85/data_gcr.h": "./f85/data_gcr.h", + "arch/f85/f85.h": "./f85/f85.h", + "arch/mx/mx.h": "./mx/mx.h", + "arch/aeslanier/aeslanier.h": "./aeslanier/aeslanier.h", + "arch/northstar/northstar.h": "./northstar/northstar.h", + "arch/brother/data_gcr.h": "./brother/data_gcr.h", + "arch/brother/brother.h": "./brother/brother.h", + "arch/brother/header_gcr.h": "./brother/header_gcr.h", + "arch/macintosh/data_gcr.h": "./macintosh/data_gcr.h", + "arch/macintosh/macintosh.h": "./macintosh/macintosh.h", + "arch/agat/agat.h": "./agat/agat.h", + "arch/fb100/fb100.h": "./fb100/fb100.h", + "arch/victor9k/data_gcr.h": "./victor9k/data_gcr.h", + "arch/victor9k/victor9k.h": "./victor9k/victor9k.h", + "arch/rolandd20/rolandd20.h": "./rolandd20/rolandd20.h", + "arch/micropolis/micropolis.h": "./micropolis/micropolis.h", + "arch/c64/data_gcr.h": "./c64/data_gcr.h", + "arch/c64/c64.h": "./c64/c64.h", + "arch/tartu/tartu.h": "./tartu/tartu.h", + "arch/arch.h": "./arch.h", + }, + deps=["+lib"], +) diff --git a/build.py b/build.py index e7d72341..0144c3c5 100644 --- a/build.py +++ b/build.py @@ -27,70 +27,8 @@ cxxlibrary( "./lib/decoders/fmmfm.cc", "./lib/encoders/encoders.cc", "./lib/readerwriter.cc", - "./arch/arch.cc", - "./arch/aeslanier/decoder.cc", - "./arch/agat/agat.cc", - "./arch/agat/decoder.cc", - "./arch/agat/encoder.cc", - "./arch/amiga/amiga.cc", - "./arch/amiga/decoder.cc", - "./arch/amiga/encoder.cc", - "./arch/apple2/decoder.cc", - "./arch/apple2/encoder.cc", - "./arch/brother/decoder.cc", - "./arch/brother/encoder.cc", - "./arch/c64/c64.cc", - "./arch/c64/decoder.cc", - "./arch/c64/encoder.cc", - "./arch/f85/decoder.cc", - "./arch/fb100/decoder.cc", - "./arch/ibm/decoder.cc", - "./arch/ibm/encoder.cc", - "./arch/macintosh/decoder.cc", - "./arch/macintosh/encoder.cc", - "./arch/micropolis/decoder.cc", - "./arch/micropolis/encoder.cc", - "./arch/mx/decoder.cc", - "./arch/northstar/decoder.cc", - "./arch/northstar/encoder.cc", - "./arch/rolandd20/decoder.cc", - "./arch/smaky6/decoder.cc", - "./arch/tartu/decoder.cc", - "./arch/tartu/encoder.cc", - "./arch/tids990/decoder.cc", - "./arch/tids990/encoder.cc", - "./arch/victor9k/decoder.cc", - "./arch/victor9k/encoder.cc", - "./arch/zilogmcz/decoder.cc", ], hdrs={ - "arch/ibm/ibm.h": "./arch/ibm/ibm.h", - "arch/apple2/data_gcr.h": "./arch/apple2/data_gcr.h", - "arch/apple2/apple2.h": "./arch/apple2/apple2.h", - "arch/smaky6/smaky6.h": "./arch/smaky6/smaky6.h", - "arch/tids990/tids990.h": "./arch/tids990/tids990.h", - "arch/zilogmcz/zilogmcz.h": "./arch/zilogmcz/zilogmcz.h", - "arch/amiga/amiga.h": "./arch/amiga/amiga.h", - "arch/f85/data_gcr.h": "./arch/f85/data_gcr.h", - "arch/f85/f85.h": "./arch/f85/f85.h", - "arch/mx/mx.h": "./arch/mx/mx.h", - "arch/aeslanier/aeslanier.h": "./arch/aeslanier/aeslanier.h", - "arch/northstar/northstar.h": "./arch/northstar/northstar.h", - "arch/brother/data_gcr.h": "./arch/brother/data_gcr.h", - "arch/brother/brother.h": "./arch/brother/brother.h", - "arch/brother/header_gcr.h": "./arch/brother/header_gcr.h", - "arch/macintosh/data_gcr.h": "./arch/macintosh/data_gcr.h", - "arch/macintosh/macintosh.h": "./arch/macintosh/macintosh.h", - "arch/agat/agat.h": "./arch/agat/agat.h", - "arch/fb100/fb100.h": "./arch/fb100/fb100.h", - "arch/victor9k/data_gcr.h": "./arch/victor9k/data_gcr.h", - "arch/victor9k/victor9k.h": "./arch/victor9k/victor9k.h", - "arch/rolandd20/rolandd20.h": "./arch/rolandd20/rolandd20.h", - "arch/micropolis/micropolis.h": "./arch/micropolis/micropolis.h", - "arch/c64/data_gcr.h": "./arch/c64/data_gcr.h", - "arch/c64/c64.h": "./arch/c64/c64.h", - "arch/tartu/tartu.h": "./arch/tartu/tartu.h", - "arch/arch.h": "./arch/arch.h", "lib/decoders/decoders.h": "./lib/decoders/decoders.h", "lib/decoders/fluxdecoder.h": "./lib/decoders/fluxdecoder.h", "lib/decoders/rawbits.h": "./lib/decoders/rawbits.h", diff --git a/build/c.py b/build/c.py index 2ef152fc..85a5cef9 100644 --- a/build/c.py +++ b/build/c.py @@ -27,8 +27,8 @@ class Toolchain: label = "" cfile = ["$(CC) -c -o {outs[0]} {ins[0]} $(CFLAGS) {cflags}"] cxxfile = ["$(CXX) -c -o {outs[0]} {ins[0]} $(CFLAGS) {cflags}"] - clibrary = ["$(AR) cqs {outs[0]} {ins}"] - cxxlibrary = ["$(AR) cqs {outs[0]} {ins}"] + clibrary = ["rm -f {outs[0]} && $(AR) cqs {outs[0]} {ins}"] + cxxlibrary = ["rm -f {outs[0]} && $(AR) cqs {outs[0]} {ins}"] cprogram = [ "$(CC) -o {outs[0]} $(STARTGROUP) {ins} {ldflags} $(LDFLAGS) $(ENDGROUP)" ] @@ -41,8 +41,8 @@ class HostToolchain: label = "HOST " cfile = ["$(HOSTCC) -c -o {outs[0]} {ins[0]} $(HOSTCFLAGS) {cflags}"] cxxfile = ["$(HOSTCXX) -c -o {outs[0]} {ins[0]} $(HOSTCFLAGS) {cflags}"] - clibrary = ["$(HOSTAR) cqs {outs[0]} {ins}"] - cxxlibrary = ["$(HOSTAR) cqs {outs[0]} {ins}"] + clibrary = ["rm -f {outs[0]} && $(HOSTAR) cqs {outs[0]} {ins}"] + cxxlibrary = ["rm -f {outs[0]} && $(HOSTAR) cqs {outs[0]} {ins}"] cprogram = [ "$(HOSTCC) -o {outs[0]} $(HOSTSTARTGROUP) {ins} {ldflags} $(HOSTLDFLAGS) $(HOSTENDGROUP)" ] diff --git a/lib/vfs/build.py b/lib/vfs/build.py index a4d78068..4398869e 100644 --- a/lib/vfs/build.py +++ b/lib/vfs/build.py @@ -48,6 +48,7 @@ cxxlibrary( deps=[ "+lib", "+fmt_lib", + "arch", ".+proto_lib", ], ) diff --git a/src/build.py b/src/build.py index 0756a391..2d29420f 100644 --- a/src/build.py +++ b/src/build.py @@ -46,6 +46,7 @@ cxxprogram( "lib/data", "lib/external", "lib/vfs", + "arch", "src/formats", ], ) diff --git a/src/gui/build.py b/src/gui/build.py index 1ce1d54f..1f4e3595 100644 --- a/src/gui/build.py +++ b/src/gui/build.py @@ -68,6 +68,7 @@ cxxprogram( "lib/data", "lib/vfs", "lib/config", + "arch", "src/formats", "src/gui/drivetypes", "+z_lib", diff --git a/tests/build.py b/tests/build.py index 423b554e..3cf1f533 100644 --- a/tests/build.py +++ b/tests/build.py @@ -103,7 +103,8 @@ export( "src/formats", ] + ([".+test_proto_lib"] if n == "options" else []) - + (["lib/vfs"] if n in {"cpmfs", "applesingle", "vfs"} else []), + + (["lib/vfs"] if n in {"cpmfs", "applesingle", "vfs"} else []) + + (["arch"] if n in {"amiga"} else []), ), ) for n in tests