mingw5.sh 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308
  1. #!/usr/bin/env bash
  2. #export CXXFLAGS="${CXXFLAGS} --all-warnings"
  3. #export CXXFLAGS="${CXXFLAGS} --extra-warnings"
  4. export CXXFLAGS="${CXXFLAGS} -W"
  5. export CXXFLAGS="${CXXFLAGS} -Wabi"
  6. # ignoring
  7. #export CXXFLAGS="${CXXFLAGS} -Wabi-tag"
  8. #export CXXFLAGS="${CXXFLAGS} -Wabi="
  9. export CXXFLAGS="${CXXFLAGS} -Waddress"
  10. # +++ ignoring. may be can be fixed?
  11. #export CXXFLAGS="${CXXFLAGS} -Waggregate-return"
  12. export CXXFLAGS="${CXXFLAGS} -Waggressive-loop-optimizations"
  13. # not for C++
  14. #export CXXFLAGS="${CXXFLAGS} -Waliasing"
  15. #export CXXFLAGS="${CXXFLAGS} -Walign-commons"
  16. export CXXFLAGS="${CXXFLAGS} -Wall"
  17. # not for C++
  18. #export CXXFLAGS="${CXXFLAGS} -Wampersand"
  19. export CXXFLAGS="${CXXFLAGS} -Warray-bounds"
  20. # +++ need try it
  21. export CXXFLAGS="${CXXFLAGS} -Warray-bounds=2"
  22. # not for C++
  23. #export CXXFLAGS="${CXXFLAGS} -Warray-temporaries"
  24. #export CXXFLAGS="${CXXFLAGS} -Wassign-intercept"
  25. # show warnings for padding
  26. #export CXXFLAGS="${CXXFLAGS} -Wattributes"
  27. # not for C++
  28. #export CXXFLAGS="${CXXFLAGS} -Wbad-function-cast"
  29. export CXXFLAGS="${CXXFLAGS} -Wbool-compare"
  30. export CXXFLAGS="${CXXFLAGS} -Wbuiltin-macro-redefined"
  31. #export CXXFLAGS="${CXXFLAGS} -Wc++-compat"
  32. #export CXXFLAGS="${CXXFLAGS} -Wc++0x-compat"
  33. #export CXXFLAGS="${CXXFLAGS} -Wc++11-compat"
  34. export CXXFLAGS="${CXXFLAGS} -Wc++14-compat"
  35. # not for C++
  36. #export CXXFLAGS="${CXXFLAGS} -Wc-binding-type"
  37. #export CXXFLAGS="${CXXFLAGS} -Wc90-c99-compat"
  38. #export CXXFLAGS="${CXXFLAGS} -Wc99-c11-compat"
  39. export CXXFLAGS="${CXXFLAGS} -Wcast-align"
  40. export CXXFLAGS="${CXXFLAGS} -Wcast-qual"
  41. export CXXFLAGS="${CXXFLAGS} -Wchar-subscripts"
  42. # not for C++
  43. #export CXXFLAGS="${CXXFLAGS} -Wcharacter-truncation"
  44. export CXXFLAGS="${CXXFLAGS} -Wchkp"
  45. export CXXFLAGS="${CXXFLAGS} -Wclobbered"
  46. export CXXFLAGS="${CXXFLAGS} -Wcomment"
  47. export CXXFLAGS="${CXXFLAGS} -Wcomments"
  48. # not for C++
  49. #export CXXFLAGS="${CXXFLAGS} -Wcompare-reals"
  50. export CXXFLAGS="${CXXFLAGS} -Wconditionally-supported"
  51. # +++ need fix in future
  52. #export CXXFLAGS="${CXXFLAGS} -Wconversion"
  53. # not for C++
  54. #export CXXFLAGS="${CXXFLAGS} -Wconversion-extra"
  55. export CXXFLAGS="${CXXFLAGS} -Wconversion-null"
  56. export CXXFLAGS="${CXXFLAGS} -Wcoverage-mismatch"
  57. export CXXFLAGS="${CXXFLAGS} -Wcpp"
  58. export CXXFLAGS="${CXXFLAGS} -Wctor-dtor-privacy"
  59. export CXXFLAGS="${CXXFLAGS} -Wdate-time"
  60. # not for C++
  61. #export CXXFLAGS="${CXXFLAGS} -Wdeclaration-after-statement"
  62. export CXXFLAGS="${CXXFLAGS} -Wdelete-incomplete"
  63. export CXXFLAGS="${CXXFLAGS} -Wdelete-non-virtual-dtor"
  64. export CXXFLAGS="${CXXFLAGS} -Wdeprecated"
  65. export CXXFLAGS="${CXXFLAGS} -Wdeprecated-declarations"
  66. # not for C++
  67. #export CXXFLAGS="${CXXFLAGS} -Wdesignated-init"
  68. export CXXFLAGS="${CXXFLAGS} -Wdisabled-optimization"
  69. # not for C++
  70. #export CXXFLAGS="${CXXFLAGS} -Wdiscarded-array-qualifiers"
  71. #export CXXFLAGS="${CXXFLAGS} -Wdiscarded-qualifiers"
  72. export CXXFLAGS="${CXXFLAGS} -Wdiv-by-zero"
  73. # +++ need fix in future
  74. #export CXXFLAGS="${CXXFLAGS} -Wdouble-promotion"
  75. #export CXXFLAGS="${CXXFLAGS} -Wduplicated-cond"
  76. # +++ too many warnings. may be used some times
  77. #export CXXFLAGS="${CXXFLAGS} -Weffc++"
  78. export CXXFLAGS="${CXXFLAGS} -Wempty-body"
  79. export CXXFLAGS="${CXXFLAGS} -Wendif-labels"
  80. export CXXFLAGS="${CXXFLAGS} -Wenum-compare"
  81. export CXXFLAGS="${CXXFLAGS} -Werror-implicit-function-declaration"
  82. export CXXFLAGS="${CXXFLAGS} -Wextra"
  83. # +++ need fix in future
  84. #export CXXFLAGS="${CXXFLAGS} -Wfloat-conversion"
  85. # +++ need fix in future
  86. #export CXXFLAGS="${CXXFLAGS} -Wfloat-equal"
  87. export CXXFLAGS="${CXXFLAGS} -Wformat=1"
  88. export CXXFLAGS="${CXXFLAGS} -Wformat-contains-nul"
  89. export CXXFLAGS="${CXXFLAGS} -Wformat-extra-args"
  90. # +++ ignoring. probably need use some times
  91. #export CXXFLAGS="${CXXFLAGS} -Wformat-nonliteral"
  92. export CXXFLAGS="${CXXFLAGS} -Wformat-security"
  93. export CXXFLAGS="${CXXFLAGS} -Wformat-signedness"
  94. export CXXFLAGS="${CXXFLAGS} -Wformat-y2k"
  95. export CXXFLAGS="${CXXFLAGS} -Wformat-zero-length"
  96. #export CXXFLAGS="${CXXFLAGS} -Wformat="
  97. #export CXXFLAGS="${CXXFLAGS} -Wframe-address"
  98. #export CXXFLAGS="${CXXFLAGS} -Wframe-larger-than=<number>"
  99. export CXXFLAGS="${CXXFLAGS} -Wfree-nonheap-object"
  100. # not for C++
  101. #export CXXFLAGS="${CXXFLAGS} -Wfunction-elimination"
  102. #export CXXFLAGS="${CXXFLAGS} -Whsa"
  103. export CXXFLAGS="${CXXFLAGS} -Wignored-qualifiers"
  104. #export CXXFLAGS="${CXXFLAGS} -Wignored-attributes"
  105. # not for C++
  106. #export CXXFLAGS="${CXXFLAGS} -Wimplicit"
  107. #export CXXFLAGS="${CXXFLAGS} -Wimplicit-function-declaration"
  108. #export CXXFLAGS="${CXXFLAGS} -Wimplicit-int"
  109. #export CXXFLAGS="${CXXFLAGS} -Wimplicit-interface"
  110. #export CXXFLAGS="${CXXFLAGS} -Wimplicit-procedure"
  111. #export CXXFLAGS="${CXXFLAGS} -Wincompatible-pointer-types"
  112. export CXXFLAGS="${CXXFLAGS} -Winherited-variadic-ctor"
  113. export CXXFLAGS="${CXXFLAGS} -Winit-self"
  114. # ignoting
  115. #export CXXFLAGS="${CXXFLAGS} -Winline"
  116. # not for C++
  117. #export CXXFLAGS="${CXXFLAGS} -Wint-conversion"
  118. export CXXFLAGS="${CXXFLAGS} -Wint-to-pointer-cast"
  119. # not for C++
  120. #export CXXFLAGS="${CXXFLAGS} -Winteger-division"
  121. #export CXXFLAGS="${CXXFLAGS} -Wintrinsic-shadow"
  122. #export CXXFLAGS="${CXXFLAGS} -Wintrinsics-std"
  123. export CXXFLAGS="${CXXFLAGS} -Winvalid-memory-model"
  124. export CXXFLAGS="${CXXFLAGS} -Winvalid-offsetof"
  125. export CXXFLAGS="${CXXFLAGS} -Winvalid-pch"
  126. # not for C++
  127. #export CXXFLAGS="${CXXFLAGS} -Wjump-misses-init"
  128. #export CXXFLAGS="${CXXFLAGS} -Wlarger-than-"
  129. #export CXXFLAGS="${CXXFLAGS} -Wlarger-than="
  130. #export CXXFLAGS="${CXXFLAGS} -Wline-truncation"
  131. export CXXFLAGS="${CXXFLAGS} -Wliteral-suffix"
  132. export CXXFLAGS="${CXXFLAGS} -Wlogical-not-parentheses"
  133. export CXXFLAGS="${CXXFLAGS} -Wlogical-op"
  134. export CXXFLAGS="${CXXFLAGS} -Wlong-long"
  135. export CXXFLAGS="${CXXFLAGS} -Wmain"
  136. export CXXFLAGS="${CXXFLAGS} -Wmaybe-uninitialized"
  137. export CXXFLAGS="${CXXFLAGS} -Wmemset-transposed-args"
  138. #export CXXFLAGS="${CXXFLAGS} -Wmisleading-indentation"
  139. export CXXFLAGS="${CXXFLAGS} -Wmissing-braces"
  140. export CXXFLAGS="${CXXFLAGS} -Wmissing-declarations"
  141. export CXXFLAGS="${CXXFLAGS} -Wmissing-field-initializers"
  142. export CXXFLAGS="${CXXFLAGS} -Wmissing-format-attribute"
  143. export CXXFLAGS="${CXXFLAGS} -Wmissing-include-dirs"
  144. export CXXFLAGS="${CXXFLAGS} -Wmissing-noreturn"
  145. # not for C++
  146. #export CXXFLAGS="${CXXFLAGS} -Wmissing-parameter-type"
  147. #export CXXFLAGS="${CXXFLAGS} -Wmissing-prototypes"
  148. export CXXFLAGS="${CXXFLAGS} -Wmultichar"
  149. # ignoring
  150. #export CXXFLAGS="${CXXFLAGS} -Wmultiple-inheritance"
  151. # ignoring
  152. #export CXXFLAGS="${CXXFLAGS} -Wnamespaces"
  153. export CXXFLAGS="${CXXFLAGS} -Wnarrowing"
  154. # not for C++
  155. #export CXXFLAGS="${CXXFLAGS} -Wnested-externs"
  156. export CXXFLAGS="${CXXFLAGS} -Wnoexcept"
  157. export CXXFLAGS="${CXXFLAGS} -Wnon-template-friend"
  158. export CXXFLAGS="${CXXFLAGS} -Wnon-virtual-dtor"
  159. export CXXFLAGS="${CXXFLAGS} -Wnonnull"
  160. #export CXXFLAGS="${CXXFLAGS} -Wnonnull-compare"
  161. #export CXXFLAGS="${CXXFLAGS} -Wnormalized"
  162. export CXXFLAGS="${CXXFLAGS} -Wnormalized=nfkc"
  163. #export CXXFLAGS="${CXXFLAGS} -Wnull-dereference"
  164. export CXXFLAGS="${CXXFLAGS} -Wodr"
  165. # probably need fix it
  166. export CXXFLAGS="${CXXFLAGS} -Wold-style-cast"
  167. # not for C++
  168. #export CXXFLAGS="${CXXFLAGS} -Wold-style-declaration"
  169. #export CXXFLAGS="${CXXFLAGS} -Wold-style-definition"
  170. export CXXFLAGS="${CXXFLAGS} -Wopenmp-simd"
  171. export CXXFLAGS="${CXXFLAGS} -Woverflow"
  172. export CXXFLAGS="${CXXFLAGS} -Woverlength-strings"
  173. export CXXFLAGS="${CXXFLAGS} -Woverloaded-virtual"
  174. # not for C++
  175. #export CXXFLAGS="${CXXFLAGS} -Woverride-init"
  176. #export CXXFLAGS="${CXXFLAGS} -Woverride-init-side-effects"
  177. export CXXFLAGS="${CXXFLAGS} -Wpacked"
  178. export CXXFLAGS="${CXXFLAGS} -Wpacked-bitfield-compat"
  179. # +++ may be need fix in future?
  180. #export CXXFLAGS="${CXXFLAGS} -Wpadded"
  181. export CXXFLAGS="${CXXFLAGS} -Wparentheses"
  182. export CXXFLAGS="${CXXFLAGS} -Wpedantic"
  183. export CXXFLAGS="${CXXFLAGS} -Wpedantic-ms-format"
  184. #export CXXFLAGS="${CXXFLAGS} -Wplacement-new"
  185. #export CXXFLAGS="${CXXFLAGS} -Wplacement-new="
  186. export CXXFLAGS="${CXXFLAGS} -Wpmf-conversions"
  187. export CXXFLAGS="${CXXFLAGS} -Wpointer-arith"
  188. # not for C++
  189. #export CXXFLAGS="${CXXFLAGS} -Wpointer-sign"
  190. #export CXXFLAGS="${CXXFLAGS} -Wpointer-to-int-cast"
  191. export CXXFLAGS="${CXXFLAGS} -Wpragmas"
  192. # not for C++
  193. #export CXXFLAGS="${CXXFLAGS} -Wproperty-assign-default"
  194. #export CXXFLAGS="${CXXFLAGS} -Wprotocol"
  195. export CXXFLAGS="${CXXFLAGS} -Wpsabi"
  196. #export CXXFLAGS="${CXXFLAGS} -Wreal-q-constant"
  197. #export CXXFLAGS="${CXXFLAGS} -Wrealloc-lhs"
  198. #export CXXFLAGS="${CXXFLAGS} -Wrealloc-lhs-all"
  199. export CXXFLAGS="${CXXFLAGS} -Wredundant-decls"
  200. export CXXFLAGS="${CXXFLAGS} -Wreorder"
  201. export CXXFLAGS="${CXXFLAGS} -Wreturn-local-addr"
  202. export CXXFLAGS="${CXXFLAGS} -Wreturn-type"
  203. #export CXXFLAGS="${CXXFLAGS} -Wscalar-storage-order"
  204. # not for C++
  205. #export CXXFLAGS="${CXXFLAGS} -Wselector"
  206. export CXXFLAGS="${CXXFLAGS} -Wsequence-point"
  207. export CXXFLAGS="${CXXFLAGS} -Wshadow"
  208. # not for C++
  209. #export CXXFLAGS="${CXXFLAGS} -Wshadow-ivar"
  210. export CXXFLAGS="${CXXFLAGS} -Wshift-count-negative"
  211. export CXXFLAGS="${CXXFLAGS} -Wshift-count-overflow"
  212. #export CXXFLAGS="${CXXFLAGS} -Wshift-negative-value"
  213. #export CXXFLAGS="${CXXFLAGS} -Wshift-overflow"
  214. #export CXXFLAGS="${CXXFLAGS} -Wshift-overflow="
  215. export CXXFLAGS="${CXXFLAGS} -Wsign-compare"
  216. # +++ need fix in future
  217. #export CXXFLAGS="${CXXFLAGS} -Wsign-conversion"
  218. export CXXFLAGS="${CXXFLAGS} -Wsign-promo"
  219. export CXXFLAGS="${CXXFLAGS} -Wsized-deallocation"
  220. export CXXFLAGS="${CXXFLAGS} -Wsizeof-array-argument"
  221. export CXXFLAGS="${CXXFLAGS} -Wsizeof-pointer-memaccess"
  222. export CXXFLAGS="${CXXFLAGS} -Wstack-protector"
  223. #export CXXFLAGS="${CXXFLAGS} -Wstack-usage="
  224. export CXXFLAGS="${CXXFLAGS} -Wstrict-aliasing=2"
  225. #export CXXFLAGS="${CXXFLAGS} -Wstrict-aliasing="
  226. export CXXFLAGS="${CXXFLAGS} -Wstrict-null-sentinel"
  227. #export CXXFLAGS="${CXXFLAGS} -Wstrict-overflow"
  228. export CXXFLAGS="${CXXFLAGS} -Wstrict-overflow=1"
  229. # not for C++
  230. #export CXXFLAGS="${CXXFLAGS} -Wstrict-prototypes"
  231. #export CXXFLAGS="${CXXFLAGS} -Wstrict-selector-match"
  232. #export CXXFLAGS="${CXXFLAGS} -Wsubobject-linkage"
  233. # +++ ignoring
  234. #export CXXFLAGS="${CXXFLAGS} -Wsuggest-attribute=const"
  235. #export CXXFLAGS="${CXXFLAGS} -Wsuggest-attribute=format"
  236. export CXXFLAGS="${CXXFLAGS} -Wsuggest-attribute=noreturn"
  237. # +++ ignoring
  238. #export CXXFLAGS="${CXXFLAGS} -Wsuggest-attribute=pure"
  239. #export CXXFLAGS="${CXXFLAGS} -Wsuggest-final-methods"
  240. #export CXXFLAGS="${CXXFLAGS} -Wsuggest-final-types"
  241. export CXXFLAGS="${CXXFLAGS} -Wsuggest-override"
  242. # not for C++
  243. #export CXXFLAGS="${CXXFLAGS} -Wsurprising"
  244. export CXXFLAGS="${CXXFLAGS} -Wswitch"
  245. export CXXFLAGS="${CXXFLAGS} -Wswitch-bool"
  246. export CXXFLAGS="${CXXFLAGS} -Wswitch-default"
  247. export CXXFLAGS="${CXXFLAGS} -Wswitch-enum"
  248. export CXXFLAGS="${CXXFLAGS} -Wsync-nand"
  249. export CXXFLAGS="${CXXFLAGS} -Wsynth"
  250. # ignoring
  251. #export CXXFLAGS="${CXXFLAGS} -Wsystem-headers"
  252. # not for C++
  253. #export CXXFLAGS="${CXXFLAGS} -Wtabs"
  254. #export CXXFLAGS="${CXXFLAGS} -Wtarget-lifetime"
  255. #export CXXFLAGS="${CXXFLAGS} -Wtautological-compare"
  256. # ignoring
  257. #export CXXFLAGS="${CXXFLAGS} -Wtemplates"
  258. #export CXXFLAGS="${CXXFLAGS} -Wterminate"
  259. # not for C++
  260. #export CXXFLAGS="${CXXFLAGS} -Wtraditional"
  261. #export CXXFLAGS="${CXXFLAGS} -Wtraditional-conversion"
  262. export CXXFLAGS="${CXXFLAGS} -Wtrampolines"
  263. export CXXFLAGS="${CXXFLAGS} -Wtrigraphs"
  264. export CXXFLAGS="${CXXFLAGS} -Wtype-limits"
  265. # not for C++
  266. #export CXXFLAGS="${CXXFLAGS} -Wundeclared-selector"
  267. export CXXFLAGS="${CXXFLAGS} -Wundef"
  268. # not for C++
  269. #export CXXFLAGS="${CXXFLAGS} -Wunderflow"
  270. export CXXFLAGS="${CXXFLAGS} -Wuninitialized"
  271. export CXXFLAGS="${CXXFLAGS} -Wunknown-pragmas"
  272. # +++ may be try use in future?
  273. #export CXXFLAGS="${CXXFLAGS} -Wunsafe-loop-optimizations"
  274. # not for C++
  275. #export CXXFLAGS="${CXXFLAGS} -Wunsuffixed-float-constants"
  276. export CXXFLAGS="${CXXFLAGS} -Wunused"
  277. export CXXFLAGS="${CXXFLAGS} -Wunused-but-set-parameter"
  278. export CXXFLAGS="${CXXFLAGS} -Wunused-but-set-variable"
  279. export CXXFLAGS="${CXXFLAGS} -Wunreachable-code"
  280. #export CXXFLAGS="${CXXFLAGS} -Wunused-const-variable=1"
  281. # not for C++
  282. #export CXXFLAGS="${CXXFLAGS} -Wunused-dummy-argument"
  283. export CXXFLAGS="${CXXFLAGS} -Wunused-function"
  284. export CXXFLAGS="${CXXFLAGS} -Wunused-label"
  285. export CXXFLAGS="${CXXFLAGS} -Wunused-local-typedefs"
  286. export CXXFLAGS="${CXXFLAGS} -Wunused-macros"
  287. export CXXFLAGS="${CXXFLAGS} -Wunused-parameter"
  288. export CXXFLAGS="${CXXFLAGS} -Wunused-result"
  289. export CXXFLAGS="${CXXFLAGS} -Wunused-value"
  290. export CXXFLAGS="${CXXFLAGS} -Wunused-variable"
  291. # not for C++
  292. #export CXXFLAGS="${CXXFLAGS} -Wuse-without-only"
  293. # +++ need from time to time
  294. #export CXXFLAGS="${CXXFLAGS} -Wuseless-cast"
  295. export CXXFLAGS="${CXXFLAGS} -Wvarargs"
  296. export CXXFLAGS="${CXXFLAGS} -Wvariadic-macros"
  297. export CXXFLAGS="${CXXFLAGS} -Wvector-operation-performance"
  298. #export CXXFLAGS="${CXXFLAGS} -Wvirtual-inheritance"
  299. export CXXFLAGS="${CXXFLAGS} -Wvirtual-move-assign"
  300. export CXXFLAGS="${CXXFLAGS} -Wvla"
  301. export CXXFLAGS="${CXXFLAGS} -Wvolatile-register-var"
  302. export CXXFLAGS="${CXXFLAGS} -Wwrite-strings"
  303. export CXXFLAGS="${CXXFLAGS} -Wzero-as-null-pointer-constant"
  304. # not for C++
  305. #export CXXFLAGS="${CXXFLAGS} -Wzerotrip"
  306. #export CXXFLAGS="${CXXFLAGS} -frequire-return-statement"