mirror of
https://github.com/tomasriveral/NoteWrapper.git
synced 2026-08-11 18:18:36 +02:00
49 lines
1.0 KiB
Makefile
49 lines
1.0 KiB
Makefile
# Configuration
|
|
CONFIG_DIR := $(HOME)/.config/notewrapper
|
|
CONFIG_FILE := $(CONFIG_DIR)/config.json
|
|
|
|
# Compiler and flags
|
|
CC := gcc
|
|
CFLAGS := -Wall -O2 `pkg-config --cflags libcjson ncurses`
|
|
LDFLAGS := `pkg-config --libs libcjson ncurses`
|
|
DEBUG ?= 0
|
|
|
|
ifeq ($(DEBUG),1)
|
|
CFLAGS += -g
|
|
endif
|
|
|
|
# Sources and target
|
|
SRC_DIR := src
|
|
SRC := $(SRC_DIR)/main.c $(SRC_DIR)/ui.c $(SRC_DIR)/utils.c $(SRC_DIR)/notes.c
|
|
TARGET := notewrapper
|
|
|
|
# Phony targets
|
|
.PHONY: all clean run install_config
|
|
|
|
# Default target
|
|
all: install_config $(TARGET)
|
|
|
|
# Build target
|
|
$(TARGET): $(SRC)
|
|
@$(CC) $(CFLAGS) $^ -o $@ $(LDFLAGS)
|
|
@echo "Built $(TARGET) successfully."
|
|
|
|
# Run program
|
|
run: $(TARGET)
|
|
@./$(TARGET)
|
|
|
|
# Clean build artifacts
|
|
clean:
|
|
@rm -f $(TARGET)
|
|
@echo "Cleaned $(TARGET)."
|
|
|
|
# Install default config if it does not exist
|
|
install_config:
|
|
@mkdir -p $(CONFIG_DIR)
|
|
@if [ ! -f $(CONFIG_FILE) ]; then \
|
|
cp ./config.json $(CONFIG_FILE); \
|
|
echo "config.json installed to $(CONFIG_FILE)"; \
|
|
else \
|
|
echo "$(CONFIG_FILE) already exists, skipping installing default config file"; \
|
|
fi
|