build: clean: Fix empty module infinite loop issue

Signed-off-by: Bart Kuivenhoven <bemkuivenhoven@gmail.com>
build: config: fix bug, mandatory enums

Mandatory enums weren't included in the config, when the allno-config
option was enabled. That led to mandatory code not being compiled and
thus build failures.

Signed-off-by: Bart Kuivenhoven <bemkuivenhoven@gmail.com>
config: bugfix A null pointer for empty dep files

Signed-off-by: Bart Kuivenhoven <bemkuivenhoven@gmail.com>
build: Add default buildfile flag to depfile

In generating the depfile one has to provide a buildfile. In that
depfile there is now a flag, noting the buildfile used to generate the
depfile.

The flag is propagated into the configuration and the final build. This
means that build can now be used while only providing a buildfile
argument to the depfile generator.

Signed-off-by: Bart Kuivenhoven <bemkuivenhoven@gmail.com>
fix: Infinite waiting for empty module to be built

If a module was empty, it would be put in the waiting state. Because
there are no dependencies nor commands to affect its state, it will not
be marked as complete.

The fix updates the state of the module as soon as the build function is
attempted. It will set the state to complete and as a result any modules
that rely on this module will not be put into an infinite waiting state.

Signed-off-by: Bart Kuivenhoven <bemkuivenhoven@gmail.com>
Random config: Fix ignore option ignored!

Signed-off-by: Bart Kuivenhoven <bemkuivenhoven@gmail.com>
option: GenModule: Help: Add missing operand

Signed-off-by: Bart Kuivenhoven <bemkuivenhoven@gmail.com>
Config: Add suggestion for resolving missing file

Signed-off-by: Bart Kuivenhoven <bemkuivenhoven@gmail.com>
Module: Remove redundant flags requirement

In the previous form LD and AR had to be configured, even if they
weren't used.

In the new form, the build system detects usage of the LD or AR systems
and depending on those it will enable the requirement of the AR or LD
fields.

Signed-off-by: Bart Kuivenhoven <bemkuivenhoven@gmail.com>
Build: Phase: Add phase states to build structure

Where before everything happened in one big if, and the developer had to
just figure out where in this huge blob of code the bug would occur, now
there is a system that clearly defines what happens in each state of the
build process.

These phases include:
 * InitialPreconfig,		(--gen-depfile)
 * Preconfig,			(--update-depfile)
 * Configure,			(--configure)
 * Compile and
 * Complete.

These phases each manage a global feature of build and if necessary they
can flow into eachother.

Before, if configure was used without a depfile present, Build would try
and fail to generate one in memory. Now the phase is switched to
generate a depfile, with a condition that once the depfile has been
generated, the configuration state will be restored and rerun.

This should make the code much more understandable to the programmer
than the giant if structure that existed before.

Signed-off-by: Bart Kuivenhoven <bemkuivenhoven@gmail.com>
Merge branch 'master' into testing

Conflicts:
	src/main/java/eu/orionos/build/Config.java