Makefile.mk
2.33 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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
PROGRAMS = RandomExample RandomSave RandomThread \
RandomCoverage RandomExact RandomLambda RandomTime
ifdef HAVE_MPFR
MPFREXAMPLE = MPFRExample
LDLIBS += -lmpfr -lgmp
endif
all: $(PROGRAMS) $(MPFREXAMPLE)
LIBSTEM = Random
LIBRARY = lib$(LIBSTEM).a
INCLUDEPATH = ../include
LIBPATH = ../src
# After installation, use these values of INCLUDEPATH and LIBPATH
# INCLUDEPATH = $(PREFIX)/include
# LIBPATH = $(PREFIX)/lib
REQUIREDHEADERS = Random.hpp RandomCanonical.hpp RandomPower2.hpp \
RandomEngine.hpp RandomAlgorithm.hpp RandomMixer.hpp RandomSeed.hpp \
RandomType.hpp
CC = g++ -g
CXXFLAGS = -g -Wall -O3 -funroll-loops -finline-functions -fomit-frame-pointer
CPPFLAGS = -I$(INCLUDEPATH) $(DEFINES)
LDLIBS = -L$(LIBPATH) -l$(LIBSTEM)
$(PROGRAMS): $(LIBPATH)/$(LIBRARY)
$(CC) $(LDFLAGS) -o $@ $@.o $(LDLIBS)
VPATH = ../include/RandomLib
clean:
rm -f *.o
PREFIX = /usr/local
# After installation, use these values of CPPFLAGS and LDFLAGS
# CPPFLAGS = -I$(PREFIX)/include
# LDFLAGS = -L$(PREFIX)/lib -l$(LIBSTEM)
ifdef RANDOMLIB_DEFAULT_GENERATOR
CPPFLAGS += -DRANDOMLIB_DEFAULT_GENERATOR=$(RANDOMLIB_DEFAULT_GENERATOR)
endif
ifdef HAVE_BOOST_SERIALIZATION
CPPFLAGS += -DHAVE_BOOST_SERIALIZATION=1
LDLIBS += -lboost_serialization-mt
endif
HAVE_OPENMP=1
ifneq ($(HAVE_OPENMP),0)
CPPFLAGS += -DHAVE_OPENMP=1
CXXFLAGS += -fopenmp
LDFLAGS += -fopenmp
endif
RandomExample.o: Config.h $(REQUIREDHEADERS) \
NormalDistribution.hpp RandomSelect.hpp
RandomExample: RandomExample.o
RandomSave.o: Config.h $(REQUIREDHEADERS)
RandomSave: RandomSave.o
RandomThread.o: Config.h $(REQUIREDHEADERS)
RandomThread: RandomThread.o
RandomTime.o: Config.h $(REQUIREDHEADERS) \
NormalDistribution.hpp RandomSelect.hpp
RandomTime: RandomTime.o
RandomCoverage.o: Config.h $(REQUIREDHEADERS) \
NormalDistribution.hpp ExponentialDistribution.hpp RandomSelect.hpp \
LeadingZeros.hpp ExponentialProb.hpp RandomNumber.hpp \
ExactExponential.hpp ExactNormal.hpp ExactPower.hpp
RandomCoverage: RandomCoverage.o
RandomExact.o: Config.h $(REQUIREDHEADERS) \
RandomNumber.hpp ExactExponential.hpp ExactNormal.hpp \
ExponentialProb.hpp
RandomExact: RandomExact.o
RandomLambda.o: Config.h $(REQUIREDHEADERS) NormalDistribution.hpp
RandomLambda: RandomLambda.o
MPFRExample.o: MPFRRandom.hpp MPFRNormal.hpp
MPFRExample: MPFRRandom.o
# Examples are not installed
install: