File: Makefile

package info (click to toggle)
multipath-tools 0.13.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 3,992 kB
  • sloc: ansic: 63,788; perl: 1,622; makefile: 729; sh: 647; pascal: 150
file content (77 lines) | stat: -rw-r--r-- 2,487 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
#
# Copyright (C) 2003 Christophe Varoqui, <christophe.varoqui@opensvc.com>
#
include ../Makefile.inc

DEVLIB := libmultipath.so
CPPFLAGS += -I$(mpathutildir) -I$(mpathcmddir) -I$(nvmedir) -D_GNU_SOURCE $(SYSTEMD_CPPFLAGS)
CFLAGS += $(LIB_CFLAGS)
LIBDEPS += -lpthread -ldl -ldevmapper -ludev -L$(mpathutildir) -lmpathutil -L$(mpathcmddir) -lmpathcmd \
	-lmount -lurcu -laio $(SYSTEMD_LIBDEPS)

# object files referencing MULTIPATH_DIR or CONFIG_DIR
# they need to be recompiled for unit tests
OBJS-U := prio.o checkers.o foreign.o config.o
OBJS-T := $(patsubst %.o,%-test.o,$(OBJS-U))

# other object files
OBJS-O := devmapper.o hwtable.o blacklist.o dmparser.o \
	structs.o discovery.o propsel.o dict.o \
	pgpolicies.o defaults.o uevent.o \
	switchgroup.o print.o alias.o \
	configure.o structs_vec.o sysfs.o \
	lock.o file.o wwids.o prioritizers/alua_rtpg.o prkey.o \
	io_err_stat.o dm-generic.o generic.o nvme-lib.o \
	libsg.o valid.o

OBJS := $(OBJS-O) $(OBJS-U)

all:	$(DEVLIB)

include $(TOPDIR)/rules.mk

nvme-lib.o: nvme-lib.c nvme-ioctl.c nvme-ioctl.h
	$(Q)$(CC) $(CPPFLAGS) $(CFLAGS) -Wno-unused-function -c -o $@ $<

# there are lots of "unused parameters" in dict.c
# because not all handler / snprint methods need all parameters
dict.o:	dict.c
	$(Q)$(CC) $(CPPFLAGS) $(CFLAGS) -Wno-unused-parameter -c -o $@ $<

make_static = $(shell sed '/^static/!s/^\([a-z]\{1,\} \)/static \1/' <$1 >$2)

nvme-ioctl.c: nvme/nvme-ioctl.c
	$(Q)$(call make_static,$<,$@)

nvme-ioctl.h: nvme/nvme-ioctl.h
	$(Q)$(call make_static,$<,$@)

../tests/$(LIBS): $(OBJS-O) $(OBJS-T) $(VERSION_SCRIPT)
	$(Q)$(CC) $(LDFLAGS) $(SHARED_FLAGS) -Wl,-soname=`basename $@` \
		-o $@ $(OBJS-O) $(OBJS-T) $(LIBDEPS)
	$(Q)$(LN) $@ ${@:.so.0=.so}

# This rule is invoked from tests/Makefile, overriding configdir and plugindir
%-test.o: %.c
	@echo building $@ because of $?
	$(Q)$(CC) $(CPPFLAGS) $(CFLAGS) -c -o $@ $<

test-lib:	../tests/$(LIBS)

install: all
	$(Q)$(INSTALL_PROGRAM) -d $(DESTDIR)$(syslibdir)
	$(Q)$(INSTALL_PROGRAM) -m 755 $(LIBS) $(DESTDIR)$(syslibdir)/$(LIBS)
	$(Q)$(INSTALL_PROGRAM) -m 755 -d $(DESTDIR)$(plugindir)
	$(Q)$(LN) $(LIBS) $(DESTDIR)$(syslibdir)/$(DEVLIB)

uninstall:
	$(Q)$(RM) $(DESTDIR)$(syslibdir)/$(LIBS)
	$(Q)$(RM) $(DESTDIR)$(syslibdir)/$(DEVLIB)

clean: dep_clean
	$(Q)$(RM) core *.a *.o *.so *.so.* *.abi nvme-ioctl.c nvme-ioctl.h autoconfig.h $(NV_VERSION_SCRIPT)

include $(wildcard $(OBJS:.o=.d) $(OBJS-T:.o=.d))

dep_clean:
	$(Q)$(RM) $(OBJS:.o=.d) $(OBJS-T:.o=.d)