From 5175ffaa01be0e8884277080541c34d8cd6487d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20=C4=8Cert=C3=ADk?= Date: Fri, 3 Jan 2020 11:46:42 -0700 Subject: [PATCH 1/9] Make: use a list of mod files --- src/Makefile.manual | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/Makefile.manual b/src/Makefile.manual index 0c27ff41c..638564daf 100644 --- a/src/Makefile.manual +++ b/src/Makefile.manual @@ -5,6 +5,8 @@ OBJS = stdlib_experimental_ascii.o \ stdlib_experimental_io.o \ f18estop.o +MODS = $(OBJS:.o=.mod) + .PHONY: all clean all: $(LIB) @@ -13,7 +15,7 @@ $(LIB): $(OBJS) ar rcs $@ $(OBJS) clean: - $(RM) $(LIB) $(OBJS) *.mod + $(RM) $(LIB) $(OBJS) $(MODS) %.o: %.f90 $(FC) $(FFLAGS) -c $< From 8c742e1ab850115c9526a584f2ed624cf644484c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20=C4=8Cert=C3=ADk?= Date: Fri, 3 Jan 2020 11:49:12 -0700 Subject: [PATCH 2/9] Use a list of sources --- src/Makefile.manual | 11 +++++++---- src/tests/loadtxt/Makefile.manual | 13 ++++++++++--- 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/src/Makefile.manual b/src/Makefile.manual index 638564daf..84ead52d9 100644 --- a/src/Makefile.manual +++ b/src/Makefile.manual @@ -1,10 +1,13 @@ +SRC = stdlib_experimental_ascii.f90 \ + stdlib_experimental_error.f90 \ + stdlib_experimental_io.f90 \ + f18estop.f90 + LIB = libstdlib.a -OBJS = stdlib_experimental_ascii.o \ - stdlib_experimental_error.o \ - stdlib_experimental_io.o \ - f18estop.o + +OBJS = $(SRC:.f90=.o) MODS = $(OBJS:.o=.mod) .PHONY: all clean diff --git a/src/tests/loadtxt/Makefile.manual b/src/tests/loadtxt/Makefile.manual index f86861866..b0925dde5 100644 --- a/src/tests/loadtxt/Makefile.manual +++ b/src/tests/loadtxt/Makefile.manual @@ -1,12 +1,19 @@ +PROGS_SRC = test_loadtxt.f90 \ + test_savetxt.f90 \ + test_loadtxt_qp.f90 \ + test_savetxt_qp.f90 + CPPFLAGS = -I../.. LDFLAGS = -L../.. -lstdlib -.PHONY: all clean test -PROGS = test_loadtxt test_savetxt test_loadtxt_qp test_savetxt_qp -OBJS = $(PROGS:=.o) +OBJS = $(PROGS_SRC:.f90=.o) +PROGS = $(OBJS:.o=) + +.PHONY: all clean test + all: $(PROGS) $(PROGS): %: %.o From fda7a0fb6b5adf11d2c90971f20bbe903e0b21e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20=C4=8Cert=C3=ADk?= Date: Fri, 3 Jan 2020 11:53:51 -0700 Subject: [PATCH 3/9] Add module dependencies --- src/Makefile.manual | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/Makefile.manual b/src/Makefile.manual index 84ead52d9..0dec3a36b 100644 --- a/src/Makefile.manual +++ b/src/Makefile.manual @@ -22,3 +22,7 @@ clean: %.o: %.f90 $(FC) $(FFLAGS) -c $< + + +# Fortran module dependencies +f18estop.o: stdlib_experimental_error.o From 3392477e395abd6d99eeac7fea99ebe0bd6c3b8d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20=C4=8Cert=C3=ADk?= Date: Fri, 3 Jan 2020 12:04:58 -0700 Subject: [PATCH 4/9] Automatically execute tests --- src/tests/loadtxt/Makefile.manual | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/tests/loadtxt/Makefile.manual b/src/tests/loadtxt/Makefile.manual index b0925dde5..afc3186b1 100644 --- a/src/tests/loadtxt/Makefile.manual +++ b/src/tests/loadtxt/Makefile.manual @@ -9,21 +9,21 @@ LDFLAGS = -L../.. -lstdlib OBJS = $(PROGS_SRC:.f90=.o) PROGS = $(OBJS:.o=) +TESTPROGS = $(PROGS:=TEST) -.PHONY: all clean test +.PHONY: all clean test $(TESTPROGS) all: $(PROGS) $(PROGS): %: %.o $(FC) $(FFLAGS) $(CPPFLAGS) -o $@ $^ $(LDFLAGS) -test: - ./test_loadtxt - ./test_loadtxt_qp - ./test_savetxt - ./test_savetxt_qp +test: $(TESTPROGS) + +$(TESTPROGS): + ./$(@:TEST=) clean: $(RM) $(PROGS) $(OBJS) tmp.dat tmp_qp.dat From 7c806e4147a0115c400bcdebf844f18764767ad8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20=C4=8Cert=C3=ADk?= Date: Fri, 3 Jan 2020 12:07:20 -0700 Subject: [PATCH 5/9] Put files to clean into a variable --- src/tests/loadtxt/Makefile.manual | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/tests/loadtxt/Makefile.manual b/src/tests/loadtxt/Makefile.manual index afc3186b1..494fd23c6 100644 --- a/src/tests/loadtxt/Makefile.manual +++ b/src/tests/loadtxt/Makefile.manual @@ -3,30 +3,31 @@ PROGS_SRC = test_loadtxt.f90 \ test_loadtxt_qp.f90 \ test_savetxt_qp.f90 +CLEAN_FILES = tmp.dat tmp_qp.dat + CPPFLAGS = -I../.. LDFLAGS = -L../.. -lstdlib + OBJS = $(PROGS_SRC:.f90=.o) PROGS = $(OBJS:.o=) TESTPROGS = $(PROGS:=TEST) - - .PHONY: all clean test $(TESTPROGS) all: $(PROGS) -$(PROGS): %: %.o - $(FC) $(FFLAGS) $(CPPFLAGS) -o $@ $^ $(LDFLAGS) - test: $(TESTPROGS) $(TESTPROGS): ./$(@:TEST=) clean: - $(RM) $(PROGS) $(OBJS) tmp.dat tmp_qp.dat + $(RM) $(PROGS) $(OBJS) $(CLEAN_FILES) %.o: %.f90 $(FC) $(FFLAGS) $(CPPFLAGS) -c $< + +$(PROGS): %: %.o + $(FC) $(FFLAGS) $(CPPFLAGS) -o $@ $^ $(LDFLAGS) From b82eed1f3ecd4abb75b1793ddd2b7f36a05a0825 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20=C4=8Cert=C3=ADk?= Date: Fri, 3 Jan 2020 12:09:24 -0700 Subject: [PATCH 6/9] Create a Makefile include file --- src/tests/Makefile.manual.test.mk | 25 +++++++++++++++++++++++++ src/tests/loadtxt/Makefile.manual | 24 +----------------------- 2 files changed, 26 insertions(+), 23 deletions(-) create mode 100644 src/tests/Makefile.manual.test.mk diff --git a/src/tests/Makefile.manual.test.mk b/src/tests/Makefile.manual.test.mk new file mode 100644 index 000000000..47cd2049b --- /dev/null +++ b/src/tests/Makefile.manual.test.mk @@ -0,0 +1,25 @@ +# Common Makefile rules that are included from each test subdirectory's +# Makefile + + +OBJS = $(PROGS_SRC:.f90=.o) +PROGS = $(OBJS:.o=) +TESTPROGS = $(PROGS:=TEST) + +.PHONY: all clean test $(TESTPROGS) + +all: $(PROGS) + +test: $(TESTPROGS) + +$(TESTPROGS): + ./$(@:TEST=) + +clean: + $(RM) $(PROGS) $(OBJS) $(CLEAN_FILES) + +%.o: %.f90 + $(FC) $(FFLAGS) $(CPPFLAGS) -c $< + +$(PROGS): %: %.o + $(FC) $(FFLAGS) $(CPPFLAGS) -o $@ $^ $(LDFLAGS) diff --git a/src/tests/loadtxt/Makefile.manual b/src/tests/loadtxt/Makefile.manual index 494fd23c6..51ab4d6b1 100644 --- a/src/tests/loadtxt/Makefile.manual +++ b/src/tests/loadtxt/Makefile.manual @@ -8,26 +8,4 @@ CLEAN_FILES = tmp.dat tmp_qp.dat CPPFLAGS = -I../.. LDFLAGS = -L../.. -lstdlib - - -OBJS = $(PROGS_SRC:.f90=.o) -PROGS = $(OBJS:.o=) -TESTPROGS = $(PROGS:=TEST) - -.PHONY: all clean test $(TESTPROGS) - -all: $(PROGS) - -test: $(TESTPROGS) - -$(TESTPROGS): - ./$(@:TEST=) - -clean: - $(RM) $(PROGS) $(OBJS) $(CLEAN_FILES) - -%.o: %.f90 - $(FC) $(FFLAGS) $(CPPFLAGS) -c $< - -$(PROGS): %: %.o - $(FC) $(FFLAGS) $(CPPFLAGS) -o $@ $^ $(LDFLAGS) +include ../Makefile.manual.test.mk From 0a0561a353dda76a42013e772c0a088e44a2b90c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20=C4=8Cert=C3=ADk?= Date: Fri, 3 Jan 2020 12:11:53 -0700 Subject: [PATCH 7/9] Refactor the ascii test --- src/tests/ascii/Makefile.manual | 19 ++----------------- 1 file changed, 2 insertions(+), 17 deletions(-) diff --git a/src/tests/ascii/Makefile.manual b/src/tests/ascii/Makefile.manual index 4d555cb19..63f107a9d 100644 --- a/src/tests/ascii/Makefile.manual +++ b/src/tests/ascii/Makefile.manual @@ -1,21 +1,6 @@ -PROG = test_ascii -OBJS = test_ascii.o +PROGS_SRC = test_ascii.f90 CPPFLAGS = -I../.. LDFLAGS = -L../.. -lstdlib -.PHONY: all clean test - -all: $(PROG) - -$(PROG): $(OBJS) - $(FC) $(FFLAGS) $(CPPFLAGS) -o $@ $(OBJS) $(LDFLAGS) - -test: - ./$(PROG) - -clean: - $(RM) $(PROG) $(OBJS) *.mod - -%.o: %.f90 - $(FC) $(FFLAGS) $(CPPFLAGS) -c $< +include ../Makefile.manual.test.mk From 1183a8d81006174a7eec5780981a1cbb75c9074b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20=C4=8Cert=C3=ADk?= Date: Fri, 3 Jan 2020 12:13:04 -0700 Subject: [PATCH 8/9] Move CPP/LDFLAGS into Makefile.manual.test.mk --- src/tests/Makefile.manual.test.mk | 2 ++ src/tests/ascii/Makefile.manual | 2 -- src/tests/loadtxt/Makefile.manual | 2 -- 3 files changed, 2 insertions(+), 4 deletions(-) diff --git a/src/tests/Makefile.manual.test.mk b/src/tests/Makefile.manual.test.mk index 47cd2049b..ee0eed31e 100644 --- a/src/tests/Makefile.manual.test.mk +++ b/src/tests/Makefile.manual.test.mk @@ -1,6 +1,8 @@ # Common Makefile rules that are included from each test subdirectory's # Makefile +CPPFLAGS += -I../.. +LDFLAGS += -L../.. -lstdlib OBJS = $(PROGS_SRC:.f90=.o) PROGS = $(OBJS:.o=) diff --git a/src/tests/ascii/Makefile.manual b/src/tests/ascii/Makefile.manual index 63f107a9d..8edb7b893 100644 --- a/src/tests/ascii/Makefile.manual +++ b/src/tests/ascii/Makefile.manual @@ -1,6 +1,4 @@ PROGS_SRC = test_ascii.f90 -CPPFLAGS = -I../.. -LDFLAGS = -L../.. -lstdlib include ../Makefile.manual.test.mk diff --git a/src/tests/loadtxt/Makefile.manual b/src/tests/loadtxt/Makefile.manual index 51ab4d6b1..9cd8fe487 100644 --- a/src/tests/loadtxt/Makefile.manual +++ b/src/tests/loadtxt/Makefile.manual @@ -5,7 +5,5 @@ PROGS_SRC = test_loadtxt.f90 \ CLEAN_FILES = tmp.dat tmp_qp.dat -CPPFLAGS = -I../.. -LDFLAGS = -L../.. -lstdlib include ../Makefile.manual.test.mk From 158f48f87c9b9bac71e07156e5028b9895ae12b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20=C4=8Cert=C3=ADk?= Date: Fri, 3 Jan 2020 12:15:07 -0700 Subject: [PATCH 9/9] Clean up the smod files --- src/Makefile.manual | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Makefile.manual b/src/Makefile.manual index 0dec3a36b..71b6a8a31 100644 --- a/src/Makefile.manual +++ b/src/Makefile.manual @@ -9,6 +9,7 @@ LIB = libstdlib.a OBJS = $(SRC:.f90=.o) MODS = $(OBJS:.o=.mod) +SMODS = $(OBJS:.o=*.smod) .PHONY: all clean @@ -18,7 +19,7 @@ $(LIB): $(OBJS) ar rcs $@ $(OBJS) clean: - $(RM) $(LIB) $(OBJS) $(MODS) + $(RM) $(LIB) $(OBJS) $(MODS) $(SMODS) %.o: %.f90 $(FC) $(FFLAGS) -c $<