# Build:
#   Linux/macOS: make
#   Windows MSYS2/MinGW: mingw32-make

CC ?= gcc
CFLAGS ?= -Wall -Wextra -std=c99 -O2

ifeq ($(OS),Windows_NT)
EXE_EXT := .exe
RUN_CMD = $(TARGET)
CLEAN_CMD = -del /Q $(OBJS) $(TARGET) 2>NUL
else
EXE_EXT :=
RUN_CMD = ./$(TARGET)
CLEAN_CMD = rm -f $(OBJS) $(TARGET)
endif

TARGET ?= pwm4ch_demo$(EXE_EXT)

SRCS = main_pwm4ch.c pwm4ch.c
OBJS = $(SRCS:.c=.o)

.PHONY: all run clean rebuild

all: $(TARGET)

$(TARGET): $(OBJS)
	$(CC) $(CFLAGS) -o $@ $(OBJS)

%.o: %.c pwm4ch.h
	$(CC) $(CFLAGS) -c $< -o $@

run: $(TARGET)
	$(RUN_CMD)

clean:
	$(CLEAN_CMD)

rebuild: clean all
