diff --git a/arch/arch.cc b/arch/arch.cc index 95ad708f..58bc7515 100644 --- a/arch/arch.cc +++ b/arch/arch.cc @@ -18,7 +18,7 @@ #include "arch/rolandd20/rolandd20.h" #include "arch/smaky6/smaky6.h" #include "arch/tartu/tartu.h" -#include "arch/tids990/tids990" +#include "arch/tids990/tids990.h" #include "arch/victor9k/victor9k.h" #include "arch/zilogmcz/zilogmcz.h" #include "arch/arch.h" diff --git a/arch/build.py b/arch/build.py index a953cbec..97f5eeba 100644 --- a/arch/build.py +++ b/arch/build.py @@ -1,106 +1,61 @@ from build.c import cxxlibrary from build.protobuf import proto, protocc +from os.path import * +from glob import glob +import sys + +archs = [f for f in glob("*", root_dir="arch") if isfile(f"arch/{f}/{f}.proto")] + +ps = [] +pls = [] +cls = [] +for a in archs: + ps += [ + proto( + name=f"proto_{a}", + srcs=[f"arch/{a}/{a}.proto"], + deps=["lib/config+common_proto"], + ) + ] + + pls += [ + protocc( + name=f"proto_lib_{a}", + srcs=[f".+proto_{a}"], + deps=["lib/config+common_proto_lib"], + ) + ] + + cls += [ + cxxlibrary( + name=f"arch_{a}", + srcs=glob(f"arch/{a}/*.cc") + glob(f"arch/{a}/*.h"), + hdrs={f"arch/{a}/{a}.h": f"arch/{a}/{a}.h"}, + deps=[ + "lib/core", + "lib/data", + "lib/config", + "lib/encoders", + "lib/decoders", + ], + ) + ] proto( name="proto", - srcs=[ - "./aeslanier/aeslanier.proto", - "./agat/agat.proto", - "./amiga/amiga.proto", - "./apple2/apple2.proto", - "./brother/brother.proto", - "./c64/c64.proto", - "./f85/f85.proto", - "./fb100/fb100.proto", - "./ibm/ibm.proto", - "./macintosh/macintosh.proto", - "./micropolis/micropolis.proto", - "./mx/mx.proto", - "./northstar/northstar.proto", - "./rolandd20/rolandd20.proto", - "./smaky6/smaky6.proto", - "./tartu/tartu.proto", - "./tids990/tids990.proto", - "./victor9k/victor9k.proto", - "./zilogmcz/zilogmcz.proto", - ], - deps=["lib/config+common_proto"], + deps=ps + ["lib/config+common_proto"], ) -protocc( - name="proto_lib", srcs=[".+proto"], deps=["lib/config+common_proto_lib"] -) +cxxlibrary(name="proto_lib", deps=pls) 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", - "./brother/header_gcr.h", - "./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", - "./macintosh/data_gcr.h", - "./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": "./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/core", "lib/data", "lib/config", "lib/encoders", "lib/decoders"], + deps=cls + + ["lib/core", "lib/data", "lib/config", "lib/encoders", "lib/decoders"], ) diff --git a/arch/tids990/decoder.cc b/arch/tids990/decoder.cc index 22932b23..d161957f 100644 --- a/arch/tids990/decoder.cc +++ b/arch/tids990/decoder.cc @@ -1,7 +1,7 @@ #include "lib/core/globals.h" #include "lib/decoders/decoders.h" #include "lib/encoders/encoders.h" -#include "arch/tids990/tids990" +#include "arch/tids990/tids990.h" #include "lib/core/crc.h" #include "lib/data/fluxmap.h" #include "lib/data/fluxmapreader.h" diff --git a/arch/tids990/encoder.cc b/arch/tids990/encoder.cc index 03b316a8..6389d086 100644 --- a/arch/tids990/encoder.cc +++ b/arch/tids990/encoder.cc @@ -1,7 +1,7 @@ #include "lib/core/globals.h" #include "lib/decoders/decoders.h" #include "lib/encoders/encoders.h" -#include "arch/tids990/tids990" +#include "arch/tids990/tids990.h" #include "lib/core/crc.h" #include "lib/data/image.h" #include "arch/tids990/tids990.pb.h"