[mythtv] [patch] Documentation update for new ./configure script

Daniel Thor Kristjansson danielk at mrl.nyu.edu
Wed Mar 2 16:30:04 UTC 2005


This patch goes with config-v8.patch.

It replaces text in the docs telling you to edit settings.pro,
with text telling you to run ./configure with the appropriate options. 
It removes section "Notes on compiling for different processors" since 
this should all be done by the script. And added a little note on 
crosscompiling for C3 using --tune. That should be enough of a hint
to get anyone going.

-- Daniel
-------------- next part --------------
Index: docs/mythtv-HOWTO.sgml
===================================================================
RCS file: /var/lib/mythcvs/mythtv/docs/mythtv-HOWTO.sgml,v
retrieving revision 1.263
diff -u -r1.263 mythtv-HOWTO.sgml
--- docs/mythtv-HOWTO.sgml	27 Feb 2005 16:54:20 -0000	1.263
+++ docs/mythtv-HOWTO.sgml	2 Mar 2005 16:19:02 -0000
@@ -1136,7 +1136,7 @@
 Fetched 3085kB in 0s (8120kB/s)
 dpkg-source: extracting mythtv in mythtv-0.11
 sh-2.05b# cd mythtv-0.11
-[customize settings.pro, etc.]
+[customize ./configure options]
 [edit debian/changelog and increment the version number]
 sh-2.05b# dpkg-buildpackage -rfakeroot -us -uc -b
 [...]
@@ -1260,74 +1260,6 @@
 name="http://lame.sourceforge.net/">.  Download the source code to v3.96.1
 by following the links from "Using" through "Download...".
 
-<sect1>Notes on compiling for different processors
-<label id="cpuspecificoptimizations">
-<P>By default, MythTV is compiled for a Pentium Pro or i686 processor. This
-generates good code for most CPUs, but does not take advantage of MMX or
-SSE, and does not work with recent processors that are compatible with older
-Intel processors, such as the Via or IDT low power processors. So you may
-wish to, or need to, change this before compiling. The flags in bold are
-required if you have that CPU.
-
-If you have a system with an AMD processor change the following in the
-<tt>settings.pro</tt> file. Replace <verb>-march=pentiumpro</verb> before
-you compile with one of:
-<itemize>
-<item><bf>-march=k6</bf>        for the AMD K6 with MMX (i586 compatible)
-<item><bf>-march=k6-2</bf>      for the AMD K6 CPU with MMX and 3dNOW! (i586 compatible)
-<item>-march=athlon             for the AMD Athlon CPU with MMX, 3dNOW!, enhanced 3dNOW! and some of SSE. (pentium2 compatible)
-<item>-march=pentiumpro -mmmx   for the AMD Athlon XP CPU with MMX, 3dNOW!, enhanced 3dNOW! and SSE. (pentium3 compatible)
-<item>-march=k8                 for the AMD K8 core based CPUs with x86-64 instruction set support
-                                with MMX, 3dNOW!, enhanced 3dNOW!, SSE and SSE2. (pentium4 compatible)
-</itemize>
-
-<figure loc="here">
-<eps file="stop.eps" height="1cm">
-<img src="stop.png">
-<caption>
-<bf>NOTE</bf>:  If you wish to compile with the <tt>-march=k8</tt> flag you
-must use gcc v3.4 or higher.
-</caption>
-</figure>
-
-If you have a Via processor change the following in the
-<tt>settings.pro</tt> file. Replace <verb>-march=pentiumpro</verb> before
-you compile with one of:
-<itemize>
-<item><bf>-march=c3</bf>        for the Via C3 CPU with MMX and 3dNOW! instruction set support. (pentium-mmx compatible)
-<item><bf>-march=c3-2</bf>      for the Via C3-2 CPU with MMX and SSE instruction set support. (pentium2 compatible)
-</itemize>
-
-If you have an IDT Winchip processor change the following in the
-<tt>settings.pro</tt> file. Replace <verb>-march=pentiumpro</verb> before
-you compile with one of:
-<itemize>
-<item><bf>-march=winchip-c6</bf>  for the IDT Winchip C6 CPU with MMX (i486 compatible)
-<item><bf>-march=winchip2</bf>    for the IDT Winchip2 CPU, with MMX and 3dNOW! (i486 compatible)
-</itemize>
-
-Finally, if you have an Intel processor other than the Pentium Pro you may
-wish to specify your particular model. Replace
-<verb>-march=pentiumpro</verb> before you compile with one of:
-<itemize>
-<item><bf>-march=i586</bf>        for the Intel Pentium CPU without MMX
-<item><bf>-march=pentium-mmx</bf> for the Intel PentiumMMX CPU based on Pentium core with MMX
-<item>-march=pentium2    for the Intel Pentium2 CPU based on Pentium Pro core with MMX
-<item>-march=pentium3    for the Intel Pentium3 CPU based on Pentium Pro core with MMX and SSE
-<item>-march=pentium-m   for the Intel Pentium-M CPU with MMX, SSE and SSE2.  Used in Centrino notebooks.
-<item>-march=pentium4    for the Intel Pentium4 CPU with MMX, SSE and SSE2
-<item>-march=prescott    for the Intel Pentium4 CPU with MMX, SSE, SSE2 and SSE3
-<item>-march=nocona      for the Intel Pentium4 CPU with 64-bit extensions, MMX, SSE, SSE2 and SSE3
-</itemize>
-
-<bf>NOTE</bf>: If your version of gcc does not support your processor,
-choose the most recent processor supported by your compiler and add any
-extra features, for instance the <tt>-march=winchip-c6</tt> would become
-<tt>-march=i486 -mmmx</tt> for the IDT Winchip C6 CPU. It's also recommended
-that when compiling for the for the Athlon XP you leave the default of
-<verb>-march=pentiumpro</verb> because gcc doesn't properly optimize for the
-Athlon XP.
-
 <sect1>Building LAME
 <p>Open a shell and switch to the directory where you saved lame.
 <tscreen><verb>
@@ -1464,53 +1396,35 @@
 <sect1>Manually building MythTV
 <p>Unpack MythTV
 <tscreen><verb>
-$ tar -xjf mythtv-0.17.tar.bz2
-$ cd mythtv-0.17
+$ tar -xjf mythtv-0.18.tar.bz2
+$ cd mythtv-0.18
+</verb></tscreen>
+
+<p>Configure the source.
+<tscreen><verb>
 $ ./configure
 </verb></tscreen>
 
-On a single cpu machine, you would type the following to compile MythTV:
+Configure will print out the options it has selected. You may wish to modify
+this by adding command line options to configure. A list of options can be
+seen by running.
 <tscreen><verb>
-$ qmake mythtv.pro
-$ make
+$ ./configure --help
 </verb></tscreen>
 
-If you want to build MythTV on a multi-CPU machine (or with
-<bf>distcc</bf>), specify "-j numjobs".  In the following example, we will
-have two concurrent jobs executing.  Do not set the number of jobs too high,
-or your compile will actually take longer to complete than it would if you
-did a "normal" build.
+For instance, should you wish to cross compile a debug build 
+for an EPIA M10000 and enable DVB you could use this:
 <tscreen><verb>
-$ qmake mythtv.pro
-$ make qmake
-$ make -j 2
+$ ./configure --compile-type=debug --tune=C2 --enable-dvb --dvb-path=/my/dvb/header/location
 </verb></tscreen>
 
-If you are using <bf>distcc</bf>, and you had two other host machines (red, blue)
-participating, you would do something like:
+Compile 
 <tscreen><verb>
-$ export DISTCC_HOSTS='localhost red blue'
 $ qmake mythtv.pro
 $ make qmake
-$ make -j 6 CXX=distcc
+$ make -j 2
 </verb></tscreen>
 
-The actual speed-up, if any, is dependant on a number of factors, such as
-number of CPUs / hosts, etc.  The <bf>distcc</bf> documentation recommends
-using a <tt>-j</tt> value of twice the number of CPUs available to keep all
-of them busy.
-
-Some timing information.  The following should only be used for
-illustration; your actual results may vary.  The test involves a complete
-<tt>make distclean</tt> to the final binary.
-<itemize>
-<item>P4 3.2Ghz HT: "standard" make: 12m 49s
-<item>P4 3.2Ghz HT: make -j 2: 11m 24s 
-</itemize>
-
-In the above example, we see that with a single CPU, a multi-stage
-<bf>make</bf> does not significantly decrease compile time.
-
 Once the compile is done, switch to superuser:
 <tscreen><verb>
 $ su
@@ -2161,8 +2075,8 @@
 
 If it is working, then press <bf>CTRL-C</bf> to abort the program.  Once you
 know that your remote is working, you can either recompile MythTV with
-native lirc support (edit the <tt>settings.pro</tt> file and remove the "#"
-from the lirc option, then make <tt>distclean</tt> and <tt>make</tt>) or you
+native lirc support (<tt>make distclean ; ./configure ; make<tt> then
+install with <tt>su</tt> followed by <tt>make install</tt>) or you 
 need to run the <bf>irxevent</bf> program, which takes the key presses and
 sends them to MythTV.  If you use native lirc support, you don't need to run
 <bf>irxevent</bf>.  If you are going to use irxevent, then you need to run
@@ -4824,23 +4738,27 @@
 order to determine what's going on, you must recompile MythTV with debugging
 support and run MythTV within <bf>gdb</bf>, the GNU debugger.
 
-Edit the settings.pro file.  Make sure that the top of the file looks like this:
-<tscreen><verb>
-$ cat settings.pro
-CONFIG += debug
-#CONFIG += release
-</verb></tscreen>
-
-Now, you need to clear out the old versions of the software to ensure that
-you're running with the debugging code, then compile and install.
+You need to clear out the old versions of the software to ensure that
+you're running with the debugging code, then run ./configure with
+a compile type of debug, then compile and install.
 <tscreen><verb>
 $ make clean distclean
-$ ./configure
+$ ./configure --compile-type=debug
 $ make
 $ su
 # make install
 # exit
 </verb></tscreen>
+NOTE: If you ran <tt>./configure</tt> with any options before, you should
+use them again, except remove any <tt>--compile-type</tt> flag and add the
+<tt>--compile-type=debug</tt> flag. You can see your previous configuration
+options with <tt>cat config.log | tail -n 1</tt>
+NOTE: If you are running Gentoo you must have debugging enabled 
+on glibc, or debugging will not work properly, as root you can run:
+<tscreen><verb>
+# FEATURES=nostrip CFLAGS=-g emerge glibc
+</verb></tscreen>
+This bug has been fixed in Gentoo CVS, as of Feb 19th, 2005.
 
 At this point, you now have debug-enabled software ready.  Let's assume that
 the problem you're having is in the <tt>setup</tt> program.
@@ -5154,12 +5072,9 @@
 <figure loc="here">
 <eps file="stop.eps" height="1cm">
 <img src="stop.png">
-<caption><bf>NOTE</bf>: MythTV now has support for using
-<bf>artsd</bf>.  This is a compile-time option, so you will need to edit the
-<tt>settings.pro</tt> file in the mythtv directory then perform a <tt>make
-distclean; make</tt>, and re-run <tt>make install</tt> as root to add this
-support.  Otherwise, check your window manager documentation for
-instructions on disabling the sound manager.
+<caption><bf>NOTE</bf>: MythTV has support for using
+<bf>artsd</bf>. This is a compile-time option, which should
+be detected by the <tt>./configure</tt> script.
 </caption>
 </figure>
 If you wish to see what application is grabbing a resource, you can use the
@@ -6976,29 +6891,25 @@
 then you will need to ask your question on the LIRC list.
 
 Assuming that <bf>irw</bf> is showing keypresses, you can continue:
-To enable native LIRC support within MythTV, you will need to modify your
-<tt>settings.pro</tt> file and recompile.  Your <tt>settings.pro</tt> should
-look like this:
-<tscreen><verb>
-# Native lirc support
-CONFIG += using_lirc
-LIRC_LIBS = -llirc_client
-</verb></tscreen>
+It is best if MythTV is compiled with native lircd support. lircd
+should be detected by the <tt>./configure</tt> script, but if you installed
+lirc after installing MythTV, you must now run <tt>./configure</tt> again,
+then recompile and reinstall.
 
 Recompile and install:
 <tscreen><verb>
-$ make distclean; make
+$ make distclean
+$ ./configure
+$ make 
 $ su
 # make install
 </verb></tscreen>
 
-If you're not using native LIRC support, ensure that the button names that
-come up with <bf>irw</bf> match the ones in the <tt>.lircrc</tt> file in
-your home directory.  Note that if you are not using native LIRC support,
-the <tt>.lircrc</tt> file is in your home directory and has a "." as the first
-character.
+Note: If you do not wish to use native LIRC support, ensure that the button names
+that come up with <bf>irw</bf> match the ones in the <tt>.lircrc</tt> file in
+your home directory. You will not need a <tt>.mythtv/lircrc</tt> file.
 
-Since we're using native LIRC support within MythTV, copy the
+If you are using using MythTV's native LIRC support, copy the
 <tt>configfiles/hauppauge-lircrc-nativelirc</tt> file into your
 <tt>.mythtv/</tt> directory and call it <tt>lircrc</tt>.  It has a slightly
 different format than what you would use if you were using


More information about the mythtv-dev mailing list