Add solution to sorting assignment.
[parallel_computing.git] / assignments / archive / sorting / soln / Makefile
1 # General Environment
2
3 RM            = /bin/rm
4 DATA_SIZE     = 8191  # the 5th Mersenne prime
5 DATA          = data ordered-data
6
7 # MPI Environment
8
9 CC            = /usr/bin/mpicc
10 CFLAGS        =
11 LD            = $(CC)
12 LDFLAGS       = -lm
13 EXECS         = parallel-bubble parallel-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 # TODO: adapt scaling.py for MPI executables
27 #%-scaling.dat : % scaling.py data.py
28 #       ./scaling.py --max-time 1 --repeats 3 --plot $(@:%.dat=%.png) ./$< > $@
29
30 data : data.py
31         ./$< $(DATA_SIZE) > $@
32
33 ordered-data : data.py
34         ./$< --ordered $(DATA_SIZE) > $@
35
36 $(EXECS:%=%.o) main.o : %.o : %.c sort.h
37         $(CC) -c $(CFLAGS) -o $@ $<
38
39 $(EXECS) : parallel-% : main.o %.o
40         $(LD) $(LDFLAGS) -o $@ $^
41
42 # Interesting Makefile sections
43 #   4.12.1 Syntax of Static Pattern Rules
44 #   6.3.1  Substitution References