SHELL = /bin/sh

GTK_INCLUDES = `pkg-config gtk+-2.0 --cflags`
GTK_LIBS = `pkg-config gtk+-2.0 --libs`

X11_LIB = -L/usr/X11R6/lib -lX11 -lXtst

WIN32_LIBS = -luser32 -lkernel32 -lwinspool -lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 -luuid -lodbc32 -lodbccp32 -lws2_32 $(GTK_LIBS)
UNIX_LIBS = $(X11_LIB) $(GTK_LIBS)

DEGUG = -DGKLEDS_DEBUG
LIBFLAGS = -shared
INCS = $(GTK_INCLUDES) -DGKLEDS_SELFCOMPILE
COMPFLAGS = -Wall -O2 -fPIC
CC = gcc

SRCS = src/gkleds.c src/gkleds_ind.c src/gkleds_conf.c src/gkrellm2/win32-plugin.c
HDRS = src/gkleds.h src/gkleds_ind.c src/gkleds_conf.c src/gkrellm2/win32-plugin.h
WIN32_OBJS = gkleds.o gkleds_ind.o gkleds_conf.o win32-plugin.o
UNIX_OBJS = gkleds.o gkleds_ind.o gkleds_conf.o

INSTALL_PROG = install

.PHONY : clean
.PHONY : install
.PHONY : uninstall
.PHONY : test

#=======================================================================
#=======================================================================

unix : $(UNIX_OBJS)
	$(CC) $(LIBFLAGS) $(UNIX_LIBS) -o gkleds.so $^

win32 : $(WIN32_OBJS)
	dllwrap.exe --driver-name $(CC) $^ $(WIN32_LIBS) -o gkleds.dll

gkleds.o : $(SRCS) $(HDRS)
	$(CC) $(COMPFLAGS) $(INCS) -c -o $@ src/gkleds.c 

gkleds_ind.o : $(SRCS) $(HDRS)
	$(CC) $(COMPFLAGS) $(INCS) -c -o $@ src/gkleds_ind.c

gkleds_conf.o : $(SRCS) $(HDRS)
	$(CC) $(COMPFLAGS) $(INCS) -c -o $@ src/gkleds_conf.c

win32-plugin.o : $(SRCS) $(HDRS)
	$(CC) $(COMPFLAGS) $(INCS) -c -o $@ src/gkrellm2/win32-plugin.c

test :
	$(MAKE) clean
	$(MAKE) DEBUG="-DGKLEDS_DEBUG"
	gkrellm --sync --demo -p gkleds.so
	$(MAKE) clean

clean:
	rm -rf *.o *.so* *.dll *~ \#* *.dsw *.ncb *.opt *.plg Release Debug 
	rm -rf src/*~ src/\#*
	rm -rf src/gkrellm2/*~ src/gkrellm2/\#*

install : gkleds.so
	@ if [ $$UID -ne 0 ]; \
		then PLUGIN_DIR=$$HOME/.gkrellm2/plugins; \
	elif [ -e /usr/bin/gkrellm ]; \
		then PLUGIN_DIR=/usr/lib/gkrellm2/plugins; \
	else \
		PLUGIN_DIR=/usr/local/lib/gkrellm2/plugins; \
	fi; \
	$(INSTALL_PROG) -d $$PLUGIN_DIR; \
	$(INSTALL_PROG) -s gkleds.so $$PLUGIN_DIR; \
	printf "\ngkleds installed in $$PLUGIN_DIR\n"
