summaryrefslogtreecommitdiff
authorzecke <zecke>2005-09-27 21:04:59 (UTC)
committer zecke <zecke>2005-09-27 21:04:59 (UTC)
commit061e4461d8916dfaa20d80a998341a222da9aa64 (patch) (unidiff)
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
@@ -67,70 +67,70 @@ INSTALLS += etc
67 67
68apps.path = $$prefix/apps/ 68apps.path = $$prefix/apps/
69apps.files = apps/* 69apps.files = apps/*
70INSTALLS += apps 70INSTALLS += apps
71 71
72# sounds, default path is $$prefix/sounds/$$TARGET 72# sounds, default path is $$prefix/sounds/$$TARGET
73sounds.path = $$prefix/sounds/$$TARGET 73sounds.path = $$prefix/sounds/$$TARGET
74sounds.files = sounds/* 74sounds.files = sounds/*
75INSTALLS += sounds 75INSTALLS += sounds
76 76
77# anything in nonstandard paths 77# anything in nonstandard paths
78root.path = / 78root.path = /
79root.files = root/* 79root.files = root/*
80INSTALLS += root 80INSTALLS += root
81 81
82# new targets 82# new targets
83opie-lupdate.target = opie-lupdate 83opie-lupdate.target = opie-lupdate
84opie-lupdate.commands = opie-lupdate $(PRO) 84opie-lupdate.commands = opie-lupdate $(PRO)
85 85
86opie-lrelease.target = opie-lrelease 86opie-lrelease.target = opie-lrelease
87opie-lrelease.commands = opie-lrelease $(PRO) 87opie-lrelease.commands = opie-lrelease $(PRO)
88 88
89lupdate.target = lupdate 89lupdate.target = lupdate
90lupdate.commands = lupdate -noobsolete $(PRO) 90lupdate.commands = lupdate -noobsolete $(PRO)
91 91
92lrelease.target = lrelease 92lrelease.target = lrelease
93lrelease.commands = lrelease $(PRO) 93lrelease.commands = lrelease $(PRO)
94 94
95# new message target to get all strings from the apps with and without tr 95# new message target to get all strings from the apps with and without tr
96messages.target = messages 96messages.target = messages
97messages.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' 97messages.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'
98 98
99ipk.target = ipk 99ipk.target = ipk
100ipk.commands = tmp=`mktemp -d /tmp/ipkg-opie.XXXXXXXXXX` && ( $(MAKE) INSTALL_ROOT="$$$$tmp" install && ipkg-build $$$$tmp; rm -rf $$$$tmp; ) 100ipk.commands = tmp=`mktemp -d /tmp/ipkg-opie.XXXXXXXXXX` && ( $(MAKE) INSTALL_ROOT="$$$$tmp" install && ipkg-build $$$$tmp; rm -rf $$$$tmp; )
101 101
102QMAKE_EXTRA_UNIX_TARGETS += lupdate lrelease ipk opie-lupdate opie-lrelease messages 102QMAKE_EXTRA_UNIX_TARGETS += lupdate lrelease ipk opie-lupdate opie-lrelease messages
103 103
104CONFTEST = $$system( echo $CONFIG_TARGET_MACOSX ) 104CONFTEST = $$system( echo $CONFIG_TARGET_MACOSX )
105contains( CONFTEST, y ){ 105contains( CONFTEST, y ){
106 QMAKE_LFLAGS += -Wl 106 QMAKE_LFLAGS += -Wl
107 LIBS -= -ldl 107 LIBS -= -ldl
108 LIBS -= -lcrypt 108 LIBS -= -lcrypt
109 LIBS -= -lm 109 LIBS -= -lm
110 110
111 # Manual including indirect referenced libraries which are not loaded 111 # Manual including indirect referenced libraries which are not loaded
112 # by the mac-linker automatically 112 # by the mac-linker automatically
113 # IF YOU COMPILE FOR THE FIRST TIME, COMMENT OUT ONE OF THE FOLLOWING 113 # IF YOU COMPILE FOR THE FIRST TIME, COMMENT OUT ONE OF THE FOLLOWING
114 # (regarding whether you activate SQL) and the last one (-lopiecore2) 114 # (regarding whether you activate SQL) and the last one (-lopiecore2)
115 CONFTEST = $$system( echo $CONFIG_SQL_PIM_BACKEND ) 115 #CONFTEST = $$system( echo $CONFIG_SQL_PIM_BACKEND )
116 contains( CONFTEST, y ){ 116 #contains( CONFTEST, y ){
117 LIBS += -lopiedb2 -lqpe 117 # LIBS += -lopiedb2 -lqpe
118 } else { 118 #} else {
119 LIBS += -lqpe 119 # LIBS += -lqpe
120 } 120 #}
121 LIBS += -lopiecore2 121 #LIBS += -lopiecore2
122} 122}
123else { 123else {
124 124
125QMAKE_LFLAGS += -Wl,-rpath-link,$$prefix/lib 125QMAKE_LFLAGS += -Wl,-rpath-link,$$prefix/lib
126# I am not sure whether it is a good idea to change the way plugins is build 126# I am not sure whether it is a good idea to change the way plugins is build
127# on linux. Therefore I remove the "plugin" term, which is needed by MacOS-X 127# on linux. Therefore I remove the "plugin" term, which is needed by MacOS-X
128CONFIG -= plugin 128CONFIG -= plugin
129} 129}
130LIBS += -L$(OPIEDIR)/lib 130LIBS += -L$(OPIEDIR)/lib
131 131
132MOC_DIR=.moc/$(PLATFORM) 132MOC_DIR=.moc/$(PLATFORM)
133OBJECTS_DIR=.obj/$(PLATFORM) 133OBJECTS_DIR=.obj/$(PLATFORM)
134 134
135#was here now at thetop 135#was here now at thetop
136#include( $(OPIEDIR)/gen.pro ) 136#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 @@
1TEMPLATE = lib 1TEMPLATE = lib
2CONFIG += qt warn_on 2CONFIG += qt warn_on
3DESTDIR = $(OPIEDIR)/lib 3DESTDIR = $(OPIEDIR)/lib
4HEADERS = oapplication.h \ 4HEADERS = oapplication.h \
5 oconfig.h \ 5 oconfig.h \
6 odebug.h \ 6 odebug.h \
7 oglobal.h \ 7 oglobal.h \
8 oglobalsettings.h \ 8 oglobalsettings.h \
9 okeyconfigmanager.h \ 9 okeyconfigmanager.h \
10 okeyfilter.h \ 10 okeyfilter.h \
11 opluginloader.h \ 11 opluginloader.h \
12 oprocess.h \ 12 oprocess.h \
13 oprocctrl.h \ 13 oprocctrl.h \
14 oresource.h \ 14 oresource.h \
15 osharedpointer.h \ 15 osharedpointer.h \
16 osmartpointer.h \ 16 osmartpointer.h \
17 ostorageinfo.h \ 17 ostorageinfo.h \
18 xmltree.h 18 xmltree.h
19 19
20SOURCES = oapplication.cpp \ 20SOURCES = oapplication.cpp \
21 oconfig.cpp \ 21 oconfig.cpp \
22 odebug.cpp \ 22 odebug.cpp \
23 oglobal.cpp \ 23 oglobal.cpp \
24 oglobalsettings.cpp \ 24 oglobalsettings.cpp \
25 okeyconfigmanager.cpp \ 25 okeyconfigmanager.cpp \
26 okeyfilter.cpp \ 26 okeyfilter.cpp \
27 opluginloader.cpp \ 27 opluginloader.cpp \
28 oprocess.cpp \ 28 oprocess.cpp \
29 oprocctrl.cpp \ 29 oprocctrl.cpp \
30 oresource.cpp \ 30 oresource.cpp \
31 osmartpointer.cpp \ 31 osmartpointer.cpp \
32 ostorageinfo.cpp \ 32 ostorageinfo.cpp \
33 xmltree.cpp 33 xmltree.cpp
34 34
35 35
36# Disable Linux-only subsystems for MAC build 36# Disable Linux-only subsystems for MAC build
37!contains( CONFIG_TARGET_MACOSX, y ) { 37CONFTEST = $$system( echo $CONFIG_TARGET_MACOSX )
38!contains( CONFTEST, y ) {
38include ( linux/linux.pro ) 39include ( linux/linux.pro )
39} else { 40} else {
40 message( "disabling linux-only subsystems for MAC build" ) 41 message( "disabling linux-only subsystems for MAC build" )
41} 42}
42 43
43include( device/device.pro ) 44include( device/device.pro )
44 45
45INTERFACES = 46INTERFACES =
46TARGET = opiecore2 47TARGET = opiecore2
47VERSION = 1.9.4 48VERSION = 1.9.4
48INCLUDEPATH += $(OPIEDIR)/include 49INCLUDEPATH += $(OPIEDIR)/include
49DEPENDPATH += $(OPIEDIR)/include 50DEPENDPATH += $(OPIEDIR)/include
50 51
51!contains( platform, x11 ) { 52!contains( platform, x11 ) {
52 LIBS = -lqpe 53 LIBS = -lqpe
53 include( $(OPIEDIR)/include.pro ) 54 include( $(OPIEDIR)/include.pro )
54} 55}
55 56
56contains( platform, x11 ) { 57contains( platform, x11 ) {
57 LIBS = -L$(OPIEDIR)/lib -Wl,-rpath,$(OPIEDIR)/lib 58 LIBS = -L$(OPIEDIR)/lib -Wl,-rpath,$(OPIEDIR)/lib
58} 59}
59 60
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 {
108} DyldLibDesc; 108} DyldLibDesc;
109 109
110bool QLibraryPrivate::loadLibrary() 110bool QLibraryPrivate::loadLibrary()
111{ 111{
112 // qDebug("QLibraryPrivate::loadLibrary\n"); 112 // qDebug("QLibraryPrivate::loadLibrary\n");
113 // return FALSE; 113 // return FALSE;
114 if ( pHnd ) 114 if ( pHnd )
115 return TRUE; 115 return TRUE;
116 116
117 QString filename = library->library(); 117 QString filename = library->library();
118 118
119 NSObjectFileImage img = 0; 119 NSObjectFileImage img = 0;
120 NSModule mod = 0; 120 NSModule mod = 0;
121 NSObjectFileImageReturnCode ret = NSCreateObjectFileImageFromFile( filename.latin1() , &img ); 121 NSObjectFileImageReturnCode ret = NSCreateObjectFileImageFromFile( filename.latin1() , &img );
122 if ( ret != NSObjectFileImageSuccess ) { 122 if ( ret != NSObjectFileImageSuccess ) {
123 qWarning( "Error in NSCreateObjectFileImageFromFile(): %d; Filename: %s", ret, filename.latin1() ); 123 qWarning( "Error in NSCreateObjectFileImageFromFile(): %d; Filename: %s", ret, filename.latin1() );
124 if (ret == NSObjectFileImageAccess) { 124 if (ret == NSObjectFileImageAccess) {
125 qWarning ("(NSObjectFileImageAccess)" ); 125 qWarning ("(NSObjectFileImageAccess)" );
126 } 126 }
127 } else { 127 } else {
128 mod = NSLinkModule(img, filename.latin1(), NSLINKMODULE_OPTION_BINDNOW | 128 mod = NSLinkModule(img, filename.latin1(), NSLINKMODULE_OPTION_BINDNOW |
129 NSLINKMODULE_OPTION_PRIVATE | 129 NSLINKMODULE_OPTION_PRIVATE |
130 NSLINKMODULE_OPTION_RETURN_ON_ERROR); 130 NSLINKMODULE_OPTION_RETURN_ON_ERROR);
131 if (mod == 0) { 131 if (mod == 0) {
132 qWarning( "Error in NSLinkModule()" ); 132 qWarning( "Error in NSLinkModule()" );
133 NSDestroyObjectFileImage(img); 133 NSDestroyObjectFileImage(img);
134 } 134 }
135 } 135 }
136 DyldLibDesc* desc = 0; 136 DyldLibDesc* desc = 0;
137 if (img != 0 && mod != 0) { 137 if (img != 0 && mod != 0) {
138 desc = new DyldLibDesc; 138 desc = new DyldLibDesc;
139 desc->img = img; 139 desc->img = img;
140 desc->mod = mod; 140 desc->mod = mod;
141 } 141 }
142 pHnd = desc; 142 pHnd = desc;
143 return pHnd != 0; 143 return pHnd != 0;
144} 144}
145 145
146bool QLibraryPrivate::freeLibrary() 146bool QLibraryPrivate::freeLibrary()
147{ 147{
148 //qDebug("QLibraryPrivate::freeLibrary\n"); 148 //qDebug("QLibraryPrivate::freeLibrary\n");
149 //return FALSE; 149 //return FALSE;
150 if ( !pHnd ) 150 if ( !pHnd )
151 return TRUE; 151 return TRUE;
152 152
153 DyldLibDesc* desc = (DyldLibDesc*) pHnd; 153 DyldLibDesc* desc = (DyldLibDesc*) pHnd;
154 NSModule mod = desc->mod; 154 NSModule mod = desc->mod;
155 NSObjectFileImage img = desc->img; 155 NSObjectFileImage img = desc->img;
156 DYLD_BOOL success = NSUnLinkModule(mod, NSUNLINKMODULE_OPTION_NONE); 156 bool success = NSUnLinkModule(mod, NSUNLINKMODULE_OPTION_NONE);
157 if ( success ) { 157 if ( success ) {
158 NSDestroyObjectFileImage(img); 158 NSDestroyObjectFileImage(img);
159 delete desc; 159 delete desc;
160 pHnd = 0; 160 pHnd = 0;
161 } 161 }
162#if defined(QT_DEBUG) || defined(QT_DEBUG_COMPONENT) 162#if defined(QT_DEBUG) || defined(QT_DEBUG_COMPONENT)
163 else { 163 else {
164 qWarning( "Error in NSUnLinkModule()" ); 164 qWarning( "Error in NSUnLinkModule()" );
165 } 165 }
166#endif 166#endif
167 return pHnd == 0; 167 return pHnd == 0;
168} 168}
169 169
170void* QLibraryPrivate::resolveSymbol( const char* symbol ) 170void* QLibraryPrivate::resolveSymbol( const char* symbol )
171{ 171{
172 //qDebug("QLibraryPrivate::resolveSymbol\n"); 172 //qDebug("QLibraryPrivate::resolveSymbol\n");
173 //return FALSE; 173 //return FALSE;
174 if ( !pHnd ) 174 if ( !pHnd )
175 return 0; 175 return 0;
176 176
177 DyldLibDesc* desc = (DyldLibDesc*) pHnd; 177 DyldLibDesc* desc = (DyldLibDesc*) pHnd;
178 NSSymbol sym = NSLookupSymbolInModule(desc->mod, symbol); 178 NSSymbol sym = NSLookupSymbolInModule(desc->mod, symbol);
179 void* address = 0; 179 void* address = 0;
180 if (sym != 0) { 180 if (sym != 0) {
181 address = NSAddressOfSymbol(sym); 181 address = NSAddressOfSymbol(sym);
182 } 182 }
183#if defined(QT_DEBUG) || defined(QT_DEBUG_COMPONENT) 183#if defined(QT_DEBUG) || defined(QT_DEBUG_COMPONENT)
184 if ( address == 0 ) 184 if ( address == 0 )
185 qWarning( "Cannot find symbol: %s", symbol ); 185 qWarning( "Cannot find symbol: %s", symbol );
186#endif 186#endif
187 return address; 187 return address;
188} 188}
189 189
190#else 190#else
191// Something else, assuming POSIX 191// Something else, assuming POSIX
192#include <dlfcn.h> 192#include <dlfcn.h>
193 193
194bool QLibraryPrivate::loadLibrary() 194bool QLibraryPrivate::loadLibrary()
195{ 195{
196 if ( pHnd ) 196 if ( pHnd )
197 return TRUE; 197 return TRUE;
198 198
199 QString filename = library->library(); 199 QString filename = library->library();
200 200
201 pHnd = dlopen( filename.latin1() , RTLD_LAZY ); 201 pHnd = dlopen( filename.latin1() , RTLD_LAZY );
202// #if defined(QT_DEBUG) || defined(QT_DEBUG_COMPONENT) 202// #if defined(QT_DEBUG) || defined(QT_DEBUG_COMPONENT)
203 if ( !pHnd ) 203 if ( !pHnd )
204 qWarning( "%s", dlerror() ); 204 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()
2162 loosing state. 2162 loosing state.
2163*/ 2163*/
2164void QPEApplication::tryQuit() 2164void QPEApplication::tryQuit()
2165{ 2165{
2166 if ( activeModalWidget() ) 2166 if ( activeModalWidget() )
2167 return ; // Inside modal loop or konsole. Too hard to save state. 2167 return ; // Inside modal loop or konsole. Too hard to save state.
2168#ifndef QT_NO_COP 2168#ifndef QT_NO_COP
2169 2169
2170 { 2170 {
2171 QCopEnvelope e( "QPE/System", "closing(QString)" ); 2171 QCopEnvelope e( "QPE/System", "closing(QString)" );
2172 e << d->appName; 2172 e << d->appName;
2173 } 2173 }
2174#endif 2174#endif
2175 if ( d->keep_running ) 2175 if ( d->keep_running )
2176 d->store_widget_rect(d->qpe_main_widget, d->appName); 2176 d->store_widget_rect(d->qpe_main_widget, d->appName);
2177 processEvents(); 2177 processEvents();
2178 2178
2179 quit(); 2179 quit();
2180} 2180}
2181 2181
2182 2182
2183/*! 2183/*!
2184 \internal 2184 \internal
2185 User initiated quit. Makes the window 'Go Away'. If preloaded this means 2185 User initiated quit. Makes the window 'Go Away'. If preloaded this means
2186 hiding the window. If not it means quitting the application. 2186 hiding the window. If not it means quitting the application.
2187 As this is user initiated we don't need to check state. 2187 As this is user initiated we don't need to check state.
2188*/ 2188*/
2189void QPEApplication::hideOrQuit() 2189void QPEApplication::hideOrQuit()
2190{ 2190{
2191 if ( d->keep_running ) 2191 if ( d->keep_running )
2192 d->store_widget_rect(d->qpe_main_widget, d->appName); 2192 d->store_widget_rect(d->qpe_main_widget, d->appName);
2193 processEvents(); 2193 processEvents();
2194 2194
2195 // If we are a preloaded application we don't actually quit, so emit 2195 // If we are a preloaded application we don't actually quit, so emit
2196 // a System message indicating we're quasi-closing. 2196 // a System message indicating we're quasi-closing.
2197 if ( d->preloaded && d->qpe_main_widget ) 2197 if ( d->preloaded && d->qpe_main_widget )
2198#ifndef QT_NO_COP 2198#ifndef QT_NO_COP
2199 2199
2200 { 2200 {
2201 QCopEnvelope e("QPE/System", "fastAppHiding(QString)" ); 2201 QCopEnvelope e("QPE/System", "fastAppHiding(QString)" );
2202 e << d->appName; 2202 e << d->appName;
2203 d->qpe_main_widget->hide(); 2203 d->qpe_main_widget->hide();
2204 } 2204 }
2205#endif 2205#endif
2206 else 2206 else
2207 quit(); 2207 quit();
2208} 2208}
2209 2209
2210#if (__GNUC__ > 2 ) 2210#if (__GNUC__ > 2 ) && !defined(_OS_MACX_)
2211extern "C" void __cxa_pure_virtual(); 2211extern "C" void __cxa_pure_virtual();
2212 2212
2213void __cxa_pure_virtual() 2213void __cxa_pure_virtual()
2214{ 2214{
2215 fprintf( stderr, "Pure virtual called\n"); 2215 fprintf( stderr, "Pure virtual called\n");
2216 abort(); 2216 abort();
2217 2217
2218} 2218}
2219 2219
2220#endif 2220#endif
2221 2221
2222 2222
2223#if defined(OPIE_NEW_MALLOC) 2223#if defined(OPIE_NEW_MALLOC)
2224 2224
2225// The libraries with the skiff package (and possibly others) have 2225// The libraries with the skiff package (and possibly others) have
2226// completely useless implementations of builtin new and delete that 2226// completely useless implementations of builtin new and delete that
2227// use about 50% of your CPU. Here we revert to the simple libc 2227// use about 50% of your CPU. Here we revert to the simple libc
2228// functions. 2228// functions.
2229 2229
2230void* operator new[]( size_t size ) 2230void* operator new[]( size_t size )
2231{ 2231{
2232 return malloc( size ); 2232 return malloc( size );
2233} 2233}
2234 2234
2235void* operator new( size_t size ) 2235void* operator new( size_t size )
2236{ 2236{
2237 return malloc( size ); 2237 return malloc( size );
2238} 2238}
2239 2239
2240void operator delete[]( void* p ) 2240void operator delete[]( void* p )
2241{ 2241{
2242 if ( p ) 2242 if ( p )
2243 free( p ); 2243 free( p );
2244} 2244}
2245 2245
2246void operator delete[]( void* p, size_t /*size*/ ) 2246void operator delete[]( void* p, size_t /*size*/ )
2247{ 2247{
2248 if ( p ) 2248 if ( p )
2249 free( p ); 2249 free( p );
2250} 2250}
2251 2251
2252 2252
2253void operator delete( void* p ) 2253void operator delete( void* p )
2254{ 2254{
2255 if ( p ) 2255 if ( p )
2256 free( p ); 2256 free( p );
2257} 2257}
2258 2258