-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathMakefile.tmpl
82 lines (66 loc) · 2.35 KB
/
Makefile.tmpl
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
# Makefile template file for FLAME
#
# FLAME is the FLAME source files
# SOURCE is the user source files
#
# The assumption is that the user only provides C files
# and a model files <file>.xml
#
#===================================================
# Change this variable for the location of the
# Message Board Library installation
#===================================================
LIBMBOARD_DIR = /usr/local
LIBMBOARD_INC = $(LIBMBOARD_DIR)/include
LIBMBOARD_LIB = $(LIBMBOARD_DIR)/lib
#====================================================
# Change these for your compliler/loaded
#====================================================
SERIAL_CCOMP = gcc
PARALLEL_CCOMP = mpicc
SERIAL_LOADER = gcc
PARALLEL_LOADER = mpif77
DEFINES =
<?if gsl_lib?>DEFINES += -DGSL_LIB<?end if?>
#DEFINES += -DSTART_END
#DEFINES += -DGRAPHICS
# C Compiler
CC = <?if serial?>$(SERIAL_CCOMP)<?end if?><?if parallel?>$(PARALLEL_CCOMP)<?end if?>
CFLAGS = -I$(LIBMBOARD_INC) ${DEFINES}
<?if debug?>CFLAGS += -std=c99 -Wall -D_DEBUG_MODE -g<?end if?>
<?if final?>CFLAGS += -O3<?end if?>
LD = <?if serial?>$(SERIAL_LOADER)<?end if?><?if parallel?>$(PARALLEL_LOADER)<?end if?>
LDFLAGS = -L$(LIBMBOARD_LIB)
<?if gsl_lib?>
LIBS += -lgsl -lgslcblas
<?end if?>
LIBS += <?if serial?>-lmboard_s<?if debug?>d<?end if?> <?end if?><?if parallel?>-lmboard_p<?if debug?>d<?end if?> <?end if?> -lm
#FLAME source files
FLAME = main.c memory.c xml.c messageboards.c partitioning.c rules.c timing.c
#FLAME auxilary files
AUX = stategraph.dot stategraph_colour.dot process_order_graph.dot Doxyfile latex.tex
# FLAME generated model files
SOURCES = <?foreach functionfiles?> $filepath <?end foreach?>
HEADERS = header.h low_primes.h mboard.h <?foreach xagent?> $name_agent_header.h <?end foreach?>
DEPS = Makefile header.h low_primes.h
OBJECTS = $(SOURCES:.c=.o) $(FLAME:.c=.o)
EXECUTABLE = main
RM = rm -f
all: $(SOURCES) $(FLAME) $(EXECUTABLE)
$(EXECUTABLE): $(OBJECTS)
$(LD) $(LDFLAGS) $(OBJECTS) -o $@ $(LIBS)
$(OBJECTS): $(DEPS)
.c.o:
$(CC) -c $(CFLAGS) $< -o $@
clean:
$(RM) $(OBJECTS) $(EXECUTABLE) $(EXECUTABLE).exe
vclean:
$(RM) main $(EXECUTABLE) $(EXECUTABLE).exe $(OBJECTS) $(FLAME) $(HEADERS) $(AUX) Makefile
format:
astyle -A3 $(SOURCES)
for file in $(patsubst %.c,%.h, $(SOURCES)) ; do \
echo $$file ; \
astyle -A3 $$file ; \
done
print:
a2ps -R -f10 --column=1 $(SOURCES)