Ajout de l'ensemble du workspace.
[GPU.git] / WCudaMSE / BUILDER / makefile / help / OptionGCC.txt
1 # version : 0.0.3\r
2 # Cedric.Bilat@he-arc.ch\r
3 \r
4 #######################\r
5 #  Compilateur : gcc  #\r
6 #######################\r
7 \r
8 # Compiler name\r
9 #\r
10 #       g++\r
11 #\r
12 # Compiler Option\r
13 #\r
14 #       Path\r
15 #\r
16 #               -I      XXX                                             Header search path is XXX\r
17 #               \r
18 #       Warning\r
19 #\r
20 #               -ainsi                                          Norme\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
26 #\r
27 #        Optimisation\r
28 #\r
29 #               -O3                                                     Optimisation\r
30 #\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
36 #\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
39 #               \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
42 #\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
45 #\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
48 #\r
49 #               -fomit-frame-pointer            Optimisation\r
50 #               -frerun-loop-opt                        Optimisation\r
51 #               -fgcse                                          Optimisation\r
52 #\r
53 #        Truc\r
54 #\r
55 #               -DXXX                                           Passe au code la variable XXX (same as #define XXX in code)\r
56 #\r
57 #       OpenMP\r
58 #\r
59 #               -fopenmp                                        Enable use of OpenMP\r
60 #                                                                       Compilation:\r
61 #                                                                               opm.h                                   (already include in mingw64 distribution)\r
62 #                                                                       Link:\r
63 #                                                                               libgomp.lib                     (already include in mingw64 distribution,link with gomp)\r
64 #                                                                       Runtime: \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
68 #                                                                       Truc:\r
69 #                                                                               Use dependencyWalker.exe to see which .dll is required)\r
70 #\r
71 # Linker Option\r
72 #\r
73 #       Path\r
74 #\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
77 #\r
78 #       Target\r
79 #\r
80 #               -shared                                                                 To target a dynamice library : .so              (don't forget to set extension .so to TARGET_NAME)\r
81 #\r
82 #       Avancer\r
83 #\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
89 #\r
90 # Usefull\r
91 #\r
92 #       Use .dll of Visual (cl) or Intel (icl) in g++ project\r
93 #\r
94 #               Goal : XXX.dll -> XXX.def\r
95 #                       pexports XXX.dll>XXX.def\r
96 #\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
100 #                       dlltool --help\r
101 #                       \r
102 #                       Next with your g++ project\r
103 #                               Compil  with    XXX.h\r
104 #                               Link    with    XXX.a\r
105 #                               Execute with    XXX.dll\r
106 #\r
107 #               Download \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
110 #\r
111 # Help\r
112 #\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
117 #\r
118 \r
119 #######################\r
120 #               END                       #\r
121 #######################