#!/bin/sh

PREFIX=$(pwd)
LDFLAGS=""
SOURCES=""
CC="${CC:-cc}"

# Parse command line arguments
for arg in "$@"; do
	case $arg in
		--prefix=*)
			PREFIX="${arg#*=}"
			shift
			;;
		*)
			echo "Unknown option: $arg"
			exit 1
			;;
	esac
done

OS="$(uname)"
echo "Detected OS: $OS"

# Generate Makefile based on the platform
case "$OS" in
	Darwin)
		echo "Using FSEvents (macOS)"
		LDFLAGS="-framework CoreServices"
		SOURCES="io/watch.c io/watch/fsevent.c"
		;;
	Linux)
		echo "Using inotify (Linux)"
		SOURCES="io/watch.c io/watch/inotify.c"
		;;
	*)
		echo "Unsupported platform: $OS"
		exit 1
		;;
esac

# Create the Makefile
cat > Makefile <<EOF
TARGET = io-watch
CC = $CC
CFLAGS = -Wall -Wextra -Werror
LDFLAGS = $LDFLAGS
SOURCES = $SOURCES
OBJECTS = \$(SOURCES:.c=.o)
PREFIX = $PREFIX

all: \$(TARGET)

\$(TARGET): \$(OBJECTS)
	\$(CC) \$(LDFLAGS) -o \$@ \$^

# To create object files
%.o: %.c
	\$(CC) \$(CFLAGS) -c \$< -o \$@

# Clean Target
clean:
	rm -f \$(TARGET) \$(OBJECTS)

install: \$(TARGET)
	@echo "Installing \$(TARGET) to \$(PREFIX)/bin"
	mkdir -p \$(PREFIX)/bin
	install -m 755 \$(TARGET) \$(PREFIX)/bin

uninstall:
	@echo "Removing \$(TARGET) from \$(PREFIX)/bin"
	rm -f \$(PREFIX)/bin/\$(TARGET)

.PHONY: all clean install uninstall
EOF

echo "Configuration complete. Run 'make' to build the project."
