# Copyright (c) 2009-2011 Centro Svizzero di Calcolo Scientifico (CSCS)
# Licensed under the GPLv2.
# TARGETS
TARGOBJ	:= libasil.la
OBJDIR	:= $(CURDIR)/objects

ALPS_SRCS := $(wildcard libalps/*.c)
SDB_SRCS  := $(wildcard libsdb/*.c)
OBJS	  := $(addprefix $(OBJDIR)/,		\
		$(notdir $(ALPS_SRCS:.c=.lo))	\
		$(notdir $(SDB_SRCS:.c=.lo)))

# PATHS
#LIBDIR  = /opt/slurm/default/lib/slurm
LIBDIR  := $(CURDIR)
INC     := ./include
HEADERS	:= $(wildcard $(INC)/*.h)

# FLAGS
MAKEOVERRIDES := $(MAKEOVERRIDES)
MAKEFLAGS += --no-print-directory --warn-undefined-variables

CFLAGS       := -I$(INC) -Wall
MYSQL_CFLAGS := $(shell mysql_config --cflags)
LDFLAGS	     := -Wl -rpath $(LIBDIR)

# PROGRAMS
CC	:= gcc
CCLD    := $(CC)
LIBTOOL := libtool --tag=CC #--silent
LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(CFLAGS)

# RULES
.PHONY: clean all distclean

libasil.a: $(TARGOBJ)
	ar ru $@ objects/.libs/*.o
	ranlib $@
all: $(TARGOBJ)

%basil_request.lo: CFLAGS += -DALPS_CLIENT=\"$(shell which apbasil)\"
$(OBJDIR)/%.lo : libalps/%.c $(HEADERS) | $(OBJDIR)
	$(LTCOMPILE) -c $< -o $@

$(OBJDIR)/%.lo : libsdb/%.c $(HEADERS) | $(OBJDIR)
	$(LTCOMPILE) $(MYSQL_CFLAGS) -c $< -o $@

$(TARGOBJ): $(OBJS)
	$(LIBTOOL) --mode=link $(CCLD) $(CFLAGS) $(LDFLAGS) $^ -o $@

$(OBJDIR):
	mkdir -vp $@

lt-clean:
	if cd $(OBJDIR) 2>/dev/null; then $(LIBTOOL) --mode=clean $(RM) *.o *.lo;fi

clean: lt-clean
	@$(RM) *~ ? core a.out tags *.orig *.rej
	$(RM) -vf libasil.a

distclean: clean
	$(LIBTOOL) --mode=clean $(RM) *.la
	@test ! -d $(OBJDIR) || rmdir -v $(OBJDIR)
