author | zecke <zecke> | 2005-09-27 21:04:59 (UTC) |
---|---|---|
committer | zecke <zecke> | 2005-09-27 21:04:59 (UTC) |
commit | 061e4461d8916dfaa20d80a998341a222da9aa64 (patch) (side-by-side diff) | |
tree | 5ac9af92bdf97c16fc7dd5797d434d82276e0fb3 | |
parent | 04166623e424201b134fd090869b316fa7935ed0 (diff) | |
download | opie-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
-rw-r--r-- | include.pro | 14 | ||||
-rw-r--r-- | libopie2/opiecore/opiecore.pro | 3 | ||||
-rw-r--r-- | library/qlibrary_unix.cpp | 2 | ||||
-rw-r--r-- | library/qpeapplication.cpp | 2 |
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 @@ -67,70 +67,70 @@ 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 @@ -108,97 +108,97 @@ typedef struct { } 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() ); diff --git a/library/qpeapplication.cpp b/library/qpeapplication.cpp index 19e99f2..dcc1001 100644 --- a/library/qpeapplication.cpp +++ b/library/qpeapplication.cpp @@ -2162,97 +2162,97 @@ int QPEApplication::exec() 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 ); } |