-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
43 lines (34 loc) · 1.03 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
.POSIX:
.SUFFIXES:
FC = gfortran
PREFIX = /usr/local
DEBUG = -g -O0 -Wall -fmax-errors=1
RELEASE = -O2
FFLAGS = $(RELEASE)
LDFLAGS = -I$(PREFIX)/include -L$(PREFIX)/lib
LDLIBS = -lpcre2-8
ARFLAGS = rcs
INCDIR = $(PREFIX)/include/libfortran-pcre2
LIBDIR = $(PREFIX)/lib
MODULE = pcre2.mod
TARGET = libfortran-pcre2.a
TEST = test_pcre2
.PHONY: all clean install test
all: $(TARGET)
$(TARGET): src/pcre2.F90
$(FC) $(FFLAGS) -c src/pcre2.F90
$(AR) $(ARFLAGS) $(TARGET) pcre2.o
install: $(TARGET)
@echo "--- Installing $(TARGET) to $(LIBDIR)/ ..."
install -d $(LIBDIR)
install -m 644 $(TARGET) $(LIBDIR)/
@echo "--- Installing module files to $(INCDIR)/ ..."
install -d $(INCDIR)
install -m 644 $(MODULE) $(INCDIR)/
test:
$(FC) $(FFLAGS) $(LDFLAGS) -o $(TEST) test/test_pcre2.f90 $(TARGET) $(LDLIBS)
clean:
if [ `ls -1 *.mod 2>/dev/null | wc -l` -gt 0 ]; then rm *.mod; fi
if [ `ls -1 *.o 2>/dev/null | wc -l` -gt 0 ]; then rm *.o; fi
if [ -e $(TARGET) ]; then rm $(TARGET); fi
if [ -e $(TEST) ]; then rm $(TEST); fi