CC ?= gcc
AR ?= ar
CFLAGS ?= -O2 -fPIC -Wall -Wextra -Iinclude
LDFLAGS ?=

UNAME_S := $(shell uname -s)

SRC = src/sdk.c src/websocket.c
OBJ = $(SRC:.c=.o)

LIB_STATIC = libsecret.a
LIB_SHARED = libsecret.so

ifeq ($(UNAME_S),Linux)
    LIB_SHARED = libsecret.so
    LDFLAGS += -lcurl -lssl -lcrypto
endif
ifeq ($(UNAME_S),Darwin)
    LIB_SHARED = libsecret.dylib
    LDFLAGS += -lcurl -lssl -lcrypto
endif
ifeq ($(OS),Windows_NT)
    LIB_SHARED = secret.dll
    CC = x86_64-w64-mingw32-gcc
    LDFLAGS += -lwinhttp -lcrypt32
endif

.PHONY: all static shared clean

all: static shared

static: $(LIB_STATIC)

shared: $(LIB_SHARED)

$(LIB_STATIC): $(OBJ)
	$(AR) rcs $@ $^

$(LIB_SHARED): $(OBJ)
	$(CC) -shared -o $@ $^ $(LDFLAGS)

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

clean:
	rm -f $(OBJ) $(LIB_STATIC) $(LIB_SHARED)

install:
	cp $(LIB_STATIC) $(LIB_SHARED) ../../build/libs/
	cp -r include/* ../../build/include/
