#! /usr/bin/python3
# Last edited on 2026-09-13 18:38:42 by stolfi

import sys, os, re;
from sys import stderr as err
from error_funcs import arg_error, prog_error
from process_funcs import bash
from make_funcs import make_targets
import bencao_starps_make_funcs as makef
import make_071_rules as m71r

def main(targets):

  # TARGETS AND THEIR PRE-REQUISITES:
  pre = dict() # Maps target filename (sans 'res') to list of prerequisites filenames.
  mak = dict() # Maps target filename (sans 'res') to commands that build it.
  tit = dict() # Maps target to progress message for {stderr}.
  
  err.write(f"REQUESTED: {targets!r}\n")
  
  all_targets = m71r.add_all_071_rules(pre, mak, tit)
  
  if targets == None or len(targets) == 1 and targets[0] == "ALL":
    targets = all_targets
    err.write(f"REPLACED BY:\n")
    for target in targets:
      err.write("  %s\n" % target)
  
  for utype in ( "ch", ):
    target = f"bencao-fu-{utype}-par.ivt"
    err.write("  %s (default target)\n" % target)
    targets.append(target)

  odir = "res"
  
  makef.cleanup("bencao")

  targets = list(set(tuple(targets)))
  targets.sort()
    
  err.write("TARGETS TO MAKE\n")
  for target in targets:
    err.write("  %s\n" % target)
  err.write("\n")
  debug_make = False
  make_targets(targets, odir, pre, mak, tit, debug_make)
  err.write("done.\n")
  return
  # ----------------------------------------------------------------------

targets = []
assert len(sys.argv) >= 1 # Always {sys.argv[0]} is the command.
targets = [ arg for arg in sys.argv[1:] ]
main(targets)
