parallel makefile2 for the testsuite

This commit is contained in:
Marc Glisse 2011-02-23 17:54:29 +00:00
parent 2a9d9e9702
commit a1eaedf34a
1 changed files with 10 additions and 199 deletions

View File

@ -1,204 +1,15 @@
# A makefile which calls run_testsuite_with_cmake over all directories.
#
# Author : Sylvain Pion
# A GNU makefile which calls run_testsuite_with_cmake over all directories.
# The "all" target is split in several parts (based on the first
# character of each directory) to allow parallelization using "make -j".
dirs:=$(wildcard */)
targets:=$(addsuffix pink_elephant,$(dirs))
cleans:=$(addsuffix green_elephant,$(dirs))
all: ${targets}
# !! NOTE !!
#
# The following target are purposedly NOT in alphabetical order so as to boost
# the total running time why testing the most time consuming packages
# first.
#
all: all_sS all_nN all_aA all_bB all_cC all_dD all_eE all_fF all_gG all_hH all_iI all_jJ all_kK all_lL all_mM all_oO all_pP all_qQ all_rR all_tT all_uU all_vV all_wW all_xX all_yY all_zZ
clean: ${cleans}
all_aA:
@+for DIR in [0-9_aA]*; do \
if test -d "$$DIR"; then \
( ./run_testsuite_with_cmake "$$DIR" ) \
fi; \
done
%/pink_elephant:
@+./run_testsuite_with_cmake $*
all_bB:
@+for DIR in [bB]*; do \
if test -d "$$DIR"; then \
( ./run_testsuite_with_cmake "$$DIR" ) \
fi; \
done
all_cC:
@+for DIR in [cC]*; do \
if test -d "$$DIR"; then \
( ./run_testsuite_with_cmake "$$DIR" ) \
fi; \
done
all_dD:
@+for DIR in [dD]*; do \
if test -d "$$DIR"; then \
( ./run_testsuite_with_cmake "$$DIR" ) \
fi; \
done
all_eE:
@+for DIR in [eE]*; do \
if test -d "$$DIR"; then \
( ./run_testsuite_with_cmake "$$DIR" ) \
fi; \
done
all_fF:
@+for DIR in [fF]*; do \
if test -d "$$DIR"; then \
( ./run_testsuite_with_cmake "$$DIR" ) \
fi; \
done
all_gG:
@+for DIR in [gG]*; do \
if test -d "$$DIR"; then \
( ./run_testsuite_with_cmake "$$DIR" ) \
fi; \
done
all_hH:
@+for DIR in [hH]*; do \
if test -d "$$DIR"; then \
( ./run_testsuite_with_cmake "$$DIR" ) \
fi; \
done
all_iI:
@+for DIR in [iI]*; do \
if test -d "$$DIR"; then \
( ./run_testsuite_with_cmake "$$DIR" ) \
fi; \
done
all_jJ:
@+for DIR in [jJ]*; do \
if test -d "$$DIR"; then \
( ./run_testsuite_with_cmake "$$DIR" ) \
fi; \
done
all_kK:
@+for DIR in [kK]*; do \
if test -d "$$DIR"; then \
( ./run_testsuite_with_cmake "$$DIR" ) \
fi; \
done
all_lL:
@+for DIR in [lL]*; do \
if test -d "$$DIR"; then \
( ./run_testsuite_with_cmake "$$DIR" ) \
fi; \
done
all_mM:
@+for DIR in [mM]*; do \
if test -d "$$DIR"; then \
( ./run_testsuite_with_cmake "$$DIR" ) \
fi; \
done
all_nN:
@+for DIR in [nN]*; do \
if test -d "$$DIR"; then \
( ./run_testsuite_with_cmake "$$DIR" ) \
fi; \
done
all_oO:
@+for DIR in [oO]*; do \
if test -d "$$DIR"; then \
( ./run_testsuite_with_cmake "$$DIR" ) \
fi; \
done
all_pP:
@+for DIR in [pP]*; do \
if test -d "$$DIR"; then \
( ./run_testsuite_with_cmake "$$DIR" ) \
fi; \
done
all_qQ:
@+for DIR in [qQ]*; do \
if test -d "$$DIR"; then \
( ./run_testsuite_with_cmake "$$DIR" ) \
fi; \
done
all_rR:
@+for DIR in [rR]*; do \
if test -d "$$DIR"; then \
( ./run_testsuite_with_cmake "$$DIR" ) \
fi; \
done
all_sS:
@+for DIR in [sS]*; do \
if test -d "$$DIR"; then \
( ./run_testsuite_with_cmake "$$DIR" ) \
fi; \
done
all_tT:
@+for DIR in [tT]*; do \
if test -d "$$DIR"; then \
( ./run_testsuite_with_cmake "$$DIR" ) \
fi; \
done
all_uU:
@+for DIR in [uU]*; do \
if test -d "$$DIR"; then \
( ./run_testsuite_with_cmake "$$DIR" ) \
fi; \
done
all_vV:
@+for DIR in [vV]*; do \
if test -d "$$DIR"; then \
( ./run_testsuite_with_cmake "$$DIR" ) \
fi; \
done
all_wW:
@+for DIR in [wW]*; do \
if test -d "$$DIR"; then \
( ./run_testsuite_with_cmake "$$DIR" ) \
fi; \
done
all_xX:
@+for DIR in [xX]*; do \
if test -d "$$DIR"; then \
( ./run_testsuite_with_cmake "$$DIR" ) \
fi; \
done
all_yY:
@+for DIR in [yY]*; do \
if test -d "$$DIR"; then \
( ./run_testsuite_with_cmake "$$DIR" ) \
fi; \
done
all_zZ:
@+for DIR in [zZ]*; do \
if test -d "$$DIR"; then \
( ./run_testsuite_with_cmake "$$DIR" ) \
fi; \
done
clean:
@for DIR in *; do \
if test -d "$$DIR"; then \
( cd "$$DIR" && $(MAKE) clean ) \
fi; \
done
%/green_elephant:
@cd $* && $(MAKE) clean