Our ability to write a self-modifying Makefile depends on UNIX program uname . In a more complex context you may have to call it with many other options in order to zoom precisely on a specific version of the operating system and on a specific hardware. For example, IRIX can be 64-bit or 32-bit. The same applies for Solaris and AIX. Below is a brief summary of what you can squeeze out of GNU uname. Vendor versions of uname often support additional options, but these may or may not be supported on other platforms, so, if you want your Makefile to be portable, it's better to stay away from them.
| switch | description | Solaris | IRIX |
| -m | Print the machine (hardware) type | sun4u |
IP32 |
| -s | Print the name of the operating system | SunOS |
IRIX |
| -r | Print the operating system release | 5.6 |
6.3 |
| -p | Print the machine processor type | sparc |
mips |