-
Notifications
You must be signed in to change notification settings - Fork 20
/
GNUmakefile
56 lines (47 loc) · 1.98 KB
/
GNUmakefile
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
##########################################################################
# Pick the appropriate compiler from the following switches
##########################################################################
# 1. Linux, or Cygwin, or Solaris, with MPI, mpic++ compiler
#CXX = mpic++
##########################################################################
# 2. Linux, Mac, Cgwin or Solaris, without MPI, using g++ compiler
CXX = g++
# CXX = clang++
export CXX
##########################################################################
# Enable optimisation / debugging
# GADGET_OPTIM = -D DEBUG
GADGET_OPTIM = -O3 -march=native -Wall
##########################################################################
# Detect platform
ifeq ($(OS),Windows_NT)
GADGET_PLATFORM = -D WINDOWS
else
GADGET_PLATFORM = -D NOT_WINDOWS
endif
###########################################################################
all: gadget
gadget:
$(MAKE) -C src all GADGET_PLATFORM="$(GADGET_PLATFORM)" GADGET_OPTIM="$(GADGET_OPTIM)"
##########################################################################
# The following line is needed to create the gadget input library
# for newer versions of paramin. To create this library, you need
# to type "make libgadgetinput.a" *before* you compile paramin
##########################################################################
libgadgetinput.a:
$(MAKE) -C src-libgadgetinput libgadgetinput.a GADGET_PLATFORM="$(GADGET_PLATFORM)" GADGET_OPTIM="$(GADGET_OPTIM)"
gadgetpara: CXX = mpic++
gadgetpara:
$(MAKE) -C src-para all GADGET_PLATFORM="$(GADGET_PLATFORM)" GADGET_OPTIM="$(GADGET_OPTIM)"
## you need root permission to be able to do this ...
install : $(GADGET)
strip $(GADGET)
cp $(GADGET) /usr/local/bin/
mkdir -p /usr/local/man/man1/
cp gadget.1 /usr/local/man/man1/
clean :
$(MAKE) -C src $@
$(MAKE) -C src-para $@
$(MAKE) -C src-libgadgetinput $@
rm libgadgetinput.a $(GADGETPARA) $(GADGET) || true
.PHONY: all gadget libgadgetinput.a gadgetpara install clean