# Copyright (c) 2009-2011 Centro Svizzero di Calcolo Scientifico (CSCS)
# Licensed under the GPLv2.
# NAMES
TARGET = inventory_based_xtprocadmin
MAIN   = main.c
# PROGRAMS
CC    = gcc
RM    = rm -vf
SHELL = /bin/bash

# PATHS
INCDIR = ../../include
LIBDIR = ../../libalps

# FLAGS
CFLAGS = -I$(INCDIR) -Wall -Werror #-pedantic
ALPSLIB= $(LIBDIR)/libalps.a
LDLIBS = -lexpat

# RULES
.PHONY: clean check

all: check
# when apbasil is available, compare the outputs directly
check: xtprocadmin_clone.sh
ifneq ($(shell which xtprocadmin 2>/dev/null),)
	diff -sy --suppress-common-lines <(./$<) <(xtprocadmin | grep -vw service)
else
	@./$<
endif

xtprocadmin_clone.sh: $(TARGET)

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

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

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

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

distclean: clean
