3245
|
1 The information in this file is from A. Scottedward Hodel |
|
2 <A.S.Hodel@Eng.Auburn.EDU>. |
|
3 |
4183
|
4 * 11/15/2002: Power MachTen is no longer supported by Tenon Intersystems |
|
5 * since Mac OS X permits running Octave directly on its BSD-based OS. |
|
6 * See http://fink.sourceforge.net for directions on installation of Octave |
|
7 * on Macintosh. |
|
8 |
3245
|
9 I've installed and run Octave 2.0.12 on Power MachTen 4.1. I've |
|
10 also installed Octave-2.1.14 on Power MachTen 4.1.1 (the process is slightly |
|
11 different). This note contains instructions on how to port octave to MachTen |
|
12 4.1/4.1.1. |
|
13 |
|
14 Many thanks to Tenon Intersystems support for their help in porting to |
|
15 Machten 4.1.1. |
|
16 |
|
17 Contents: |
|
18 (1) Definitions |
|
19 (2) Future work |
|
20 (3) Instructions for installation of Octave 2.0.12 on MachTen 4.1. |
|
21 (4) Instructions for installation of Octave 2.1.14 on MachTen 4.1.1. |
|
22 |
|
23 (1) Definitions: |
|
24 ============ |
|
25 Power MachTen: Unix that runs simultaneously with MacOS on Mac computers. |
|
26 see http://tenon.com for more information. |
|
27 |
|
28 Octave: a Matlab-like programming language that is freely distributable |
|
29 under the terms of the gnu copyright rules. Octave is NOT |
|
30 (and will not) be a MATLAB(tm) clone; however, the functionality |
|
31 of the program is similar. |
|
32 |
|
33 see: http://bevo.che.wisc.edu/octave for more information. |
|
34 a control systems toolbox is available at |
|
35 ftp://ftp.eng.auburn.edu/pub/hodel/OCST* |
|
36 |
|
37 (2) Future work: |
|
38 ============= |
|
39 Dynamic linking is apparently not yet supported, so .oct files cannot be used |
|
40 (yet) in Power MachTen. |
|
41 |
|
42 (3) To install Octave on MachTen 4.1: |
|
43 ============= |
|
44 Short instructions: MachTen automatically defines __MACHTEN_PPC__ on |
|
45 power MachTen. The octave configure script sets most everything up properly. |
|
46 Here's a few details that also need done: |
|
47 |
|
48 (a) Put libncurses into the Tenon Application Library Folder |
|
49 (b) Replace the MT /usr/bin/sed with gnu sed (I used 2-0.5). |
|
50 (c) <sys/signal.h>: Is fixed in MachTen 4.1.1 |
|
51 (d) Set virtual memory to a huge number (I used 200Mb) |
|
52 (f) make all; it will fail on toplev.cc due to a problem with src/oct-conf.h |
|
53 (g) Fix src/oct-conf.h and make all again. |
|
54 (g) make install |
|
55 |
|
56 Here are the details for the above items: |
|
57 (a) Be sure that libncurses is in the Tenon Application Library in |
|
58 the Extensions folder: |
|
59 |
|
60 (i) use resedit. |
|
61 (ii) Open the libncurses file in folder: |
|
62 Extensions/Tenon Applications Library/disabled |
|
63 (iii) Open the cfrag resource. Scroll down a bit and you will find the |
|
64 string libcurses. Change it to libncurses. Save. |
|
65 (iv) Change (File Menu/File Information) the file creator to MUMM. Save. |
|
66 (v) now move libncurses out of the disabled folder to |
|
67 Extensions/Tenon Applications Library |
|
68 (vi) Reboot. |
|
69 |
|
70 (b) Replace the MT /usr/bin/sed with gnu sed (I used 2-0.5). |
|
71 This fixes a problem with the kpathsea/klibtool script. |
|
72 |
|
73 (c) Login as root and apply the following patch to /usr/include/sys/signal.h: |
|
74 Otherwise src/sighandlers.cc will not compile properly. (The change |
|
75 is consistent with <sys/signal.h> headers on our sun network as well.) |
|
76 |
|
77 *** signal.h.old Thu May 7 13:16:11 1998 |
|
78 --- signal.h Thu May 7 13:34:27 1998 |
|
79 *************** |
|
80 *** 253,260 **** |
|
81 /* |
|
82 * Signal vector "template" used in sigaction call. |
|
83 */ |
|
84 ! #struct sigaction { |
|
85 void (*sa_handler)(); /* signal handler */ |
|
86 sigset_t sa_mask; /* signal mask to apply */ |
|
87 int sa_flags; /* see signal options below */ |
|
88 }; |
|
89 --- 253,264 ---- |
|
90 /* |
|
91 * Signal vector "template" used in sigaction call. |
|
92 */ |
|
93 ! struct sigaction { |
|
94 ! #ifdef __cplusplus |
|
95 ! void (*sa_handler)(int); /* signal handler */ |
|
96 ! #else |
|
97 void (*sa_handler)(); /* signal handler */ |
|
98 + #endif |
|
99 sigset_t sa_mask; /* signal mask to apply */ |
|
100 int sa_flags; /* see signal options below */ |
|
101 }; |
|
102 |
|
103 |
|
104 (d) Set virtual memory to a huge number (I used 120Mb). Otherwise compiles |
|
105 will fail. |
|
106 |
|
107 (e) (cd src ; make oct-conf.h) |
|
108 |
|
109 (f) Fix src/oct-conf.h |
|
110 |
|
111 You'll need to change the line |
|
112 |
|
113 #define DEFS "-DOCTAVE_SOURCE=1 -DSEPCHAR=':' -DSEPCHAR_STR=":" |
|
114 to |
|
115 #define DEFS "-DOCTAVE_SOURCE=1 -DSEPCHAR=':' -DSEPCHAR_STR=\":\" |
|
116 |
|
117 It should have been done automatically (take a look at UGLY_DEFS in |
|
118 the toplevel Makeconf), but for some reason it doesn't go. Failure to |
|
119 edit oct-conf.h results in a compilation error in toplev.cc. |
|
120 |
|
121 (g) make all |
|
122 (h) make install |
|
123 |
|
124 And that should do it. |
|
125 |
|
126 (4) To install Octave on MachTen 4.1.1: |
|
127 ============= |
|
128 Short instructions: MachTen automatically defines __MACHTEN_PPC__ on |
|
129 power MachTen. The octave configure script sets most everything up properly. |
|
130 Here's a few details that also need done: |
|
131 |
|
132 (a) libncurses, sed, and <sys/signal.h>: are fixed in PowerMachTen 4.1.1 (but not in |
|
133 4.1) |
|
134 (b) Power MachTen uses gcc-2.8.1, which requires more memory than the |
|
135 version used in PowerMachTen 4.1. I set virtual memory to 200 Mb. |
|
136 (c) From Tenon technical support: (Thanks!) |
|
137 >I think that we have compiling Octave on MachTen. The problem results |
|
138 >from the fact that the stack space on the f771 application is not set. |
|
139 >This results in f771 running out of memory and corrupting the system |
|
140 >process manager heap. To fix this, try: |
|
141 > |
|
142 >setstackspace 0x100000 /usr/lib/gcc-lib/powerpc-apple/machten4/2.8.1/f771 |
|
143 |
|
144 For some reason my system didn't follow the soft links to |
|
145 /usr/macppc/lib/gcc-lib/powerpc-apple-machten4/2.8.1/f771. I was |
|
146 able to do the command manually with the above path. |
|
147 |
|
148 (d) For increased speed in compiling and decreased disk space requirements, |
|
149 you may also wish to omit the "-g" flag from compiler options: |
|
150 in the configure script: |
|
151 - search for machten (line 2651 in 0ctave-2.1.14). |
|
152 - modify so that this section reads |
|
153 powerpc-apple-machten*) |
|
154 FFLAGS= |
|
155 # remove -g to keep binary size down |
|
156 CFLAGS=`echo ${CFLAGS} | sed '1,$s/-g//'` |
|
157 CXXFLAGS=`echo ${CXXFLAGS} | sed '1,$s/-g//'` |
|
158 LDFLAGS=`echo ${LDFLAGS} | sed '1,$s/-g//'` |
|
159 ;; |
|
160 |
|
161 Also remove -g from: |
|
162 LDFLAGS in readline/examples/Makefile.in |
|
163 |
|
164 (e) Run configure (use the --prefix flag if desired) |
|
165 |
|
166 (f) (cd src ; make oct-conf.h) |
|
167 |
|
168 (g) Fix src/oct-conf.h |
|
169 |
|
170 You'll need to change the line |
|
171 |
|
172 #define DEFS "-DOCTAVE_SOURCE=1 -DSEPCHAR=':' -DSEPCHAR_STR=":" |
|
173 to |
|
174 #define DEFS "-DOCTAVE_SOURCE=1 -DSEPCHAR=':' -DSEPCHAR_STR=\":\" |
|
175 |
|
176 It should have been done automatically (take a look at UGLY_DEFS in |
|
177 the toplevel Makeconf), but for some reason it doesn't go. Failure to |
|
178 edit oct-conf.h results in a compilation error in toplev.cc. |
|
179 |
|
180 (h) make all |
|
181 |
|
182 Be prepared to wait quite awhile. Most of the time is spent waiting |
|
183 for individual ar commands to build the libraries. |
|
184 |
|
185 (i) make install |