---
name: "oztool"
section: "1"
platform: "linux"
package: "mozart"
version: "1.4.0-8"
release: "Debian 7 (Wheezy)"
platforms: ["linux"]
url: "https://new.carta.tech/oztool"
---

# oztool(1)

oz DLL builder

## NAME

oztool - oz DLL builder

## SYNOPSIS

**oztool \[c++\|cc\|ld\|platform\] ...**

**oztool** facilitates the creation of native functors (see Part VI of *\`\`Application Programming''* and *\`\`Interfacing to C and* *C++''*). A native functor is a DLL, i. e. a library that is dynamically loaded by the Oz emulator and interfaces with it. Creating a native functor often involves complicated compilation and linking technicalities (e. g. options). oztool takes care of these details for you.

- **oztool c++ ...**

  Instead of calling the C++ compiler directly, you should invoke it through oztool. The advantages are: it calls the right compiler, with the right options, and also extends the include search path to find the Mozart specific includes such as *mozart.h*. Normally, you would compile a native functor implemented in *foo.cc* using:\
   **oztool c++ -c foo.cc**

- **oztool cc ...**

  Same idea, but for the C compiler

- **oztool ld ...**

  Instead of calling the linker directly, you should also invoke it through **oztool**. Again, the advantages are that it calls the right linker, with the right options. Normally, you would create a DLL from *foo.o* as follows:\
   **oztool ld -o foo.so foo.o**

- **oztool platform**

  The default Resolution mechanism locates architecture specific DLLs as follows: If the system needs a native functor called (abstractly) foo.so, then it will look for a DLL called *foo.so-linux-i486* on a Linux machine, *foo.so-solaris-sparc* on a Solaris machine, or *foo.so-win32-i486* on a Windows machine, etc... Thus, when you create a DLL, you should install it with a name where the machine's architecture is appended. Invoking **oztool** platform simply prints out the appropriate architecture name for your machine. In this respect, **oztool** helps you write portable Makefiles: to create a DLL from file *foo.cc* you would normally invoke:

  ```
  oztool c++ -c foo.cc
  oztool ld -o foo.so-`oztool platform` foo.o
  ```
