bsd.cpu.mk revision 96419
1# $FreeBSD: head/share/mk/bsd.cpu.mk 96419 2002-05-11 20:05:17Z obrien $
2
3# Set default baseline values of CPUTYPE based on MACHINE_ARCH -- this is
4# the minimum CPU type we support for each architecture
5
6.if ${MACHINE_ARCH} == "i386"
7CPUTYPE ?= i386
8.elif ${MACHINE_ARCH} == "alpha"
9CPUTYPE ?= ev4
10.elif ${MACHINE_ARCH} == "ia64"
11CPUTYPE ?= itanium
12.elif ${MACHINE_ARCH} == "sparc64"
13CPUTYPE ?= ultrasparc
14.endif
15
16# Handle aliases (not documented in make.conf to avoid user confusion
17# between e.g. i586 and pentium)
18
19.if ${MACHINE_ARCH} == "i386"
20. if ${CPUTYPE} == "pentiumpro"
21CPUTYPE = i686
22. elif ${CPUTYPE} == "pentium"
23CPUTYPE = i586
24. elif ${CPUTYPE} == "athlon"
25CPUTYPE = athlon
26. endif
27.endif
28
29# Logic to set up correct gcc optimization flag. This must be included
30# after /etc/make.conf so it can react to the local value of CPUTYPE
31# defined therein.
32
33.if !defined(NO_CPU_CFLAGS) || !defined(NO_CPU_COPTFLAGS)
34. if ${MACHINE_ARCH} == "i386"
35.  if ${CPUTYPE} == "athlon"
36_CPUCFLAGS = -march=athlon
37.  elif ${CPUTYPE} == "k6-2"
38_CPUCFLAGS = -march=k6
39.  elif ${CPUTYPE} == "k6"
40_CPUCFLAGS = -march=k6
41.  elif ${CPUTYPE} == "k5"
42_CPUCFLAGS = -march=pentium
43.  elif ${CPUTYPE} == "p4"
44_CPUCFLAGS = -march=pentiumpro
45.  elif ${CPUTYPE} == "p3"
46_CPUCFLAGS = -march=pentiumpro
47.  elif ${CPUTYPE} == "p2"
48_CPUCFLAGS = -march=pentiumpro
49.  elif ${CPUTYPE} == "i686"
50_CPUCFLAGS = -march=pentiumpro
51.  elif ${CPUTYPE} == "i586/mmx"
52_CPUCFLAGS = -march=pentium
53.  elif ${CPUTYPE} == "i586"
54_CPUCFLAGS = -march=pentium
55.  elif ${CPUTYPE} == "i486"
56_CPUCFLAGS = -march=i486
57.  endif
58. elif ${MACHINE_ARCH} == "alpha"
59.  if ${CPUTYPE} == "ev6"
60_CPUCFLAGS = -mcpu=ev6
61.  elif ${CPUTYPE} == "pca56"
62_CPUCFLAGS = -mcpu=pca56
63.  elif ${CPUTYPE} == "ev56"
64_CPUCFLAGS = -mcpu=ev56
65.  elif ${CPUTYPE} == "ev5"
66_CPUCFLAGS = -mcpu=ev5
67.  elif ${CPUTYPE} == "ev45"
68_CPUCFLAGS = -mcpu=ev4		# No -mcpu=ev45 for gcc
69.  elif ${CPUTYPE} == "ev4"
70_CPUCFLAGS = -mcpu=ev4
71.  endif
72. endif
73.endif
74
75# NB: COPTFLAGS is handled in /usr/src/sys/conf/Makefile.<arch>
76
77.if !defined(NO_CPU_CFLAGS)
78CFLAGS += ${_CPUCFLAGS}
79.endif
80
81# Set up the list of CPU features based on the CPU type.  This is an
82# unordered list to make it easy for client makefiles to test for the
83# presence of a CPU feature.
84
85.if ${MACHINE_ARCH} == "i386"
86. if ${CPUTYPE} == "athlon"
87MACHINE_CPU = athlon 3dnow mmx k6 k5 i586 i486 i386
88. elif ${CPUTYPE} == "k6-2"
89MACHINE_CPU = 3dnow mmx k6 k5 i586 i486 i386
90. elif ${CPUTYPE} == "k6"
91MACHINE_CPU = mmx k6 k5 i586 i486 i386
92. elif ${CPUTYPE} == "k5"
93MACHINE_CPU = k5 i586 i486 i386
94. elif ${CPUTYPE} == "p4"
95MACHINE_CPU = sse i686 mmx i586 i486 i386
96. elif ${CPUTYPE} == "p3"
97MACHINE_CPU = sse i686 mmx i586 i486 i386
98. elif ${CPUTYPE} == "p2"
99MACHINE_CPU = i686 mmx i586 i486 i386
100. elif ${CPUTYPE} == "i686"
101MACHINE_CPU = i686 i586 i486 i386
102. elif ${CPUTYPE} == "i586/mmx"
103MACHINE_CPU = mmx i586 i486 i386
104. elif ${CPUTYPE} == "i586"
105MACHINE_CPU = i586 i486 i386
106. elif ${CPUTYPE} == "i486"
107MACHINE_CPU = i486 i386
108. elif ${CPUTYPE} == "i386"
109MACHINE_CPU = i386
110. endif
111.elif ${MACHINE_ARCH} == "alpha"
112. if ${CPUTYPE} == "ev6"
113MACHINE_CPU = ev6 ev56 pca56 ev5 ev45 ev4
114. elif ${CPUTYPE} == "pca56"
115MACHINE_CPU = pca56 ev56 ev5 ev45 ev4
116. elif ${CPUTYPE} == "ev56"
117MACHINE_CPU = ev56 ev5 ev45 ev4
118. elif ${CPUTYPE} == "ev5"
119MACHINE_CPU = ev5 ev45 ev4
120. elif ${CPUTYPE} == "ev45"
121MACHINE_CPU = ev45 ev4
122. elif ${CPUTYPE} == "ev4"
123MACHINE_CPU = ev4
124. endif
125.elif ${MACHINE_ARCH} == "ia64"
126. if ${CPUTYPE} == "itanium"
127MACHINE_CPU = itanium
128. endif
129.endif
130