-BUILD = glibc
-EXEC = multipathd
-
include ../Makefile.inc
#
-# basic flags setting
-#
-CFLAGS += -DDAEMON -I$(multipathdir) -I$(checkersdir)
-LDFLAGS = -lpthread -ldevmapper -lsysfs -lreadline -lncurses
-
-#
-# debuging stuff
+# debugging stuff
#
#CFLAGS += -DLCKDBG
#CFLAGS += -D_DEBUG_
#CFLAGS += -DLOGDBG
+CFLAGS += $(BIN_CFLAGS) -I$(multipathdir) -I$(mpathpersistdir) \
+ -I$(mpathcmddir) -I$(thirdpartydir)
+LDFLAGS += $(BIN_LDFLAGS)
+LIBDEPS += -L$(multipathdir) -lmultipath -L$(mpathpersistdir) -lmpathpersist \
+ -L$(mpathcmddir) -lmpathcmd -ludev -ldl -lurcu -lpthread \
+ -ldevmapper -lreadline
+
+ifdef SYSTEMD
+ CFLAGS += -DUSE_SYSTEMD=$(SYSTEMD)
+ ifeq ($(shell test $(SYSTEMD) -gt 209 && echo 1), 1)
+ LIBDEPS += -lsystemd
+ else
+ LIBDEPS += -lsystemd-daemon
+ endif
+endif
+
+OBJS = main.o pidfile.o uxlsnr.o uxclnt.o cli.o cli_handlers.o
-#
-# object files
-#
-OBJS = main.o pidfile.o uxlsnr.o uxclnt.o cli.o cli_handlers.o \
- $(MULTIPATHLIB)-glibc.a $(CHECKERSLIB)-glibc.a \
-
-
-#
-# directives
-#
-all : $(BUILD)
-
-glibc: $(EXEC)
+EXEC = multipathd
-klibc:
- $(MAKE) BUILD=glibc glibc
+all : $(EXEC)
-$(EXEC): clean $(OBJS)
- $(CC) $(OBJS) -o $(EXEC) $(LDFLAGS)
+$(EXEC): $(OBJS) $(multipathdir)/libmultipath.so $(mpathcmddir)/libmpathcmd.so
+ $(CC) $(CFLAGS) $(OBJS) $(LDFLAGS) -o $(EXEC) $(LIBDEPS)
$(GZIP) $(EXEC).8 > $(EXEC).8.gz
-$(CHECKERSLIB)-glibc.a:
- $(MAKE) -C $(checkersdir) BUILD=glibc glibc
-
-$(MULTIPATHLIB)-glibc.a:
- $(MAKE) -C $(multipathdir) DAEMON=1 BUILD=glibc glibc
-
install:
- install -d $(DESTDIR)$(bindir)
- install -s -m 755 $(EXEC) $(DESTDIR)$(bindir)
- install -d $(DESTDIR)$(rcdir)
- install -d $(DESTDIR)$(mandir)
- install -m 644 $(EXEC).8.gz $(DESTDIR)$(mandir)
+ $(INSTALL_PROGRAM) -d $(DESTDIR)$(bindir)
+ $(INSTALL_PROGRAM) -m 755 $(EXEC) $(DESTDIR)$(bindir)
+ifdef SYSTEMD
+ $(INSTALL_PROGRAM) -d $(DESTDIR)$(unitdir)
+ $(INSTALL_PROGRAM) -m 644 $(EXEC).service $(DESTDIR)$(unitdir)
+ $(INSTALL_PROGRAM) -m 644 $(EXEC).socket $(DESTDIR)$(unitdir)
+endif
+ $(INSTALL_PROGRAM) -d $(DESTDIR)$(man8dir)
+ $(INSTALL_PROGRAM) -m 644 $(EXEC).8.gz $(DESTDIR)$(man8dir)
uninstall:
- rm -f $(DESTDIR)$(bindir)/$(EXEC)
- rm -f $(DESTDIR)$(rcdir)/$(EXEC)
- rm -f $(DESTDIR)$(mandir)/$(EXEC).8.gz
+ $(RM) $(DESTDIR)$(bindir)/$(EXEC)
+ $(RM) $(DESTDIR)$(man8dir)/$(EXEC).8.gz
+ $(RM) $(DESTDIR)$(unitdir)/$(EXEC).service
+ $(RM) $(DESTDIR)$(unitdir)/$(EXEC).socket
+
+clean: dep_clean
+ $(RM) core *.o $(EXEC) *.gz
-clean:
- $(MAKE) -C $(multipathdir) prepare DAEMON=1
- rm -f core *.o $(EXEC) *.gz
+include $(wildcard $(OBJS:.o=.d))
+dep_clean:
+ $(RM) $(OBJS:.o=.d)