-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathmakefile
89 lines (76 loc) · 2.63 KB
/
makefile
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
##
## @file makefile
## @brief PPDyn makefile.
## @author Dr. Sayan Adhikari <[email protected]>
## Dr. Rupak Mukherjee <[email protected]>
##
# # OS DETECTION
# BASHFILE :=
UNAME_S := $(shell uname -s)
# ifeq ($(UNAME_S),Linux)
# BASHFILE = bashrc
# endif
# ifeq ($(UNAME_S),Darwin)
# BASHFILE = zshrc
# endif
# the virtual environment directory
VENV := venv
# Source directory
SRC := src
# Current directory
# PATHS := $(shell pwd)
# mkfile_path := $(abspath $(lastword $(MAKEFILE_LIST)))
CURRENT_DIR := $(shell pwd)
# Figure directory
FIG := figures
DATA := data
ifeq ($(UNAME_S),Linux)
all: venv
@echo "Creating virtual environment for running the code"
$(VENV)/bin/activate: requirements.txt
python3 -m venv $(VENV)
./$(VENV)/bin/pip install -r requirements.txt
mkdir $(FIG) $(DATA) 2> /dev/null
@echo "alias ppdyn='$(CURRENT_DIR)/./$(VENV)/bin/python3 $(CURRENT_DIR)/$(SRC)/main.py'" >> $${HOME}/.bashrc
@echo "alias realtime='$(CURRENT_DIR)/./$(VENV)/bin/python3 $(CURRENT_DIR)/$(SRC)/realtime.py'" >> $${HOME}/.bashrc
. $${HOME}/.bashrc
else ifeq ($(UNAME_S),Darwin)
all: venv
@echo "Creating virtual environment for running the code"
$(VENV)/bin/activate: requirements.txt
python3 -m venv $(VENV)
./$(VENV)/bin/pip install -r requirements.txt
mkdir $(FIG) $(DATA) 2> /dev/null
sed -i '' '/alias ppdyn/d' $${HOME}/.zshrc
sed -i '' '/alias ppdenergy/d' $${HOME}/.zshrc
@echo "alias ppdyn='$(CURRENT_DIR)/./$(VENV)/bin/python3 $(CURRENT_DIR)/$(SRC)/main.py'" >> $${HOME}/.zshrc
@echo "alias ppdenergy='$(CURRENT_DIR)/./$(VENV)/bin/python3 $(CURRENT_DIR)/$(SRC)/realtime.py'" >> $${HOME}/.zshrc
. $${HOME}/.zshrc
else
# default target, when make executed without arguments
all: venv
@echo "Creating virtual environment for running the code"
$(VENV)/bin/activate: requirements.txt
python3 -m venv $(VENV)
./$(VENV)/bin/pip install -r requirements.txt
mkdir $(FIG) $(DATA) 2> /dev/null
endif
# venv is a shortcut target
venv: $(VENV)/bin/activate
run: venv
@echo "==================================================================="
@echo "Running PPDyn (Plasma Particle Dynamics)"
@echo "Author: Dr. Sayan Adhikari, PostDoc @ UiO, Norway"
@echo "::::::: Dr. Rupak Mukherjee, Associate Research Physicist @ PPPL, NJ"
@echo "Input: Edit input.ini file to change the parameters for simulation"
@echo "==================================================================="
./$(VENV)/bin/python3 $(SRC)/main.py
clean:
@echo "Cleaning compiled files..."
rm -rf $(VENV)
rm -rf $(FIG) $(DATA)
find . -type f -name '*.pyc' -delete
cleandata:
@echo "Cleaning data files..."
find . -type f -name '*.hdf5' -delete
.PHONY: all venv run clean