= Platforms = A '''platform''' is a compilation target for BOINC applications - typically a combination of a CPU architecture and an operating system. Each [AppVersion application version] is associated with a particular platform. Your project can provide application versions for any set of platforms; the more platforms you support, the more hosts will be able to participate in your project. A given BOINC client supports one or more platforms (e.g., a Win64 client can run Win64 or Win32 applications). The client reports its platform to the scheduling server, and the scheduling server sends work to the client only if there is an application version for one of its platforms. BOINC defines a set of platforms (see below). If you want your application to exploit specific architectural features at a finer granularity, your application must recognize the features and branch to appropriate code. In other words, if you want to make a version of your application that can use the AMD 3DNow instruction set, don't create a new '''windows_amd_3dnow''' platform. Instead, make a version for the '''windows_intelx86''' platform that recognizes when it's running on a 3DNow machine, and branches to the appropriate code. Platforms are maintained in the '''platform''' table in the BOINC database. This is pre-populated with the 10 or so most common platforms. To create more, edit '''project.xml''' and add them using [XaddTool xadd]. Each platform has a '''name''' and a '''description''' of the range of computers it can handle. For coherence between projects, use only the following platforms. If you want to add a different platform, please [ProjectPeople contact us]. || '''__Name__''' || '''__Description__'''|| ||'''windows_intelx86'''|| Microsoft Windows (98 or later) running on an Intel x86-compatible CPU|| ||'''windows_x86_64'''|| Microsoft Windows running on an AMD x86_64 or Intel EM64T CPU|| ||'''i686-pc-linux-gnu'''|| Linux running on an Intel x86-compatible CPU|| ||'''x86_64-pc-linux-gnu'''|| Linux running on an AMD x86_64 or Intel EM64T CPU|| ||'''powerpc-linux-gnu'''|| Linux running on a 32-bit PowerPC processor|| ||'''ppc64-linux-gnu'''|| Linux running on a 64-bit PowerPC processor|| ||'''alpha-hp-linux-gnu'''|| Linux running on Alpha || ||'''ia64-linux-gnu'''|| Linux running on IA64 (Itanium) || ||'''sparc-sun-linux-gnu'''|| Linux running on SPARC || ||'''sparc64-sun-linux-gnu'''|| Linux running on SPARC 64-bit || ||'''powerpc-apple-darwin'''|| Mac OS X 10.3 or later running on Motorola PowerPC|| ||'''i686-apple-darwin'''|| Mac OS 10.4+ running on an Intel CPU|| ||'''x86_64-apple-darwin'''|| Mac OS 10.5+ running on an Intel 64-bit CPU|| ||'''sparc-sun-solaris2.7'''|| Solaris 2.7 running on a SPARC-compatible CPU|| ||'''sparc-sun-solaris'''|| Solaris 2.8+ running on a SPARC-compatible CPU|| ||'''sparc64-sun-solaris'''|| Solaris 2.8+ running on a SPARC 64-bit CPU|| ||'''hppa-hp-hpux'''|| HPUX running on 32-bit HPPA|| ||'''hppa64-hp-hpux'''|| HPUX running on 64-bit HPPA|| ||'''alpha-hp-tru64'''|| Tru64 Unix running on Alpha || ||'''ia64-hp-hpux'''|| HPUX running on IA64|| ||'''powerpc-ibm-aix'''|| AIX running on PowerPC || ||'''i686-pc-freebsd'''|| FreeBSD on x86 || ||'''x86_64-pc-freebsd'''|| FreeBSD on Intel-compatible 64-bit || ||'''i686-pc-openbsd'''|| OpenBSD on x86 || ||'''x86_64-pc-openbsd'''|| OpenBSD on Intel-compatible 64-bit || Most of the Unix platforms names are what's generated by config.guess. But not all of them. If config.guess generates the wrong string, use the [BuildSystem --with-boinc-platform=NAME option to configure].