TARGET = diary
SRCDIR = src/
_SRC = export.c import.c utils.c caldav.c diary.c
SRC = $(addprefix $(SRCDIR), $(_SRC))
PREFIX ?= /usr/local
BINDIR ?= $(DESTDIR)$(PREFIX)/bin

MANDIR := $(DESTDIR)$(PREFIX)/share/man
MAN1 = man1/diary.1

CC = gcc
CFLAGS = -Wall $(shell pkg-config libxml-2.0 --cflags)
UNAME = $(shell uname)

XML_LIBS = $(shell pkg-config libxml-2.0 --libs)

ifeq ($(UNAME),FreeBSD)
	LIBS = -lncurses -lcurl $(ML_LIBS) -ldl -pthread
endif

ifeq ($(UNAME),Linux)
	LIBS = -lncursesw -lcurl $(XML_LIBS) -ldl -pthread
endif

ifeq ($(UNAME),Darwin)
	LIBS = -lncurses -lcurl $(XML_LIBS) -ldl -pthread -framework CoreFoundation
endif


default: $(TARGET)

$(TARGET): $(SRC)
	@# -I: Search this dir for header files
	$(CC) -I $(SRCDIR) $(SRC) -o $(TARGET) $(CFLAGS) $(LIBS)

debug: $(SRC)
	@# -g: Produce debugging information (for GDB)
	$(CC) -I $(SRCDIR) $(SRC) -o $(TARGET) $(CFLAGS) -g $(LIBS)

clean:
	@# cleanup target
	rm -f $(TARGET)

install: $(TARGET)
	mkdir -p $(BINDIR)
	install -m755 $(TARGET) $(BINDIR)/$(TARGET)
	install -d $(MANDIR)/man1
	install -m644 $(MAN1) $(MANDIR)/$(MAN1)

uninstall:
	rm -f $(BINDIR)/$(TARGET)
	rm -f $(MANDIR)/$(MAN1)
