diff options
author | Jeffrey Armstrong <jeff@approximatrix.com> | 2025-01-03 13:48:42 -0500 |
---|---|---|
committer | Jeffrey Armstrong <jeff@approximatrix.com> | 2025-01-03 13:48:42 -0500 |
commit | f43007b637900d17c6c0ecdb9aeeab4393e03c3f (patch) | |
tree | f5d4b84775b2cecaad0478b2d8fc081e6a3a435d /captain/makefile.gnu | |
parent | 3e281f72fa13082cfa93b704514226546a6538dd (diff) | |
download | levitating-f43007b637900d17c6c0ecdb9aeeab4393e03c3f.tar.gz levitating-f43007b637900d17c6c0ecdb9aeeab4393e03c3f.zip |
Added a GNU makefile for building outside simply fortran. Added build and install instructions for the captain.
Diffstat (limited to 'captain/makefile.gnu')
-rw-r--r-- | captain/makefile.gnu | 243 |
1 files changed, 243 insertions, 0 deletions
diff --git a/captain/makefile.gnu b/captain/makefile.gnu new file mode 100644 index 0000000..8eadb95 --- /dev/null +++ b/captain/makefile.gnu @@ -0,0 +1,243 @@ +# +# Automagically generated by Approximatrix Simply Fortran 3.37 +# +FC?="gfortran" +CC?="gcc" +AR?="ar" +WRC?="windres" +RM=rm -f + +IDIR= + +LDIR= + + +OPTFLAGS= -g -gdwarf-4 + +SPECIALFLAGS= + +RCFLAGS=-O coff --use-temp-file + +PRJ_FFLAGS=-DGNU -fcheck=all + +PRJ_CFLAGS= + +PRJ_LFLAGS=-lsqlite3 -lssl -lcrypt + +FFLAGS=$(SPECIALFLAGS) $(OPTFLAGS) $(IDIR) $(PRJ_FFLAGS) -Jmodules + +CFLAGS=$(SPECIALFLAGS) $(OPTFLAGS) $(IDIR) $(PRJ_CFLAGS) + +build: + mkdir -p $@ + +modules: + mkdir -p $@ + +.PHONY: all clean + +build/api.o: api.f90 modules/captain_db.mod modules/utilities.mod modules/server_response.mod modules/logging.mod modules/special_filenames.mod modules/security.mod modules/gemini_codes.mod | modules build + @echo Compiling api.f90 + @$(FC) -c -o "build/api.o" $(FFLAGS) "api.f90" +modules/api_handling.mod : | modules build/api.o + +build/auth_level.o: auth_level.f90 | modules build + @echo Compiling auth_level.f90 + @$(FC) -c -o "build/auth_level.o" $(FFLAGS) "auth_level.f90" +modules/auth_levels.mod : | modules build/auth_level.o + +build/captain.o: captain.f90 modules/captain_db.mod modules/config.mod modules/logging.mod modules/gemini.mod modules/web.mod modules/m_crypt.mod modules/m_uuid.mod | modules build + @echo Compiling captain.f90 + @$(FC) -c -o "build/captain.o" $(FFLAGS) "captain.f90" + +build/codes.o: codes.f90 | modules build + @echo Compiling codes.f90 + @$(FC) -c -o "build/codes.o" $(FFLAGS) "codes.f90" +modules/http_codes.mod : | modules build/codes.o +modules/gemini_codes.mod : | modules build/codes.o + +build/config.o: config.f90 modules/utilities.mod modules/auth_levels.mod | modules build + @echo Compiling config.f90 + @$(FC) -c -o "build/config.o" $(FFLAGS) "config.f90" +modules/config.mod : | modules build/config.o + +build/crypt.o: crypt.F90 | modules build + @echo Compiling crypt.F90 + @$(FC) -c -o "build/crypt.o" $(FFLAGS) "crypt.F90" +modules/m_crypt.mod : | modules build/crypt.o + +build/db.o: db.f90 modules/sqlite.mod modules/logging.mod modules/config.mod modules/utilities.mod modules/m_crypt.mod modules/auth_levels.mod modules/m_uuid.mod | modules build + @echo Compiling db.f90 + @$(FC) -c -o "build/db.o" $(FFLAGS) "db.f90" +modules/captain_db.mod : | modules build/db.o + +build/external.o: external.f90 modules/captain_db.mod modules/server_response.mod modules/request_utils.mod modules/logging.mod modules/config.mod modules/special_filenames.mod modules/utilities.mod modules/gemini_codes.mod modules/m_uuid.mod modules/page_template.mod modules/query_utilities.mod modules/security.mod | modules build + @echo Compiling external.f90 + @$(FC) -c -o "build/external.o" $(FFLAGS) "external.f90" +modules/external_handling.mod : | modules build/external.o + +build/gemini.o: gemini.f90 modules/jessl.mod modules/logging.mod modules/gemini_codes.mod modules/config.mod modules/external_handling.mod modules/api_handling.mod modules/m_uuid.mod modules/server_response.mod | modules build + @echo Compiling gemini.f90 + @$(FC) -c -o "build/gemini.o" $(FFLAGS) "gemini.f90" +modules/gemini.mod : | modules build/gemini.o + +build/http.o: http.f90 modules/logging.mod | modules build + @echo Compiling http.f90 + @$(FC) -c -o "build/http.o" $(FFLAGS) "http.f90" +modules/http.mod : | modules build/http.o + +build/jessl.o: ../common/jessl.f90 modules/utilities.mod | modules build + @echo Compiling ../common/jessl.f90 + @$(FC) -c -o "build/jessl.o" $(FFLAGS) "../common/jessl.f90" +modules/jessl.mod : | modules build/jessl.o + +build/launch.o: launch.f90 modules/captain_db.mod | modules build + @echo Compiling launch.f90 + @$(FC) -c -o "build/launch.o" $(FFLAGS) "launch.f90" +modules/remote_launch.mod : | modules build/launch.o + +build/log.o: log.f90 | modules build + @echo Compiling log.f90 + @$(FC) -c -o "build/log.o" $(FFLAGS) "log.f90" +modules/logging.mod : | modules build/log.o + +build/network.o: ../common/network.F90 | modules build + @echo Compiling ../common/network.F90 + @$(FC) -c -o "build/network.o" $(FFLAGS) "../common/network.F90" +modules/network.mod : | modules build/network.o + +build/postutils.o: postutils.f90 modules/query_utilities.mod modules/logging.mod | modules build + @echo Compiling postutils.f90 + @$(FC) -c -o "build/postutils.o" $(FFLAGS) "postutils.f90" +modules/http_post_utilities.mod : | modules build/postutils.o + +build/protocol.o: ../common/protocol.f90 modules/request.mod modules/utilities.mod modules/jessl.mod | modules build + @echo Compiling ../common/protocol.f90 + @$(FC) -c -o "build/protocol.o" $(FFLAGS) "../common/protocol.f90" +modules/gemini_protocol.mod : | modules build/protocol.o + +build/queryutils.o: queryutils.f90 modules/logging.mod | modules build + @echo Compiling queryutils.f90 + @$(FC) -c -o "build/queryutils.o" $(FFLAGS) "queryutils.f90" +modules/query_utilities.mod : | modules build/queryutils.o + +build/request.o: ../common/request.f90 modules/network.mod modules/jessl.mod | modules build + @echo Compiling ../common/request.f90 + @$(FC) -c -o "build/request.o" $(FFLAGS) "../common/request.f90" +modules/request.mod : | modules build/request.o + +build/requtils.o: requtils.f90 modules/http_codes.mod modules/gemini_codes.mod modules/server_response.mod modules/utilities.mod modules/captain_db.mod modules/logging.mod modules/config.mod modules/special_filenames.mod modules/remote_launch.mod | modules build + @echo Compiling requtils.f90 + @$(FC) -c -o "build/requtils.o" $(FFLAGS) "requtils.f90" +modules/request_utils.mod : | modules build/requtils.o + +build/response.o: response.f90 modules/query_utilities.mod modules/logging.mod modules/utilities.mod modules/captain_db.mod modules/auth_levels.mod modules/jessl.mod | modules build + @echo Compiling response.f90 + @$(FC) -c -o "build/response.o" $(FFLAGS) "response.f90" +modules/server_response.mod : | modules build/response.o + +build/security.o: security.f90 modules/captain_db.mod modules/logging.mod | modules build + @echo Compiling security.f90 + @$(FC) -c -o "build/security.o" $(FFLAGS) "security.f90" +modules/security.mod : | modules build/security.o + +build/special.o: special.f90 modules/utilities.mod modules/config.mod modules/logging.mod modules/captain_db.mod modules/server_response.mod | modules build + @echo Compiling special.f90 + @$(FC) -c -o "build/special.o" $(FFLAGS) "special.f90" +modules/special_filenames.mod : | modules build/special.o + +build/sqlite.o: sqlite.f90 | modules build + @echo Compiling sqlite.f90 + @$(FC) -c -o "build/sqlite.o" $(FFLAGS) "sqlite.f90" +modules/sqlite.mod : | modules build/sqlite.o + +build/template.o: template.f90 modules/logging.mod modules/utilities.mod modules/config.mod | modules build + @echo Compiling template.f90 + @$(FC) -c -o "build/template.o" $(FFLAGS) "template.f90" +modules/page_template.mod : | modules build/template.o + +build/utilities.o: ../common/utilities.F90 | modules build + @echo Compiling ../common/utilities.F90 + @$(FC) -c -o "build/utilities.o" $(FFLAGS) "../common/utilities.F90" +modules/utilities.mod : | modules build/utilities.o + +build/uuid.o: uuid.f90 modules/utilities.mod | modules build + @echo Compiling uuid.f90 + @$(FC) -c -o "build/uuid.o" $(FFLAGS) "uuid.f90" +modules/m_uuid.mod : | modules build/uuid.o + +build/web.o: web.f90 modules/utilities.mod modules/server_response.mod modules/page_template.mod modules/captain_db.mod modules/config.mod modules/logging.mod modules/request_utils.mod modules/query_utilities.mod modules/remote_launch.mod modules/special_filenames.mod modules/http_codes.mod modules/http_post_utilities.mod modules/http.mod | modules build + @echo Compiling web.f90 + @$(FC) -c -o "build/web.o" $(FFLAGS) "web.f90" +modules/web.mod : | modules build/web.o + +clean: + @echo Deleting build/api.o and related files + @$(RM) "build/api.o" "modules/api_handling.mod" "modules/api_handling.smod" + @echo Deleting build/auth_level.o and related files + @$(RM) "build/auth_level.o" "modules/auth_levels.mod" "modules/auth_levels.smod" + @echo Deleting build/captain.o and related files + @$(RM) "build/captain.o" + @echo Deleting build/codes.o and related files + @$(RM) "build/codes.o" "modules/http_codes.mod" "modules/http_codes.smod" "modules/gemini_codes.mod" "modules/gemini_codes.smod" + @echo Deleting build/config.o and related files + @$(RM) "build/config.o" "modules/config.mod" "modules/config.smod" + @echo Deleting build/crypt.o and related files + @$(RM) "build/crypt.o" "modules/m_crypt.mod" "modules/m_crypt.smod" + @echo Deleting build/db.o and related files + @$(RM) "build/db.o" "modules/captain_db.mod" "modules/captain_db.smod" + @echo Deleting build/external.o and related files + @$(RM) "build/external.o" "modules/external_handling.mod" "modules/external_handling.smod" + @echo Deleting build/gemini.o and related files + @$(RM) "build/gemini.o" "modules/gemini.mod" "modules/gemini.smod" + @echo Deleting build/http.o and related files + @$(RM) "build/http.o" "modules/http.mod" "modules/http.smod" + @echo Deleting build/jessl.o and related files + @$(RM) "build/jessl.o" "modules/jessl.mod" "modules/jessl.smod" + @echo Deleting build/launch.o and related files + @$(RM) "build/launch.o" "modules/remote_launch.mod" "modules/remote_launch.smod" + @echo Deleting build/log.o and related files + @$(RM) "build/log.o" "modules/logging.mod" "modules/logging.smod" + @echo Deleting build/network.o and related files + @$(RM) "build/network.o" "modules/network.mod" "modules/network.smod" + @echo Deleting build/postutils.o and related files + @$(RM) "build/postutils.o" "modules/http_post_utilities.mod" "modules/http_post_utilities.smod" + @echo Deleting build/protocol.o and related files + @$(RM) "build/protocol.o" "modules/gemini_protocol.mod" "modules/gemini_protocol.smod" + @echo Deleting build/queryutils.o and related files + @$(RM) "build/queryutils.o" "modules/query_utilities.mod" "modules/query_utilities.smod" + @echo Deleting build/request.o and related files + @$(RM) "build/request.o" "modules/request.mod" "modules/request.smod" + @echo Deleting build/requtils.o and related files + @$(RM) "build/requtils.o" "modules/request_utils.mod" "modules/request_utils.smod" + @echo Deleting build/response.o and related files + @$(RM) "build/response.o" "modules/server_response.mod" "modules/server_response.smod" + @echo Deleting build/security.o and related files + @$(RM) "build/security.o" "modules/security.mod" "modules/security.smod" + @echo Deleting build/special.o and related files + @$(RM) "build/special.o" "modules/special_filenames.mod" "modules/special_filenames.smod" + @echo Deleting build/sqlite.o and related files + @$(RM) "build/sqlite.o" "modules/sqlite.mod" "modules/sqlite.smod" + @echo Deleting build/template.o and related files + @$(RM) "build/template.o" "modules/page_template.mod" "modules/page_template.smod" + @echo Deleting build/utilities.o and related files + @$(RM) "build/utilities.o" "modules/utilities.mod" "modules/utilities.smod" + @echo Deleting build/uuid.o and related files + @$(RM) "build/uuid.o" "modules/m_uuid.mod" "modules/m_uuid.smod" + @echo Deleting build/web.o and related files + @$(RM) "build/web.o" "modules/web.mod" "modules/web.smod" + @echo Deleting build/wsa.o and related files + @$(RM) "build/wsa.o" + @echo Deleting directory modules + @rmdir modules + @echo Deleting directory build + @rmdir build + @echo Deleting levitating-captain + @$(RM) "levitating-captain" + +levitating-captain: build/api.o build/auth_level.o build/captain.o build/codes.o build/config.o build/crypt.o build/db.o build/external.o build/gemini.o build/http.o build/jessl.o build/launch.o build/log.o build/network.o build/postutils.o build/protocol.o build/queryutils.o build/request.o build/requtils.o build/response.o build/security.o build/special.o build/sqlite.o build/template.o build/utilities.o build/uuid.o build/web.o + @echo Generating levitating-captain + @$(FC) -o "levitating-captain" $(SPECIALFLAGS) build/api.o build/auth_level.o build/captain.o build/codes.o build/config.o build/crypt.o build/db.o build/external.o build/gemini.o build/http.o build/jessl.o build/launch.o build/log.o build/network.o build/postutils.o build/protocol.o build/queryutils.o build/request.o build/requtils.o build/response.o build/security.o build/special.o build/sqlite.o build/template.o build/utilities.o build/uuid.o build/web.o $(LDIR) $(PRJ_LFLAGS) + +all: levitating-captain + |