# Copyright (c) 2009-2011 Centro Svizzero di Calcolo Scientifico (CSCS)
# Licensed under the GPLv2.
# NAMES
TARGET = free_nodes
MAIN   = main.c
OBJS   = unescape.o cmdline.o

# PROGRAMS
CC    = gcc
RM    = rm -vf
SHELL = /bin/bash

# PATHS
INCDIR = ../../include
LIBDIR = ../../libalps
ALPSLIB= $(LIBDIR)/libalps.a

# FLAGS
CFLAGS = -I$(INCDIR) -Wall 
EXTRA_CFLAGS = -Werror -pedantic
LDLIBS = -lexpat
#CFLAGS += -g

# suffix rules
%.o : %.c cmdline.h 
	$(CC) $(CFLAGS) $(EXTRA_CFLAGS) -c $< -o $@

all: check

check: $(TARGET)
ifneq ($(shell which xtprocadmin),)
	-xtprocadmin -n $(shell ./$< -n)
else
	time -p ./$< -uc
endif

$(TARGET): $(MAIN) $(OBJS) $(ALPSLIB)
	$(CC) $(CFLAGS) $^ $(LDLIBS) -o $@
	@strip $@

main.c: cmdline.h $(INCDIR)/basil_alps.h

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

cmdline.h cmdline.c: arguments.ggo
	gengetopt < $<

$(ALPSLIB): $(wildcard $(LIBDIR)/*.c)
	$(MAKE) -C $(LIBDIR) all

install: $(TARGET)
	sudo scp $< boot:/rr/current/opt/slurm/default/bin/

.PHONY: clean distclean tar install

tags: $(wildcard *.c *.h $(LIBDIR)/*.c $(INCDIR)/*.h)
	ctags $^ > $@

clean:
	@$(RM) *.o *~ ? core a.out TAGS tags *.orig *.rej
	@$(RM) $(TARGET) 

distclean: clean
	@$(RM) cmdline.c cmdline.h
