2 # Cedric.Bilat@he-arc.ch
\r
4 #######################
\r
5 # Compilateur : gcc #
\r
6 #######################
\r
16 # -I XXX Header search path is XXX
\r
21 # -pedantic Norme Ainsi+
\r
22 # -W Print extra warning messages
\r
23 # -w Suppres warning messages
\r
24 # -Wall Combinaison of common option (warning)
\r
25 # -fno-implicit-templates to use template (instanciation avancée)
\r
31 # -march=native Optimisation (detection automatique arch)
\r
32 # -march=pentium4 Optimisation MMX, SSE, SSE2
\r
33 # -march=prescott Optimisation MMX, SSE, SSE2, SSE3
\r
34 # -march=nocona Optimisation MMX, SSE, SSE2, SSE3, EMT64
\r
35 # -march=core2 Optimisation MMX, SSE, SSE2, SSE3, SSSE3, EMT64,
\r
37 # -march=corei7 Optimisation MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2
\r
38 # -march=corei7-avx Optimisation MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AES, PCLMUL
\r
40 # -march=nehalem Optimisation MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2 POPCNT (i3,i5,i7) [2008] 45nm
\r
41 # -march=westmere Optimisation MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT, AES ,PCLMUL (i3,i5,i7) [2008] 32nm
\r
43 # -march=sandybridge Optimisation MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT, AVX, AES, PCLMUL (i3,i5,i7) [2011] 32nm
\r
44 # -march=ivybridge Optimisation MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT, AVX, AES, PCLMUL, FSGSBASE, RDRND, F16C (i3,i5,i7) [2011] 22nm
\r
46 # -march=haswell Optimisation MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT, AVX, AVX2, AES, PCLMUL, FSGSBASE, RDRND, F16C, FMA, BMI, BMI2, MOVBE [2013] 22nm
\r
47 # -march=broadwell Optimisation MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT, AVX, AVX2, AES, PCLMUL, FSGSBASE, RDRND, F16C, FMA, BMI, BMI2, MOVBE, RDSEED, ADCX, PREFETCHW [2014] 14nm
\r
49 # -fomit-frame-pointer Optimisation
\r
50 # -frerun-loop-opt Optimisation
\r
51 # -fgcse Optimisation
\r
55 # -DXXX Passe au code la variable XXX (same as #define XXX in code)
\r
59 # -fopenmp Enable use of OpenMP
\r
61 # opm.h (already include in mingw64 distribution)
\r
63 # libgomp.lib (already include in mingw64 distribution,link with gomp)
\r
65 # libgcc_S_SJLJ-1.dll (already include in mingw64 distribution)
\r
66 # libgomp-1.dll (already include in mingw64 distribution)
\r
67 # pthreadGC2-W64.dll (doit être installé séparrement)
\r
69 # Use dependencyWalker.exe to see which .dll is required)
\r
75 # -L XXX Library .a search path is XXX
\r
76 # -l XXX Library file xxx.a maybe usefull to link (search path is in -L folder). Becarefull, xXX without extension
\r
80 # -shared To target a dynamice library : .so (don't forget to set extension .so to TARGET_NAME)
\r
84 # -Wl,XXX Wl passe option XXX au linker
\r
85 # -D_JNI_IMPLEMENTATION Use .dll with java
\r
86 # -Wl,--kill-at Use .dll with java
\r
87 # -Wl,--unresolved-symbols=ignore-in-shared-libs
\r
88 # -static-libgcc -static-libstdc+ Forcer le linkage statique des .dll "système"
\r
92 # Use .dll of Visual (cl) or Intel (icl) in g++ project
\r
94 # Goal : XXX.dll -> XXX.def
\r
95 # pexports XXX.dll>XXX.def
\r
97 # Goal : XXX.dll XXX.def -> XXX.a
\r
98 # dlltool --machine i386:x86-64 --dllname XXX.dll --input-def XXX.def --output-lib XXX.a
\r
99 # dlltool --machine i386 --dllname XXX.dll --input-def XXX.def --output-lib XXX.a
\r
102 # Next with your g++ project
\r
103 # Compil with XXX.h
\r
105 # Execute with XXX.dll
\r
108 # dlltool.exe : Brother of g++.exe in installation folder!
\r
109 # pexports.exe 32 bits : By example, download mingw-utils-YYY of mingw32 (http://www.mingw.org/)
\r
113 # https://gcc.gnu.org/onlinedocs/gcc/i386-and-x86-64-Options.html#i386-and-x86-64-Options
\r
114 # http://en.wikipedia.org/wiki/List_of_Intel_CPU_microarchitectures
\r
115 # http://gcc.gnu.org/onlinedocs/gcc/Option-Summary.html#Option-Summary
\r
116 # http://sourceforge.net/projects/mingw-w64/
\r
119 #######################
\r
121 #######################