summaryrefslogtreecommitdiff
path: root/development
Side-by-side diff
Diffstat (limited to 'development') (more/less context) (ignore whitespace changes)
-rw-r--r--development/macosx/README_MACOSX6
-rw-r--r--development/macosx/config-files/qt-2.3.2/darwin-g++-shared (copied from development/macosx/darwin-g++-shared)0
-rw-r--r--development/macosx/config-files/qte-2.3.7/darwin-generic-g++-shared (renamed from development/macosx/darwin-g++-shared)16
3 files changed, 14 insertions, 8 deletions
diff --git a/development/macosx/README_MACOSX b/development/macosx/README_MACOSX
index 877e2f8..bc21548 100644
--- a/development/macosx/README_MACOSX
+++ b/development/macosx/README_MACOSX
@@ -1,132 +1,134 @@
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..
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
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/E for Opie, including all other opie-patches is available in the
qt-directory ($OPIEDIR/qt) and is called "qte237-all-macosx.patch".
+To be able to compile, you have to copy the file from the directory "./config-files/qte-2.3.7"
+into the directory "configs" within the base directory of qt/e.
The Patch for QT-2.3.2 is provided in this directory and is called "qt232-X11.patch".
-ATTENTION: The patch does not contain the darwin config file. Please copy the file
-"darwin-g++-shared" into the directory "configs" within the qt-2.3.2 directory !!
+Please copy the file "darwin-g++-shared" from the directory "./config-files/qt-2.3.2" into the directory "configs"
+within the qt-2.3.2 directory !!
If your buildsystem is working correctly, you should be able to build
opie.
HOWTO COMPILE:
-------------
Compile QT-2.3.2:
Got 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
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
diff --git a/development/macosx/darwin-g++-shared b/development/macosx/config-files/qt-2.3.2/darwin-g++-shared
index 18d3b15..18d3b15 100644
--- a/development/macosx/darwin-g++-shared
+++ b/development/macosx/config-files/qt-2.3.2/darwin-g++-shared
diff --git a/development/macosx/darwin-g++-shared b/development/macosx/config-files/qte-2.3.7/darwin-generic-g++-shared
index 18d3b15..ebeabfc 100644
--- a/development/macosx/darwin-g++-shared
+++ b/development/macosx/config-files/qte-2.3.7/darwin-generic-g++-shared
@@ -1,94 +1,98 @@
# Compiling
INTERFACE_DECL_PATH = .
SYSCONF_CXX = g++
SYSCONF_CC = gcc
DASHCROSS =
# Compiling with support libraries
-SYSCONF_CXXFLAGS_X11 = -I/usr/X11R6/include -I/usr/X11R6/include/freetype2
+SYSCONF_CXXFLAGS_X11 = -I/usr/X11R6/include
SYSCONF_CXXFLAGS_QT = -I$(QTDIR)/include
+SYSCONF_CXXFLAGS_QTOPIA = -I$(QPEDIR)/include
SYSCONF_CXXFLAGS_OPENGL = -I/usr/X11R6/include
# Compiling YACC output
SYSCONF_CXXFLAGS_YACC = -Wno-unused -Wno-parentheses
# Linking with support libraries
SYSCONF_RPATH_X11 = -L/usr/X11R6/lib
SYSCONF_RPATH_QT = -L$(QTDIR)/lib
+SYSCONF_RPATH_QTOPIA = -L$(QPEDIR)/lib
SYSCONF_RPATH_OPENGL = -L/usr/X11R6/lib
# Linking with support libraries
# X11
-SYSCONF_LFLAGS_X11 = -L/usr/X11R6/lib
-SYSCONF_LIBS_X11 = -lXext -lX11 -lm
+SYSCONF_LFLAGS_X11 = -L/usr/X11R6/lib
+SYSCONF_LIBS_X11 =
# Qt, Qt+OpenGL
SYSCONF_LFLAGS_QT = -L$(QTDIR)/lib
-SYSCONF_LIBS_QT = -lqt$(QT_THREAD_SUFFIX)
+SYSCONF_LFLAGS_QTOPIA = -L$(QPEDIR)/lib
+SYSCONF_LIBS_QT = -lqte$(QT_THREAD_SUFFIX)
SYSCONF_LIBS_QT_OPENGL =
+SYSCONF_LIBS_QTOPIA = -lqtopia
# OpenGL
SYSCONF_LFLAGS_OPENGL = -L/usr/X11R6/lib
SYSCONF_LIBS_OPENGL = -lGLU -lGL -lXmu
# Yacc
SYSCONF_LIBS_YACC =
# Linking applications
SYSCONF_LINK = g++
SYSCONF_LFLAGS =
SYSCONF_LIBS =
# Link flags for shared objects
SYSCONF_LFLAGS_SHOBJ = -dynamiclib
# Flags for threading
SYSCONF_CFLAGS_THREAD = -pthread -D_THREAD_SAFE
SYSCONF_CXXFLAGS_THREAD = -pthread -D_THREAD_SAFE
SYSCONF_LFLAGS_THREAD = -pthread
SYSCONF_LIBS_THREAD =
# Meta-object compiler
SYSCONF_MOC = $(QTDIR)/bin/moc
# UI compiler
SYSCONF_UIC = $(QTDIR)/bin/uic
# Linking shared libraries
# - Build the $(TARGET) library, eg. lib$(TARGET).so.2.2.2
# - Place target in $(DESTDIR) - which has a trailing /
# - Usually needs to incorporate $(VER_MAJ), $(VER_MIN) and $(VER_PATCH)
#
SYSCONF_LINK_SHLIB = g++
SYSCONF_LINK_TARGET_SHARED = lib$(TARGET).dylib.$(VER_MAJ).$(VER_MIN).$(VER_PATCH)
-SYSCONF_LINK_LIB_SHARED = $(SYSCONF_LINK_SHLIB) -dynamiclib \
+SYSCONF_LINK_LIB_SHARED = $(SYSCONF_LINK_SHLIB) -dynamiclib \
$(LFLAGS) -o $(SYSCONF_LINK_TARGET_SHARED) \
$(OBJECTS) $(OBJMOC) $(LIBS) && \
mv $(SYSCONF_LINK_TARGET_SHARED) $(DESTDIR); \
cd $(DESTDIR) && \
rm -f lib$(TARGET).dylib lib$(TARGET).dylib.$(VER_MAJ) lib$(TARGET).dylib.$(VER_MAJ).$(VER_MIN); \
ln -s $(SYSCONF_LINK_TARGET_SHARED) lib$(TARGET).dylib; \
ln -s $(SYSCONF_LINK_TARGET_SHARED) lib$(TARGET).dylib.$(VER_MAJ); \
ln -s $(SYSCONF_LINK_TARGET_SHARED) lib$(TARGET).dylib.$(VER_MAJ).$(VER_MIN)
# Linking static libraries
# - Build the $(TARGET) library, eg. lib$(TARGET).a
# - Place target in $(DESTDIR) - which has a trailing /
#
SYSCONF_AR = ar cqs
SYSCONF_LINK_TARGET_STATIC = lib$(TARGET).a
SYSCONF_LINK_LIB_STATIC = rm -f $(DESTDIR)$(SYSCONF_LINK_TARGET_STATIC) ; \
$(SYSCONF_AR) $(DESTDIR)$(SYSCONF_LINK_TARGET_STATIC) $(OBJECTS) $(OBJMOC)
# Compiling application source
-SYSCONF_CXXFLAGS = -pipe -fno-exceptions -O2 -Wall -W
+SYSCONF_CXXFLAGS = -pipe -fno-exceptions -DQWS -fno-rtti -fno-exceptions -DQT_NO_QWS_LINUXFB -DQT_NO_QWS_TRANSFORMED -O0 -Wall -W -DNO_DEBUG
SYSCONF_CFLAGS = -pipe -fno-exceptions -O2 -Wall -W
# Default link type (static linking is still be used where required)
SYSCONF_LINK_LIB = $(SYSCONF_LINK_LIB_SHARED)
SYSCONF_LINK_TARGET = $(SYSCONF_LINK_TARGET_SHARED)
# Compiling library source
SYSCONF_CXXFLAGS_LIB = -fPIC
SYSCONF_CFLAGS_LIB = -fPIC
# Compiling shared-object source
SYSCONF_CXXFLAGS_SHOBJ = -fPIC
SYSCONF_CFLAGS_SHOBJ = -fPIC
# Linking Qt
SYSCONF_LIBS_QTLIB = $(SYSCONF_LFLAGS_X11) $(QT_LIBS_MT) $(QT_LIBS_OPT)
# Linking Qt applications
SYSCONF_LIBS_QTAPP =