
# Compiler and flags
CC = gcc
CFLAGS = -Wall -Wextra -pedantic -std=c99 -O2 -Iinclude
LDFLAGS = -lssl -lcrypto -lcurl -lpthread
DEBUG_CFLAGS = -g -DDEBUG

# Directories
SRC_DIR = ./src
BUILD_DIR = ./build
INCLUDE_DIR = ./include
BINARIES_DIR = ./binaries
LOG_DIR = ./logs
INSTALL_DIR = /opt/pmll

# Source files
SOURCES = main.c unified_voice.c pml_logic_loop.c
OBJECTS = main.o unified_voice.o pml_logic_loop.o

# Target binaries
TARGETS = pmll_exec

# Default target: Build all binaries
.PHONY: all
all: $(TARGETS)

# Define rules for the binary and its dependencies
pmll_exec: $(OBJECTS)
	$(CC) $(CFLAGS) $(LDFLAGS) -o pmll_exec $(OBJECTS)

# Object file compilation rules
%.o: %.c
	$(CC) $(CFLAGS) -c $< -o $@

clean:
	rm -f $(OBJECTS) $(TARGETS)
