summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/wellenreiter/gui/gui.pro5
-rw-r--r--noncore/net/wellenreiter/gui/main.cpp13
-rw-r--r--noncore/net/wellenreiter/gui/wellenreiter.cpp28
-rw-r--r--noncore/net/wellenreiter/lib/.cvsignore4
-rw-r--r--noncore/net/wellenreiter/lib/lib.pro28
-rw-r--r--noncore/net/wellenreiter/wellenreiter.pro3
6 files changed, 68 insertions, 13 deletions
diff --git a/noncore/net/wellenreiter/gui/gui.pro b/noncore/net/wellenreiter/gui/gui.pro
index 505d376..5a8972c 100644
--- a/noncore/net/wellenreiter/gui/gui.pro
+++ b/noncore/net/wellenreiter/gui/gui.pro
@@ -1,43 +1,42 @@
1MOC_DIR = ./tmp 1MOC_DIR = ./tmp
2OBJECTS_DIR = ./tmp 2OBJECTS_DIR = ./tmp
3DESTDIR = $(OPIEDIR)/bin 3DESTDIR = $(OPIEDIR)/bin
4TEMPLATE = app 4TEMPLATE = app
5CONFIG = qt warn_on debug 5CONFIG = qt warn_on debug
6 6
7HEADERS = wellenreiterbase.h \ 7HEADERS = wellenreiterbase.h \
8 mainwindow.h \ 8 mainwindow.h \
9 wellenreiter.h \ 9 wellenreiter.h \
10 scanlist.h \ 10 scanlist.h \
11 logwindow.h \ 11 logwindow.h \
12 hexwindow.h \ 12 hexwindow.h \
13 configwindow.h \ 13 configwindow.h \
14 manufacturers.h 14 manufacturers.h
15 15
16SOURCES = main.cpp \ 16SOURCES = main.cpp \
17 mainwindow.cpp \ 17 mainwindow.cpp \
18 wellenreiterbase.cpp \ 18 wellenreiterbase.cpp \
19 wellenreiter.cpp \ 19 wellenreiter.cpp \
20 scanlist.cpp \ 20 scanlist.cpp \
21 logwindow.cpp \ 21 logwindow.cpp \
22 hexwindow.cpp \ 22 hexwindow.cpp \
23 configwindow.cpp \ 23 configwindow.cpp \
24 manufacturers.cpp 24 manufacturers.cpp
25 25
26INCLUDEPATH += $(OPIEDIR)/include 26INCLUDEPATH += $(OPIEDIR)/include
27DEPENDPATH += $(OPIEDIR)/include 27DEPENDPATH += $(OPIEDIR)/include
28LIBS += -lopiecore2 -lopieui2 -lopienet2
29INTERFACES = configbase.ui 28INTERFACES = configbase.ui
30TARGET = wellenreiter 29TARGET = wellenreiter
31 30
32!contains( platform, x11 ) { 31!contains( platform, x11 ) {
33 message( qws ) 32 message( qws )
34 include ( $(OPIEDIR)/include.pro ) 33 include ( $(OPIEDIR)/include.pro )
35 LIBS += -lqpe -lopie 34 LIBS += -lqpe -lopie -lopiecore2 -lopieui2 -lopienet2
36} 35}
37 36
38contains( platform, x11 ) { 37contains( platform, x11 ) {
39 LIBS += -L$(OPIEDIR)/lib -Wl,-rpath,$(OPIEDIR)/lib 38 LIBS += -L$(OPIEDIR)/lib -Wl,-rpath,$(OPIEDIR)/lib -lwellenreiter
40 SOURCES += resource.cpp 39 SOURCES += resource.cpp
41 HEADERS += resource.h 40 HEADERS += resource.h
42} 41}
43 42
diff --git a/noncore/net/wellenreiter/gui/main.cpp b/noncore/net/wellenreiter/gui/main.cpp
index 96a8c1c..8d4ef57 100644
--- a/noncore/net/wellenreiter/gui/main.cpp
+++ b/noncore/net/wellenreiter/gui/main.cpp
@@ -1,27 +1,40 @@
1/********************************************************************** 1/**********************************************************************
2** Copyright (C) 2002 Michael 'Mickey' Lauer. All rights reserved. 2** Copyright (C) 2002 Michael 'Mickey' Lauer. All rights reserved.
3** 3**
4** This file is part of Opie Environment. 4** This file is part of Opie Environment.
5** 5**
6** This file may be distributed and/or modified under the terms of the 6** This file may be distributed and/or modified under the terms of the
7** GNU General Public License version 2 as published by the Free Software 7** GNU General Public License version 2 as published by the Free Software
8** Foundation and appearing in the file LICENSE.GPL included in the 8** Foundation and appearing in the file LICENSE.GPL included in the
9** packaging of this file. 9** packaging of this file.
10** 10**
11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
13** 13**
14**********************************************************************/ 14**********************************************************************/
15 15
16#include "mainwindow.h" 16#include "mainwindow.h"
17#ifdef QWS
17#include <opie2/oapplication.h> 18#include <opie2/oapplication.h>
19#else
20#include <qapplication.h>
21#endif
18 22
19int main( int argc, char **argv ) 23int main( int argc, char **argv )
20{ 24{
25 #ifdef QWS
21 OApplication a( argc, argv, "Wellenreiter II" ); 26 OApplication a( argc, argv, "Wellenreiter II" );
27 #else
28 QApplication a( argc, argv );
29 #endif
22 WellenreiterMainWindow* w = new WellenreiterMainWindow(); 30 WellenreiterMainWindow* w = new WellenreiterMainWindow();
31 #ifdef QWS
23 a.showMainWidget( w ); 32 a.showMainWidget( w );
33 #else
34 a.setMainWidget( w );
35 w->show();
36 #endif
24 a.exec(); 37 a.exec();
25 delete w; 38 delete w;
26 return 0; 39 return 0;
27} 40}
diff --git a/noncore/net/wellenreiter/gui/wellenreiter.cpp b/noncore/net/wellenreiter/gui/wellenreiter.cpp
index 3bff7c4..41ffdcc 100644
--- a/noncore/net/wellenreiter/gui/wellenreiter.cpp
+++ b/noncore/net/wellenreiter/gui/wellenreiter.cpp
@@ -1,228 +1,240 @@
1/********************************************************************** 1/**********************************************************************
2** Copyright (C) 2002 Michael 'Mickey' Lauer. All rights reserved. 2** Copyright (C) 2002 Michael 'Mickey' Lauer. All rights reserved.
3** 3**
4** This file is part of Opie Environment. 4** This file is part of Opie Environment.
5** 5**
6** This file may be distributed and/or modified under the terms of the 6** This file may be distributed and/or modified under the terms of the
7** GNU General Public License version 2 as published by the Free Software 7** GNU General Public License version 2 as published by the Free Software
8** Foundation and appearing in the file LICENSE.GPL included in the 8** Foundation and appearing in the file LICENSE.GPL included in the
9** packaging of this file. 9** packaging of this file.
10** 10**
11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
13** 13**
14***********************************************************************/ 14***********************************************************************/
15 15
16// Qt
17
18#include <qpushbutton.h>
19#include <qmessagebox.h>
20#include <qcombobox.h>
21#include <qspinbox.h>
22#include <qsocketnotifier.h>
23
24// Opie 16// Opie
25 17
26#ifdef QWS 18#ifdef QWS
27#include <opie/odevice.h> 19#include <opie/odevice.h>
28using namespace Opie; 20using namespace Opie;
29#endif 21#endif
30 22
23#ifdef QWS
31#include <opie2/oapplication.h> 24#include <opie2/oapplication.h>
25#else
26#include <qapplication.h>
27#endif
32#include <opie2/onetwork.h> 28#include <opie2/onetwork.h>
33#include <opie2/opcap.h> 29#include <opie2/opcap.h>
34 30
31// Qt
32
33#include <qpushbutton.h>
34#include <qmessagebox.h>
35#include <qcombobox.h>
36#include <qspinbox.h>
37#include <qsocketnotifier.h>
38
35// Standard 39// Standard
36 40
37#include <assert.h> 41#include <assert.h>
38#include <errno.h> 42#include <errno.h>
39#include <unistd.h> 43#include <unistd.h>
40#include <string.h> 44#include <string.h>
41#include <sys/types.h> 45#include <sys/types.h>
42#include <stdlib.h> 46#include <stdlib.h>
43 47
44// Local 48// Local
45 49
46#include "wellenreiter.h" 50#include "wellenreiter.h"
47#include "scanlist.h" 51#include "scanlist.h"
48#include "logwindow.h" 52#include "logwindow.h"
49#include "hexwindow.h" 53#include "hexwindow.h"
50#include "configwindow.h" 54#include "configwindow.h"
51 55
52#include "manufacturers.h" 56#include "manufacturers.h"
53 57
54Wellenreiter::Wellenreiter( QWidget* parent ) 58Wellenreiter::Wellenreiter( QWidget* parent )
55 : WellenreiterBase( parent, 0, 0 ), 59 : WellenreiterBase( parent, 0, 0 ),
56 sniffing( false ), iface( 0 ), manufacturerdb( 0 ), configwindow( 0 ) 60 sniffing( false ), iface( 0 ), manufacturerdb( 0 ), configwindow( 0 )
57{ 61{
58 62
59 // 63 //
60 // construct manufacturer database 64 // construct manufacturer database
61 // 65 //
62 66
63 QString manufile; 67 QString manufile;
64 #ifdef QWS 68 #ifdef QWS
65 manufile.sprintf( "%s/share/wellenreiter/manufacturers.dat", (const char*) QPEApplication::qpeDir() ); 69 manufile.sprintf( "%s/share/wellenreiter/manufacturers.dat", (const char*) QPEApplication::qpeDir() );
66 #else 70 #else
67 manufile.sprintf( "/usr/local/share/wellenreiter/manufacturers.dat" ); 71 manufile.sprintf( "/usr/local/share/wellenreiter/manufacturers.dat" );
68 #endif 72 #endif
69 manufacturerdb = new ManufacturerDB( manufile ); 73 manufacturerdb = new ManufacturerDB( manufile );
70 74
71 logwindow->log( "(i) Wellenreiter has been started." ); 75 logwindow->log( "(i) Wellenreiter has been started." );
72 76
73 // 77 //
74 // detect operating system 78 // detect operating system
75 // 79 //
76 80
77 #ifdef QWS 81 #ifdef QWS
78 QString sys; 82 QString sys;
79 sys.sprintf( "(i) Running on '%s'.", (const char*) ODevice::inst()->systemString() ); 83 sys.sprintf( "(i) Running on '%s'.", (const char*) ODevice::inst()->systemString() );
80 _system = ODevice::inst()->system(); 84 _system = ODevice::inst()->system();
81 logwindow->log( sys ); 85 logwindow->log( sys );
82 #endif 86 #endif
83 87
84 // setup GUI 88 // setup GUI
85 netview->setColumnWidthMode( 1, QListView::Manual ); 89 netview->setColumnWidthMode( 1, QListView::Manual );
86 90
87 if ( manufacturerdb ) 91 if ( manufacturerdb )
88 netview->setManufacturerDB( manufacturerdb ); 92 netview->setManufacturerDB( manufacturerdb );
89 93
90 pcap = new OPacketCapturer(); 94 pcap = new OPacketCapturer();
91 95
92} 96}
93 97
94Wellenreiter::~Wellenreiter() 98Wellenreiter::~Wellenreiter()
95{ 99{
96 // no need to delete child widgets, Qt does it all for us 100 // no need to delete child widgets, Qt does it all for us
97 101
98 delete manufacturerdb; 102 delete manufacturerdb;
99 delete pcap; 103 delete pcap;
100} 104}
101 105
102void Wellenreiter::setConfigWindow( WellenreiterConfigWindow* cw ) 106void Wellenreiter::setConfigWindow( WellenreiterConfigWindow* cw )
103{ 107{
104 configwindow = cw; 108 configwindow = cw;
105} 109}
106 110
107void Wellenreiter::receivePacket(OPacket* p) 111void Wellenreiter::receivePacket(OPacket* p)
108{ 112{
109 logwindow->log( "(d) Received data from daemon" ); 113 logwindow->log( "(d) Received data from daemon" );
110 //TODO 114 //TODO
111 115
112 // check if we received a beacon frame 116 // check if we received a beacon frame
113 // static_cast is justified here 117 // static_cast is justified here
114 OWaveLanManagementPacket* beacon = static_cast<OWaveLanManagementPacket*>( p->child( "802.11 Management" ) ); 118 OWaveLanManagementPacket* beacon = static_cast<OWaveLanManagementPacket*>( p->child( "802.11 Management" ) );
115 if ( !beacon ) return; 119 if ( !beacon ) return;
116 QString type; 120 QString type;
117 121
118 //FIXME: Can stations in ESS mode can be distinguished from APs? 122 //FIXME: Can stations in ESS mode can be distinguished from APs?
119 //FIXME: Apparently yes, but not by listening to beacons, because 123 //FIXME: Apparently yes, but not by listening to beacons, because
120 //FIXME: they simply don't send beacons in infrastructure mode. 124 //FIXME: they simply don't send beacons in infrastructure mode.
121 //FIXME: so we also have to listen to data packets 125 //FIXME: so we also have to listen to data packets
122 126
123 if ( beacon->canIBSS() ) 127 if ( beacon->canIBSS() )
124 type = "adhoc"; 128 type = "adhoc";
125 else 129 else
126 type = "managed"; 130 type = "managed";
127 131
128 OWaveLanManagementSSID* ssid = static_cast<OWaveLanManagementSSID*>( p->child( "802.11 SSID" ) ); 132 OWaveLanManagementSSID* ssid = static_cast<OWaveLanManagementSSID*>( p->child( "802.11 SSID" ) );
129 QString essid = ssid ? ssid->ID() : QString("<unknown>"); 133 QString essid = ssid ? ssid->ID() : QString("<unknown>");
130 OWaveLanManagementDS* ds = static_cast<OWaveLanManagementDS*>( p->child( "802.11 DS" ) ); 134 OWaveLanManagementDS* ds = static_cast<OWaveLanManagementDS*>( p->child( "802.11 DS" ) );
131 int channel = ds ? ds->channel() : -1; 135 int channel = ds ? ds->channel() : -1;
132 136
133 OWaveLanPacket* header = static_cast<OWaveLanPacket*>( p->child( "802.11" ) ); 137 OWaveLanPacket* header = static_cast<OWaveLanPacket*>( p->child( "802.11" ) );
134 netView()->addNewItem( type, essid, header->macAddress2().toString(), header->usesWep(), channel, 0 ); 138 netView()->addNewItem( type, essid, header->macAddress2().toString(), header->usesWep(), channel, 0 );
135} 139}
136 140
137void Wellenreiter::startStopClicked() 141void Wellenreiter::startStopClicked()
138{ 142{
139 if ( sniffing ) 143 if ( sniffing )
140 { 144 {
141 disconnect( SIGNAL( receivedPacket(OPacket*) ), this, SLOT( receivePacket(OPacket*) ) ); 145 disconnect( SIGNAL( receivedPacket(OPacket*) ), this, SLOT( receivePacket(OPacket*) ) );
142 146
143 iface->setChannelHopping(); // stop hopping channels 147 iface->setChannelHopping(); // stop hopping channels
144 pcap->close(); 148 pcap->close();
145 sniffing = false; 149 sniffing = false;
150 #ifdef QWS
146 oApp->setTitle(); 151 oApp->setTitle();
152 #else
153 qApp->mainWidget()->setCaption( "Wellenreiter II" );
154 #endif
147 155
148 // get interface name from config window 156 // get interface name from config window
149 const QString& interface = configwindow->interfaceName->currentText(); 157 const QString& interface = configwindow->interfaceName->currentText();
150 ONetwork* net = ONetwork::instance(); 158 ONetwork* net = ONetwork::instance();
151 iface = static_cast<OWirelessNetworkInterface*>(net->interface( interface )); 159 iface = static_cast<OWirelessNetworkInterface*>(net->interface( interface ));
152 160
153 // switch off monitor mode 161 // switch off monitor mode
154 iface->setMonitorMode( false ); 162 iface->setMonitorMode( false );
155 // switch off promisc flag 163 // switch off promisc flag
156 iface->setPromiscuousMode( false ); 164 iface->setPromiscuousMode( false );
157 165
158 //TODO: Display "please wait..." (use owait?) 166 //TODO: Display "please wait..." (use owait?)
159 167
160 /* 168 /*
161 169
162 QString cmdline; 170 QString cmdline;
163 cmdline.sprintf( "ifdown %s; sleep 1; ifup %s", (const char*) interface, (const char*) interface, (const char*) interface ); 171 cmdline.sprintf( "ifdown %s; sleep 1; ifup %s", (const char*) interface, (const char*) interface, (const char*) interface );
164 system( cmdline ); //FIXME: Use OProcess 172 system( cmdline ); //FIXME: Use OProcess
165 173
166 */ 174 */
167 175
168 // message the user 176 // message the user
169 177
170 //QMessageBox::information( this, "Wellenreiter II", "Your wireless card\nshould now be usable again." ); 178 //QMessageBox::information( this, "Wellenreiter II", "Your wireless card\nshould now be usable again." );
171 } 179 }
172 180
173 else 181 else
174 { 182 {
175 // get configuration from config window 183 // get configuration from config window
176 184
177 const QString& interface = configwindow->interfaceName->currentText(); 185 const QString& interface = configwindow->interfaceName->currentText();
178 const int cardtype = configwindow->daemonDeviceType(); 186 const int cardtype = configwindow->daemonDeviceType();
179 const int interval = configwindow->daemonHopInterval(); 187 const int interval = configwindow->daemonHopInterval();
180 188
181 if ( ( interface == "" ) || ( cardtype == 0 ) ) 189 if ( ( interface == "" ) || ( cardtype == 0 ) )
182 { 190 {
183 QMessageBox::information( this, "Wellenreiter II", "Your device is not\nproperly configured. Please reconfigure!" ); 191 QMessageBox::information( this, "Wellenreiter II", "Your device is not\nproperly configured. Please reconfigure!" );
184 return; 192 return;
185 } 193 }
186 194
187 // configure device 195 // configure device
188 196
189 ONetwork* net = ONetwork::instance(); 197 ONetwork* net = ONetwork::instance();
190 iface = static_cast<OWirelessNetworkInterface*>(net->interface( interface )); 198 iface = static_cast<OWirelessNetworkInterface*>(net->interface( interface ));
191 199
192 // set monitor mode 200 // set monitor mode
193 201
194 switch ( cardtype ) 202 switch ( cardtype )
195 { 203 {
196 case 1: iface->setMonitoring( new OCiscoMonitoringInterface( iface ) ); break; 204 case 1: iface->setMonitoring( new OCiscoMonitoringInterface( iface ) ); break;
197 case 2: iface->setMonitoring( new OWlanNGMonitoringInterface( iface ) ); break; 205 case 2: iface->setMonitoring( new OWlanNGMonitoringInterface( iface ) ); break;
198 case 3: iface->setMonitoring( new OHostAPMonitoringInterface( iface ) ); break; 206 case 3: iface->setMonitoring( new OHostAPMonitoringInterface( iface ) ); break;
199 case 4: iface->setMonitoring( new OOrinocoMonitoringInterface( iface ) ); break; 207 case 4: iface->setMonitoring( new OOrinocoMonitoringInterface( iface ) ); break;
200 default: assert( 0 ); // shouldn't happen 208 default: assert( 0 ); // shouldn't happen
201 } 209 }
202 210
203 iface->setMonitorMode( true ); 211 iface->setMonitorMode( true );
204 212
205 // open pcap and start sniffing 213 // open pcap and start sniffing
206 pcap->open( interface ); 214 pcap->open( interface );
207 215
208 if ( !pcap->isOpen() ) 216 if ( !pcap->isOpen() )
209 { 217 {
210 QMessageBox::warning( this, "Wellenreiter II", "Can't open packet capturer:\n" + QString(strerror( errno ) )); 218 QMessageBox::warning( this, "Wellenreiter II", "Can't open packet capturer:\n" + QString(strerror( errno ) ));
211 return; 219 return;
212 } 220 }
213 221
214 // set capturer to non-blocking mode 222 // set capturer to non-blocking mode
215 pcap->setBlocking( false ); 223 pcap->setBlocking( false );
216 224
217 // start channel hopper 225 // start channel hopper
218 iface->setChannelHopping( 1000 ); //use interval from config window 226 iface->setChannelHopping( 1000 ); //use interval from config window
219 227
220 // connect 228 // connect
221 connect( pcap, SIGNAL( receivedPacket(OPacket*) ), this, SLOT( receivePacket(OPacket*) ) ); 229 connect( pcap, SIGNAL( receivedPacket(OPacket*) ), this, SLOT( receivePacket(OPacket*) ) );
222 230
223 logwindow->log( "(i) Daemon has been started." ); 231 logwindow->log( "(i) Daemon has been started." );
232 #ifdef QWS
224 oApp->setTitle( "Scanning ..." ); 233 oApp->setTitle( "Scanning ..." );
234 #else
235 qApp->mainWidget()->setCaption( "Wellenreiter II / Scanning ..." );
236 #endif
225 sniffing = true; 237 sniffing = true;
226 238
227 } 239 }
228} 240}
diff --git a/noncore/net/wellenreiter/lib/.cvsignore b/noncore/net/wellenreiter/lib/.cvsignore
new file mode 100644
index 0000000..924753a
--- a/dev/null
+++ b/noncore/net/wellenreiter/lib/.cvsignore
@@ -0,0 +1,4 @@
1*.o
2*~
3moc_*
4Makefile
diff --git a/noncore/net/wellenreiter/lib/lib.pro b/noncore/net/wellenreiter/lib/lib.pro
new file mode 100644
index 0000000..8728323
--- a/dev/null
+++ b/noncore/net/wellenreiter/lib/lib.pro
@@ -0,0 +1,28 @@
1MOC_DIR = ./tmp
2OBJECTS_DIR = ./tmp
3DESTDIR = $(OPIEDIR)/lib
4TEMPLATE = lib
5CONFIG = qt warn_on debug
6
7HEADERS = $(OPIEDIR)/libopie2/opieui/olistview.h \
8 $(OPIEDIR)/libopie2/opienet/onetutils.h \
9 $(OPIEDIR)/libopie2/opienet/onetwork.h \
10 $(OPIEDIR)/libopie2/opienet/opcap.h
11
12SOURCES = $(OPIEDIR)/libopie2/opieui/olistview.cpp \
13 $(OPIEDIR)/libopie2/opienet/onetutils.cpp \
14 $(OPIEDIR)/libopie2/opienet/onetwork.cpp \
15 $(OPIEDIR)/libopie2/opienet/opcap.cpp
16
17INCLUDEPATH += $(OPIEDIR)/include
18DEPENDPATH += $(OPIEDIR)/include
19LIBS = -lpcap
20TARGET = wellenreiter
21VERSION = 1.0.0
22
23contains( platform, x11 ) {
24 LIBS += -L$(OPIEDIR)/lib -Wl,-rpath,$(OPIEDIR)/lib
25 SOURCES += resource.cpp
26 HEADERS += resource.h
27}
28
diff --git a/noncore/net/wellenreiter/wellenreiter.pro b/noncore/net/wellenreiter/wellenreiter.pro
index d473695..6fe49c3 100644
--- a/noncore/net/wellenreiter/wellenreiter.pro
+++ b/noncore/net/wellenreiter/wellenreiter.pro
@@ -1,14 +1,13 @@
1TEMPLATE = subdirs 1TEMPLATE = subdirs
2unix:SUBDIRS = gui 2unix:SUBDIRS = lib gui
3
4 3
5!contains( platform, x11 ) { 4!contains( platform, x11 ) {
6 message( Configuring Wellenreiter for build on Opie ) 5 message( Configuring Wellenreiter for build on Opie )
7 include ( $(OPIEDIR)/include.pro ) 6 include ( $(OPIEDIR)/include.pro )
8} 7}
9 8
10contains( platform, x11 ) { 9contains( platform, x11 ) {
11 message( Configuring Wellenreiter for build on Qt/X11 ) 10 message( Configuring Wellenreiter for build on Qt/X11 )
12 system( mkdir -p $OPIEDIR/lib $OPIEDIR/bin $OPIEDIR/share/pics ) 11 system( mkdir -p $OPIEDIR/lib $OPIEDIR/bin $OPIEDIR/share/pics )
13} 12}
14 13