The previous PR #890 introduced a `Defaults.mk` target for defining
default variables for future calls to `make`. This functionality was
already present in a different form, but this new "real" target had an
unintended side-effect of causing the target to be called automatically
at reference, even the optional reference `-include Defaults.mk`. This
is undesirable as it causes the generation of defaults even during a
`make clean`.
This commit resolves these issues and further refactors the Makefile,
building on the work in #890, but with additional understanding:
* Convert the `Defaults.mk` target to the "phony" `defaults` target,
preventing automatic generation
* Refactor and split `clean` targets
* Update `cleanvendor` to reflect `OFFLINE_BUILD`, similar to the
`vendor` target
* Move "tools" targets into `Tools.mk`
* Add `ARCH` to `Variables.mk` for architecture-specific actions
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
Makefile has included a Defaults.mk file to store variable configuration
from one run for implicit inclusion in future runs, but the creation of
this file has been automatic and opaque, and the state of it managed by
a series of PHONY targets (e.g., config, genconfig, rm_config). This
commit refactors config to name its files explicitly (so they can be
more properly monitored by make) and makes the generation of Defaults.mk
explicit so that its behavior is more obvious.
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
The previous PR #888 erroneously removed the %config(noreplace) macro from the
nodes.conf file. This PR restores it.
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
The inclusion of %{_sysconfdir}/warewulf/* and
%{_sysconfdir}/warewulf/nodes.conf caused nodes.conf to be listed twice,
generating a warning.
The inclusion of %{srvdir}/warewulf, which is redundant with
%{_sharedstatedir}/warewulf, caused all files in
%{_sharedstatedir}/warewulf/overlays to be listed twice, generating a
warning.
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
- Support relocating client files at build time (required for LSB compliant nodes)
- OS varable added to perform some make choices
- Saving and exporting the Makefile vars now scripted using list of variables
- Updated specfile to match RH and SUSE requirements and guidelines
- Moved /usr/local/var to /var/local; dynamic files shall not use /usr.
- State files use %sharedstatedir for path (std for SLE and RHEL)
- Release value adjusted to meet different DEB and RPM reqs.
Signed-off-by: jcsiadal <jeremy.c.siadal@intel.com>