diff options
author | Nicholas Johnson <nick@nicksphere.ch> | 2022-04-08 00:00:00 +0000 |
---|---|---|
committer | Nicholas Johnson <nick@nicksphere.ch> | 2022-04-08 00:00:00 +0000 |
commit | 088cb4047eca3701f9837f244e11ff2ede2b56954e787d7700aa68cb7b757da2 (patch) | |
tree | 953ac1ca95616f7234d17510011c297409df4b4c431b4c2cfd7132affed41425 | |
parent | 21b14d73b89793c02288aab0e5427e51fbbc0f68d5cb8497e39e76c25c84b8e0 (diff) |
Change Makefile to install shared library
-rw-r--r-- | .gitignore | 2 | ||||
-rw-r--r-- | Makefile | 61 |
2 files changed, 33 insertions, 30 deletions
@@ -1,3 +1,3 @@ gemini2html.o +libgemini2html.so gemini2html -test
\ No newline at end of file @@ -1,46 +1,49 @@ CC = gcc CFLAGS = -W -RM = rm -f +RM = rm -rf SRCDIR = src -PREFIXUSER?=$(HOME)/.local -PREFIXSYS?=/usr/local -BINDIRUSER?=$(PREFIXUSER)/bin -MANDIRUSER?=$(PREFIXUSER)/share/man -BINDIRSYS?=$(PREFIXSYS)/bin -MANDIRSYS?=$(PREFIXSYS)/share/man +USERBIN?=$(HOME)/.local/bin +USERMAN?=$(HOME)/.local/share/man + +SYSBIN?=/usr/local/bin +SYSMAN?=/usr/local/share/man + +ifneq ($(wildcard /usr/lib/x86_64-linux-gnu/.),) + SYSLIB?=/usr/lib/x86_64-linux-gnu +else + SYSLIB?=/usr/lib +endif default: all -all: gemini2html main +all: libgemini2html.so gemini2html -gemini2html: $(SRCDIR)/gemini2html.c - $(CC) -c $(CFLAGS) -o gemini2html.o $(SRCDIR)/gemini2html.c +libgemini2html.so: $(SRCDIR)/gemini2html.c + $(CC) $(CFLAGS) -shared -fPIC $(SRCDIR)/gemini2html.c -o libgemini2html.so -main: $(SRCDIR)/gemini2html.c $(SRCDIR)/main.c +gemini2html: $(SRCDIR)/gemini2html.c $(SRCDIR)/main.c $(CC) $(CFLAGS) -o gemini2html $(SRCDIR)/gemini2html.c $(SRCDIR)/main.c -install_user: all - mkdir -m755 -p $(MANDIRUSER)/man1 - install -m755 gemini2html $(BINDIRUSER)/gemini2html - install -m755 gemini2html.1 $(MANDIRUSER)/man1/gemini2html.1 +install: gemini2html gemini2html.1 libgemini2html.so + mkdir -m755 -p $(SYSMAN)/man1 + install -m755 gemini2html $(SYSBIN)/gemini2html + install -m755 gemini2html.1 $(SYSMAN)/man1/gemini2html.1 + install -m755 libgemini2html.so $(SYSLIB)/libgemini2html.so + ldconfig -n $(SYSLIB) -install_sys: all - mkdir -m755 -p $(MANDIRSYS)/man1 - install -m755 gemini2html $(BINDIRSYS)/gemini2html - install -m755 gemini2html.1 $(MANDIRSYS)/man1/gemini2html.1 +install_user: gemini2html gemini2html.1 + mkdir -m755 -p $(USERMAN)/man1 + install -m755 gemini2html $(USERBIN)/gemini2html + install -m755 gemini2html.1 $(USERMAN)/man1/gemini2html.1 -uninstall_user: - $(RM) $(BINDIRUSER)/gemini2html - $(RM) $(MANDIRUSER)/gemini2html.1 +uninstall: + $(RM) $(SYSBIN)/gemini2html $(SYSMAN)/gemini2html.1 $(SYSLIB)/libgemini2html.so -uninstall_sys: - $(RM) $(BINDIRSYS)/gemini2html - $(RM) $(MANDIRSYS)/gemini2html.1 - -uninstall: uninstall_user uninstall_sys +uninstall_user: + $(RM) $(USERBIN)/gemini2html $(USERMAN)/gemini2html.1 clean: - $(RM) gemini2html.o gemini2html + $(RM) libgemini2html.so gemini2html -.PHONY: default all install_user install_sys uninstall_user uninstall_sys uninstall clean +.PHONY: default all install install_user uninstall clean |