# NOSTR WebSocket Library Makefile # Production-ready WebSocket implementation for NOSTR protocol CC = gcc CFLAGS = -Wall -Wextra -std=c99 -O2 INCLUDES = -I. -I.. -I../openssl-install/include LIBS = -lm -L../openssl-install/lib64 -lssl -lcrypto # Source files WEBSOCKET_SOURCES = nostr_websocket_openssl.c ../cjson/cJSON.c WEBSOCKET_HEADERS = nostr_websocket_tls.h ../cjson/cJSON.h # Test programs TEST_SOURCES = test_5_events_clean.c TEST_PROGRAMS = test_5_events_clean # Object files WEBSOCKET_OBJECTS = $(WEBSOCKET_SOURCES:.c=.o) .PHONY: all clean test all: $(TEST_PROGRAMS) # Test programs (if test file exists) test_5_events_clean: test_5_events_clean.o $(WEBSOCKET_OBJECTS) $(CC) -o $@ $^ $(LIBS) # Object file compilation %.o: %.c $(WEBSOCKET_HEADERS) $(CC) $(CFLAGS) $(INCLUDES) -c $< -o $@ # Test target (if test exists, otherwise use wss_test from tests/) test: @if [ -f test_5_events_clean ]; then \ echo "๐Ÿงช Running local WebSocket test..."; \ echo "Press Ctrl-C to stop the test"; \ ./test_5_events_clean; \ else \ echo "๐Ÿงช Running WebSocket test from tests/ directory..."; \ cd ../tests && make wss_test && ./wss_test; \ fi # Clean build artifacts clean: rm -f *.o $(TEST_PROGRAMS) rm -f ../cjson/*.o # Display library info info: @echo "๐Ÿ“š NOSTR WebSocket Library" @echo "==========================" @echo "Core files:" @echo " - nostr_websocket_tls.h (header)" @echo " - nostr_websocket_openssl.c (OpenSSL implementation)" @echo " - ../cjson/cJSON.h/c (JSON support)" @echo "" @echo "Dependencies:" @echo " - OpenSSL (SSL/TLS support)" @echo " - Standard C libraries" @echo "" @echo "Usage:" @echo " make - Build test programs (if available)" @echo " make test - Run WebSocket test" @echo " make clean - Clean build artifacts" @echo " make info - Show this information" @echo "" @echo "Note: This library is integrated into the main libnostr_core.a" @echo "Use the tests in ../tests/ for comprehensive testing." # Help target help: info