-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathMakefile
More file actions
43 lines (32 loc) · 1.28 KB
/
Makefile
File metadata and controls
43 lines (32 loc) · 1.28 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
EXEC := GIN3D-DFP
SRCDIR := src
BINDIR := bin
OBJDIR := obj
SERDIR := src/serial
PARDIR := src/cuda
OBJ := $(patsubst $(SRCDIR)/%.c,$(OBJDIR)/%.o,$(wildcard $(SRCDIR)/*.c))
SEROBJ := $(patsubst $(SERDIR)/%.c,$(OBJDIR)/%.o,$(wildcard $(SERDIR)/*.c))
PAROBJ := $(patsubst $(PARDIR)/%.cu,$(OBJDIR)/%.o,$(wildcard $(PARDIR)/*.cu))
TARGET := $(BINDIR)/$(EXEC)
# Compiler options
CC = gcc -Wall -g -std=c99
CCFLAGS = -I/usr/local/wrfUtils/netcdf-c/include -I/usr/local/wrfUtils/szip/include -I/usr/local/wrfUtils/hdf5/include
LDFLAGS = -L/usr/local/wrfUtils/netcdf-c/lib -L/usr/local/wrfUtils/hdf5/lib -L/usr/local/wrfUtils/szip/lib -lm -lhdf5 -lsz -lnetcdf
NVCC = nvcc
NVCCFLAGS = -arch=sm_20 --ptxas-options=-v
parallel: makedirectories $(OBJ) $(PAROBJ)
$(NVCC) $(NVCCFLAGS) $(CCFLAGS) $(LDFLAGS) -o $(TARGET) $(OBJ) $(PAROBJ)
serial: makedirectories $(OBJ) $(SEROBJ)
$(CC) $(CCFLAGS) $(LDFLAGS) -o $(TARGET) $(OBJ) $(SEROBJ)
$(OBJDIR)/%.o: $(SRCDIR)/%.c
$(CC) $(CCFLAGS) -o $@ -c $< $(LDFLAGS)
$(OBJDIR)/%.o: $(SERDIR)/%.c
$(CC) $(CCFLAGS) -o $@ -c $< $(LDFLAGS)
$(OBJDIR)/%.o: $(PARDIR)/%.cu
$(NVCC) $(NVCCFLAGS) $(CCFLAGS) $(LDFLAGS) -o $@ -c $<
makedirectories:
mkdir -p $(OBJDIR) $(BINDIR)
clean:
rm -f $(OBJDIR)/*.o $(TARGET) $(BINDIR)/*_distfield.*
clobber: clean
rm -rf $(OBJDIR)