tMakefile - numeric - C++ library with numerical algorithms
(HTM) git clone git://src.adamsgaard.dk/numeric
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) LICENSE
---
tMakefile (1237B)
---
1 # Define compiler
2 CC=g++
3
4 # Define compiler flags (show all warnings)
5 CCFLAGS=-Wall
6
7 # Define linker
8 LD=g++
9
10 # Define linker flags
11 LDFLAGS=
12
13 # Filenames of source code
14 ASRC=$(shell ls *.A.cpp)
15 BSRC=$(shell ls *.B.cpp)
16
17 # Filenames of object files
18 BOBJ=$(BSRC:.cpp=.o)
19
20 # Remove file type extension for binary filename
21 ABIN=$(ASRC:.cpp=)
22 BBIN=hello_user.B
23
24 # The default "all" depends on A and B
25
26 all: A B
27
28 correct:
29 # Cenerating correct answer
30 @echo "Hello, $(USER)" > correct.txt
31
32 A:
33 # Compile source code
34 $(CC) $(CCFLAGS) $(ASRC) -o $(ABIN)
35 # Execute program and redirect stdout to file
36 ./$(ABIN) > out.A.txt
37
38 B: $(BOBJ)
39 # Link object files together
40 $(LD) $(LDFLAGS) $(BOBJ) -o $(BBIN)
41 # Execute program and redirect stdout to file
42 ./$(BBIN) > out.B.txt
43
44 # Object files for B require B source code files
45 .B.o: $(BSRC)
46 $(CC) $(CCFLAGS) -c $< -o $@
47
48 clean-A:
49 # Remove binary
50 rm -f $(ABIN)
51
52 clean-B:
53 # Remove object files
54 rm -f $(BOBJ)
55 # Remove binary
56 rm -f $(BBIN)
57
58 clean: clean-A clean-B
59 rm -f correct.txt
60
61 test-A: correct A
62 @echo "Checking A... "
63 @diff --brief correct.txt out.A.txt
64 @echo "done"
65
66 test-B: correct B
67 @echo "Checking B... "
68 @diff --brief correct.txt out.B.txt
69 @echo "done"
70
71 test: test-A test-B