Short: magic MIME filetype detection static lib Author: Ian Darwin, Christos Zoulas et al. (see COPYING) Uploader: Cameron Armstrong (Nightfox) Type: dev/lib Version: 5.48 Requires: an Amiga gcc cross compiler (bebbo/amiga-gcc, adtools, MorphOS SDK) Architecture: m68k-amigaos >= 2.0; ppc-amigaos; ppc-morphos magic (libmagic.a) is a static library that identifies the MIME type of a file, or of a buffer in memory, by inspecting the content. This archive contains static libraries and the public header for AmigaOS 3 (68k), AmigaOS 4 (PPC) and MorphOS (PPC) development, plus the magic database the library needs at run time. Contents magic.readme this file magic/C/magic.mgc the compiled magic database (shared by all systems -- it is not machine code) magic/AmigaOS3/libnix/ header and libraries, libnix magic/AmigaOS3/clib2/ header and libraries, clib2 magic/AmigaOS4/ header and libraries, clib4 magic/MorphOS/ header and libraries, both ABIs Each of those directories holds include/magic.h plus a lib/ tree in the gcc multilib layout, so it can be copied straight over an existing SDK. Note the difference between the two architectures. On m68k each C runtime is a separate tree, so libnix/ and clib2/ each carry their own include/ and lib/. On PPC the runtime is instead a multilib slot beneath a shared lib/, and headers come from the one shared include/. AmigaOS 3 slots (inside libnix/ and clib2/): lib/ 68000, absolute addressing lib/libm020/ 68020, absolute addressing lib/libb/ 68000, -fbaserel lib/libb/libm020/ 68020, -fbaserel lib/libb32/libm020/ 68020, -fbaserel32 AmigaOS 4 slots: lib/clib4/ clib4 MorphOS slots: lib/ ixemul lib/libb32/ ixemul, -mbaserel32 lib/libnix/ native C library (-noixemul) lib/libb32/libnix/ native C library, -mbaserel32 -mclib=libnix and -noixemul select the same multilib. That ABI is the self-contained one -- an ixemul build needs ixemul.library on the target machine -- so prefer lib/libnix/ for new code. Installation Copy the tree for your target into the matching cross compiler directory, e.g. cp -a magic/AmigaOS3/libnix /opt/amiga/m68k-amigaos/ cp -a magic/AmigaOS3/clib2 /opt/amiga/m68k-amigaos/ cp -a magic/AmigaOS4/* /opt/amiga/ppc-amigaos/ cp -a magic/MorphOS/* /opt/amiga/ppc-morphos/ Then copy C/magic.mgc to C: on the target machine, or ship it with your application. Point the library at it with magic_load(). Usage #include magic_t m = magic_open(MAGIC_MIME_TYPE); magic_load(m, NULL); /* or "C:magic.mgc" */ const char *type = magic_file(m, "Work:something"); magic_close(m); Link with -lmagic -lm, and put them *after* your own objects on the command line. For clib2 add -lunix after -lmagic, since clib2 keeps its POSIX layer there. Licence BSD-style; see COPYING in the source distribution.