all: neosched

OBJECTS = mojitos.o counters_individual.o counters.h rapl.o rapl.h network.h network.o  load.o infiniband.o

mojitos:$(OBJECTS) counters_option.h
	gcc $(DEBUG) -O3 -Wall -o mojitos $(OBJECTS) -lpowercap

OBJECTS_GRP = $(subst _individual,_group, $(OBJECTS))
mojitos_group: $(OBJECTS_GRP) counters_option.h
	gcc $(DEBUG) -O3 -Wall -o mojitos_group $(OBJECTS_GRP) -lpowercap

OBJECTS_NEO = $(subst mojitos,neosched_main, $(OBJECTS))
neosched: $(OBJECTS_NEO) neosched_lib.o counters_option.h
	gcc $(DEBUG) -O3 -Wall -o neosched neosched_lib.o $(OBJECTS_NEO) -lpowercap


counters_%.o: counters_%.c counters.h
	gcc -c -O3 -Wall $< -o $@

counters_option.h: counters_option.py
	./counters_option.py > counters_option.h


mojitos.o: mojitos.c counters_option.h
	gcc -c -O3 -Wall $< -o $@

neosched_main.o: neosched_main.c counters_option.h
	gcc -c -O3 -Wall $< -o $@


debug: DEBUG = -DDEBUG

debug: all

%.o : %.c %.h
	gcc -c -O3 -Wall $< -o $@

clean:
	\rm -f *~ *.o mojitos_group mojitos counters_option.h neosched
