1# Copyright (c) 2009, 2011, 2012 Oracle and/or its affiliates. All rights reserved.
2#
3# This program is free software; you can redistribute it and/or modify
4# it under the terms of the GNU General Public License as published by
5# the Free Software Foundation; version 2 of the License.
6#
7# This program is distributed in the hope that it will be useful,
8# but WITHOUT ANY WARRANTY; without even the implied warranty of
9# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
10# GNU General Public License for more details.
11#
12# You should have received a copy of the GNU General Public License
13# along with this program; if not, write to the Free Software
14# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1335  USA
15
16# Symbols with information about the CPU.
17
18IF(NOT DEFINED CPU_LEVEL1_DCACHE_LINESIZE)
19
20IF(CMAKE_SYSTEM_NAME MATCHES "Darwin")
21  FIND_PROGRAM(SYSCTL sysctl)
22  MARK_AS_ADVANCED(SYSCTL)
23
24  IF(SYSCTL)
25    EXECUTE_PROCESS(
26      COMMAND ${SYSCTL} -n hw.cachelinesize
27      OUTPUT_VARIABLE CPU_LEVEL1_DCACHE_LINESIZE
28      )
29  ENDIF()
30
31ELSE()
32  FIND_PROGRAM(GETCONF getconf)
33  MARK_AS_ADVANCED(GETCONF)
34
35  IF(GETCONF)
36    EXECUTE_PROCESS(
37      COMMAND ${GETCONF} LEVEL1_DCACHE_LINESIZE
38      OUTPUT_VARIABLE CPU_LEVEL1_DCACHE_LINESIZE
39      )
40  ENDIF()
41ENDIF()
42
43ENDIF()
44