1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177
|
LATEST STATUS:
--------------
The File->Exit and Interface->Interface Control portions work. No other
menu options have been implemented. It will connect to a server and display
raw packets as they come in, but there are no maps, symbols, etc. There's
not any packet decoding either. The networking is both IPv4 and IPv6
compatible. It compiles/runs fine and should be very cross-platform at
this stage (must be compiled on each one though).
INITIAL PREPARATION:
--------------------
Qt4 development tools are required for compiling -or- GUI design. For SuSE
Linux they are in the "libqt4-devel" RPM package. This includes "qmake",
"uic", and "designer" (Qt4 Designer).
You'll also need the gcc-c++ compiler installed. For SuSE Linux that's in
the "gcc-c++" package.
You can do manual builds or builds from within Qt Creator. In general I
describe manual builds here.
MANUAL BUILD:
-------------
cd Xastir/src/qt
./build.sh
RUN THE EXECUTABLE:
-------------------
cd build
./xastir_qt &
GENERAL QT4 NOTES:
------------------
*) Do an out-of-source build to keep the source code directory pristine.
Perform all configure/compile commands from inside a "build" directory:
mkdir -p build
cd build
*) Use QT 4 Designer to create the graphical elements. Each
dialog/window gets written out to a separate *.ui file.
designer &
Open->mainwindow.ui
*) Manual compile of ".ui" files: Use the "uic" compiler to compile
.ui files to .h files: Note: The "qmake" command below does this
automatically!
uic -o *.h *.ui
*) moc -o mydialog.moc mydialog.h
*) Use "qmake -project" to create the initial .pro file for the
os-independent build system.
*) Include the .h files in the .cpp files for your C++ program.
*) Use "qmake" to build the project.
*) "make"
Examples: (Generic, not for the Xastir project:
uic -o ui_mydialog.h mydialog.ui
moc -o mydialog.moc mydialog.h
qmake -project
qmake
make
Once the project branch has been checked-out, these steps issued
from the command-line should compile it:
cd Xastir/src/qt
mkdir -p build
cd build
qmake ../xastir-qt.pro
make
Remember also that the *best* way to do multiple builds of an
autoconfiscated code (and a qmake-ified code) is do do out-of-source
builds, not in-source builds. Doing so keeps the source tree
unpolluted with build droppings. Thus,
mkdir ~/builds/xastir-qt -p
cd ~/builds/xastir-qt
qmake ~/src/xastir/qt/xastir-qt.pro
make
will build the qt stuff, and
mkdir ~/builds/xastir-motif -p
cd ~/builds/xastir-motif
~/src/xastir/configure
make
will build the normal build, and neither will interfere with the
other.
libqt4-devel rpm provides these binaries (as well as include files
and others). Those with '*' are the ones we currently use:
* /usr/bin/designer
/usr/bin/lconvert
/usr/bin/linguist
/usr/bin/lrelease
/usr/bin/lupdate
* /usr/bin/moc
/usr/bin/pixeltool
/usr/bin/qdbuscpp2xml
/usr/bin/qdbusxml2cpp
/usr/bin/qdoc3
/usr/bin/qhelpconverter
/usr/bin/qhelpgenerator
* /usr/bin/qmake
/usr/bin/qt3to4
/usr/bin/qttracereplay
/usr/bin/qvfb
/usr/bin/rcc
* /usr/bin/uic
/usr/bin/uic3
SPECIFIC NOTES:
---------------
Here's what Qt Creator does when you do a Build->Clean All:
-----------------------------------------------------------
Starting: /usr/bin/make clean -w
make: Entering directory `/home/src/we7u/xastir/xastir-qt'
rm -f moc_xastir.cpp
rm -f ui_mainwindow.h
rm -f main.o mainwindow.o moc_xastir.o
rm -f *~ core *.core
make: Leaving directory `/home/src/we7u/xastir/xastir-qt'
Exited with code 0.
Here's a Qt Creator Build->Build All command:
---------------------------------------------
Configuration unchanged, skipping QMake step.
Starting: /usr/bin/make -w
make: Entering directory `/home/src/we7u/xastir/xastir-qt'
/usr/bin/uic mainwindow.ui -o ui_mainwindow.h
g++ -c -m64 -pipe -g -Wall -W -D_REENTRANT -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++-64 -I. -I/usr/include/QtCore -I/usr/include/QtNetwork -I/usr/include/QtGui -I/usr/include -I. -I. -o main.o main.cpp
g++ -c -m64 -pipe -g -Wall -W -D_REENTRANT -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++-64 -I. -I/usr/include/QtCore -I/usr/include/QtNetwork -I/usr/include/QtGui -I/usr/include -I. -I. -o mainwindow.o mainwindow.cpp
/usr/bin/moc -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++-64 -I. -I/usr/include/QtCore -I/usr/include/QtNetwork -I/usr/include/QtGui -I/usr/include -I. -I. xastir.h -o moc_xastir.cpp
g++ -c -m64 -pipe -g -Wall -W -D_REENTRANT -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++-64 -I. -I/usr/include/QtCore -I/usr/include/QtNetwork -I/usr/include/QtGui -I/usr/include -I. -I. -o moc_xastir.o moc_xastir.cpp
g++ -m64 -o xastir-qt main.o mainwindow.o moc_xastir.o -L/usr/lib64 -lQtGui -L/usr/lib64 -L/usr/X11R6/lib64 -lQtNetwork -lQtCore -lpthread
make: Leaving directory `/home/src/we7u/xastir/xastir-qt'
Exited with code 0.
Here's a Qt Creator Build->Run qmake (I must have something misconfigured in my project):
-----------------------------------------------------------------------------------------
Starting: /usr/bin/qmake /home/src/we7u/xastir/xastir-qt/xastir-qt.pro -spec linux-g++-64 -r CONFIG+=debug QMLJSDEBUGGER_PATH=/usr/share/qtcreator/qml/qmljsdebugger
Exited with code 0.
<I'm pretty sure that Curt's notes below assume that there are
left-over droppings from a previous qmake on another system. None of
those files are still in CVS, so they shouldn't be relevant: you
should always need to do a qmake from a fresh check-out, and you are
highly advised to do an out-of-source build as noted above>
LINUX:
------
For Linux: Had to run "qmake;make" on a 32-bit system because all the files
had been created on a 64-bit system. On a 64-bit system just run "make".
|