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".


