]>
Commit | Line | Data |
---|---|---|
8414a40c VZ |
1 | Building the Software on an Acorn RISC OS system |
2 | ||
3 | The directory contrib/acorn contains support for compiling the library under | |
4 | Acorn C/C++ under Acorn's RISC OS 3.10 or above. Subsequent pathnames will | |
5 | use the Acorn format: The full-stop or period character is a pathname | |
6 | delimeter, and the slash character is not interpreted; the reverse position | |
7 | from Unix. Thus "libtiff/tif_acorn.c" becomes "libtiff.tif_acorn/c". | |
8 | ||
9 | This support was contributed by Peter Greenham. | |
10 | (peterg@angmulti.demon.co.uk). | |
11 | ||
12 | Installing LibTIFF: | |
13 | ||
14 | LIBTIFF uses several files which have names longer than the normal RISC OS | |
15 | maximum of ten characters. This complicates matters. Maybe one day Acorn will | |
16 | address the problem and implement long filenames properly. Until then this | |
17 | gets messy, especially as I'm trying to do this with obeyfiles and not have | |
18 | to include binaries in this distribution. | |
19 | ||
20 | First of all, ensure you have Truncate configured on (type *Configure | |
21 | Truncate On) Although it is, of course, preferable to have long filenames, | |
22 | LIBTIFF can be installed with short filenames, and it will compile and link | |
23 | without problems. However, getting it there is more problematic. | |
24 | contrib.acorn.install is an installation obeyfile which will create a normal | |
25 | Acorn-style library from the source (ie: with c, h and o folders etc.), but | |
26 | needs the distribution library to have been unpacked into a location which is | |
27 | capable of supporting long filenames, even if only temporarily. | |
28 | ||
29 | My recommendation, until Acorn address this problem properly, is to use Jason | |
30 | Tribbeck's LongFilenames , or any other working system that gives you long | |
31 | filenames, like a nearby NFS server for instance. | |
32 | ||
33 | If you are using Longfilenames, even if only temporarily to install LIBTIFF, | |
34 | unpack the TAR into a RAMDisc which has been longfilenamed (ie: *addlongfs | |
35 | ram) and then install from there to the hard disk. Unfortunately | |
36 | Longfilenames seems a bit unhappy about copying a bunch of long-named files | |
37 | across the same filing system, but is happy going between systems. You'll | |
38 | need to create a ramdisk of about 2Mb. | |
39 | ||
40 | Now you can run the installation script I've supplied (in contrib.acorn), | |
41 | which will automate the process of installing LIBTIFF as an Acorn-style | |
42 | library. The syntax is as follows: | |
43 | ||
44 | install <source_dir> <dest_dir> | |
45 | ||
46 | Install will then create <dest_dir> and put the library in there. For | |
47 | example, having used LongFilenames on the RAMDisk and unpacked the library | |
48 | into there, you can then type: | |
49 | ||
50 | Obey RAM::RamDisc0.$.contrib.acorn.install RAM::RamDisc0.$ ADFS::4.$.LIBTIFF | |
51 | ||
52 | It doesn't matter if the destination location can cope with long filenames or | |
53 | not. The filenames will be truncated if necessary (*Configure Truncate On if | |
54 | you get errors) and all will be well. | |
55 | ||
56 | Compiling LibTIFF: | |
57 | ||
58 | Once the LibTIFF folder has been created and the files put inside, making the | |
59 | library should be just a matter of running 'SetVars' to set the appropriate | |
60 | system variables, then running 'Makefile'. | |
61 | ||
62 | OSLib | |
63 | ||
64 | OSLib is a comprehensive API for RISC OS machines, written by Jonathan | |
65 | Coxhead of Acorn Computers (although OSLib is not an official Acorn product). | |
66 | Using the OSLib SWI veneers produces code which is more compact and more | |
67 | efficient than code written using _kernel_swi or _swi. The Acorn port of | |
68 | LibTIFF can take advantage of this if present. Edit the Makefile and go to | |
69 | the Static dependencies section. The first entry is: | |
70 | ||
71 | # Static dependencies: | |
72 | @.o.tif_acorn: @.c.tif_acorn | |
73 | cc $(ccflags) -o @.o.tif_acorn @.c.tif_acorn | |
74 | Change the cc line to: | |
75 | ||
76 | cc $(ccflags) -DINCLUDE_OSLIB -o @.o.tif_acorn @.c.tif_acorn | |
77 | ||
78 | Remember, however, that OSLib is only recommended for efficiency's sake. It | |
79 | is not required. |