How To Compile Everything: Difference between revisions

no edit summary
imported>Geofft
No edit summary
imported>Paulproteus
No edit summary
 
(5 intermediate revisions by 3 users not shown)
Line 2:
** Read it.
 
=== Dynamic languages ===
* Is it mostly PHP?
** Does it need PHP libraries?
Line 8 ⟶ 9:
* Is it mostly Python?
** Is there a <code>setup.py</code>?
*** <code>virtualenv . ; bin/python setup.py develop</code>, I think.
*** ???
** Is there a <code>requirements.txt</code>?
*** Install the things there, maybe with pip or something??
Line 15 ⟶ 16:
* Is it mostly Ruby?
** Ask someone not me.
** Someone not me says:
*** Does it have a Gemfile, or a .gemspec? Run bundle.
*** Is it Rails? Run rake. (Did you bundle install?) Now do ./script/server (Rails 2.x) or rails server (Rails >=3). Consider making someone else host it - Heroku?
*** Is it not Rails? Does it have a Rakefile? Run rake.
*** No Rakefile? Are you sure this is ruby?
* Is it mostly Perl?
** Is there a <code>Makefile.PL</code> at the top level, and no <code>Makefile</code>?
Line 29 ⟶ 35:
** To set a prefix, run <code>./configure --prefix=''/home/geofft''</code>.
** 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>, but no <code>configure</code> (with no extension)? Sometimes <code>autogen.sh</code> is called <code>bootstrap</code> or something.
** Make sure you have autoconf and automake installed.
** Run <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>? (If there is one, prefer that)
** Make sure you have autoconf and automake installed.
** Run <code>autoreconf -fvi</code>, then start from the <code>configure</code> decision branch.
 
=== Java ===
* Is there a <code>build.xml</code>?
** Are there files with Android-y names?
*** Install the Android utilities, then run <code>android update project --path .</code> so that your paths to the Android SDK are set. You'll probably need to specify the full path to the <code>android</code> command, like <code>~/Downloads/adt-bundle-something/sdk/tools/android update project --path .</code>.
*** If it tells you to use <code>
*** Run <code>ant debug</code>, to make a debug build. (See the output of <code>ant</code> to see the list of options.)
*** You can try using <code>ant install</code> to run it on the currently-running simulator, or the currently-plugged in device. You might have more luck with the <code>adb</code> command directly, though.
** Run <code>ant</code>, which should either work or give you a list of options. <code>ant build</code> might be the option that you want.
* Is there a <code>pom.xml</code>?
** Curse at Maven a bit, then run <code>mvn compile</code> and hope for the best
** Consider using Eclipse
* Sometimes Java programs are servlets, which you can tell by, like, <code>WEB-INF</code> directories or <code>web.xml</code> files running around
** You'll want a "servlet container" like Tomcat or Jetty, which is a fancy word for a web server that runs Java servlets
** Jetty can run standalone, with no advance setup, and there's often a Maven target for that
 
=== Other things ===
* Is there a <code>debian</code> directory? Are you building something Debian-specific?
** Make sure everything in the <code>Build-Depends</code> line of <code>debian/control</code> is installed. If the package is in the Debian/Ubuntu archive, the easiest way to do this is <code>sudo apt-get build-dep ''package''</code>. This works even if you're building a package from a slightly different source than the one in the archive; it'll get you at least 90% of the way there.
** Run <code>debuild</code>, which is in the <code>devscripts</code> package.
Anonymous user