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:
- MIPSPro 7.4.4m
- Development Libraries for 6.5
- Development Foundations 1.3
Optional, if you want to build a GCC application, or your program requires use of the GNU tools:
- GCC 4.7.3 - last GCC to support IRIX
Note: You will need to rely on IRIX's as and ld tools, as binutils does not support the necessary ABIs for irisware. This is not negotiable. We will not accept or upstream packages that use the binutils ld or as.
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:
- GNOME (any version) - We do not package alternative desktop environments for IRIX. The libraries such as VTE are okay, if your port depends on it.
- KDE (any version) - See GNOME. Similar reasons.
- Firefox (any version) - We're not maintaining a port of Firefox, even Firefox 2 or 3. You may use the ports in nekoware if you so choose.
- D-BUS - Doesn't have IRIX support anymore, and Project Kitsune, the sponsor and governing body of IRIX Network, boycotts D-BUS, PulseAudio, GStreamer, and anything relying on it.
- PulseAudio - See D-BUS.
- GStreamer - See D-BUS
- CUPS - Depends on D-BUS
- GTK3 - Due to ATK's mandatory integration, which leverages D-BUS, it's not to be ported.
- QT5 - Requires QT5-dbus as part of the main suite for similar reasons to GTK3.
- Any other desktop environment, with the possible exception of CDE.
- Any software in which the maintainer takes a hostile view towards IRIX and actively hinders our attempts to keep it maintained.
Good candidates for irisware include:
- Regularly updated software that has an LTS variant.
- Commandline utilities.
- Motif, FLTK, or Fox toolkit applications.
- Software whose maintainers agree to upstream patches.
- Software which builds cleanly in MIPSPro.
For now, we do not have a comprehensive guide on this, however, some good resources for this can include: