help-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Skip "./configure"?


From: Bob Proulx
Subject: Re: Skip "./configure"?
Date: Sat, 20 Feb 2016 18:31:54 -0700
User-agent: Mutt/1.5.24 (2015-08-30)

Albin Ludvig Otterhäll wrote:
> When I try to run the "./configure" command in a newly cloned Emacs
> I get following response: "zsh: no such file or directory:
> ./configure".

Generally speaking about autotools projects....  If you get a release
tar.gz file released by the project then it includes all of the
infrastructure such as the ./configure script needed in order to
configure and build.  No autotools are required to be installed.  The
configure script is self contained.  The essense of the release tar.gz
is that it has been built to include all of the things a builder needs
to compile and build.

If you clone the source then you need to build the ./configure script
yourself.  That is the step you are missing.  You need to build the
configure script yourself and then run it.  Which means you need to
have all of the autotools installed on your system.  A pure source
build will require the tools to create the self-contained configure
script and will require more development tools installed than the
other way.

Look at the README file in the source directory for directions.  When
I last looked it said this:

  The shell script 'autogen.sh' generates 'configure' and other files by
  running the GNU build tools autoconf and automake, which in turn use
  GNU m4 and Perl.  If you want to use it, you will need to install
  recent versions of these build tools.  This should be needed only if
  you edit files like 'configure.ac' that specify Emacs's autobuild
  procedure.

> Just to test I only type "make" directly, and everything works
> smoothly without any problems. Emacs compile without any problems
> and Emacs runs.

Look at the GNUmakefile in the project.  If a GNUmakefile exists then
it is used before a Makefile.  See the 'make' documentation for the
set of Makefiles used.  The GNUmakefile includes Makefile if it exists
but does not if it does not.

When you run 'make' before having created a Makefile then it causes
this section to run.  This section creates the Makefile by creating
the configure script and then running it.

configure:
        @echo >&2 'There seems to be no "configure" file in this directory.'
        @echo >&2 'Running ./autogen.sh ...'
        ./autogen.sh
        @echo >&2 '"configure" file built.'

Makefile: configure
        @echo >&2 'There seems to be no Makefile in this directory.'
        @echo >&2 'Running ./configure ...'
        ./configure
        @echo >&2 'Makefile built.'

# 'make bootstrap' in a fresh checkout needn't run 'configure' twice.
bootstrap: Makefile
        $(MAKE) -f Makefile all

As you can see those rules run autogen.sh and then ./configure and so
forth for you.  Which is a convenience.  Which is why that worked for
you.

> What have changed, or did I skip a step that isn't mandatory? No
> experience concerning compiling with makefiles.

Hopefully my explanation above explained everything.  If not then
please ask more questions.

Bob



reply via email to

[Prev in Thread] Current Thread [Next in Thread]