UNAME := $(shell uname)

PKG_LIBS = ./libuv/.libs/libuv.a -pthread

SOURCES = $(wildcard *.cc unix/*.cc)
OBJECTS = $(SOURCES:.cc=.o)

ifeq ($(UNAME), SunOS)
PKG_LIBS += -lkstat -lsendfile -lsocket -lxnet
OBJECTS +=  bsd/setmode.o bsd/strmode.o bsd/reallocarray.o
endif
ifeq ($(UNAME), FreeBSD)
PKG_LIBS += -lkvm
endif
ifeq ($(UNAME), OpenBSD)
PKG_LIBS += -lkvm
endif
ifeq ($(UNAME), Linux)
OBJECTS +=  bsd/setmode.o bsd/strmode.o bsd/reallocarray.o
endif

PKG_CPPFLAGS = -I./libuv/include -I. -pthread

all: $(SHLIB)

$(SHLIB): libuv/.libs/libuv.a

libuv/Makefile:
	(cd libuv \
	&& CC="$(CC)" CFLAGS="$(CFLAGS) $(CPPFLAGS) $(CPICFLAGS) $(C_VISIBILITY)" AR="$(AR)" RANLIB="$(RANLIB)" LDFLAGS="$(LDFLAGS)" ./configure --quiet)

libuv/.libs/libuv.a: libuv/Makefile
	$(MAKE) --directory=libuv \
		HAVE_DTRACE=0

.PHONY: shlib-clean clean

# shlib-clean: clean

clean:
	$(MAKE) --directory=libuv distclean
	rm -f $(OBJECTS)
