summaryrefslogtreecommitdiff
authoreilers <eilers>2003-12-22 11:08:30 (UTC)
committer eilers <eilers>2003-12-22 11:08:30 (UTC)
commit8d91c030bd4cb8ef296eb25fee9394ca4a8319f8 (patch) (side-by-side diff)
treebea20afe0c841b16a2bf7a214667652caedbbd11
parent5bcd8c0cdeec2777a20bd56bec14e06206b4128e (diff)
downloadopie-8d91c030bd4cb8ef296eb25fee9394ca4a8319f8.zip
opie-8d91c030bd4cb8ef296eb25fee9394ca4a8319f8.tar.gz
opie-8d91c030bd4cb8ef296eb25fee9394ca4a8319f8.tar.bz2
Some information about missing or unfinshed functions by the macosx port
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--development/macosx/README_MACOSX19
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 @@
Information about porting Opie to MacOS-X (eilers)
==================================================
Credits:
--------
Special thanks to Andreas Junghans (webmaster@lucid-cake.net) for its patches for qt-X11 (2.3.2),
QT/E (2.3.5) and qtopia (1.6.1).
Without them, I wouldn't be able to provide the port for OPIE to MacOS-X that fast..
Thanks to Juergen Graf to debug this very generic README !
Status:
-------
The basic system works quite well. But a lot of applications and plugins,
which are platform specific, need some work to be compileable.
What is ready:
libqpe
libopie1
libopie2/opiedb
pim-applications (addressbook, todolist, datebook, today)
A lot of applications and plugins which are not platform specific.
What will follow soon:
-libopie2
+libopie2 (libopiecore and libopiedb works already !)
+
+ToDO:
+-----
+There are some functions in the sourcecode which are not yet ported to Mac. If the
+MacOS environment should be used for real productive work, the following functions
+must be implemented correctly:
+
+libopie/pim/otimezone.cpp:
+Accessing of "setenv(...)" on Mac caused bus-errors.
+Workaround/Fix: Unknown
+Current-State: setenv() was just commented out. Thus the related functions may behave wrong!
+
+library/filemanager.cpp:
+The sendfile() function is not available in MacOSX. Therefore a workaround must be implemented.
+Workaround/Fix: Unknown. The function is available in the header files, but disabled by a
+"#ifdef SENDFILE" .. and not implemented int the c-library.
+If it will be supported, it should activate itself automatically by the "#ifdef"..
How to compile Opie for MacOS-X:
-------------------------------
Before compiling for MacOS-X, you need the following:
1. X11-Server+X11SDK (Provided by Apple)
2. QT-2.3.2 for X11 (Provided by Trolltech)
3. QT/E-2.3.7 (Provided by Trolltech)
4. Patches for QT-2.3.2 for MacOSX (take the one in this directory !)
5. Patches for QT/E-2.3.7 for MacOSX (take the one, provided in $OPIEDIR/qt)
The Patch for QT-2.3.2 is provided in this directory and is called "qt232-X11.patch".
The Patch for QT/E for Opie, including all other opie-patches is available in the
qt-directory ($OPIEDIR/qt) and is called "qte237-all-macosx.patch".
Please read further, how to compile the stuff.
HOWTO COMPILE:
-------------
Compile QT-2.3.2:
Go to into the basic directory of qt-2.3.2 and enter
export QTDIR=`pwd`
export DYLD_LIBRARY_PATH=$QTDIR/lib
./configure -no-xft -platform darwin-g++
make
After compiling successful (I hope) you need qvfb:
cd tools/qvfb
make
Compile QT/E-2.3.7:
Got to into the basic directory of qt-2.3.2 and enter
export QTDIR=`pwd`
export QPEDIR=$QTDIR
export DYLD_LIBRARY_PATH=$QTDIR/lib
./configure -platform darwin-generic-g++ -qconfig qpe -qvfb -depths 4,8,16,32
make
Now create a link for the uic of qt-2.3.2 into the bin-directory of qt/e 2.3.7 !
Otherwise OPIE will fail to compile !
Compile OPIE:
Set your environment
(You may use the script "set_vars.sh" to set your variables successfully !
BUT: You have to customize this script for YOUR needs !!)
Go into the basic directory of Opie
make menuconfig"
set "Build Parameters"->"Target Machine"->"Mac OS X (DARWIN)" to activate the platform specific changes.
save and exit the menuconfig app
make
You will see that a lot of applications and plugins/applets will not compile
successfully, due to the fact that they are not ported to this platform.
You may disable them to be able to compile the rest.
Remember: A lot of configuration-settings are not tested and might fail to compile.
If you want to avoid misconfigurations, you may want to start with
the config-file in this directory. Just copy "config_macosx" to $OPIEDIR/.config
to get a working configuration to start with.
(The missing apps/plugins will be ported on demand.)
SPECIAL INFORMATION FOR USERS OF PANTHER
----------------------------------------
I had a lot of problems compiling qt-2.3.2 and QT/E-2.3.7 on Panther. The
new release of the X-Server causes a lot of trouble..
To compile QT-2.3.2 successfully, you have to disable support of freetype fonts and you have
to use the patch in this directory, otherwise your wont't be able to compile !
Use the param "-no-xft" for the configure script to disable this function !
Information for Developers:
---------------------------
1. Platform specific code should be surrounded by
#ifdef Q_OS_MACX
MACOS-X CODE
#else
OTHER-CODE
#endif
2. The Plugin-Handling by MacOS-X is different than it is by Linux.
On linux-systems, shared libraries are not different to dynamic loaded libraries
(aka plugins). They just are different whether they are loaded automatically
at startup or manually by any application.
On MacOS-X, the plugins are loaded by a special mechanism and must be in a special
binary format. Therefore you have to add the term "plugin" to the CONFIG-clause, as
for instance:
TEMPLATE=lib
CONFIG += qt plugin release
If you don't add "plugin" you will get a shared library which is not loadable
(Error-Code: NSObjectFileImageInappropriateFile (2))!
For problems, help and flames, feel free to contact me at
eilers.stefan@epost.de \ No newline at end of file