uname_m := $(shell uname -m)
ifeq ($(uname_m),armv7l)
CFLAGS=-O3  -march=armv7-a -mtune=cortex-a8 -mfpu=neon -ftree-vectorize -lrt `pkg-config --cflags --libs glib-2.0`
else
ifeq ($(uname_m),armv6l)
CFLAGS=-O3   -march=armv6 -mfpu=vfp -mfloat-abi=hard -lrt `pkg-config --cflags --libs glib-2.0`
else
CFLAGS=-O3 `pkg-config --cflags --libs glib-2.0`
endif
endif


# LINUX to improve
#CFLAGS= -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx 




CPP_FLAGS= -fopenmp  -O3 -lc   -lm  


C_INCLUDE=gf-complete/include/
#LIBS= -larmadillo -lopenblas

#test_mat2: test_mat2.cpp
#	g++ -std=c++11 $(CPP_FLAGS)  -o $@ $<   $(LIBS)

#ida: ida.cpp
#	g++ -std=c++11 $(CPP_FLAGS)  -o $@ $<   $(LIBS)


ida_gf64: ida_gf64.cpp
	g++  -o $@ $<  -std=c++11 -O3 -lm  -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -g -O3 -Wall   -I/home/couturie/ajeter/jerasure/include  /home/couturie/ajeter/jerasure/src/.libs/jerasure.o /home/couturie/ajeter/jerasure/src/.libs/galois.o -lgf_complete -fpermissive

ida_gf65: ida_gf65.cpp
	g++  -o $@ $<  -std=c++11 -O3 -lm  -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -g -O3 -Wall   -Ijerasure/include  jerasure/src/.libs/jerasure.o jerasure/src/.libs/galois.o -lgf_complete -fpermissive -lpthread -I $(C_INCLUDE)


ida_gf65_paper1: ida_gf65_paper1.cpp
	g++  -o $@ $<  -std=c++11 -O3 -lm  -g -O3 -Wall   -Ijerasure/include  jerasure/src/.libs/jerasure.o jerasure/src/.libs/galois.o -lgf_complete -fpermissive -lpthread -I $(C_INCLUDE)



ida_gf65_paper2: ida_gf65_paper2.cpp
	g++  -o $@ $<  -std=c++11 -O3 -lm  -g -O3 -Wall   -Ijerasure/include  jerasure/src/.libs/jerasure.o jerasure/src/.libs/galois.o -lgf_complete -fpermissive -lpthread -I $(C_INCLUDE)

ida_gf65_paper3: ida_gf65_paper3.cpp
	g++  -o $@ $<  -std=c++11 -O3 -lm  -g -O3 -Wall   -Ijerasure/include  jerasure/src/.libs/jerasure.o jerasure/src/.libs/galois.o -lgf_complete -fpermissive -lpthread -I $(C_INCLUDE)


clean:
	rm test_mat2 ida ida_gf64  ida_gf65_paper1  ida_gf65_paper2   ida_gf65_paper3