This is the current style and porting guide for irisware. Please read it carefully as failure to follow even the basic style guides, environment or more will result in your contributions being rejected until corrected.
irisware requires, at minimum, the following components installed in a IRIX 6.5.22 environment or later:
Optional, if you want to build a GCC application, or your program requires use of the GNU tools:
Note: All builds will need to rely on IRIX's as and ld tools, as binutils has known bugs mixing GCC and MIPSPro libraries, objects, and memory map issues. This isn't negotiable.
irisware uses the /opt/local prefix and currently builds for n32 ABI only as of November 2018. The official env variables for tcsh and zsh are below:
setenv CC c99 setenv CXX CC setenv CFLAGS '-c99 -O2 -I/opt/local/include -L/opt/local/lib' setenv CXXFLAGS CFLAGS setenv CPPFLAGS '-I/opt/local/include -L/opt/local/lib' setenv LD_LIBRARY_PATH '/opt/local/lib' setenv LDFLAGS '-L/opt/local/lib -Wl,-rpath -Wl,/opt/local/lib'
export CC=c99 export CXX=$CC export CFLAGS='-c99 -O2 -I/opt/local/include -L/opt/local/lib' export CXXFLAGS=$CFLAGS export CPPFLAGS='-I/opt/local/include -L/opt/local/lib' export LD_LIBRARY_PATH='/opt/local/lib' export LDFLAGS='-L/opt/local/lib -Wl,-rpath -Wl,/opt/local/lib'
Notes: For libraries, it's best to build them with -O1 we've found. if they compile and pass all checks with -O2, it's fine, but something to keep in mind. -O2 is standard, though.
For configure scripts you need to pass a number of things, including potential overrides. Some examples:
./configure --prefix=/opt/local --disable-nls --without-iconv --enable-static CC=/opt/local/gcc-4.7.3/bin/gcc
The prefix command is mandatory. Everything else is an example, i.e. disabling NLS or iconv is only needed if your target software necessitates it. Linking with IRIX can be a bit difficult due to it's LD, so static linking for testing is a good idea. The last bit, CC, overrides the use of MIPSPro.
irisware does not port all software, and we will not port some things that Nekoware maintained. We will not accept these packages:
Good candidates for irisware include:
For now, we do not have a comprehensive guide on this, however, some good resources for this can include: