-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
67 lines (54 loc) · 1.93 KB
/
Makefile
File metadata and controls
67 lines (54 loc) · 1.93 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
CC= gfortran
CFLAGS= -c
# CFLAGS= -c -O0 -g -fbounds-check # for debug
#LDFLAGS= -llapack
SOURCE=pgma_io.f90 createA.f90 createV.f90 factor.f90 inverse.f90 print.f90 wnmf.f90 # read.f90
OBJECTS= $(SOURCE:.f90=.o)
EXECUTABLE=PGM
TMPFILES= *~ a.out *.o
CC_CONVERT= g++
CONVERT_PATH=convert/
SOURCE_CONVERT=pgmb_to_pgma.cpp
CONVERT=bin2ascii
CONVERT_script=ascii_pgm_convert
FACE_DIR=faces
FACES=faces/*.pgm
TMPDIR=tmp
LINK=http://www.cl.cam.ac.uk/Research/DTG/attarchive/pub/data/att_faces.zip
# output color:
#COLOR="\033["
WHITE="\033[38;1m"
GREEN="\033[32;1m"
CLOSE="\033[0m"
# prefixes:
WORK=$(GREEN)"::"$(CLOSE)
INFO=$(GREEN)" >"$(CLOSE)
all: $(EXECUTABLE)
@echo $(INFO)$(CLOSE) $(WHITE)"Compiled"$(CLOSE)
$(EXECUTABLE): $(OBJECTS)
@echo $(WORK) $(WHITE)"Linking..."$(CLOSE)"\t"; $(CC) $(LDFLAGS) $(OBJECTS) -o $@
%.o: %.f90
@echo $(WORK) $(WHITE)"Compiling" $@ $(CLOSE); $(CC) $(CFLAGS) $< -o $@
clean:
@echo $(WORK) $(WHITE)"Clean useless files"$(CLOSE)
@rm -f $(TMPFILES) $(OBJECTS) $(EXECUTABLE)
cclean:
@echo $(WORK) $(WHITE)"Clean all useless files and directories"$(CLOSE)
@rm -f $(CONVERT) $(TMPFILES) $(OBJECTS) $(EXECUTABLE)
@rm -rf $(TMPDIR) $(FACE_DIR)
run: $(EXECUTABLE)
@echo $(INFO) $(WHITE)"Run" $< $(CLOSE)
@./$<
whole: $(FACES) $(EXECUTABLE)
@echo $(INFO)$(CLOSE) $(WHITE)"Ready"$(CLOSE)
$(CONVERT): $(CONVERT_PATH)$(SOURCE_CONVERT)
@echo $(WORK) $(WHITE)"Compiling" $@ $(CLOSE); $(CC_CONVERT) $< -o $@
faces: $(FACES)
@echo $(INFO)$(CLOSE) $(WHITE)"Faces are in "$(FACE_DIR)"/ directory" $(CLOSE)
$(FACES): $(CONVERT)
@mkdir $(FACE_DIR) $(TMPDIR)
@echo $(INFO) $(WHITE)"Download Faces..."$(CLOSE);
@curl -L# $(LINK) > $(TMPDIR)/att_faces.zip
@echo $(INFO) $(WHITE)"Extract Faces..."$(CLOSE); unzip -q $(TMPDIR)/att_faces.zip -d $(TMPDIR)
@echo $(WORK) $(WHITE)"Converting Faces " $(CLOSE); ./$(CONVERT_script) $(TMPDIR) $(FACE_DIR)
@echo $(INFO) $(WHITE)"Clean up" $(CLOSE); rm -r $(TMPDIR); cp $(FACE_DIR)/97.pgm img.pgm