From ca915283cb63068f2fb6bb03ec8faf9c97d009d0 Mon Sep 17 00:00:00 2001 From: Jacob McDonnell Date: Fri, 6 Mar 2026 21:21:55 -0500 Subject: feat: templates for libs Added GNU Makefile templates for quick building programs, static libraries, & shared libraries. --- mk/mcd.lib.mk | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 mk/mcd.lib.mk (limited to 'mk/mcd.lib.mk') diff --git a/mk/mcd.lib.mk b/mk/mcd.lib.mk new file mode 100644 index 0000000..433e501 --- /dev/null +++ b/mk/mcd.lib.mk @@ -0,0 +1,34 @@ +OBJS = $(patsubst %.cxx, %.o, \ + $(patsubst %.cpp, %.o, \ + $(patsubst %.cc, %.o, \ + $(patsubst %.c, %.o, $(SRCS))))) + +all: lib$(LIB).a lib$(LIB).so.$(SHLIB_MAJOR).$(SHLIB_MINOR) + +lib$(LIB).a: $(OBJS) + $(AR) rcs $@ $^ + +ifneq ($(SHLIB_MAJOR)$(SHLIB_MINOR),) +SHLIB_CMD = $(CC) $(LDFLAGS) -shared -fPIC -o $@ $^ +endif + +lib$(LIB).so.$(SHLIB_MAJOR).$(SHLIB_MINOR): $(OBJS) + $(SHLIB_CMD) + +clean: + rm -rf $(OBJS) lib$(LIB).a lib$(LIB).so.$(SHLIB_MAJOR).$(SHLIB_MINOR) + +%.o: %.c + $(CC) $(CFLAGS) -c $< -o $@ + +%.o: %.cxx + $(CXX) $(CXXFLAGS) -c $< -o $@ + +%.o: %.cpp + $(CXX) $(CXXFLAGS) -c $< -o $@ + +%.o: %.cc + $(CXX) $(CXXFLAGS) -c $< -o $@ + +.PHONY: all clean + -- cgit v1.2.3