From b76270bf9e6dd375e495fec92140a79a79415d27 Mon Sep 17 00:00:00 2001 From: Patrick J Volkerding Date: Wed, 19 May 2010 08:58:23 +0000 Subject: Slackware 13.1 Wed May 19 08:58:23 UTC 2010 Slackware 13.1 x86_64 stable is released! Lots of thanks are due -- see the RELEASE_NOTES and the rest of the ChangeLog for credits. The ISOs are on their way to replication, a 6 CD-ROM 32-bit set and a dual-sided 32-bit/64-bit x86/x86_64 DVD. We are taking pre-orders now at store.slackware.com, and offering a discount if you sign up for a subscription. Consider picking up a copy to help support the project. Thanks again to the Slackware community for testing, contributing, and generally holding us to a high level of quality. :-) Enjoy! --- source/d/oprofile/oprofile.SlackBuild | 55 +- source/d/oprofile/oprofile.qt4.diff | 3194 +++++++++++++++++++++++++++++++++ 2 files changed, 3241 insertions(+), 8 deletions(-) create mode 100644 source/d/oprofile/oprofile.qt4.diff (limited to 'source/d/oprofile') diff --git a/source/d/oprofile/oprofile.SlackBuild b/source/d/oprofile/oprofile.SlackBuild index 28feae4ab..8a9d2bef5 100755 --- a/source/d/oprofile/oprofile.SlackBuild +++ b/source/d/oprofile/oprofile.SlackBuild @@ -1,6 +1,6 @@ #!/bin/sh -# Copyright 2005-2009 Patrick J. Volkerding, Sebeka, MN, USA +# Copyright 2005-2010 Patrick J. Volkerding, Sebeka, MN, USA # All rights reserved. # # Redistribution and use of this script, with or without modification, is @@ -21,12 +21,21 @@ # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -VERSION=0.9.4 -ARCH=${ARCH:-x86_64} +VERSION=${VERSION:-$(echo oprofile-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} BUILD=${BUILD:-2} NUMJOBS=${NUMJOBS:-" -j7 "} +# Automatically determine the architecture we're building on: +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) export ARCH=i486 ;; + arm*) export ARCH=arm ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) export ARCH=$( uname -m ) ;; + esac +fi + if [ "$ARCH" = "i486" ]; then SLKCFLAGS="-O2 -march=i486 -mtune=i686" LIBDIRSUFFIX="" @@ -52,8 +61,13 @@ rm -rf $PKG mkdir -p $TMP $PKG cd $TMP || exit 1 rm -rf oprofile-$VERSION -tar xvf $CWD/oprofile-$VERSION.tar.bz2 || exit 1 +tar xvf $CWD/oprofile-$VERSION.tar.?z* || exit 1 cd oprofile-$VERSION + +zcat $CWD/oprofile.qt4.diff.gz | patch -p1 --verbose || exit 1 + +./autogen.sh + chown -R root:root . find . \ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ @@ -72,21 +86,46 @@ CXXFLAGS="$SLKCFLAGS" \ make $NUMJOBS || make || exit 1 make install DESTDIR=$PKG +# Strip binaries: +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + # This seems misplaced, and isn't referenced by any binaries or other files. # I'm tempted to think it shouldn't have been installed, but will just move it: if [ -r $PKG/usr/share/mangled-name ]; then mv $PKG/usr/share/mangled-name $PKG/usr/share/oprofile/mangled-name fi -( cd $PKG/usr/bin - strip --strip-unneeded * -) + mv $PKG/usr/share/doc $PKG/usr mv $PKG/usr/doc/oprofile $PKG/usr/doc/oprofile-$VERSION cp -a \ COPYING README TODO \ $PKG/usr/doc/oprofile-$VERSION -gzip -9 $PKG/usr/man/man?/* +# If there's a ChangeLog, installing at least part of the recent history +# is useful, but don't let it get totally out of control: +if [ -r ChangeLog ]; then + DOCSDIR=$(echo $PKG/usr/doc/*-$VERSION) + cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog + touch -r ChangeLog $DOCSDIR/ChangeLog +fi mkdir -p $PKG/install cat $CWD/slack-desc > $PKG/install/slack-desc diff --git a/source/d/oprofile/oprofile.qt4.diff b/source/d/oprofile/oprofile.qt4.diff new file mode 100644 index 000000000..e5506a82e --- /dev/null +++ b/source/d/oprofile/oprofile.qt4.diff @@ -0,0 +1,3194 @@ +commit 4513fe62e4517057374091092073e0940584ebe2 +Author: Tobias Doerffel +Date: Mon Jun 29 12:05:49 2009 +0200 + + Port GUI to Qt4 + +diff --git a/configure.in b/configure.in +index 6f684a0..883a7ad 100644 +--- a/configure.in ++++ b/configure.in +@@ -131,7 +131,7 @@ ORIG_X_SAVE_LIBS="$LIBS" + LIBS="$X_PRE_LIBS $LIBS $X_LIBS -lX11 $X_EXTRA_LIBS" + X_LIBS="$LIBS" + AC_SUBST(X_LIBS) +-QT_DO_IT_ALL ++QT4_DO_IT_ALL + LIBS="$ORIG_X_SAVE_LIBS" + + dnl enable pch for c++ +@@ -155,7 +155,7 @@ AC_SUBST(POPT_LIBS) + + # do NOT put tests here, they will fail in the case X is not installed ! + +-AM_CONDITIONAL(have_qt, test -n "$QT_LIB") ++AM_CONDITIONAL(have_qt, test -n "$QT4_LIB") + + AX_CFLAGS_OPTION(OP_CFLAGS,[-W]) + AX_CXXFLAGS_OPTION(OP_CXXFLAGS,[-W]) +@@ -258,7 +258,6 @@ AC_OUTPUT(Makefile \ + opjitconv/Makefile \ + pp/Makefile \ + gui/Makefile \ +- gui/ui/Makefile \ + module/Makefile \ + module/x86/Makefile \ + module/ia64/Makefile \ +@@ -268,8 +267,8 @@ AC_OUTPUT(Makefile \ + + AX_COPY_IF_CHANGE(doc/xsl/catalog-1.xml, doc/xsl/catalog.xml) + +-if test -z "$QT_LIB"; then +- echo "Warning: a working Qt not found; no GUI will be built" ++if test -z "$QT4_LIB"; then ++ echo "Warning: a working Qt4 not found; no GUI will be built" + fi + + if test "`getent passwd oprofile 2>/dev/null`" == "" || \ +diff --git a/gui/Makefile.am b/gui/Makefile.am +index ba5e27c..69e01dd 100644 +--- a/gui/Makefile.am ++++ b/gui/Makefile.am +@@ -1,5 +1,3 @@ +-SUBDIRS = ui +- + dist_sources = \ + oprof_start.cpp \ + oprof_start_config.cpp \ +@@ -14,7 +12,7 @@ EXTRA_DIST = $(dist_sources) + if have_qt + + AM_CPPFLAGS = \ +- @QT_INCLUDES@ \ ++ @QT4_INCLUDES@ \ + -I ${top_srcdir}/libop \ + -I ${top_srcdir}/libutil++ \ + -I ${top_srcdir}/libutil +@@ -25,19 +23,22 @@ bin_PROGRAMS = oprof_start + + oprof_start_SOURCES = $(dist_sources) + nodist_oprof_start_SOURCES = oprof_start.moc.cpp ++BUILT_SOURCES = ui_oprof_start.base.h + oprof_start_LDADD = \ + ../libutil++/libutil++.a \ + ../libop/libop.a \ + ../libutil/libutil.a \ +- ui/liboprof_start.a \ +- @QT_LDFLAGS@ \ +- @QT_LIB@ \ ++ @QT4_LDFLAGS@ \ ++ @QT4_LIB@ -lQt3Support \ + @X_LIBS@ + + oprof_start.moc.cpp: ${top_srcdir}/gui/oprof_start.h +- $(MOC) -o $@ ${top_srcdir}/gui/oprof_start.h ++ $(MOC4) -o $@ ${top_srcdir}/gui/oprof_start.h ++ ++ui_oprof_start.base.h: ${top_srcdir}/gui/ui/oprof_start.base.ui ++ $(UIC4) -o $@ $< + + clean-local: +- rm -f oprof_start.moc.cpp ++ rm -f oprof_start.moc.cpp ui_oprof_start.base.h + + endif +diff --git a/gui/oprof_start.cpp b/gui/oprof_start.cpp +index 0387136..615c8d7 100644 +--- a/gui/oprof_start.cpp ++++ b/gui/oprof_start.cpp +@@ -23,7 +23,6 @@ + #include + #include + #include +-#include + #include + #include + #include +@@ -32,7 +31,8 @@ + #include + #include + #include +-#include ++#include ++#include + + #include "config.h" + #include "oprof_start.h" +@@ -106,12 +106,15 @@ op_event_descr::op_event_descr() + + oprof_start::oprof_start() + : +- oprof_start_base(0, 0, false, 0), ++ QDialog(0), ++ oprof_start_base(), + event_count_validator(new QIntValidator(event_count_edit)), + current_event(0), + cpu_speed(op_cpu_frequency()), + total_nr_interrupts(0) + { ++ setupUi( this ); ++ + green_pixmap = new QPixmap(green_xpm); + red_pixmap = new QPixmap(red_xpm); + vector args; +@@ -124,7 +127,7 @@ oprof_start::oprof_start() + op_nr_counters = op_get_nr_counters(cpu_type); + + if (cpu_type == CPU_TIMER_INT) { +- setup_config_tab->removePage(counter_setup_page); ++ setup_config_tab->removeTab(setup_config_tab->indexOf(counter_setup_page)); + } else { + fill_events(); + } +@@ -268,12 +271,12 @@ void oprof_start::fill_events() + namespace { + + /// find the first item with the given text in column 0 or return NULL +-QListViewItem * findItem(QListView * view, char const * name) ++Q3ListViewItem * findItem(Q3ListView * view, char const * name) + { +- // Qt 2.3.1 does not have QListView::findItem() +- QListViewItem * item = view->firstChild(); ++ // Qt 2.3.1 does not have Q3ListView::findItem() ++ Q3ListViewItem * item = view->firstChild(); + +- while (item && strcmp(item->text(0).latin1(), name)) ++ while (item && strcmp(item->text(0).toLatin1().constData(), name)) + item = item->nextSibling(); + + return item; +@@ -292,7 +295,7 @@ void oprof_start::setup_default_event() + event_cfgs[descr.name].user_ring_count = 1; + event_cfgs[descr.name].os_ring_count = 1; + +- QListViewItem * item = findItem(events_list, descr.name); ++ Q3ListViewItem * item = findItem(events_list, descr.name); + if (item) + item->setSelected(true); + } +@@ -349,7 +352,7 @@ void oprof_start::read_set_events() + event_cfgs[ev_name].os_ring_count = 1; + } + +- QListViewItem * item = findItem(events_list, ev_name.c_str()); ++ Q3ListViewItem * item = findItem(events_list, ev_name.c_str()); + if (item) + item->setSelected(true); + } +@@ -436,7 +439,7 @@ void oprof_start::fill_events_listbox() + + for (vector::reverse_iterator cit = v_events.rbegin(); + cit != v_events.rend(); ++cit) { +- new QListViewItem(events_list, cit->name.c_str()); ++ new Q3ListViewItem(events_list, cit->name.c_str()); + } + + setUpdatesEnabled(true); +@@ -467,7 +470,7 @@ void oprof_start::display_event(op_event_descr const & descr) + } + + +-bool oprof_start::is_selectable_event(QListViewItem * item) ++bool oprof_start::is_selectable_event(Q3ListViewItem * item) + { + if (item->isSelected()) + return true; +@@ -486,7 +489,7 @@ bool oprof_start::is_selectable_event(QListViewItem * item) + + void oprof_start::draw_event_list() + { +- QListViewItem * cur; ++ Q3ListViewItem * cur; + for (cur = events_list->firstChild(); cur; cur = cur->nextSibling()) { + if (is_selectable_event(cur)) + cur->setPixmap(0, *green_pixmap); +@@ -500,9 +503,9 @@ bool oprof_start::alloc_selected_events() const + { + vector events; + +- set::const_iterator it; ++ set::const_iterator it; + for (it = selected_events.begin(); it != selected_events.end(); ++it) +- events.push_back(find_event_by_name((*it)->text(0).latin1(),0,0)); ++ events.push_back(find_event_by_name((*it)->text(0).toLatin1().constData(),0,0)); + + size_t * map = + map_event_to_counter(&events[0], events.size(), cpu_type); +@@ -520,24 +523,24 @@ void oprof_start::event_selected() + // (de)selected item so we record a set of selected items and diff + // it in the appropriate way with the previous list of selected items. + +- set current_selection; +- QListViewItem * cur; ++ set current_selection; ++ Q3ListViewItem * cur; + for (cur = events_list->firstChild(); cur; cur = cur->nextSibling()) { + if (cur->isSelected()) + current_selection.insert(cur); + } + + // First remove the deselected item. +- vector new_deselected; ++ vector new_deselected; + set_difference(selected_events.begin(), selected_events.end(), + current_selection.begin(), current_selection.end(), + back_inserter(new_deselected)); +- vector::const_iterator it; ++ vector::const_iterator it; + for (it = new_deselected.begin(); it != new_deselected.end(); ++it) + selected_events.erase(*it); + + // Now try to add the newly selected item if enough HW resource exists +- vector new_selected; ++ vector new_selected; + set_difference(current_selection.begin(), current_selection.end(), + selected_events.begin(), selected_events.end(), + back_inserter(new_selected)); +@@ -554,26 +557,26 @@ void oprof_start::event_selected() + draw_event_list(); + + if (current_event) +- display_event(locate_event(current_event->text(0).latin1())); ++ display_event(locate_event(current_event->text(0).toLatin1().constData())); + } + + +-void oprof_start::event_over(QListViewItem * item) ++void oprof_start::event_over(Q3ListViewItem * item) + { +- op_event_descr const & descr = locate_event(item->text(0).latin1()); ++ op_event_descr const & descr = locate_event(item->text(0).toLatin1().constData()); + + string help_str = descr.help_str.c_str(); + if (!is_selectable_event(item)) { + help_str += " conflicts with:"; + +- set::const_iterator it; ++ set::const_iterator it; + for (it = selected_events.begin(); + it != selected_events.end(); ) { +- QListViewItem * temp = *it; ++ Q3ListViewItem * temp = *it; + selected_events.erase(it++); + if (is_selectable_event(item)) { + help_str += " "; +- help_str += temp->text(0).latin1(); ++ help_str += temp->text(0).toLatin1().constData(); + } + selected_events.insert(temp); + } +@@ -586,7 +589,7 @@ void oprof_start::event_over(QListViewItem * item) + /// select the kernel image filename + void oprof_start::choose_kernel_filename() + { +- string name = kernel_filename_edit->text().latin1(); ++ string name = kernel_filename_edit->text().toLatin1().constData(); + string result = do_open_file_or_dir(name, false); + + if (!result.empty()) +@@ -601,7 +604,7 @@ void oprof_start::record_selected_event_config() + if (!current_event) + return; + +- string name(current_event->text(0).latin1()); ++ string name(current_event->text(0).toLatin1().constData()); + + event_setting & cfg = event_cfgs[name]; + op_event_descr const & curr = locate_event(name); +@@ -617,7 +620,7 @@ void oprof_start::record_selected_event_config() + // are not sufficient to do the validation) + bool oprof_start::record_config() + { +- config.kernel_filename = kernel_filename_edit->text().latin1(); ++ config.kernel_filename = kernel_filename_edit->text().toLatin1().constData(); + config.no_kernel = no_vmlinux->isChecked(); + + uint temp = buffer_size_edit->text().toUInt(); +@@ -824,7 +827,7 @@ uint oprof_start::max_perf_count() const + } + + +-void oprof_start::on_flush_profiler_data() ++void oprof_start::flush_profiler_data() + { + vector args; + args.push_back("--dump"); +@@ -837,14 +840,14 @@ void oprof_start::on_flush_profiler_data() + + + // user is happy of its setting. +-void oprof_start::on_start_profiler() ++void oprof_start::start_profiler() + { + // save the current settings + record_selected_event_config(); + + bool one_enable = false; + +- QListViewItem * cur; ++ Q3ListViewItem * cur; + for (cur = events_list->firstChild(); cur; cur = cur->nextSibling()) { + if (!cur->isSelected()) + continue; +@@ -852,9 +855,9 @@ void oprof_start::on_start_profiler() + // the missing reference is intended: gcc 2.91.66 can compile + // "op_event_descr const & descr = ..." w/o a warning + op_event_descr const descr = +- locate_event(cur->text(0).latin1()); ++ locate_event(cur->text(0).toLatin1().constData()); + +- event_setting & cfg = event_cfgs[cur->text(0).latin1()]; ++ event_setting & cfg = event_cfgs[cur->text(0).toLatin1().constData()]; + + one_enable = true; + +@@ -909,7 +912,7 @@ void oprof_start::on_start_profiler() + return; + + // this flush profiler data also. +- on_stop_profiler(); ++ stop_profiler(); + } + + vector args; +@@ -946,15 +949,15 @@ bool oprof_start::save_config() + vector tmpargs; + tmpargs.push_back("--setup"); + +- QListViewItem * cur; ++ Q3ListViewItem * cur; + for (cur = events_list->firstChild(); cur; cur = cur->nextSibling()) { + if (!cur->isSelected()) + continue; + +- event_setting & cfg = event_cfgs[cur->text(0).latin1()]; ++ event_setting & cfg = event_cfgs[cur->text(0).toLatin1().constData()]; + + op_event_descr const & descr = +- locate_event(cur->text(0).latin1()); ++ locate_event(cur->text(0).toLatin1().constData()); + + one_enabled = true; + +@@ -1016,7 +1019,7 @@ bool oprof_start::save_config() + + + // flush and stop the profiler if it was started. +-void oprof_start::on_stop_profiler() ++void oprof_start::stop_profiler() + { + vector args; + args.push_back("--shutdown"); +@@ -1030,13 +1033,13 @@ void oprof_start::on_stop_profiler() + } + + +-void oprof_start::on_separate_kernel_cb_changed(int state) ++void oprof_start::separate_kernel_cb_changed(int state) + { + if (state == 2) + separate_lib_cb->setChecked(true); + } + +-void oprof_start::on_reset_sample_files() ++void oprof_start::reset_sample_files() + { + int ret = QMessageBox::warning(this, 0, "Are you sure you want to " + "reset your last profile session ?", "Yes", "No", 0, 0, 1); +diff --git a/gui/oprof_start.h b/gui/oprof_start.h +index c2910ee..a2c5eb5 100644 +--- a/gui/oprof_start.h ++++ b/gui/oprof_start.h +@@ -16,13 +16,16 @@ + #include + #include + +-#include "ui/oprof_start.base.h" ++#include ++class QColorGroup; ++ ++#include "ui_oprof_start.base.h" + #include "oprof_start_config.h" + + #include "op_events.h" + + class QIntValidator; +-class QListViewItem; ++class Q3ListViewItem; + class QTimerEvent; + + /// a struct describing a particular event type +@@ -43,7 +46,7 @@ struct op_event_descr { + uint min_count; + }; + +-class oprof_start : public oprof_start_base ++class oprof_start : public QDialog, public Ui::oprof_start_base + { + Q_OBJECT + +@@ -54,19 +57,19 @@ protected slots: + /// select the kernel image filename + void choose_kernel_filename(); + /// flush profiler +- void on_flush_profiler_data(); ++ void flush_profiler_data(); + /// start profiler +- void on_start_profiler(); ++ void start_profiler(); + /// stop profiler +- void on_stop_profiler(); ++ void stop_profiler(); + /// events selection change + void event_selected(); + /// the mouse is over an event +- void event_over(QListViewItem *); ++ void event_over(Q3ListViewItem *); + /// state of separate_kernel_cb changed +- void on_separate_kernel_cb_changed(int); ++ void separate_kernel_cb_changed(int); + /// reset sample files +- void on_reset_sample_files(); ++ void reset_sample_files(); + + /// close the dialog + void accept(); +@@ -121,7 +124,7 @@ private: + void draw_event_list(); + + /// return true if item is selectable or already selected +- bool is_selectable_event(QListViewItem * item); ++ bool is_selectable_event(Q3ListViewItem * item); + + /// try to alloc counters for the selected_events + bool alloc_selected_events() const; +@@ -139,8 +142,8 @@ private: + /// The currently selected events. We must track this because + /// with multiple selection listbox QT doesn't allow to know + /// what is the last selected item. events_selected() update it +- std::set selected_events; +- QListViewItem * current_event; ++ std::set selected_events; ++ Q3ListViewItem * current_event; + + /// current config + config_setting config; +diff --git a/gui/oprof_start_main.cpp b/gui/oprof_start_main.cpp +index 44da5de..4930d9a 100644 +--- a/gui/oprof_start_main.cpp ++++ b/gui/oprof_start_main.cpp +@@ -19,7 +19,7 @@ int main(int argc, char* argv[]) + + oprof_start* dlg = new oprof_start(); + +- a.setMainWidget(dlg); ++ a.setActiveWindow(dlg); + + dlg->show(); + +diff --git a/gui/oprof_start_util.cpp b/gui/oprof_start_util.cpp +index d293431..17359ae 100644 +--- a/gui/oprof_start_util.cpp ++++ b/gui/oprof_start_util.cpp +@@ -293,17 +293,16 @@ string const do_open_file_or_dir(string const & base_dir, bool dir_only) + QString result; + + if (dir_only) { +- result = QFileDialog::getExistingDirectory(base_dir.c_str(), 0, +- "open_file_or_dir", "Get directory name", true); ++ result = QFileDialog::getExistingDirectory(NULL, "Get directory name", ++ base_dir.c_str(), QFileDialog::ShowDirsOnly); + } else { +- result = QFileDialog::getOpenFileName(base_dir.c_str(), 0, 0, +- "open_file_or_dir", "Get filename"); ++ result = QFileDialog::getOpenFileName(NULL, "Get filename", base_dir.c_str()); + } + + if (result.isNull()) + return string(); + else +- return result.latin1(); ++ return result.toLatin1().constData(); + } + + /** +diff --git a/gui/ui/oprof_start.base.ui b/gui/ui/oprof_start.base.ui +index 4fcc43f..b882656 100644 +--- a/gui/ui/oprof_start.base.ui ++++ b/gui/ui/oprof_start.base.ui +@@ -1,1190 +1,1055 @@ +- +-oprof_start_base +- +- QDialog +- +- name +- oprof_start_base +- +- +- geometry +- +- 0 +- 0 +- 625 +- 735 +- +- +- +- caption +- Start profiler +- +- +- sizeGripEnabled +- true +- +- +- +- margin +- 11 +- +- +- spacing +- 6 +- +- +- QTabWidget +- +- name +- setup_config_tab ++ ++ ++ oprof_start_base ++ ++ ++ ++ 0 ++ 0 ++ 625 ++ 735 ++ ++ ++ ++ Start profiler ++ ++ ++ true ++ ++ ++ ++ 6 ++ ++ ++ 11 ++ ++ ++ ++ ++ ++ &Setup ++ ++ ++ ++ 6 ++ ++ ++ 11 ++ ++ ++ ++ ++ Events ++ ++ ++ ++ 6 ++ ++ ++ 11 ++ ++ ++ ++ ++ 6 + +- +- QWidget +- +- name +- counter_setup_page ++ ++ 0 ++ ++ ++ ++ ++ ++ 250 ++ 0 ++ ++ ++ ++ Available events ++ ++ ++ Q3ListView::Multi ++ ++ ++ ++ Removedincode ++ ++ ++ false ++ ++ ++ true ++ ++ ++ ++ ++ ++ ++ ++ 6 ++ ++ ++ 0 ++ ++ ++ ++ ++ Profile kernel code + +- +- title +- &Setup +- +- +- +- margin +- 11 +- +- +- spacing +- 6 +- +- +- QGroupBox +- +- name +- counter_group +- +- +- title +- Events +- +- +- +- margin +- 11 +- +- +- spacing +- 6 +- +- +- QLayoutWidget +- +- name +- Layout10 +- +- +- +- margin +- 0 +- +- +- spacing +- 6 +- +- +- QListView +- +- +- text +- Removedincode +- +- +- clickable +- false +- +- +- resizeable +- true +- +- +- +- name +- events_list +- +- +- minimumSize +- +- 250 +- 0 +- +- +- +- selectionMode +- Multi +- +- +- toolTip +- Available events +- +- +- +- QLayoutWidget +- +- name +- Layout9 +- +- +- +- margin +- 0 +- +- +- spacing +- 6 +- +- +- QCheckBox +- +- name +- os_ring_count_cb +- +- +- text +- Profile &kernel +- +- +- toolTip +- Profile kernel code +- +- +- +- QCheckBox +- +- name +- user_ring_count_cb +- +- +- text +- Profile &user binaries +- +- +- toolTip +- Profile user libraries and applications +- +- +- +- QLayoutWidget +- +- name +- Layout16 +- +- +- +- margin +- 0 +- +- +- spacing +- 6 +- +- +- QLabel +- +- name +- TextLabel1_2 +- +- +- text +- C&ount +- +- +- buddy +- event_count_edit +- +- +- +- QLineEdit +- +- name +- event_count_edit +- +- +- sizePolicy +- +- 1 +- 0 +- +- +- +- toolTip +- Set the count value +- +- +- +- +- name +- Spacer13_2 +- +- +- orientation +- Horizontal +- +- +- sizeType +- Expanding +- +- +- sizeHint +- +- 20 +- 20 +- +- +- +- +- +- +- QButtonGroup +- +- name +- unit_mask_group +- +- +- sizePolicy +- +- 1 +- 5 +- +- +- +- title +- Unit mask +- +- +- toolTip +- Unit mask settings for this event +- +- +- +- margin +- 11 +- +- +- spacing +- 6 +- +- +- QCheckBox +- +- name +- check0 +- +- +- text +- check0 +- +- +- +- QCheckBox +- +- name +- check1 +- +- +- text +- check1 +- +- +- +- QCheckBox +- +- name +- check2 +- +- +- text +- check2 +- +- +- +- QCheckBox +- +- name +- check3 +- +- +- text +- check3 +- +- +- +- QCheckBox +- +- name +- check4 +- +- +- text +- check4 +- +- +- +- QCheckBox +- +- name +- check5 +- +- +- text +- check5 +- +- +- +- QCheckBox +- +- name +- check6 +- +- +- text +- check6 +- +- +- +- QCheckBox +- +- name +- check7 +- +- +- text +- check7 +- +- +- +- +- name +- Spacer14 +- +- +- orientation +- Vertical +- +- +- sizeType +- Expanding +- +- +- sizeHint +- +- 20 +- 20 +- +- +- +- +- QCheckBox +- +- name +- check11 +- +- +- text +- check11 +- +- +- +- QCheckBox +- +- name +- check13 +- +- +- text +- check13 +- +- +- +- QCheckBox +- +- name +- check15 +- +- +- text +- check15 +- +- +- +- QCheckBox +- +- name +- check10 +- +- +- text +- check10 +- +- +- +- QCheckBox +- +- name +- check14 +- +- +- text +- check14 +- +- +- +- QCheckBox +- +- name +- check9 +- +- +- text +- check9 +- +- +- +- QCheckBox +- +- name +- check8 +- +- +- text +- check8 +- +- +- +- QCheckBox +- +- name +- check12 +- +- +- text +- check12 +- +- +- +- +- +- +- +- +- +- QLabel +- +- name +- event_help_label +- +- +- enabled +- true +- +- +- sizePolicy +- +- 1 +- 1 +- +- +- +- frameShape +- WinPanel +- +- +- frameShadow +- Sunken +- +- +- text +- +- +- +- +- +- +- +- +- QWidget +- +- name +- configuration_page ++ ++ Profile &kernel + +- +- title +- &Configuration +- +- +- +- margin +- 11 +- +- +- spacing +- 6 +- +- +- QLayoutWidget +- +- name +- Layout11 +- +- +- +- margin +- 0 +- +- +- spacing +- 6 +- +- +- QLabel +- +- name +- TextLabel1 +- +- +- text +- &Kernel image file +- +- +- buddy +- kernel_filename_edit +- +- +- +- QLineEdit +- +- name +- kernel_filename_edit +- +- +- toolTip +- The vmlinux file of the running kernel +- +- +- +- QToolButton +- +- name +- kernel_filename_tb +- +- +- text +- ... +- +- +- +- QCheckBox +- +- name +- no_vmlinux +- +- +- text +- No kernel image +- +- +- toolTip +- No kernel image available. Disables kernel profiling. +- +- +- +- +- +- QLayoutWidget +- +- name +- Layout12 +- +- +- +- margin +- 0 +- +- +- spacing +- 6 +- +- +- QLayoutWidget +- +- name +- Layout11 +- +- +- +- margin +- 0 +- +- +- spacing +- 6 +- +- +- QLineEdit +- +- name +- buffer_size_edit +- +- +- toolTip +- The size of the profiler's buffers +- +- +- +- QLineEdit +- +- name +- note_table_size_edit +- +- +- +- QLabel +- +- name +- cpu_buffer_size_label +- +- +- text +- Cpu buffer size +- +- +- buddy +- cpu_buffer_size_edit +- +- +- +- QLineEdit +- +- name +- cpu_buffer_size_edit +- +- +- +- QLabel +- +- name +- buffer_size_label +- +- +- text +- &Buffer size +- +- +- buddy +- buffer_size_edit +- +- +- +- QLabel +- +- name +- note_table_size_label +- +- +- text +- Note Size +- +- +- buddy +- note_table_size_edit +- +- +- +- QLineEdit +- +- name +- buffer_watershed_edit +- +- +- +- QLabel +- +- name +- buffer_watershed_label +- +- +- text +- Buffer watershed +- +- +- buddy +- buffer_watershed_edit +- +- +- +- +- +- +- name +- Spacer11 +- +- +- orientation +- Horizontal +- +- +- sizeType +- Expanding +- +- +- sizeHint +- +- 20 +- 20 +- +- +- +- +- +- +- QLayoutWidget +- +- name +- Layout36 +- +- +- +- margin +- 0 +- +- +- spacing +- 6 +- +- +- QLayoutWidget +- +- name +- Layout34 +- +- +- +- margin +- 0 +- +- +- spacing +- 6 +- +- +- QCheckBox +- +- name +- verbose +- +- +- text +- &Verbose +- +- +- toolTip +- Very verbose output in log file +- +- +- +- QCheckBox +- +- name +- separate_lib_cb +- +- +- text +- Per-application profiles +- +- +- toolTip +- Separate samples for each shared library. This increases the time and space overhead of OProfile. +- +- +- +- QCheckBox +- +- name +- separate_kernel_cb +- +- +- text +- Per-application profiles, including kernel +- +- +- toolTip +- Separate samples for each shared library and kernel samples. This increases the time and space overhead of OProfile. +- +- +- +- QCheckBox +- +- name +- separate_cpu_cb +- +- +- text +- Per-CPU profiles +- +- +- toolTip +- Separate samples for each shared library and kernel samples. This increases the time and space overhead of OProfile. +- +- +- +- QCheckBox +- +- name +- separate_thread_cb +- +- +- text +- Per-thread/task profiles +- +- +- toolTip +- Separate samples for each shared library and kernel samples. This increases the time and space overhead of OProfile. +- +- +- +- QLayoutWidget +- +- name +- Layout33 +- +- +- +- margin +- 0 +- +- +- spacing +- 6 +- +- +- QLabel +- +- name +- callgraph_depth_label +- +- +- text +- callgraph depth, zero to disable +- +- +- buddy +- callgraph_depth_edit +- +- +- +- QLineEdit +- +- name +- callgraph_depth_edit +- +- +- +- +- +- +- +- +- name +- Spacer12 +- +- +- orientation +- Horizontal +- +- +- sizeType +- Expanding +- +- +- sizeHint +- +- 20 +- 20 +- +- +- +- +- +- +- +- name +- Spacer9 +- +- +- orientation +- Vertical +- +- +- sizeType +- Expanding +- +- +- sizeHint +- +- 20 +- 20 +- +- +- +- +- +- +- +- QLabel +- +- name +- daemon_label ++ ++ ++ ++ ++ ++ Profile user libraries and applications ++ ++ ++ Profile &user binaries ++ ++ ++ ++ ++ ++ ++ 6 ++ ++ ++ 0 ++ ++ ++ ++ ++ C&ount ++ ++ ++ false ++ ++ ++ event_count_edit ++ ++ ++ ++ ++ ++ ++ ++ 0 ++ 0 ++ ++ ++ ++ Set the count value ++ ++ ++ ++ ++ ++ ++ Qt::Horizontal ++ ++ ++ QSizePolicy::Expanding ++ ++ ++ ++ 20 ++ 20 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ 0 ++ 0 ++ ++ ++ ++ Unit mask settings for this event ++ ++ ++ Unit mask ++ ++ ++ ++ 11 ++ ++ ++ 6 ++ ++ ++ ++ ++ check0 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ check1 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ check2 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ check3 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ check4 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ check5 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ check6 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ check7 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ Qt::Vertical ++ ++ ++ QSizePolicy::Expanding ++ ++ ++ ++ 20 ++ 20 ++ ++ ++ ++ ++ ++ ++ ++ check11 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ check13 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ check15 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ check10 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ check14 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ check9 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ check8 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ check12 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ true + +- +- frameShape +- Panel ++ ++ ++ 0 ++ 0 ++ + +- +- frameShadow +- Sunken ++ ++ QFrame::Panel + +- +- text +- ++ ++ QFrame::Sunken + +- +- toolTip +- Current daemon status ++ ++ + +- +- +- QLayoutWidget +- +- name +- Layout37 ++ ++ false + +- +- +- margin +- 0 +- +- +- spacing +- 6 +- +- +- QPushButton +- +- name +- start_profiler_btn +- +- +- text +- St&art +- +- +- +- QPushButton +- +- name +- flush_profiler_data_btn +- +- +- text +- &Flush +- +- +- +- QPushButton +- +- name +- stop_profiler_btn +- +- +- text +- Stop +- +- +- +- +- name +- Spacer5 +- +- +- orientation +- Horizontal +- +- +- sizeType +- Expanding +- +- +- sizeHint +- +- 20 +- 20 +- +- +- +- +- QPushButton +- +- name +- reset_sample_files_btn +- +- +- text +- Reset sample files +- +- +- +- QPushButton +- +- name +- quit_and_save_btn +- +- +- text +- Save and &quit +- +- +- autoDefault +- true +- +- +- ++ ++ ++ + +- +- +- +- +- start_profiler_btn +- clicked() +- oprof_start_base +- on_start_profiler() +- +- +- stop_profiler_btn +- clicked() +- oprof_start_base +- on_stop_profiler() +- +- +- flush_profiler_data_btn +- clicked() +- oprof_start_base +- on_flush_profiler_data() +- +- +- quit_and_save_btn +- clicked() +- oprof_start_base +- accept() +- +- +- kernel_filename_tb +- clicked() +- oprof_start_base +- choose_kernel_filename() +- +- +- no_vmlinux +- toggled(bool) +- kernel_filename_tb +- setDisabled(bool) +- +- +- no_vmlinux +- toggled(bool) +- kernel_filename_edit +- setDisabled(bool) +- +- +- no_vmlinux +- toggled(bool) +- TextLabel1 +- setDisabled(bool) +- +- +- separate_kernel_cb +- stateChanged(int) +- oprof_start_base +- on_separate_kernel_cb_changed(int) +- +- +- reset_sample_files_btn +- clicked() +- oprof_start_base +- on_reset_sample_files() +- +- +- events_list +- selectionChanged() +- oprof_start_base +- event_selected() +- +- +- events_list +- currentChanged(QListViewItem*) +- oprof_start_base +- event_over(QListViewItem *) +- +- +- events_list +- onItem(QListViewItem*) +- oprof_start_base +- event_over(QListViewItem *) +- +- choose_kernel_filename() +- event_over(QListViewItem *) +- event_selected() +- on_reset_sample_files() +- on_flush_profiler_data() +- on_separate_kernel_cb_changed(int) +- on_start_profiler() +- on_stop_profiler() +- +- +- setup_config_tab +- events_list +- os_ring_count_cb +- user_ring_count_cb +- event_count_edit +- check0 +- check1 +- check2 +- check3 +- check4 +- check5 +- check6 +- check7 +- check8 +- check9 +- check10 +- check11 +- check12 +- check13 +- check14 +- check15 +- start_profiler_btn +- flush_profiler_data_btn +- stop_profiler_btn +- reset_sample_files_btn +- quit_and_save_btn +- kernel_filename_edit +- no_vmlinux +- buffer_size_edit +- note_table_size_edit +- buffer_watershed_edit +- verbose +- separate_lib_cb +- separate_kernel_cb +- separate_cpu_cb +- separate_thread_cb +- callgraph_depth_edit +- +- ++ ++ ++ ++ ++ ++ &Configuration ++ ++ ++ ++ 6 ++ ++ ++ 11 ++ ++ ++ ++ ++ 6 ++ ++ ++ 0 ++ ++ ++ ++ ++ &Kernel image file ++ ++ ++ false ++ ++ ++ kernel_filename_edit ++ ++ ++ ++ ++ ++ ++ The vmlinux file of the running kernel ++ ++ ++ ++ ++ ++ ++ ... ++ ++ ++ ++ ++ ++ ++ No kernel image available. Disables kernel profiling. ++ ++ ++ No kernel image ++ ++ ++ ++ ++ ++ ++ ++ ++ 6 ++ ++ ++ 0 ++ ++ ++ ++ ++ 0 ++ ++ ++ 6 ++ ++ ++ ++ ++ The size of the profiler's buffers ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ Cpu buffer size ++ ++ ++ false ++ ++ ++ cpu_buffer_size_edit ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ &Buffer size ++ ++ ++ false ++ ++ ++ buffer_size_edit ++ ++ ++ ++ ++ ++ ++ Note Size ++ ++ ++ false ++ ++ ++ note_table_size_edit ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ Buffer watershed ++ ++ ++ false ++ ++ ++ buffer_watershed_edit ++ ++ ++ ++ ++ ++ ++ ++ ++ Qt::Horizontal ++ ++ ++ QSizePolicy::Expanding ++ ++ ++ ++ 20 ++ 20 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ 0 ++ ++ ++ 6 ++ ++ ++ ++ ++ 6 ++ ++ ++ 0 ++ ++ ++ ++ ++ Very verbose output in log file ++ ++ ++ &Verbose ++ ++ ++ ++ ++ ++ ++ Separate samples for each shared library. This increases the time and space overhead of OProfile. ++ ++ ++ Per-application profiles ++ ++ ++ ++ ++ ++ ++ Separate samples for each shared library and kernel samples. This increases the time and space overhead of OProfile. ++ ++ ++ Per-application profiles, including kernel ++ ++ ++ ++ ++ ++ ++ Separate samples for each shared library and kernel samples. This increases the time and space overhead of OProfile. ++ ++ ++ Per-CPU profiles ++ ++ ++ ++ ++ ++ ++ Separate samples for each shared library and kernel samples. This increases the time and space overhead of OProfile. ++ ++ ++ Per-thread/task profiles ++ ++ ++ ++ ++ ++ ++ 6 ++ ++ ++ 0 ++ ++ ++ ++ ++ callgraph depth, zero to disable ++ ++ ++ false ++ ++ ++ callgraph_depth_edit ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ Qt::Horizontal ++ ++ ++ QSizePolicy::Expanding ++ ++ ++ ++ 20 ++ 20 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ Qt::Vertical ++ ++ ++ QSizePolicy::Expanding ++ ++ ++ ++ 20 ++ 20 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ Current daemon status ++ ++ ++ QFrame::Panel ++ ++ ++ QFrame::Sunken ++ ++ ++ ++ ++ ++ false ++ ++ ++ ++ ++ ++ ++ 6 ++ ++ ++ 0 ++ ++ ++ ++ ++ St&art ++ ++ ++ ++ ++ ++ ++ &Flush ++ ++ ++ ++ ++ ++ ++ Stop ++ ++ ++ ++ ++ ++ ++ Qt::Horizontal ++ ++ ++ QSizePolicy::Expanding ++ ++ ++ ++ 20 ++ 20 ++ ++ ++ ++ ++ ++ ++ ++ Reset sample files ++ ++ ++ ++ ++ ++ ++ Save and &quit ++ ++ ++ true ++ ++ ++ ++ ++ ++ ++ ++ qPixmapFromMimeSource ++ ++ ++ Q3GroupBox ++ QGroupBox ++
Qt3Support/Q3GroupBox
++ 1 ++
++ ++ Q3Frame ++ QFrame ++
Qt3Support/Q3Frame
++ 1 ++
++ ++ Q3ButtonGroup ++ Q3GroupBox ++
Qt3Support/Q3ButtonGroup
++ 1 ++
++ ++ Q3ListView ++ Q3Frame ++
q3listview.h
++
++
++ ++ setup_config_tab ++ events_list ++ os_ring_count_cb ++ user_ring_count_cb ++ event_count_edit ++ check0 ++ check1 ++ check2 ++ check3 ++ check4 ++ check5 ++ check6 ++ check7 ++ check8 ++ check9 ++ check10 ++ check11 ++ check12 ++ check13 ++ check14 ++ check15 ++ start_profiler_btn ++ flush_profiler_data_btn ++ stop_profiler_btn ++ reset_sample_files_btn ++ quit_and_save_btn ++ kernel_filename_edit ++ no_vmlinux ++ buffer_size_edit ++ note_table_size_edit ++ buffer_watershed_edit ++ verbose ++ separate_lib_cb ++ separate_kernel_cb ++ separate_cpu_cb ++ separate_thread_cb ++ callgraph_depth_edit ++ ++ ++ ++ ++ start_profiler_btn ++ clicked(bool) ++ oprof_start_base ++ start_profiler() ++ ++ ++ 20 ++ 20 ++ ++ ++ 20 ++ 20 ++ ++ ++ ++ ++ stop_profiler_btn ++ clicked(bool) ++ oprof_start_base ++ stop_profiler() ++ ++ ++ 20 ++ 20 ++ ++ ++ 20 ++ 20 ++ ++ ++ ++ ++ flush_profiler_data_btn ++ clicked(bool) ++ oprof_start_base ++ flush_profiler_data() ++ ++ ++ 20 ++ 20 ++ ++ ++ 20 ++ 20 ++ ++ ++ ++ ++ quit_and_save_btn ++ clicked(bool) ++ oprof_start_base ++ accept() ++ ++ ++ 20 ++ 20 ++ ++ ++ 20 ++ 20 ++ ++ ++ ++ ++ kernel_filename_tb ++ clicked(bool) ++ oprof_start_base ++ choose_kernel_filename() ++ ++ ++ 20 ++ 20 ++ ++ ++ 20 ++ 20 ++ ++ ++ ++ ++ no_vmlinux ++ toggled(bool) ++ kernel_filename_tb ++ setDisabled(bool) ++ ++ ++ 20 ++ 20 ++ ++ ++ 20 ++ 20 ++ ++ ++ ++ ++ no_vmlinux ++ toggled(bool) ++ kernel_filename_edit ++ setDisabled(bool) ++ ++ ++ 20 ++ 20 ++ ++ ++ 20 ++ 20 ++ ++ ++ ++ ++ no_vmlinux ++ toggled(bool) ++ TextLabel1 ++ setDisabled(bool) ++ ++ ++ 20 ++ 20 ++ ++ ++ 20 ++ 20 ++ ++ ++ ++ ++ separate_kernel_cb ++ stateChanged(int) ++ oprof_start_base ++ separate_kernel_cb_changed(int) ++ ++ ++ 20 ++ 20 ++ ++ ++ 20 ++ 20 ++ ++ ++ ++ ++ reset_sample_files_btn ++ clicked(bool) ++ oprof_start_base ++ reset_sample_files() ++ ++ ++ 20 ++ 20 ++ ++ ++ 20 ++ 20 ++ ++ ++ ++ ++ events_list ++ selectionChanged() ++ oprof_start_base ++ event_selected() ++ ++ ++ 20 ++ 20 ++ ++ ++ 20 ++ 20 ++ ++ ++ ++ ++ events_list ++ currentChanged(Q3ListViewItem*) ++ oprof_start_base ++ event_over(Q3ListViewItem*) ++ ++ ++ 20 ++ 20 ++ ++ ++ 20 ++ 20 ++ ++ ++ ++ ++ events_list ++ onItem(Q3ListViewItem*) ++ oprof_start_base ++ event_over(Q3ListViewItem*) ++ ++ ++ 20 ++ 20 ++ ++ ++ 20 ++ 20 ++ ++ ++ ++ ++ +diff --git a/m4/qt.m4 b/m4/qt.m4 +deleted file mode 100644 +index b0e30ef..0000000 +--- a/m4/qt.m4 ++++ /dev/null +@@ -1,217 +0,0 @@ +-dnl find a binary in the path +-AC_DEFUN([QT_FIND_PATH], +-[ +- AC_MSG_CHECKING([for $1]) +- AC_CACHE_VAL(qt_cv_path_$1, +- [ +- qt_cv_path_$1="NONE" +- if test -n "$$2"; then +- qt_cv_path_$1="$$2"; +- else +- dirs="$3" +- qt_save_IFS=$IFS +- IFS=':' +- for dir in $PATH; do +- dirs="$dirs $dir" +- done +- IFS=$qt_save_IFS +- +- for dir in $dirs; do +- if test -x "$dir/$1"; then +- if test -n "$5"; then +- evalstr="$dir/$1 $5 2>&1 " +- if eval $evalstr; then +- qt_cv_path_$1="$dir/$1" +- break +- fi +- else +- qt_cv_path_$1="$dir/$1" +- break +- fi +- fi +- done +- fi +- ]) +- +- if test -z "$qt_cv_path_$1" || test "$qt_cv_path_$1" = "NONE"; then +- AC_MSG_RESULT(not found) +- $4 +- else +- AC_MSG_RESULT($qt_cv_path_$1) +- $2=$qt_cv_path_$1 +- fi +-]) +- +-dnl Find the uic compiler on the path or in qt_cv_dir +-AC_DEFUN([QT_FIND_UIC], +-[ +- QT_FIND_PATH(uic, ac_uic, $qt_cv_dir/bin) +- if test -z "$ac_uic" -a "$FATAL" = 1; then +- AC_MSG_ERROR([uic binary not found in \$PATH or $qt_cv_dir/bin !]) +- fi +-]) +- +-dnl Find the right moc in path/qt_cv_dir +-AC_DEFUN([QT_FIND_MOC], +-[ +- QT_FIND_PATH(moc2, ac_moc2, $qt_cv_dir/bin) +- QT_FIND_PATH(moc, ac_moc1, $qt_cv_dir/bin) +- +- if test -n "$ac_moc1" -a -n "$ac_moc2"; then +- dnl found both. Prefer Qt3's if it exists else moc2 +- $ac_moc1 -v 2>&1 | grep "Qt 3" >/dev/null +- if test "$?" = 0; then +- ac_moc=$ac_moc1; +- else +- ac_moc=$ac_moc2; +- fi +- else +- if test -n "$ac_moc1"; then +- ac_moc=$ac_moc1; +- else +- ac_moc=$ac_moc2; +- fi +- fi +- +- if test -z "$ac_moc" -a "$FATAL" = 1; then +- AC_MSG_ERROR([moc binary not found in \$PATH or $qt_cv_dir/bin !]) +- fi +-]) +- +-dnl check a particular libname +-AC_DEFUN([QT_TRY_LINK], +-[ +- SAVE_LIBS="$LIBS" +- LIBS="$LIBS $1" +- AC_TRY_LINK([ +- #include +- #include +- ], +- [ +- QString s("mangle_failure"); +- #if (QT_VERSION < 221) +- break_me_(\\\); +- #endif +- ], +- qt_cv_libname=$1, +- ) +- LIBS="$SAVE_LIBS" +-]) +- +-dnl check we can do a compile +-AC_DEFUN([QT_CHECK_COMPILE], +-[ +- AC_MSG_CHECKING([for Qt library name]) +- +- AC_CACHE_VAL(qt_cv_libname, +- [ +- AC_LANG_CPLUSPLUS +- SAVE_CXXFLAGS=$CXXFLAGS +- CXXFLAGS="$CXXFLAGS $QT_INCLUDES $QT_LDFLAGS" +- +- for libname in -lqt-mt -lqt3 -lqt2 -lqt; +- do +- QT_TRY_LINK($libname) +- if test -n "$qt_cv_libname"; then +- break; +- fi +- done +- +- CXXFLAGS=$SAVE_CXXFLAGS +- ]) +- +- if test -z "$qt_cv_libname"; then +- AC_MSG_RESULT([failed]) +- if test "$FATAL" = 1 ; then +- AC_MSG_ERROR([Cannot compile a simple Qt executable. Check you have the right \$QTDIR !]) +- fi +- else +- AC_MSG_RESULT([$qt_cv_libname]) +- fi +-]) +- +-dnl get Qt version we're using +-AC_DEFUN([QT_GET_VERSION], +-[ +- AC_CACHE_CHECK([Qt version],lyx_cv_qtversion, +- [ +- AC_LANG_CPLUSPLUS +- SAVE_CPPFLAGS=$CPPFLAGS +- CPPFLAGS="$CPPFLAGS $QT_INCLUDES" +- +- cat > conftest.$ac_ext < +-"%%%"QT_VERSION_STR"%%%" +-EOF +- lyx_cv_qtversion=`(eval "$ac_cpp conftest.$ac_ext") 2>&5 | \ +- grep '^"%%%"' 2>/dev/null | \ +- sed -e 's/"%%%"//g' -e 's/"//g'` +- rm -f conftest.$ac_ext +- CPPFLAGS=$SAVE_CPPFLAGS +- ]) +- +- QT_VERSION=$lyx_cv_qtversion +- AC_SUBST(QT_VERSION) +-]) +- +-dnl start here +-AC_DEFUN([QT_DO_IT_ALL], +-[ +- dnl Please leave this alone. I use this file in +- dnl oprofile. +- FATAL=0 +- +- AC_ARG_WITH(qt-dir, [ --with-qt-dir where the root of Qt is installed ], +- [ qt_cv_dir=`eval echo "$withval"/` ]) +- +- AC_ARG_WITH(qt-includes, [ --with-qt-includes where the Qt includes are. ], +- [ qt_cv_includes=`eval echo "$withval"` ]) +- +- AC_ARG_WITH(qt-libraries, [ --with-qt-libraries where the Qt library is installed.], +- [ qt_cv_libraries=`eval echo "$withval"` ]) +- +- dnl pay attention to $QTDIR unless overridden +- if test -z "$qt_cv_dir"; then +- qt_cv_dir=$QTDIR +- fi +- +- dnl derive inc/lib if needed +- if test -n "$qt_cv_dir"; then +- if test -z "$qt_cv_includes"; then +- qt_cv_includes=$qt_cv_dir/include +- fi +- if test -z "$qt_cv_libraries"; then +- qt_cv_libraries=$qt_cv_dir/lib +- fi +- fi +- +- dnl flags for compilation +- QT_INCLUDES= +- QT_LDFLAGS= +- if test -n "$qt_cv_includes"; then +- QT_INCLUDES="-isystem $qt_cv_includes" +- fi +- if test -n "$qt_cv_libraries"; then +- QT_LDFLAGS="-L$qt_cv_libraries" +- fi +- AC_SUBST(QT_INCLUDES) +- AC_SUBST(QT_LDFLAGS) +- +- QT_FIND_MOC +- MOC=$ac_moc +- AC_SUBST(MOC) +- QT_FIND_UIC +- UIC=$ac_uic +- AC_SUBST(UIC) +- +- QT_CHECK_COMPILE +- +- QT_LIB=$qt_cv_libname; +- AC_SUBST(QT_LIB) +- +- if test -n "$qt_cv_libname"; then +- QT_GET_VERSION +- fi +-]) +diff --git a/m4/qt4.m4 b/m4/qt4.m4 +new file mode 100644 +index 0000000..0df96f7 +--- /dev/null ++++ b/m4/qt4.m4 +@@ -0,0 +1,211 @@ ++dnl check a particular libname ++AC_DEFUN([QT4_TRY_LINK], ++[ ++ SAVE_LIBS="$LIBS" ++ LIBS="$LIBS $1" ++ AC_TRY_LINK([ ++ #include ++ #include ++ ], ++ [ ++ QString s("mangle_failure"); ++ #if (QT_VERSION < 400) ++ break_me_(\\\); ++ #endif ++ ], ++ qt4_cv_libname=$1, ++ ) ++ LIBS="$SAVE_LIBS" ++]) ++ ++dnl check we can do a compile ++AC_DEFUN([QT4_CHECK_COMPILE], ++[ ++ AC_MSG_CHECKING([for Qt 4 library name]) ++ ++ AC_CACHE_VAL(qt4_cv_libname, ++ [ ++ AC_LANG_CPLUSPLUS ++ SAVE_CXXFLAGS=$CXXFLAGS ++ CXXFLAGS="$CXXFLAGS $QT4_INCLUDES $QT4_LDFLAGS" ++ for libname in -lQtCore -lQtCore4 ++ do ++ QT4_TRY_LINK($libname) ++ if test -n "$qt4_cv_libname"; then ++ QT4_CORE_LIB="$qt4_cv_libname" ++ break; ++ fi ++ done ++ qt4_cv_libname= ++ for libname in '-lQtCore -lQtGui' \ ++ '-lQtCore4 -lQtGui4' ++ do ++ QT4_TRY_LINK($libname) ++ if test -n "$qt4_cv_libname"; then ++ break; ++ fi ++ done ++ CXXFLAGS=$SAVE_CXXFLAGS ++ ]) ++ ++ if test -z "$qt4_cv_libname"; then ++ AC_MSG_RESULT([failed]) ++ if test "$FATAL" = 1 ; then ++ AC_MSG_ERROR([Cannot compile a simple Qt 4 executable. Check you have the right \$QT4DIR !]) ++ fi ++ else ++ AC_MSG_RESULT([$qt4_cv_libname]) ++ fi ++]) ++ ++dnl get Qt version we're using ++AC_DEFUN([QT4_GET_VERSION], ++[ ++ AC_CACHE_CHECK([Qt 4 version],lyx_cv_qt4version, ++ [ ++ AC_LANG_CPLUSPLUS ++ SAVE_CPPFLAGS=$CPPFLAGS ++ CPPFLAGS="$CPPFLAGS $QT4_INCLUDES" ++ ++ cat > conftest.$ac_ext < ++"%%%"QT_VERSION_STR"%%%" ++EOF ++ lyx_cv_qt4version=`(eval "$ac_cpp conftest.$ac_ext") 2>&5 | \ ++ grep '^"%%%"' 2>/dev/null | \ ++ sed -e 's/"%%%"//g' -e 's/"//g'` ++ rm -f conftest.$ac_ext ++ CPPFLAGS=$SAVE_CPPFLAGS ++ ]) ++ ++ QT4_VERSION=$lyx_cv_qt4version ++ AC_SUBST(QT4_VERSION) ++]) ++ ++dnl start here ++AC_DEFUN([QT4_DO_IT_ALL], ++[ ++ dnl this variable is precious ++ AC_ARG_VAR(QT4DIR, [the place where the Qt 4 files are, e.g. /usr/lib/qt4]) ++ ++ dnl Please leave this alone. I use this file in ++ dnl oprofile. ++ FATAL=0 ++ ++ AC_ARG_WITH(qt4-dir, [ --with-qt4-dir where the root of Qt 4 is installed ], ++ [ qt4_cv_dir=`eval echo "$withval"/` ]) ++ ++ AC_ARG_WITH(qt4-includes, [ --with-qt4-includes where the Qt 4 includes are. ], ++ [ qt4_cv_includes=`eval echo "$withval"` ]) ++ ++ AC_ARG_WITH(qt4-libraries, [ --with-qt4-libraries where the Qt 4 library is installed.], ++ [ qt4_cv_libraries=`eval echo "$withval"` ]) ++ ++ dnl pay attention to $QT4DIR unless overridden ++ if test -z "$qt4_cv_dir"; then ++ qt4_cv_dir=$QT4DIR ++ fi ++ ++ dnl derive inc/lib if needed ++ if test -n "$qt4_cv_dir"; then ++ if test -z "$qt4_cv_includes"; then ++ qt4_cv_includes=$qt4_cv_dir/include ++ fi ++ if test -z "$qt4_cv_libraries"; then ++ qt4_cv_libraries=$qt4_cv_dir/lib ++ fi ++ fi ++ ++ dnl compute the binary dir too ++ if test -n "$qt4_cv_dir"; then ++ qt4_cv_bin=$qt4_cv_dir/bin ++ fi ++ ++ dnl Preprocessor flags ++ QT4_CPPFLAGS="-DQT_NO_STL -DQT_NO_KEYWORDS" ++ case ${host} in ++ *mingw*) QT4_CPPFLAGS="-DQT_DLL $QT4_CPPFLAGS";; ++ esac ++ AC_SUBST(QT4_CPPFLAGS) ++ ++ dnl Check if it possible to do a pkg-config ++ PKG_PROG_PKG_CONFIG ++ if test -n "$PKG_CONFIG" ; then ++ QT4_DO_PKG_CONFIG ++ fi ++ if test "$pkg_failed" != "no" ; then ++ QT4_DO_MANUAL_CONFIG ++ fi ++ AC_PATH_PROGS(MOC4, [moc-qt4 moc],[],$qt4_cv_bin:$PATH) ++ AC_PATH_PROGS(UIC4, [uic-qt4 uic],[],$qt4_cv_bin:$PATH) ++ AC_PATH_PROGS(RCC4, [rcc-qt4 rcc],[],$qt4_cv_bin:$PATH) ++]) ++ ++AC_DEFUN([QT4_DO_PKG_CONFIG], ++[ ++ dnl tell pkg-config to look also in $qt4_cv_dir/lib. ++ save_PKG_CONFIG_PATH=$PKG_CONFIG_PATH ++ if test -n "$qt4_cv_dir" ; then ++ PKG_CONFIG_PATH=$qt4_cv_dir/lib:$qt4_cv_dir/lib/pkgconfig:$PKG_CONFIG_PATH ++ export PKG_CONFIG_PATH ++ fi ++ PKG_CHECK_MODULES(QT4_CORE, QtCore,,[:]) ++ if test "$pkg_failed" = "no" ; then ++ QT4_CORE_INCLUDES=$QT4_CORE_CFLAGS ++ AC_SUBST(QT4_CORE_INCLUDES) ++ QT4_CORE_LDFLAGS=`$PKG_CONFIG --libs-only-L QtCore` ++ AC_SUBST(QT4_CORE_LDFLAGS) ++ QT4_CORE_LIB=`$PKG_CONFIG --libs-only-l QtCore` ++ AC_SUBST(QT4_CORE_LIB) ++ fi ++ PKG_CHECK_MODULES(QT4_FRONTEND, QtCore QtGui,,[:]) ++ if test "$pkg_failed" = "no" ; then ++ QT4_INCLUDES=$QT4_FRONTEND_CFLAGS ++ dnl QT4_LDFLAGS=$QT4_FRONTEND_LIBS ++ QT4_LDFLAGS=`$PKG_CONFIG --libs-only-L QtCore QtGui` ++ AC_SUBST(QT4_INCLUDES) ++ AC_SUBST(QT4_LDFLAGS) ++ QT4_VERSION=`$PKG_CONFIG --modversion QtCore` ++ AC_SUBST(QT4_VERSION) ++ QT4_LIB=`$PKG_CONFIG --libs-only-l QtCore QtGui` ++ AC_SUBST(QT4_LIB) ++ LIBS="$LIBS `$PKG_CONFIG --libs-only-other QtCore QtGui`" ++ fi ++ PKG_CONFIG_PATH=$save_PKG_CONFIG_PATH ++]) ++ ++AC_DEFUN([QT4_DO_MANUAL_CONFIG], ++[ ++ dnl flags for compilation ++ QT4_INCLUDES= ++ QT4_LDFLAGS= ++ QT4_CORE_INCLUDES= ++ QT4_CORE_LDFLAGS= ++ if test -n "$qt4_cv_includes"; then ++ QT4_INCLUDES="-I$qt4_cv_includes" ++ for i in Qt QtCore QtGui; do ++ QT4_INCLUDES="$QT4_INCLUDES -I$qt4_cv_includes/$i" ++ done ++ QT4_CORE_INCLUDES="-I$qt4_cv_includes -I$qt4_cv_includes/QtCore" ++ fi ++ if test -n "$qt4_cv_libraries"; then ++ QT4_LDFLAGS="-L$qt4_cv_libraries" ++ QT4_CORE_LDFLAGS="-L$qt4_cv_libraries" ++ fi ++ AC_SUBST(QT4_INCLUDES) ++ AC_SUBST(QT4_CORE_INCLUDES) ++ AC_SUBST(QT4_LDFLAGS) ++ AC_SUBST(QT4_CORE_LDFLAGS) ++ ++ QT4_CHECK_COMPILE ++ ++ QT4_LIB=$qt4_cv_libname; ++ AC_SUBST(QT4_LIB) ++ AC_SUBST(QT4_CORE_LIB) ++ ++ if test -n "$qt4_cv_libname"; then ++ QT4_GET_VERSION ++ fi ++]) -- cgit v1.2.3