path: root/Makefile
diff options
authorBart Van Assche <>2018-03-09 08:51:04 -0800
committerJens Axboe <>2018-03-09 10:24:49 -0700
commit84546b83150de3ce37871aab724493d0edc31a52 (patch)
treedd23d8e40d5a82c0da8addcf6ea52f64d2430cf4 /Makefile
parentec370c22ae525e127e23f7f77c423f21a6a73bbb (diff)
Makefile: Rerun the configure script if it has been modified
Because of a typo in the Makefile ("config-host-mak") the configure script is not rerun if the configure script is modified after config-host.mak has been generated. Merge the two make goals for rerunning configure into a single goal. This patch relies on the following make behavior (see also Sometimes makefiles can be remade from other files, such as RCS or SCCS files. If a makefile can be remade from other files, you probably want make to get an up-to-date version of the makefile to read in. To this end, after reading in all makefiles, make will consider each as a goal target and attempt to update it. If a makefile has a rule which says how to update it (found either in that very makefile or in another one) or if an implicit rule applies to it (see Using Implicit Rules), it will be updated if necessary. After all makefiles have been checked, if any have actually been changed, make starts with a clean slate and reads all the makefiles over again. (It will also attempt to update each of them over again, but normally this will not change them again, since they are already up to date.) This patch has been tested by verifying that the commands run by make were as expected for the following invocations: rm -f config-host.mak && make make && touch configure && make make Note: fio already requires GNU make because of the use of "ifeq" etc. Signed-off-by: Bart Van Assche <> Signed-off-by: Jens Axboe <>
Diffstat (limited to 'Makefile')
1 files changed, 11 insertions, 12 deletions
diff --git a/Makefile b/Makefile
index 19ba40a0..d73b944f 100644
--- a/Makefile
+++ b/Makefile
@@ -4,19 +4,18 @@ endif
-ifneq ($(wildcard config-host.mak),)
-include config-host.mak
-config-host-mak: configure
- @echo $@ is out-of-date, running configure
- @sed -n "/.*Configured with/s/[^:]*: //p" $@ | sh
+all: fio
+config-host.mak: configure
+ @if [ ! -e "$@" ]; then \
+ echo "Running configure ..."; \
+ ./configure; \
+ else \
+ echo "$@ is out-of-date, running configure"; \
+ sed -n "/.*Configured with/s/[^:]*: //p" "$@" | sh; \
+ fi
ifneq ($(MAKECMDGOALS),clean)
- @echo "Running configure for you..."
- @./configure
include config-host.mak