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