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