summaryrefslogtreecommitdiff
path: root/mk
diff options
context:
space:
mode:
Diffstat (limited to 'mk')
-rw-r--r--mk/mcd.lib.mk34
-rw-r--r--mk/mcd.prog.mk27
2 files changed, 61 insertions, 0 deletions
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
+
diff --git a/mk/mcd.prog.mk b/mk/mcd.prog.mk
new file mode 100644
index 0000000..5ce212a
--- /dev/null
+++ b/mk/mcd.prog.mk
@@ -0,0 +1,27 @@
+OBJS = $(patsubst %.cxx, %.o, \
+ $(patsubst %.cpp, %.o, \
+ $(patsubst %.cc, %.o, \
+ $(patsubst %.c, %.o, $(SRCS)))))
+
+all: $(PROG)
+
+$(PROG): $(OBJS)
+ $(CC) $(LDFLAGS) -o $@ $^
+
+clean:
+ rm -rf $(PROG) $(OBJS)
+
+%.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
+