OSDN Git Service

[add] : kernels
[alterlinux/alterlinux-pkgbuilds.git] / alter-kernel / x86_64 / linux-xanmod-lts / choose-gcc-optimization.sh
1 #!/usr/bin/env bash
2
3 . /usr/share/makepkg/util/message.sh
4 colorize
5
6 Detect_CPU=$(gcc -c -Q -march=native --help=target | grep march | awk '{print $2}' | head -1)
7
8 msg "Detected CPU architecture: $Detect_CPU"
9
10 cat << EOF
11
12     Available CPU microarchitectures:
13
14     1) AMD K6/K6-II/K6-III
15     2) AMD Athlon/Duron/K7
16     3) AMD Opteron/Athlon64/Hammer/K8
17     4) AMD Opteron/Athlon64/Hammer/K8 with SSE3
18     5) AMD 61xx/7x50/PhenomX3/X4/II/K10
19     6) AMD Family 10h (Barcelona)
20     7) AMD Family 14h (Bobcat)
21     8) AMD Family 16h (Jaguar)
22     9) AMD Family 15h (Bulldozer)
23    10) AMD Family 15h (Piledriver)
24    11) AMD Family 15h (Steamroller)
25    12) AMD Family 15h (Excavator)
26    13) AMD Family 17h (Zen)
27    14) AMD Family 17h (Zen 2)
28    15) Transmeta Crusoe
29    16) Transmeta Efficeon
30    17) IDT Winchip C6
31    18) Winchip-2/Winchip-2A/Winchip-3
32    19) AMD Elan
33    20) Geode GX1 (Cyrix MediaGX)
34    21) AMD Geode GX and LX
35    22) Cyrix III or C3
36    23) VIA C3 "Nehemiah"
37    24) VIA C7
38    25) Intel Pentium 4, Pentium D and older Nocona/Dempsey Xeon CPUs with Intel 64bit
39    26) Intel Atom
40    27) Intel Core 2 and newer Core 2 Xeons (Xeon 51xx and 53xx)
41    28) Intel 1st Gen Core i3/i5/i7-family (Nehalem)
42    29) Intel 1.5 Gen Core i3/i5/i7-family (Westmere)
43    30) Intel Silvermont
44    31) Intel Goldmont (Apollo Lake and Denverton)
45    32) Intel Goldmont Plus (Gemini Lake)
46    33) Intel 2nd Gen Core i3/i5/i7-family (Sandybridge)
47    34) Intel 3rd Gen Core i3/i5/i7-family (Ivybridge)
48    35) Intel 4th Gen Core i3/i5/i7-family (Haswell)
49    36) Intel 5th Gen Core i3/i5/i7-family (Broadwell)
50    37) Intel 6th Gen Core i3/i5/i7-family (Skylake)
51    38) Intel 6th Gen Core i7/i9-family (Skylake X)
52    39) Intel 8th Gen Core i3/i5/i7-family (Cannon Lake)
53    40) Intel 8th Gen Core i7/i9-family (Ice Lake)
54    41) Xeon processors in the Cascade Lake family
55
56    42) Native optimizations autodetected by GCC
57
58     0) Generic (default)
59     
60 EOF
61
62 sleep 1
63 answer=$1
64
65 case $answer in
66     1) Microarchitecture=CONFIG_MK6 ;;
67     2) Microarchitecture=CONFIG_MK7 ;;
68     3) Microarchitecture=CONFIG_MK8 ;;
69     4) Microarchitecture=CONFIG_MK8SSE3 ;;
70     5) Microarchitecture=CONFIG_MK10 ;;
71     6) Microarchitecture=CONFIG_MBARCELONA ;;
72     7) Microarchitecture=CONFIG_MBOBCAT ;;
73     8) Microarchitecture=CONFIG_MJAGUAR ;;
74     9) Microarchitecture=CONFIG_MBULLDOZER ;;
75    10) Microarchitecture=CONFIG_MPILEDRIVER ;;
76    11) Microarchitecture=CONFIG_MSTEAMROLLER ;;
77    12) Microarchitecture=CONFIG_MEXCAVATOR ;;
78    13) Microarchitecture=CONFIG_MZEN ;;
79    14) Microarchitecture=CONFIG_MZEN2 ;;
80    15) Microarchitecture=CONFIG_MCRUSOE ;;
81    16) Microarchitecture=CONFIG_MEFFICEON ;;
82    17) Microarchitecture=CONFIG_MWINCHIPC6 ;;
83    18) Microarchitecture=CONFIG_MWINCHIP3D ;;
84    19) Microarchitecture=CONFIG_MELAN ;;
85    20) Microarchitecture=CONFIG_MGEODEGX1 ;;
86    21) Microarchitecture=CONFIG_MGEODE_LX ;;
87    22) Microarchitecture=CONFIG_MCYRIXIII ;;
88    23) Microarchitecture=CONFIG_MVIAC3_2 ;;
89    24) Microarchitecture=CONFIG_MVIAC7 ;;
90    25) Microarchitecture=CONFIG_MPSC ;;
91    26) Microarchitecture=CONFIG_MATOM ;;
92    27) Microarchitecture=CONFIG_MCORE2 ;;
93    28) Microarchitecture=CONFIG_MNEHALEM ;;
94    29) Microarchitecture=CONFIG_MWESTMERE ;;
95    30) Microarchitecture=CONFIG_MSILVERMONT ;;
96    31) Microarchitecture=CONFIG_MGOLDMONT ;;
97    32) Microarchitecture=CONFIG_MGOLDMONTPLUS ;;
98    33) Microarchitecture=CONFIG_MSANDYBRIDGE ;;
99    34) Microarchitecture=CONFIG_MIVYBRIDGE ;;
100    35) Microarchitecture=CONFIG_MHASWELL ;;
101    36) Microarchitecture=CONFIG_MBROADWELL ;;
102    37) Microarchitecture=CONFIG_MSKYLAKE ;;
103    38) Microarchitecture=CONFIG_MSKYLAKEX ;;
104    39) Microarchitecture=CONFIG_MCANNONLAKE ;;
105    40) Microarchitecture=CONFIG_MICELAKE ;;
106    41) Microarchitecture=CONFIG_MCASCADELAKE ;;
107    42) Microarchitecture=CONFIG_MNATIVE ;;
108     *) default=CONFIG_GENERIC_CPU ;;
109 esac
110
111 warning "According to PKGBUILD variable _microarchitecture, your choice is $answer"
112 msg "Building this package for microarchitecture: $Microarchitecture$default"
113 sleep 5
114
115 sed -e 's|^CONFIG_GENERIC_CPU=y|# CONFIG_GENERIC_CPU is not set|g' -i .config
116 sed -e "s|^# $Microarchitecture is not set|$Microarchitecture=y|g" -i .config
117
118 echo