A simple ROOT makefile

GitHub gist

CC=clang++

FLAGS= `root-config --cflags` -std=c++11
LINK_FLAGS= `root-config --glibs`

DEPS = foo.h
PROGRAMS = bar foobar
PROGRAMS_OBJS = $(foreach X,$(PROGRAMS),$(X).o)
OBJS = foo.o

all: $(PROGRAMS)

# compile each .cpp file into an object file
%.o: %.cpp $(DEPS)
    $(CC) $(FLAGS) -c -o $@ $<

# link each program
# a program depends on program.o and other objects
$(PROGRAMS): %: %.o $(OBJS)
    $(CC) $(LINK_FLAGS) -o $@ $^

clean:
    rm -f $(PROGRAMS) $(PROGRAMS_OBJS) $(OBJS)