Jump to content

How To Compile Everything: Difference between revisions

no edit summary
imported>Geofft
(Created page with "* Is there a README? ** Read it. * Is it mostly PHP? ** Does it need PHP libraries? ** It probably needs a web server ** Does it need a database? * Is it mostly Python? ** Is...")
 
imported>Geofft
No edit summary
Line 16:
** Ask someone not me.
* Is it mostly Perl?
** Is there a <code>Makefile.PL</code> at the top level, and no <code>Makefile</code>?
** Seriously?
*** Run <code>perl Makefile.PL</code>, then follow the <code>Makefile</code> instructions.
*** If you want to set a prefix, run <code>perl Makefile.PL PREFIX=''/home/geofft''</code>. You don't need to pass the prefix to any other commands.
 
=== C ===
* Is there a <code>Makefile</code> or <code>GNUmakefile</code>?
** Usually you can just run <code>make</code> to compile it.
** Often you can also run <code>sudo make install</code> to install it systemwide. Sometimes this won't exist, and all you get is compiled code in the same directory.
** If you want to install it, but not systemwide, generally you can use a '''prefix''' variable to make it install elsewhere; for instance I might want to set the prefix to <code>/home/geofft</code> so things are in <code>/home/geofft/bin</code>, etc. If there was just a <code>Makefile</code> and nothing special, try running <code>make PREFIX=''/home/geofft''</code> and <code>make install PREFIX=''/home/geofft''</code>, without sudo. Or read the <code>Makefile</code> or README.
* Is there a <code>configure</code>?
** Usually you can just run <code>./configure</code>, followed by <code>make</code> and <code>sudo make install</code>, as per the <code>Makefile</code> decision branch.
** To set a prefix, run <code>./configure --prefix=''/home/geofft''</code>.
** This will install the code systemwide. If you don't want to do this, you can do <code>./configure --prefix=''/home/geofft''</code>, then <code>make</code> and <code>make install</code> (without sudo), and it will install it into <code>''/home/geofft''/bin</code> (support files, if any, will be in <code>''/home/geofft''/lib</code>, <code>''/home/geofft''/share</code>, etc. You can then run the program by specifying its full path.
** Running configure will error out if it requires something you don't have installed. But check its output, as it might be skipping something optional but useful, that you should have installed.
* Is there a <code>autogen.sh</code>?
** Make sure you have autoconf and automake installed.
** Run that command<code>./autogen.sh</code>, then start from the <code>configure</code> decision branch.
** Rarely, <code>autogen.sh</code> will also run <code>configure</code> for you; if you want to pass options, you can either rerun <code>./configure</code> yourself, or pass them to <code>./autogen.sh</code>.
* Is there a <code>configure.ac</code> or <code>configure.in</code>, but no <code>autogen.sh</code>?
** Make sure you have autoconf and automake installed.
Anonymous user
Cookies help us deliver our services. By using our services, you agree to our use of cookies.