CC=g++

CFLAGS= -std=c++23

INCLUDE_DIR= include

SRC_DIR= src

# Get all cpp files from src directory
SRCS := $(wildcard $(SRC_DIR)/*.cpp)

# Get all header files from include directory
HDRS := $(wildcard $(INCLUDE_DIR)/*.h)

all: main com

main:  main.cpp $(SRCS) $(HDRS)
	$(CC) $(CFLAGS) -O3 -I$(INCLUDE_DIR) $(SRCS) main.cpp -o main -lsfml-audio -lsfml-system

debug:  main.cpp $(SRCS) $(HDRS)
	$(CC) $(CFLAGS) -I$(INCLUDE_DIR) $(SRCS) -g main.cpp -o main

com: main
	./main 1 song.wav 4 3 out.bin

dec: main
	./main 2 out.bin out.wav

zip:
	zip -r main.zip main.cpp $(INCLUDE_DIR) $(SRC_DIR) makefile

clean:
	rm main out.* *.bin *.zip