Ajout de l'ensemble du workspace.
[GPU.git] / WCudaMSE / BUILDER / makefile / private / cpp / flags_GccIntel.mk
diff --git a/WCudaMSE/BUILDER/makefile/private/cpp/flags_GccIntel.mk b/WCudaMSE/BUILDER/makefile/private/cpp/flags_GccIntel.mk
new file mode 100755 (executable)
index 0000000..baa8192
--- /dev/null
@@ -0,0 +1,179 @@
+# Version      : 0.0.3\r
+# Date         : 12.02.2014\r
+# Author       : Cedric.Bilat@he-arc.ch\r
+#\r
+# See          : OptionCompilateur.txt\r
+#                        MakeFileNotice.txt\r
+#\r
+# Hyp          : Application that must be in path\r
+\r
+\r
+ifndef __FLAG_GCC_INTEL_MK__\r
+__FLAG_GCC_INTEL_MK__=true\r
+\r
+######################\r
+#   Init                #\r
+######################\r
+\r
+#SHELL=/bin/bash\r
+\r
+machine:=${shell uname -m}\r
+ifeq (${machine},x86_64)\r
+       ARCHI_32_64:=64\r
+else\r
+       ARCHI_32_64:=32\r
+endif\r
+\r
+######################\r
+#    Variables       #\r
+######################\r
+\r
+ifeq ($(COMPILATEUR),INTEL)\r
+       #Compilateur ,Archiveur (static lib)\r
+    CXX:=icpc\r
+    AR:=xiar\r
+else\r
+    #Compilateur ,Archiveur (static lib)\r
+    \r
+       ifneq ($(ARCH),arm)\r
+       CXX:=g++\r
+       AR:=ar\r
+    else\r
+       CXX:=g++ARM\r
+       AR:=arARM\r
+    endif\r
+    \r
+endif\r
+\r
+#############\r
+# Extension  #\r
+#############\r
+\r
+EXTENSION_OBJ:=o#\r
+EXTENSION_LIB:=a#\r
+EXTENSION_DLL:=so#\r
+EXTENSION_EXE:=run#\r
+# Note enstension sans le .\r
+\r
+#############\r
+#Compilateur#\r
+#############\r
+\r
+SYS_LIBRARY_FILES:=#minimum rien\r
+OPTION_SEPARATOR:=-#\r
+LIB_FLAG_SEPARATOR:=l#\r
+LIB_PATH_SEPARATOR:=L#\r
+HEADER_OPTION:=I#\r
+OUT_FILE_COMPILE:=-o #attention end with space!\r
+OUT_FILE_LINK:=-o #attention end with space!\r
+LINK_TAG:=#rien\r
+LINK_FLAG_DLL:=-shared #with espace !\r
+\r
+LIB_PREFIXE:=lib#\r
+\r
+VERSION_CXX:=$(CXX) --version\r
+CXX_HELP:=$(CXX) --help\r
+\r
+##########\r
+#ARCHIVEUR#\r
+###########\r
+\r
+AR_OUT_FLAG:=-r #with espace important !\r
+\r
+#############\r
+# SET FILES    #\r
+#############\r
+\r
+#      Input : \r
+#              SRC_PATH_ALL\r
+#      Output :\r
+#              All files libXXX.a, libXXX.so and XXX.so, without XXX.a !\r
+#      Objectifs :\r
+#              Les .a prefix� par lib (libXXX.a) seront donnee a GCC sous la forme -lXXX)\r
+#              Alors que les YYY.a devront etre donner a GCC sous la forme YYY.a\r
+SRC_A_FILES_STANDART:=$(foreach dir,$(SRC_PATH_ALL),$(wildcard $(dir)/$(LIB_PREFIXE)*.$(EXTENSION_LIB)))\r
+SRC_A_FILES_STANDART+=$(SRC_SO_FILES)\r
+\r
+#      Input : \r
+#              SRC_PATH_ALL\r
+#      Output :\r
+#              All files XXX.a without libXXX.a, libXXX.so and XXX.so !\r
+#      Objectifs :\r
+#              Les .a prefix� par lib (libXXX.a) seront donnee a GCC sous la forme -lXXX\r
+#              Alors que les YYY.a devront etre donner a GCC sous la forme YYY.a avec la path complet (par exemple ../libs/YYY.a)\r
+SRC_A_FILES_NOT_STANDART:=$(foreach dir,$(SRC_PATH_ALL),$(filter-out $(dir)/$(LIB_PREFIXE)%.$(EXTENSION_LIB),$(wildcard $(dir)/*.$(EXTENSION_LIB))))\r
+\r
+#################\r
+# PREPARE FLAGS        #\r
+#################\r
+\r
+#plus ici dans api\r
+#Ajoute automatiquement gomp(gcc) or iomp5(Intel)  si on use OpenMP\r
+#ifneq (, $(findstring openmp,$(CXXFLAGS)))#findstring return vide si openmp pas trouver!\r
+#      ifeq ($(COMPILATEUR),INTEL)\r
+#              ADD_LIBRARY_FILES+=iomp5\r
+#      else\r
+#              ADD_LIBRARY_FILES+=gomp\r
+#      endif\r
+#endif\r
+\r
+#only fileName (./libs/libXXX.a ./libs/YYY.so -> lixXXX.a YYY.so)\r
+LIB_FLAG:=$(notdir $(SRC_A_FILES_STANDART))\r
+\r
+#removing prefix lib (libXXX.a libYYY.a libZZZ.so -> XXX.a YYY.a ZZZ.so)\r
+LIB_FLAG:=$(subst $(LIB_PREFIXE),,$(LIB_FLAG))#remplace lib par rien\r
+\r
+#Delete extension .a (XXX.a YYY.a -> XXX YYY)\r
+LIB_FLAG:=$(LIB_FLAG:.$(EXTENSION_LIB)=)\r
+\r
+#Delete extension .so (AAA.so BBB.so -> AAA BBB)\r
+LIB_FLAG:=$(LIB_FLAG:.$(EXTENSION_DLL)=)\r
+\r
+#ADDING custom LIB and System LIB\r
+LIB_FLAG+=$(ADD_LIBRARY_FILES) $(SYS_LIBRARY_FILES)\r
+\r
+# Input :\r
+#      list lib to delete example (AAA ZZZ)\r
+#\r
+#      before : LIB_FLAG (XXX YYY ZZZ)\r
+#      after  : LIB_FLAG (XXX YYY) without ZZZ\r
+LIB_FLAG:=$(filter-out $(EXCLUDE_LIBRARY_FILES),$(LIB_FLAG))\r
+\r
+#Adding Lib FLAG separator -l (XXX YYY -> -lXXX -lYYY)\r
+LIB_FLAG:=$(addprefix $(OPTION_SEPARATOR)$(LIB_FLAG_SEPARATOR),$(LIB_FLAG))\r
+\r
+#Adding Lib path FLAG separator -L (../AAA ./BBB -> -L../AAA _L./BBB)\r
+#LIB_PATH_FLAG:=${SRC_PATH_ALL}#old\r
+#LIB_PATH_FLAG:=$(addprefix $(OPTION_SEPARATOR)$(LIB_PATH_SEPARATOR),$(LIB_PATH_FLAG))#old\r
+LIB_PATH:=$(foreach dir,$(SRC_PATH_ALL),$(dir $(wildcard $(dir)/*.so)))#dir extract directory of file,  $(wildcard $(dir)/*.h)=> take file.h if exist\r
+override LIB_PATH:=$(call uniq,${LIB_PATH})\r
+#${info "LIB_PATH= "${LIB_PATH}}\r
+LIB_PATH_FLAG:=$(addprefix $(OPTION_SEPARATOR)$(LIB_PATH_SEPARATOR),$(LIB_PATH))\r
+\r
+#Adding Include FLAG separator -I (../header ../header/api -> -I../header -I../header/api)\r
+#HEADER_FLAG:= $(addprefix $(OPTION_SEPARATOR)$(HEADER_OPTION),$(HEADER_PATH_ALL))#old\r
+HEADER_FLAG:= $(addprefix $(OPTION_SEPARATOR)$(HEADER_OPTION),$(INC_PATH))\r
+\r
+\r
+#Injection variable in .cpp code (VAR1 VAR2 -> -DVAR1 -DVAR2)\r
+CODE_DEFINE_VARIABLES_D:= $(addprefix  -D,$(CODE_DEFINE_VARIABLES))\r
+\r
+ifeq ($(TARGET_MODE),SHARED_LIB)\r
+        override CXXFLAGS := -fPIC -fvisibility=hidden ${CXXFLAGS}     \r
+endif\r
+\r
+ifeq ($(TARGET_MODE),STATIC_LIB)\r
+       override CXXFLAGS := -fPIC ${CXXFLAGS}  \r
+endif\r
+\r
+#OUTPUTS#\r
+override LDFLAGS_AUX+= $(SRC_A_FILES_NOT_STANDART)\r
+override CXXFLAGS += $(HEADER_FLAG)\r
+override CXXFLAGS += $(CODE_DEFINE_VARIABLES_D)\r
+override LDFLAGS  += $(LINK_TAG) $(LIB_PATH_FLAG) $(LIB_FLAG) $(LDFLAGS_AUX)\r
+\r
+#########\r
+#  End  #\r
+#########\r
+\r
+endif#__FLAG_GCC_INTEL_MK__
\ No newline at end of file