Portable Object Compiler

Independent of any specific ABI (Application Binary Interface), the Portable Object Compiler and runtime can be used in combination with a wide variety of tools. There is no CPU (processor) specific code or dependency on specific stackframe layout or calling conventions.

The software has been ported to many flavors of UNIX and non-UNIX operating systems, with, as the name suggests, a special emphasis on portability. Ports exist for Solaris SPARC, Solaris AMD64, IBM AIX PowerPC, HP-UX IA-64, various flavours of Linux (RedHat, SUSE, Fedora, Slackware, Ubuntu, Alpine Linux), FreeBSD, DragonFly BSD, Microsoft Windows 10 Pro 64bit and many other ports.

The compiler is compatible with, and can be used with many different C compilers, such as GNU gcc, clang (LLVM), Intel icc, Sun DeveloperStudio cc, Tendra tcc, WATCOM wcc, Microsoft Visual C++, lcc-win32, and a great variety of other C compilers in order to generate optimal code for each specific platform and purpose.

Solaris 11.3 P5P (IPS pax archive, see 'man pkgrecv') objc-3.3.20.p5p.gz (for Solaris DeveloperStudio 12.6).

Solaris 11.3 P5P archive objclibs-3.3.20.p5p.gz (shared libraries)

OpenIndiana Hipster P5P (IPS pax archive, see 'man pkgrecv') objc-3.3.17-openindiana.p5p.gz (for GCC 9.2).

Solaris 10 SVR4 package (install with pkgadd) SUNWobjc-3.3.20-i386.tar.gz (for Solaris DeveloperStudio 12.6).

Slackware 14.2 tgz objc-3.3.11-x86_64-1_stes.tgz (Slackware 14.2 for gcc 5.3 or clang 3.8).

SuSE Linux SLES 15 rpm objc-3.3.16-1.x86_64.rpm and objclibs-3.3.16-1.x86_64.rpm (for gcc 7.3.1).

RedHat Linux RHEL 6.0 rpm objc-3.3.11-1.el6.i386.rpm and objclibs-3.3.11-1.el6.i386.rpm (for gcc 4.4.4 32bit).

RedHat Linux RHEL 7.0 rpm objc-3.3.11-1.el7.x86_64.rpm and objclibs-3.3.11-1.el7.x86_64.rpm (for gcc 4.8.3 64bit).

Fedora Linux 29 rpm objc-3.3.14-1.fc29.x86_64.rpm and objclibs-3.3.14-1.fc29.x86_64.rpm (for gcc 8.3.1 64bit).

Ubuntu 18.4.2 deb objc_3.3.13_amd64.deb (Debian package for gcc 7.3).

FreeBSD 10.4 x86:32 pkg objc-3.3.12.txz (for clang 3.4.1, installs in /usr/local)

FreeBSD 11.2 x86:64 pkg objc-3.3.13.txz (for clang 6.0.0, installs in /usr/local)

Dragonfly BSD 5.4 x86:64 pkg objc-3.3.12.txz (for gcc 8.1 x86_64 installs in /usr/local)

Microsoft Windows 98/XP/7 oc319v.zip (for Microsoft Visual C++)

Microsoft Windows 10 Pro 64bit objc3320v.zip (for Microsoft Visual C++)

Microsoft Windows 98/XP/7 oc319w.zip (for Watcom)

Microsoft Windows 10 Pro 64bit objc3320w.zip (for Watcom)

On Linux or UNIX systems, you should install the sources of the software as follows :

Compile or install flex

Install (for example by "yum install byacc") or compile BSD byacc ("bison -y -d" could be used as alternative but preferably use 'byacc')

Install a binary version of the Portable Object Compiler from one of the above links. The compiler is written in itself, so you need a bootstrap compiler (one of those binary packages) to start.

Download objc-3.3.20.tar.gz or clone from the GIT repository at https://sourceforge.net/projects/objc/.

Optionally, for the class browser, install cursel-0.2.4.tar.gz.

Optionally for expert users porting to new or other platforms, where there is no binary package available, build objc-bootstrap-3.3.13.tar.gz.

The package contains the documentation in HTML format. The manual is also available here, and there's a note on Objective-C blocks. The text Objective-C for Unix is also a source of information on the architecture of the compiler.

Richtext is an X11 / Motif / Lesstif text editor (and RTF file previewer) written in Objective-C and available at https://sourceforge.net/projects/objc-richtext/.

Here's a screenshot of the Richtext previewer/editor on Slackware (or FreeBSD) with a KDE desktop and another screenshot on Solaris 11.3 (with a GNOME 2 desktop). Another screenshot on Solaris 11.4 with the GNOME 3 desktop.

Also you can clone from github a package for simple TCP/IP programming in Objective-C : tcp-ip-objc.

Subscribe to the Portable Object Compiler mailing list at Sourceforge.