--- /dev/null
+# 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