maker.py: Improves component gathering logic

Also moves update_required() to the __call__ function.