bsd.cpu.mk revision 74553
172878Skris# $FreeBSD: head/share/mk/bsd.cpu.mk 74553 2001-03-21 08:29:39Z kris $
272878Skris
372878Skris# Set default baseline values of CPUTYPE based on MACHINE_ARCH -- this is
472878Skris# the minimum CPU type we support for each architecture
572878Skris
672878Skris.if ${MACHINE_ARCH} == "i386"
772878SkrisCPUTYPE ?= i386
872878Skris.elif ${MACHINE_ARCH} == "alpha"
972878SkrisCPUTYPE ?= ev4
1072878Skris.elif ${MACHINE_ARCH} == "ia64"
1172878SkrisCPUTYPE ?= itanium
1272878Skris.endif
1372878Skris
1472878Skris# Handle aliases (not documented in make.conf to avoid user confusion
1572878Skris# between e.g. i586 and pentium)
1672878Skris
1772878Skris.if ${MACHINE_ARCH} == "i386"
1872878Skris. if ${CPUTYPE} == "pentiumpro"
1972878SkrisCPUTYPE = i686
2072878Skris. elif ${CPUTYPE} == "pentium"
2172878SkrisCPUTYPE = i586
2272878Skris. elif ${CPUTYPE} == "athlon"
2372878SkrisCPUTYPE = k7
2472878Skris. endif
2572878Skris.endif
2672878Skris
2772878Skris# Logic to set up correct gcc optimization flag. This must be included
2872878Skris# after /etc/make.conf so it can react to the local value of CPUTYPE
2972878Skris# defined therein.
3072878Skris
3174146Skris.if !defined(NO_CPU_CFLAGS) || !defined(NO_CPU_COPTFLAGS)
3272878Skris. if ${MACHINE_ARCH} == "i386"
3372878Skris.  if ${CPUTYPE} == "k7"
3474146Skris_CPUCFLAGS = -march=k6	# gcc doesn't support athlon yet, but it will
3573145Skris.  elif ${CPUTYPE} == "k6-2"
3674146Skris_CPUCFLAGS = -march=k6
3772878Skris.  elif ${CPUTYPE} == "k6"
3874146Skris_CPUCFLAGS = -march=k6
3972878Skris.  elif ${CPUTYPE} == "k5"
4074146Skris_CPUCFLAGS = -march=pentium
4173145Skris.  elif ${CPUTYPE} == "p4"
4274146Skris_CPUCFLAGS = -march=pentiumpro
4373145Skris.  elif ${CPUTYPE} == "p3"
4474146Skris_CPUCFLAGS = -march=pentiumpro
4573145Skris.  elif ${CPUTYPE} == "p2"
4674146Skris_CPUCFLAGS = -march=pentiumpro
4772878Skris.  elif ${CPUTYPE} == "i686"
4874146Skris_CPUCFLAGS = -march=pentiumpro
4973145Skris.  elif ${CPUTYPE} == "i586/mmx"
5074146Skris_CPUCFLAGS = -march=pentium
5172878Skris.  elif ${CPUTYPE} == "i586"
5274146Skris_CPUCFLAGS = -march=pentium
5372878Skris.  elif ${CPUTYPE} == "i486"
5474146Skris_CPUCFLAGS = -m486
5572878Skris.  endif
5672878Skris. elif ${MACHINE_ARCH} == "alpha"
5772878Skris.  if ${CPUTYPE} == "ev6"
5874146Skris_CPUCFLAGS = -mcpu=ev6
5972878Skris.  elif ${CPUTYPE} == "pca56"
6074146Skris_CPUCFLAGS = -mcpu=pca56
6172878Skris.  elif ${CPUTYPE} == "ev56"
6274146Skris_CPUCFLAGS = -mcpu=ev56
6372878Skris.  elif ${CPUTYPE} == "ev5"
6474146Skris_CPUCFLAGS = -mcpu=ev5
6572878Skris.  elif ${CPUTYPE} == "ev45"
6674146Skris_CPUCFLAGS = -mcpu=ev4		# No -mcpu=ev45 for gcc
6772878Skris.  elif ${CPUTYPE} == "ev4"
6874146Skris_CPUCFLAGS = -mcpu=ev4
6972878Skris.  endif
7072878Skris. endif
7172878Skris.endif
7272878Skris
7374146Skris# NB: COPTFLAGS is handled in /usr/src/sys/conf/Makefile.<arch>
7474146Skris
7574146Skris.if !defined(NO_CPU_CFLAGS)
7674146SkrisCFLAGS += ${_CPUCFLAGS}
7774146Skris.endif
7874146Skris
7972878Skris# Set up the list of CPU features based on the CPU type.  This is an
8072878Skris# unordered list to make it easy for client makefiles to test for the
8172878Skris# presence of a CPU feature.
8272878Skris
8372878Skris.if ${MACHINE_ARCH} == "i386"
8472878Skris. if ${CPUTYPE} == "k7"
8574069SsobomaxMACHINE_CPU = k7 3dnow mmx k6 k5 i586 i486 i386
8673145Skris. elif ${CPUTYPE} == "k6-2"
8774069SsobomaxMACHINE_CPU = 3dnow mmx k6 k5 i586 i486 i386
8872878Skris. elif ${CPUTYPE} == "k6"
8974069SsobomaxMACHINE_CPU = mmx k6 k5 i586 i486 i386
9072878Skris. elif ${CPUTYPE} == "k5"
9172878SkrisMACHINE_CPU = k5 i586 i486 i386
9273145Skris. elif ${CPUTYPE} == "p4"
9373145SkrisMACHINE_CPU = sse i686 mmx i586 i486 i386
9473145Skris. elif ${CPUTYPE} == "p3"
9573145SkrisMACHINE_CPU = sse i686 mmx i586 i486 i386
9673145Skris. elif ${CPUTYPE} == "p2"
9774553SkrisMACHINE_CPU = i686 mmx i586 i486 i386
9872878Skris. elif ${CPUTYPE} == "i686"
9972878SkrisMACHINE_CPU = i686 i586 i486 i386
10073145Skris. elif ${CPUTYPE} == "i586/mmx"
10173145SkrisMACHINE_CPU = mmx i586 i486 i386
10272878Skris. elif ${CPUTYPE} == "i586"
10372878SkrisMACHINE_CPU = i586 i486 i386
10472878Skris. elif ${CPUTYPE} == "i486"
10572878SkrisMACHINE_CPU = i486 i386
10672878Skris. elif ${CPUTYPE} == "i386"
10772878SkrisMACHINE_CPU = i386
10872878Skris. endif
10972878Skris.elif ${MACHINE_ARCH} == "alpha"
11072878Skris. if ${CPUTYPE} == "ev6"
11172878SkrisMACHINE_CPU = ev6 ev56 pca56 ev5 ev45 ev4
11272878Skris. elif ${CPUTYPE} == "pca56"
11372878SkrisMACHINE_CPU = pca56 ev56 ev5 ev45 ev4
11472878Skris. elif ${CPUTYPE} == "ev56"
11572878SkrisMACHINE_CPU = ev56 ev5 ev45 ev4
11672878Skris. elif ${CPUTYPE} == "ev5"
11772878SkrisMACHINE_CPU = ev5 ev45 ev4
11872878Skris. elif ${CPUTYPE} == "ev45"
11972878SkrisMACHINE_CPU = ev45 ev4
12072878Skris. elif ${CPUTYPE} == "ev4"
12172878SkrisMACHINE_CPU = ev4
12272878Skris. endif
12372878Skris.elif ${MACHINE_ARCH} == "ia64"
12472878Skris. if ${CPUTYPE} == "itanium"
12572878SkrisMACHINE_CPU = itanium
12672878Skris. endif
12772878Skris.endif
128