diff --git a/Makefile b/Makefile index 98556804b..e3badaa43 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,3 @@ -# Use bash for shell -SHELL := /bin/bash - # Path and environment setup VENV := .venv VIRTUAL_ENV_PATH := $(VENV)/bin @@ -16,7 +13,7 @@ NINJA := $(VIRTUAL_ENV_PATH)/ninja # Build types and options BUILDTYPE_RELEASE := --buildtype release BUILDTYPE_DEBUG := --buildtype debug -ENABLE_FLOAT := -Denable_float=true +MESON_OPTIONS = -Denable_float=true # Directories LIBVMAF_DIR := libvmaf @@ -24,31 +21,32 @@ BUILD_DIR := $(LIBVMAF_DIR)/build DEBUG_DIR := $(LIBVMAF_DIR)/debug .PHONY: default all debug build install cythonize clean distclean cythonize-deps +.NOTPARALLEL: clean distclean default: build all: build debug install test cythonize -$(BUILD_DIR): $(MESON) $(NINJA) - PATH="$(VENV)/bin:$$PATH" $(MESON_SETUP) $(BUILD_DIR) $(LIBVMAF_DIR) $(BUILDTYPE_RELEASE) $(ENABLE_FLOAT) +$(BUILD_DIR)/build.ninja: $(MESON) $(NINJA) + PATH="$(VIRTUAL_ENV_PATH):$$PATH" $(MESON_SETUP) $(BUILD_DIR) $(LIBVMAF_DIR) $(BUILDTYPE_RELEASE) $(MESON_OPTIONS) -$(DEBUG_DIR): $(MESON) $(NINJA) - PATH="$(VENV)/bin:$$PATH" $(MESON_SETUP) $(DEBUG_DIR) $(LIBVMAF_DIR) $(BUILDTYPE_DEBUG) $(ENABLE_FLOAT) +$(DEBUG_DIR)/build.ninja: $(MESON) $(NINJA) + PATH="$(VIRTUAL_ENV_PATH):$$PATH" $(MESON_SETUP) $(DEBUG_DIR) $(LIBVMAF_DIR) $(BUILDTYPE_DEBUG) $(MESON_OPTIONS) cythonize: cythonize-deps - pushd python && ../$(VENV_PYTHON) setup.py build_ext --build-lib . && popd || exit 1 + cd python && ../$(VENV_PYTHON) setup.py build_ext --build-lib . -build: $(BUILD_DIR) $(NINJA) - PATH="$(VENV)/bin:$$PATH" $(NINJA) -vC $(BUILD_DIR) +build: $(BUILD_DIR)/build.ninja $(NINJA) + PATH="$(VIRTUAL_ENV_PATH):$$PATH" $(NINJA) -vC $(BUILD_DIR) test: build $(NINJA) - PATH="$(VENV)/bin:$$PATH" $(NINJA) -vC $(BUILD_DIR) test + PATH="$(VIRTUAL_ENV_PATH):$$PATH" $(NINJA) -vC $(BUILD_DIR) test -debug: $(DEBUG_DIR) $(NINJA) - PATH="$(VENV)/bin:$$PATH" $(NINJA) -vC $(DEBUG_DIR) +debug: $(DEBUG_DIR)/build.ninja $(NINJA) + PATH="$(VIRTUAL_ENV_PATH):$$PATH" $(NINJA) -vC $(DEBUG_DIR) -install: $(BUILD_DIR) $(NINJA) - PATH="$(VENV)/bin:$$PATH" $(NINJA) -vC $(BUILD_DIR) install +install: $(BUILD_DIR)/build.ninja $(NINJA) + PATH="$(VIRTUAL_ENV_PATH):$$PATH" $(NINJA) -vC $(BUILD_DIR) install clean: rm -rf $(BUILD_DIR) $(DEBUG_DIR) @@ -61,13 +59,13 @@ distclean: clean $(VENV_PIP): @echo "Setting up the virtual environment..." $(PYTHON_INTERPRETER) -m venv $(VENV) || { echo "Failed to create virtual environment"; exit 1; } - $(VENV_PIP) install --upgrade pip || { echo "Failed to upgrade pip"; exit 1; } + $(VENV_PYTHON) -m pip install --upgrade pip || { echo "Failed to upgrade pip"; exit 1; } @echo "Virtual environment setup complete." -$(MESON): $(VENV_PIP) +$(VIRTUAL_ENV_PATH)/meson: $(VENV_PIP) $(VENV_PIP) install meson || { echo "Failed to install meson"; exit 1; } -$(NINJA): $(VENV_PIP) +$(VIRTUAL_ENV_PATH)/ninja: $(VENV_PIP) $(VENV_PIP) install ninja || { echo "Failed to install ninja"; exit 1; } cythonize-deps: $(VENV_PIP)