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