summaryrefslogtreecommitdiff
authorzecke <zecke>2005-09-27 21:04:59 (UTC)
committer zecke <zecke>2005-09-27 21:04:59 (UTC)
commit061e4461d8916dfaa20d80a998341a222da9aa64 (patch) (side-by-side diff)
tree5ac9af92bdf97c16fc7dd5797d434d82276e0fb3
parent04166623e424201b134fd090869b316fa7935ed0 (diff)
downloadopie-061e4461d8916dfaa20d80a998341a222da9aa64.zip
opie-061e4461d8916dfaa20d80a998341a222da9aa64.tar.gz
opie-061e4461d8916dfaa20d80a998341a222da9aa64.tar.bz2
Mac OS X compile fixes:
-disable the "fuege alle libs auf verdacht hinzu" hack and hope we will identify the root cause. -do not redefine cxa_... on Mac. At least the the Apple Linker is not happy with having that symbol defined twice. -well DYLD_BOOL could not be casted to bool. changing it to bool works -opiecore.pro use the same test as in include.pro to see if we build on linux
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--include.pro14
-rw-r--r--libopie2/opiecore/opiecore.pro3
-rw-r--r--library/qlibrary_unix.cpp2
-rw-r--r--library/qpeapplication.cpp2
4 files changed, 11 insertions, 10 deletions
diff --git a/include.pro b/include.pro
index f32786a..dd388f2 100644
--- a/include.pro
+++ b/include.pro
@@ -51,86 +51,86 @@ sounds.path = $$prefix/sounds/$$TARGET
sounds.files = sounds/*
INSTALLS += sounds
# init scripts, default path is /etc/init.d
init.path = /etc/init.d
init.files = init.d/*
INSTALLS += init
# data, default path is /usr/share/$$TARGET
data.path = /usr/share/$$TARGET
data.files = share/*
INSTALLS += data
etc.path = $$prefix/etc/
etc.files = etc/*
INSTALLS += etc
apps.path = $$prefix/apps/
apps.files = apps/*
INSTALLS += apps
# sounds, default path is $$prefix/sounds/$$TARGET
sounds.path = $$prefix/sounds/$$TARGET
sounds.files = sounds/*
INSTALLS += sounds
# anything in nonstandard paths
root.path = /
root.files = root/*
INSTALLS += root
# new targets
opie-lupdate.target = opie-lupdate
opie-lupdate.commands = opie-lupdate $(PRO)
opie-lrelease.target = opie-lrelease
opie-lrelease.commands = opie-lrelease $(PRO)
lupdate.target = lupdate
lupdate.commands = lupdate -noobsolete $(PRO)
lrelease.target = lrelease
lrelease.commands = lrelease $(PRO)
# new message target to get all strings from the apps with and without tr
messages.target = messages
messages.commands = xgettext -C -n -ktr -kQT_TRANSLATE_NOOP $$HEADERS $$SOURCES -o '$(OPIEDIR)/messages-$(QMAKE_TARGET)-tr.po' && xgettext -C -n -a $$HEADERS $$SOURCES -o '$(OPIEDIR)/messages-$(QMAKE_TARGET)-allstrings.po'
ipk.target = ipk
ipk.commands = tmp=`mktemp -d /tmp/ipkg-opie.XXXXXXXXXX` && ( $(MAKE) INSTALL_ROOT="$$$$tmp" install && ipkg-build $$$$tmp; rm -rf $$$$tmp; )
QMAKE_EXTRA_UNIX_TARGETS += lupdate lrelease ipk opie-lupdate opie-lrelease messages
CONFTEST = $$system( echo $CONFIG_TARGET_MACOSX )
contains( CONFTEST, y ){
QMAKE_LFLAGS += -Wl
LIBS -= -ldl
LIBS -= -lcrypt
LIBS -= -lm
# Manual including indirect referenced libraries which are not loaded
# by the mac-linker automatically
# IF YOU COMPILE FOR THE FIRST TIME, COMMENT OUT ONE OF THE FOLLOWING
# (regarding whether you activate SQL) and the last one (-lopiecore2)
- CONFTEST = $$system( echo $CONFIG_SQL_PIM_BACKEND )
- contains( CONFTEST, y ){
- LIBS += -lopiedb2 -lqpe
- } else {
- LIBS += -lqpe
- }
- LIBS += -lopiecore2
+ #CONFTEST = $$system( echo $CONFIG_SQL_PIM_BACKEND )
+ #contains( CONFTEST, y ){
+ # LIBS += -lopiedb2 -lqpe
+ #} else {
+ # LIBS += -lqpe
+ #}
+ #LIBS += -lopiecore2
}
else {
QMAKE_LFLAGS += -Wl,-rpath-link,$$prefix/lib
# I am not sure whether it is a good idea to change the way plugins is build
# on linux. Therefore I remove the "plugin" term, which is needed by MacOS-X
CONFIG -= plugin
}
LIBS += -L$(OPIEDIR)/lib
MOC_DIR=.moc/$(PLATFORM)
OBJECTS_DIR=.obj/$(PLATFORM)
#was here now at thetop
#include( $(OPIEDIR)/gen.pro )
diff --git a/libopie2/opiecore/opiecore.pro b/libopie2/opiecore/opiecore.pro
index cbb7e04..3406b8f 100644
--- a/libopie2/opiecore/opiecore.pro
+++ b/libopie2/opiecore/opiecore.pro
@@ -1,59 +1,60 @@
TEMPLATE = lib
CONFIG += qt warn_on
DESTDIR = $(OPIEDIR)/lib
HEADERS = oapplication.h \
oconfig.h \
odebug.h \
oglobal.h \
oglobalsettings.h \
okeyconfigmanager.h \
okeyfilter.h \
opluginloader.h \
oprocess.h \
oprocctrl.h \
oresource.h \
osharedpointer.h \
osmartpointer.h \
ostorageinfo.h \
xmltree.h
SOURCES = oapplication.cpp \
oconfig.cpp \
odebug.cpp \
oglobal.cpp \
oglobalsettings.cpp \
okeyconfigmanager.cpp \
okeyfilter.cpp \
opluginloader.cpp \
oprocess.cpp \
oprocctrl.cpp \
oresource.cpp \
osmartpointer.cpp \
ostorageinfo.cpp \
xmltree.cpp
# Disable Linux-only subsystems for MAC build
-!contains( CONFIG_TARGET_MACOSX, y ) {
+CONFTEST = $$system( echo $CONFIG_TARGET_MACOSX )
+!contains( CONFTEST, y ) {
include ( linux/linux.pro )
} else {
message( "disabling linux-only subsystems for MAC build" )
}
include( device/device.pro )
INTERFACES =
TARGET = opiecore2
VERSION = 1.9.4
INCLUDEPATH += $(OPIEDIR)/include
DEPENDPATH += $(OPIEDIR)/include
!contains( platform, x11 ) {
LIBS = -lqpe
include( $(OPIEDIR)/include.pro )
}
contains( platform, x11 ) {
LIBS = -L$(OPIEDIR)/lib -Wl,-rpath,$(OPIEDIR)/lib
}
diff --git a/library/qlibrary_unix.cpp b/library/qlibrary_unix.cpp
index 2181153..fee73c2 100644
--- a/library/qlibrary_unix.cpp
+++ b/library/qlibrary_unix.cpp
@@ -92,129 +92,129 @@ void* QLibraryPrivate::resolveSymbol( const char* symbol )
{
//qDebug("QLibraryPrivate::resolveSymbol\n");
return FALSE;
}
#elif defined(Q_OS_MACX)
#define ENUM_DYLD_BOOL
enum DYLD_BOOL {
DYLD_FALSE,
DYLD_TRUE
};
#include <mach-o/dyld.h>
typedef struct {
NSObjectFileImage img;
NSModule mod;
} DyldLibDesc;
bool QLibraryPrivate::loadLibrary()
{
// qDebug("QLibraryPrivate::loadLibrary\n");
// return FALSE;
if ( pHnd )
return TRUE;
QString filename = library->library();
NSObjectFileImage img = 0;
NSModule mod = 0;
NSObjectFileImageReturnCode ret = NSCreateObjectFileImageFromFile( filename.latin1() , &img );
if ( ret != NSObjectFileImageSuccess ) {
qWarning( "Error in NSCreateObjectFileImageFromFile(): %d; Filename: %s", ret, filename.latin1() );
if (ret == NSObjectFileImageAccess) {
qWarning ("(NSObjectFileImageAccess)" );
}
} else {
mod = NSLinkModule(img, filename.latin1(), NSLINKMODULE_OPTION_BINDNOW |
NSLINKMODULE_OPTION_PRIVATE |
NSLINKMODULE_OPTION_RETURN_ON_ERROR);
if (mod == 0) {
qWarning( "Error in NSLinkModule()" );
NSDestroyObjectFileImage(img);
}
}
DyldLibDesc* desc = 0;
if (img != 0 && mod != 0) {
desc = new DyldLibDesc;
desc->img = img;
desc->mod = mod;
}
pHnd = desc;
return pHnd != 0;
}
bool QLibraryPrivate::freeLibrary()
{
//qDebug("QLibraryPrivate::freeLibrary\n");
//return FALSE;
if ( !pHnd )
return TRUE;
DyldLibDesc* desc = (DyldLibDesc*) pHnd;
NSModule mod = desc->mod;
NSObjectFileImage img = desc->img;
- DYLD_BOOL success = NSUnLinkModule(mod, NSUNLINKMODULE_OPTION_NONE);
+ bool success = NSUnLinkModule(mod, NSUNLINKMODULE_OPTION_NONE);
if ( success ) {
NSDestroyObjectFileImage(img);
delete desc;
pHnd = 0;
}
#if defined(QT_DEBUG) || defined(QT_DEBUG_COMPONENT)
else {
qWarning( "Error in NSUnLinkModule()" );
}
#endif
return pHnd == 0;
}
void* QLibraryPrivate::resolveSymbol( const char* symbol )
{
//qDebug("QLibraryPrivate::resolveSymbol\n");
//return FALSE;
if ( !pHnd )
return 0;
DyldLibDesc* desc = (DyldLibDesc*) pHnd;
NSSymbol sym = NSLookupSymbolInModule(desc->mod, symbol);
void* address = 0;
if (sym != 0) {
address = NSAddressOfSymbol(sym);
}
#if defined(QT_DEBUG) || defined(QT_DEBUG_COMPONENT)
if ( address == 0 )
qWarning( "Cannot find symbol: %s", symbol );
#endif
return address;
}
#else
// Something else, assuming POSIX
#include <dlfcn.h>
bool QLibraryPrivate::loadLibrary()
{
if ( pHnd )
return TRUE;
QString filename = library->library();
pHnd = dlopen( filename.latin1() , RTLD_LAZY );
// #if defined(QT_DEBUG) || defined(QT_DEBUG_COMPONENT)
if ( !pHnd )
qWarning( "%s", dlerror() );
// #endif
return pHnd != 0;
}
bool QLibraryPrivate::freeLibrary()
{
if ( !pHnd )
return TRUE;
int ec = dlclose( pHnd );
if ( !ec )
pHnd = 0;
#if defined(QT_DEBUG) || defined(QT_DEBUG_COMPONENT)
else {
const char* error = dlerror();
if ( error )
diff --git a/library/qpeapplication.cpp b/library/qpeapplication.cpp
index 19e99f2..dcc1001 100644
--- a/library/qpeapplication.cpp
+++ b/library/qpeapplication.cpp
@@ -2146,129 +2146,129 @@ int QPEApplication::exec()
return QApplication::exec();
#ifndef QT_NO_COP
{
QCopEnvelope e( "QPE/System", "closing(QString)" );
e << d->appName;
}
#endif
processEvents();
return 0;
}
/*!
\internal
External request for application to quit. Quits if possible without
loosing state.
*/
void QPEApplication::tryQuit()
{
if ( activeModalWidget() )
return ; // Inside modal loop or konsole. Too hard to save state.
#ifndef QT_NO_COP
{
QCopEnvelope e( "QPE/System", "closing(QString)" );
e << d->appName;
}
#endif
if ( d->keep_running )
d->store_widget_rect(d->qpe_main_widget, d->appName);
processEvents();
quit();
}
/*!
\internal
User initiated quit. Makes the window 'Go Away'. If preloaded this means
hiding the window. If not it means quitting the application.
As this is user initiated we don't need to check state.
*/
void QPEApplication::hideOrQuit()
{
if ( d->keep_running )
d->store_widget_rect(d->qpe_main_widget, d->appName);
processEvents();
// If we are a preloaded application we don't actually quit, so emit
// a System message indicating we're quasi-closing.
if ( d->preloaded && d->qpe_main_widget )
#ifndef QT_NO_COP
{
QCopEnvelope e("QPE/System", "fastAppHiding(QString)" );
e << d->appName;
d->qpe_main_widget->hide();
}
#endif
else
quit();
}
-#if (__GNUC__ > 2 )
+#if (__GNUC__ > 2 ) && !defined(_OS_MACX_)
extern "C" void __cxa_pure_virtual();
void __cxa_pure_virtual()
{
fprintf( stderr, "Pure virtual called\n");
abort();
}
#endif
#if defined(OPIE_NEW_MALLOC)
// The libraries with the skiff package (and possibly others) have
// completely useless implementations of builtin new and delete that
// use about 50% of your CPU. Here we revert to the simple libc
// functions.
void* operator new[]( size_t size )
{
return malloc( size );
}
void* operator new( size_t size )
{
return malloc( size );
}
void operator delete[]( void* p )
{
if ( p )
free( p );
}
void operator delete[]( void* p, size_t /*size*/ )
{
if ( p )
free( p );
}
void operator delete( void* p )
{
if ( p )
free( p );
}
void operator delete( void* p, size_t /*size*/ )
{
if ( p )
free( p );
}
#endif
#if ( QT_VERSION <= 230 ) && !defined(SINGLE_APP)
#include <qwidgetlist.h>
#ifdef QWS
#include <qgfx_qws.h>
extern QRect qt_maxWindowRect;
void qt_setMaxWindowRect(const QRect& r )
{
qt_maxWindowRect = qt_screen->mapFromDevice( r,