Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 17 additions & 19 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,6 +1,3 @@
# Use bash for shell
SHELL := /bin/bash

# Path and environment setup
VENV := .venv
VIRTUAL_ENV_PATH := $(VENV)/bin
Expand All @@ -16,39 +13,40 @@ 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
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)
Expand All @@ -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)
Expand Down
Loading