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