-rw-r--r-- | development/macosx/README_MACOSX | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/development/macosx/README_MACOSX b/development/macosx/README_MACOSX index 5069a2e..4cb5908 100644 --- a/development/macosx/README_MACOSX +++ b/development/macosx/README_MACOSX | |||
@@ -1,133 +1,150 @@ | |||
1 | Information about porting Opie to MacOS-X (eilers) | 1 | Information about porting Opie to MacOS-X (eilers) |
2 | ================================================== | 2 | ================================================== |
3 | 3 | ||
4 | Credits: | 4 | Credits: |
5 | -------- | 5 | -------- |
6 | 6 | ||
7 | Special thanks to Andreas Junghans (webmaster@lucid-cake.net) for its patches for qt-X11 (2.3.2), | 7 | Special thanks to Andreas Junghans (webmaster@lucid-cake.net) for its patches for qt-X11 (2.3.2), |
8 | QT/E (2.3.5) and qtopia (1.6.1). | 8 | QT/E (2.3.5) and qtopia (1.6.1). |
9 | Without them, I wouldn't be able to provide the port for OPIE to MacOS-X that fast.. | 9 | Without them, I wouldn't be able to provide the port for OPIE to MacOS-X that fast.. |
10 | Thanks to Juergen Graf to debug this very generic README ! | 10 | Thanks to Juergen Graf to debug this very generic README ! |
11 | 11 | ||
12 | Status: | 12 | Status: |
13 | ------- | 13 | ------- |
14 | The basic system works quite well. But a lot of applications and plugins, | 14 | The basic system works quite well. But a lot of applications and plugins, |
15 | which are platform specific, need some work to be compileable. | 15 | which are platform specific, need some work to be compileable. |
16 | 16 | ||
17 | What is ready: | 17 | What is ready: |
18 | 18 | ||
19 | libqpe | 19 | libqpe |
20 | libopie1 | 20 | libopie1 |
21 | libopie2/opiedb | 21 | libopie2/opiedb |
22 | pim-applications (addressbook, todolist, datebook, today) | 22 | pim-applications (addressbook, todolist, datebook, today) |
23 | A lot of applications and plugins which are not platform specific. | 23 | A lot of applications and plugins which are not platform specific. |
24 | 24 | ||
25 | What will follow soon: | 25 | What will follow soon: |
26 | 26 | ||
27 | libopie2 | 27 | libopie2 (libopiecore and libopiedb works already !) |
28 | |||
29 | ToDO: | ||
30 | ----- | ||
31 | There are some functions in the sourcecode which are not yet ported to Mac. If the | ||
32 | MacOS environment should be used for real productive work, the following functions | ||
33 | must be implemented correctly: | ||
34 | |||
35 | libopie/pim/otimezone.cpp: | ||
36 | Accessing of "setenv(...)" on Mac caused bus-errors. | ||
37 | Workaround/Fix: Unknown | ||
38 | Current-State: setenv() was just commented out. Thus the related functions may behave wrong! | ||
39 | |||
40 | library/filemanager.cpp: | ||
41 | The sendfile() function is not available in MacOSX. Therefore a workaround must be implemented. | ||
42 | Workaround/Fix: Unknown. The function is available in the header files, but disabled by a | ||
43 | "#ifdef SENDFILE" .. and not implemented int the c-library. | ||
44 | If it will be supported, it should activate itself automatically by the "#ifdef".. | ||
28 | 45 | ||
29 | 46 | ||
30 | How to compile Opie for MacOS-X: | 47 | How to compile Opie for MacOS-X: |
31 | ------------------------------- | 48 | ------------------------------- |
32 | 49 | ||
33 | Before compiling for MacOS-X, you need the following: | 50 | Before compiling for MacOS-X, you need the following: |
34 | 51 | ||
35 | 1. X11-Server+X11SDK (Provided by Apple) | 52 | 1. X11-Server+X11SDK (Provided by Apple) |
36 | 2. QT-2.3.2 for X11 (Provided by Trolltech) | 53 | 2. QT-2.3.2 for X11 (Provided by Trolltech) |
37 | 3. QT/E-2.3.7 (Provided by Trolltech) | 54 | 3. QT/E-2.3.7 (Provided by Trolltech) |
38 | 4. Patches for QT-2.3.2 for MacOSX (take the one in this directory !) | 55 | 4. Patches for QT-2.3.2 for MacOSX (take the one in this directory !) |
39 | 5. Patches for QT/E-2.3.7 for MacOSX (take the one, provided in $OPIEDIR/qt) | 56 | 5. Patches for QT/E-2.3.7 for MacOSX (take the one, provided in $OPIEDIR/qt) |
40 | 57 | ||
41 | The Patch for QT-2.3.2 is provided in this directory and is called "qt232-X11.patch". | 58 | The Patch for QT-2.3.2 is provided in this directory and is called "qt232-X11.patch". |
42 | 59 | ||
43 | The Patch for QT/E for Opie, including all other opie-patches is available in the | 60 | The Patch for QT/E for Opie, including all other opie-patches is available in the |
44 | qt-directory ($OPIEDIR/qt) and is called "qte237-all-macosx.patch". | 61 | qt-directory ($OPIEDIR/qt) and is called "qte237-all-macosx.patch". |
45 | 62 | ||
46 | Please read further, how to compile the stuff. | 63 | Please read further, how to compile the stuff. |
47 | 64 | ||
48 | HOWTO COMPILE: | 65 | HOWTO COMPILE: |
49 | ------------- | 66 | ------------- |
50 | 67 | ||
51 | Compile QT-2.3.2: | 68 | Compile QT-2.3.2: |
52 | 69 | ||
53 | Go to into the basic directory of qt-2.3.2 and enter | 70 | Go to into the basic directory of qt-2.3.2 and enter |
54 | export QTDIR=`pwd` | 71 | export QTDIR=`pwd` |
55 | export DYLD_LIBRARY_PATH=$QTDIR/lib | 72 | export DYLD_LIBRARY_PATH=$QTDIR/lib |
56 | ./configure -no-xft -platform darwin-g++ | 73 | ./configure -no-xft -platform darwin-g++ |
57 | make | 74 | make |
58 | After compiling successful (I hope) you need qvfb: | 75 | After compiling successful (I hope) you need qvfb: |
59 | cd tools/qvfb | 76 | cd tools/qvfb |
60 | make | 77 | make |
61 | 78 | ||
62 | Compile QT/E-2.3.7: | 79 | Compile QT/E-2.3.7: |
63 | 80 | ||
64 | Got to into the basic directory of qt-2.3.2 and enter | 81 | Got to into the basic directory of qt-2.3.2 and enter |
65 | export QTDIR=`pwd` | 82 | export QTDIR=`pwd` |
66 | export QPEDIR=$QTDIR | 83 | export QPEDIR=$QTDIR |
67 | export DYLD_LIBRARY_PATH=$QTDIR/lib | 84 | export DYLD_LIBRARY_PATH=$QTDIR/lib |
68 | ./configure -platform darwin-generic-g++ -qconfig qpe -qvfb -depths 4,8,16,32 | 85 | ./configure -platform darwin-generic-g++ -qconfig qpe -qvfb -depths 4,8,16,32 |
69 | make | 86 | make |
70 | 87 | ||
71 | Now create a link for the uic of qt-2.3.2 into the bin-directory of qt/e 2.3.7 ! | 88 | Now create a link for the uic of qt-2.3.2 into the bin-directory of qt/e 2.3.7 ! |
72 | Otherwise OPIE will fail to compile ! | 89 | Otherwise OPIE will fail to compile ! |
73 | 90 | ||
74 | Compile OPIE: | 91 | Compile OPIE: |
75 | Set your environment | 92 | Set your environment |
76 | (You may use the script "set_vars.sh" to set your variables successfully ! | 93 | (You may use the script "set_vars.sh" to set your variables successfully ! |
77 | BUT: You have to customize this script for YOUR needs !!) | 94 | BUT: You have to customize this script for YOUR needs !!) |
78 | Go into the basic directory of Opie | 95 | Go into the basic directory of Opie |
79 | make menuconfig" | 96 | make menuconfig" |
80 | set "Build Parameters"->"Target Machine"->"Mac OS X (DARWIN)" to activate the platform specific changes. | 97 | set "Build Parameters"->"Target Machine"->"Mac OS X (DARWIN)" to activate the platform specific changes. |
81 | save and exit the menuconfig app | 98 | save and exit the menuconfig app |
82 | make | 99 | make |
83 | 100 | ||
84 | You will see that a lot of applications and plugins/applets will not compile | 101 | You will see that a lot of applications and plugins/applets will not compile |
85 | successfully, due to the fact that they are not ported to this platform. | 102 | successfully, due to the fact that they are not ported to this platform. |
86 | You may disable them to be able to compile the rest. | 103 | You may disable them to be able to compile the rest. |
87 | 104 | ||
88 | Remember: A lot of configuration-settings are not tested and might fail to compile. | 105 | Remember: A lot of configuration-settings are not tested and might fail to compile. |
89 | If you want to avoid misconfigurations, you may want to start with | 106 | If you want to avoid misconfigurations, you may want to start with |
90 | the config-file in this directory. Just copy "config_macosx" to $OPIEDIR/.config | 107 | the config-file in this directory. Just copy "config_macosx" to $OPIEDIR/.config |
91 | to get a working configuration to start with. | 108 | to get a working configuration to start with. |
92 | 109 | ||
93 | (The missing apps/plugins will be ported on demand.) | 110 | (The missing apps/plugins will be ported on demand.) |
94 | 111 | ||
95 | 112 | ||
96 | SPECIAL INFORMATION FOR USERS OF PANTHER | 113 | SPECIAL INFORMATION FOR USERS OF PANTHER |
97 | ---------------------------------------- | 114 | ---------------------------------------- |
98 | I had a lot of problems compiling qt-2.3.2 and QT/E-2.3.7 on Panther. The | 115 | I had a lot of problems compiling qt-2.3.2 and QT/E-2.3.7 on Panther. The |
99 | new release of the X-Server causes a lot of trouble.. | 116 | new release of the X-Server causes a lot of trouble.. |
100 | 117 | ||
101 | To compile QT-2.3.2 successfully, you have to disable support of freetype fonts and you have | 118 | To compile QT-2.3.2 successfully, you have to disable support of freetype fonts and you have |
102 | to use the patch in this directory, otherwise your wont't be able to compile ! | 119 | to use the patch in this directory, otherwise your wont't be able to compile ! |
103 | Use the param "-no-xft" for the configure script to disable this function ! | 120 | Use the param "-no-xft" for the configure script to disable this function ! |
104 | 121 | ||
105 | Information for Developers: | 122 | Information for Developers: |
106 | --------------------------- | 123 | --------------------------- |
107 | 124 | ||
108 | 1. Platform specific code should be surrounded by | 125 | 1. Platform specific code should be surrounded by |
109 | #ifdef Q_OS_MACX | 126 | #ifdef Q_OS_MACX |
110 | MACOS-X CODE | 127 | MACOS-X CODE |
111 | #else | 128 | #else |
112 | OTHER-CODE | 129 | OTHER-CODE |
113 | #endif | 130 | #endif |
114 | 131 | ||
115 | 2. The Plugin-Handling by MacOS-X is different than it is by Linux. | 132 | 2. The Plugin-Handling by MacOS-X is different than it is by Linux. |
116 | On linux-systems, shared libraries are not different to dynamic loaded libraries | 133 | On linux-systems, shared libraries are not different to dynamic loaded libraries |
117 | (aka plugins). They just are different whether they are loaded automatically | 134 | (aka plugins). They just are different whether they are loaded automatically |
118 | at startup or manually by any application. | 135 | at startup or manually by any application. |
119 | On MacOS-X, the plugins are loaded by a special mechanism and must be in a special | 136 | On MacOS-X, the plugins are loaded by a special mechanism and must be in a special |
120 | binary format. Therefore you have to add the term "plugin" to the CONFIG-clause, as | 137 | binary format. Therefore you have to add the term "plugin" to the CONFIG-clause, as |
121 | for instance: | 138 | for instance: |
122 | 139 | ||
123 | TEMPLATE=lib | 140 | TEMPLATE=lib |
124 | CONFIG += qt plugin release | 141 | CONFIG += qt plugin release |
125 | 142 | ||
126 | If you don't add "plugin" you will get a shared library which is not loadable | 143 | If you don't add "plugin" you will get a shared library which is not loadable |
127 | (Error-Code: NSObjectFileImageInappropriateFile (2))! | 144 | (Error-Code: NSObjectFileImageInappropriateFile (2))! |
128 | 145 | ||
129 | 146 | ||
130 | 147 | ||
131 | For problems, help and flames, feel free to contact me at | 148 | For problems, help and flames, feel free to contact me at |
132 | 149 | ||
133 | eilers.stefan@epost.de \ No newline at end of file | 150 | eilers.stefan@epost.de \ No newline at end of file |