CX=gcc
CXFLAGS = -O1 
IS_DEBUGG=
DEBUGG= -g -D debugg
IS_MULTICORE=
MULTICORE_ARGS= -lpthread -D multicore
TOP_DIR=$(shell pwd)/

.PHONY: default

.debugg_setup:
	$(eval IS_DEBUGG +=$(DEBUGG))
	
.mcore_setup:
	$(eval IS_MULTICORE +=$(MULTICORE_ARGS))

default: myApp
	@echo "From top Makefile"
	mv rbench $(TOP_DIR)/out
	$(MAKE) -C gui
	$(MAKE) -C gui_native
	mv $(TOP_DIR)gui/rbenchg $(TOP_DIR)out
	mv $(TOP_DIR)gui_native/rbenchgn $(TOP_DIR)out
		
myApp:	myApp.o rbench.o 
	$(CX) -o rbench myApp.o rbench.o $(CXXFLAGS) $(IS_MULTICORE) $(IS_DEBUGG)

myApp.o:	main.c
	$(CX) -c main.c -o myApp.o $(CXXFLAGS) $(IS_MULTICORE) $(IS_DEBUGG)

rbench.o:	rbench.c
	$(CX) -c rbench.c -o rbench.o $(CXXFLAGS) $(IS_MULTICORE) $(IS_DEBUGG)

clean:
	rm -f *.o
	cd out
	rm -f rbench rbenchg rbenchgn

debugg:  .debugg_setup clean default

multicore: .mcore_setup default 

