forked from lix-project/lix
d536c57e87
Previously many of the documentation targets were depending on `$(bindir)/nix` which is the installed version. This meant that its install rules would be triggered (which in chain would also trigger the install of libraries, as reported in #5140). Therefore a build of the documentation without an installation would not be possible (which apart from doing unwanted operations it may also generate permission problems for example). The fix makes the rules depend on `$(nix_PATH)` instead, which is the executable in the build tree.
64 lines
1.5 KiB
Makefile
64 lines
1.5 KiB
Makefile
-include Makefile.config
|
|
clean-files += Makefile.config
|
|
|
|
ifeq ($(ENABLE_BUILD), yes)
|
|
makefiles = \
|
|
mk/precompiled-headers.mk \
|
|
local.mk \
|
|
src/libutil/local.mk \
|
|
src/libstore/local.mk \
|
|
src/libfetchers/local.mk \
|
|
src/libmain/local.mk \
|
|
src/libexpr/local.mk \
|
|
src/libcmd/local.mk \
|
|
src/nix/local.mk \
|
|
src/resolve-system-dependencies/local.mk \
|
|
scripts/local.mk \
|
|
misc/bash/local.mk \
|
|
misc/fish/local.mk \
|
|
misc/zsh/local.mk \
|
|
misc/systemd/local.mk \
|
|
misc/launchd/local.mk \
|
|
misc/upstart/local.mk
|
|
endif
|
|
|
|
ifeq ($(ENABLE_BUILD)_$(ENABLE_TESTS), yes_yes)
|
|
UNIT_TEST_ENV = _NIX_TEST_UNIT_DATA=unit-test-data
|
|
makefiles += \
|
|
src/libutil/tests/local.mk \
|
|
src/libstore/tests/local.mk \
|
|
src/libexpr/tests/local.mk
|
|
endif
|
|
|
|
ifeq ($(ENABLE_TESTS), yes)
|
|
makefiles += \
|
|
tests/functional/local.mk \
|
|
tests/functional/ca/local.mk \
|
|
tests/functional/dyn-drv/local.mk \
|
|
tests/functional/test-libstoreconsumer/local.mk \
|
|
tests/functional/plugins/local.mk
|
|
else
|
|
makefiles += \
|
|
mk/disable-tests.mk
|
|
endif
|
|
|
|
OPTIMIZE = 1
|
|
|
|
ifeq ($(OPTIMIZE), 1)
|
|
GLOBAL_CXXFLAGS += -O3 $(CXXLTO)
|
|
GLOBAL_LDFLAGS += $(CXXLTO)
|
|
else
|
|
GLOBAL_CXXFLAGS += -O0 -U_FORTIFY_SOURCE
|
|
endif
|
|
|
|
include mk/lib.mk
|
|
|
|
# Must be included after `mk/lib.mk` so rules refer to variables defined
|
|
# by the library. Rules are not "lazy" like variables, unfortunately.
|
|
ifeq ($(ENABLE_BUILD), yes)
|
|
$(eval $(call include-sub-makefile, doc/manual/local.mk))
|
|
$(eval $(call include-sub-makefile, doc/internal-api/local.mk))
|
|
endif
|
|
|
|
GLOBAL_CXXFLAGS += -g -Wall -include config.h -std=c++2a -I src
|