Ajout de l'ensemble du workspace.
[GPU.git] / WCudaMSE / BUILDER / makefile / private / cpp / flags_MinGW.mk
diff --git a/WCudaMSE/BUILDER/makefile/private/cpp/flags_MinGW.mk b/WCudaMSE/BUILDER/makefile/private/cpp/flags_MinGW.mk
new file mode 100755 (executable)
index 0000000..ab73c30
--- /dev/null
@@ -0,0 +1,150 @@
+# Version      : 0.0.3\r
+# Date         : 02.02.2012\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
+ifndef __CPP_FLAG_MINGW_MK__\r
+__CPP_FLAG_MINGW_MK__=true\r
+\r
+######################\r
+#    Variables       #\r
+######################\r
+\r
+#Compilateur ,Archiveur (static lib)\r
+CXX:=g++\r
+AR:=ar\r
+\r
+#############\r
+# Extension  #\r
+#############\r
+\r
+EXTENSION_OBJ:=obj#\r
+EXTENSION_LIB:=a#\r
+EXTENSION_DLL:=dll#\r
+EXTENSION_EXE:=exe#\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#attention end with space!\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#rien\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.dll and XXX.dll, 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_DLL_FILES)\r
+\r
+# Libraries #\r
+#      Input : \r
+#              SRC_PATH_ALL\r
+#      Output :\r
+#              All files XXX.a without libXXX.a, libXXX.dll and XXX.dll !\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
+# dans api now\r
+#Ajoute automatiquement gomp si on use OpenMP\r
+#ifneq (, $(findstring openmp,$(CXXFLAGS)))#findstring return vide si openmp pas trouver!\r
+#               ADD_LIBRARY_FILES+=gomp\r
+#endif\r
+\r
+#only fileName (./libs/libXXX.a ./libs/YYY.dll -> lixXXX.a YYY.dll)\r
+LIB_FLAG:=$(notdir $(SRC_A_FILES_STANDART))\r
+\r
+#removing prefix lib (libXXX.a libYYY.a libZZZ.dll -> XXX.a YYY.a ZZZ.dll)\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 .dll (XXX.dll YYY.dll -> XXX YYY)\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)/*.a)))#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
+ifeq ($(TARGET_MODE),SHARED_LIB)\r
+       GENERATEUR_DLL_DEF:= -Wl,--output-def,$(TARGET_BIN_PATH)/${LIB_PREFIXE}$(TARGET_NAME)_$(ARCHI_32_64).def\r
+       GENERATEUR_DLL_LIB_IMPORTATION:= -Wl,--out-implib,$(TARGET_BIN_PATH)/${LIB_PREFIXE}$(TARGET_NAME)_$(ARCHI_32_64).dll.$(EXTENSION_LIB)\r
+       LDFLAGS+=$(GENERATEUR_DLL_LIB_IMPORTATION) $(GENERATEUR_DLL_DEF)\r
+       \r
+      # CXXFLAGS += -fPIC\r
+          \r
+          override CXXFLAGS := -fvisibility=hidden ${CXXFLAGS}    \r
+endif\r
+\r
+#Injection variable in .cpp code (VAR1 VAR2 -> -DVAR1 -DVAR2)\r
+CODE_DEFINE_VARIABLES_D:= $(addprefix -D,$(CODE_DEFINE_VARIABLES))\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#__CPP_FLAG_MINGW_MK__
\ No newline at end of file