# SPDX-License-Identifier: GPL-2.0-only

CC = gcc
CFLAGS = -Wall -Wextra -std=c99 -O2
LDFLAGS = -ljansson

TARGETS = step_dumper sysevent_sender sysevent_sender_genl evtest_receiver custom_event_receiver event_parser test_fanotify
SOURCES = step_dumper.c sysevent_sender.c sysevent_sender_genl.c evtest_receiver.c custom_event_receiver.c event_parser.c test_fanotify.c

.PHONY: all clean install check-deps

all: $(TARGETS)

step_dumper: step_dumper.c
	$(CC) $(CFLAGS) -o $@ $< $(LDFLAGS)

sysevent_sender: sysevent_sender.c ../shared/sysevent_shared.h
	$(CC) $(CFLAGS) -I../ -o $@ $<

sysevent_sender_genl: sysevent_sender_genl.c ../shared/sysevent_genl_shared.h
	$(CC) $(CFLAGS) -I../ -o $@ $<

evtest_receiver: evtest_receiver.c ../shared/sysevent_genl_shared.h
	$(CC) $(CFLAGS) -I../ -o $@ $<

custom_event_receiver: custom_event_receiver.c ../shared/sysevent_genl_shared.h
	$(CC) $(CFLAGS) -I../ -o $@ $<

event_parser: event_parser.c ../shared/sysevent_genl_shared.h
	$(CC) $(CFLAGS) -I../ -o $@ $<

test_fanotify: test_fanotify.c
	$(CC) $(CFLAGS) -o $@ $<

clean:
	rm -f $(TARGETS)

install: $(TARGETS)
	install -m 755 step_dumper /usr/local/bin/
	install -m 755 sysevent_sender /usr/local/bin/
	install -m 755 evtest_receiver /usr/local/bin/
	install -m 755 custom_event_receiver /usr/local/bin/
	install -m 755 event_parser /usr/local/bin/

# Check if libjansson is available
check-deps:
	@pkg-config --exists jansson || (echo "libjansson-dev is required. Install with: apt-get install libjansson-dev" && exit 1)
	@echo "Dependencies check passed"

# Test with a sample file (if available)
test: $(TARGETS)
	@echo "To test step_dumper, create a dump file using the kernel module and run:"
	@echo "./step_dumper /path/to/dump_file"
	@echo ""
	@echo "To test sysevent_sender, make sure UOSSTE module is loaded and run:"
	@echo "./sysevent_sender --help"
	@echo "Or with output to file:"
	@echo "./$(TARGET) -o output.json /path/to/dump_file"
