Added src/sorting/scaling.py to test sort algorithm scaling vs. N.
[parallel_computing.git] / src / sorting / Makefile
1 # General Environment
2
3 RM            = /bin/rm
4 DATA_SIZE     = 8191  # the 5th Mersenne prime
5 DATA          = data ordered-data
6
7 # Non-MPI Environment
8
9 CC            = /usr/bin/gcc
10 CFLAGS        =
11 LD            = $(CC)
12 LDFLAGS       = -lm
13 EXECS         = bubble quicksort
14
15 # Top level targets
16
17 all : $(EXECS) $(DATA)
18
19 clean :
20         $(RM) -f *.o $(EXECS) $(EXECS:%=%-scaling.*) $(DATA)
21
22 scaling : $(EXECS:%=%-scaling.dat)
23
24 # Lower level rules
25
26 %-scaling.dat : % scaling.py data.py
27         ./scaling.py --max-time 1 --repeats 3 --plot $(@:%.dat=%.png) ./$< > $@
28
29 data : data.py
30         ./$< $(DATA_SIZE) > $@
31
32 ordered-data : data.py
33         ./$< --ordered $(DATA_SIZE) > $@
34
35 $(EXECS:%=%.o) main.o : %.o : %.c sort.h
36         $(CC) -c $(CFLAGS) -o $@ $<
37
38 $(EXECS) : % : main.o %.o
39         $(LD) $(LDFLAGS) -o $@ $^
40
41 # Interesting Makefile sections
42 #   4.12.1 Syntax of Static Pattern Rules
43 #   6.3.1  Substitution References