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