[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: RFE: Generating a stub Makefile
From: |
Bob Proulx |
Subject: |
Re: RFE: Generating a stub Makefile |
Date: |
Tue, 26 Jun 2007 01:06:36 -0600 |
User-agent: |
Mutt/1.5.9i |
Mark Heily wrote:
> This seems I would like Autoconf to generate a stub Makefile to
> include in the top-level of each tarball. The purpose of this stub
> Makefile is to call ./configure
> to generate the real Makefile and then re-invoke make(1) using the
> real Makefile.
I also like the ability to simply check out a pristine copy of the
source and then simply type 'make'. Fortunately this is quite easy.
I have always been fond of Jim's GNUmakefile in Coreutils.
http://git.sv.gnu.org/gitweb/?p=coreutils.git;a=blob;f=GNUmakefile
Here is a derivation that is maximally condensed for discussion and
modified to automatically run autoreconf and ./configure if needed. I
have been using this in my own projects.
have-Makefile := $(shell test -f Makefile && echo yes)
have-configure := $(shell test -f configure && echo yes)
have-Makefile-maint := $(shell test -f Makefile.maint && echo yes)
ifeq ($(have-Makefile),yes)
include Makefile
else
ifeq ($(have-configure),yes)
all:
@echo "There seems to be no Makefile in this directory."
@echo "Running ./configure before running 'make'."
sh ./configure
@$(MAKE)
else
all:
@echo "There seems to be no Makefile in this directory."
@echo "There seems to be no configure script in this directory."
@echo "Running 'autoreconf' to generate the configure script."
autoreconf --install
@$(MAKE)
endif
endif
ifeq ($(have-Makefile-maint),yes)
include Makefile.maint
endif
By including a GNUmakefile such as in a project then what you are
suggesting is available but without a conflict over the generated
Makefile.
> My intention is to save typing for power users and make it easier for
> novice users to build programs from source. This effectively hides
> the Autoconf/Automake mechanism unless someone wants to pass specific
> options to the configure script.
>
> Any thoughts?
I am not sure there is enough drudgery in ./configure to really
warrant doing crazy stuff. :-)
Bob