chiark / gitweb /
[PATCH] multipath update
[elogind.git] / extras / multipath / Makefile
1 # Makefile
2 #
3 # Copyright (C) 2003 Christophe Varoqui, <christophe.varoqui@free.fr>
4
5 EXEC = multipath
6
7 prefix      = 
8 exec_prefix = ${prefix}
9 bindir      = ${exec_prefix}/sbin
10 udevdir     = ../..
11 klibcdir    = $(udevdir)/klibc
12 sysfsdir    = $(udevdir)/libsysfs
13 mandir      = /usr/share/man/man8
14
15 CC = gcc
16 GZIP = /bin/gzip -c
17
18 GCCINCDIR := ${shell $(CC) -print-search-dirs | sed -ne "s/install: \(.*\)/\1include/gp"}
19 KERNEL_DIR = /lib/modules/${shell uname -r}/build
20 CFLAGS = -pipe -g -O2 -Wall -Wunused -Wstrict-prototypes -nostdinc \
21          -I$(klibcdir)/klibc/include -I$(klibcdir)/klibc/include/bits32 \
22          -I$(GCCINCDIR) -I$(KERNEL_DIR)/include -I$(sysfsdir) -I.
23
24 OBJS = devinfo.o main.o
25 CRT0 = ../../klibc/klibc/crt0.o
26 LIB = ../../klibc/klibc/libc.a
27 LIBGCC := $(shell $(CC) -print-libgcc-file-name )
28
29 DMOBJS = libdevmapper/libdm-common.o libdevmapper/ioctl/libdevmapper.o
30 SYSFSOBJS = ../../libsysfs/dlist.o ../../libsysfs/sysfs_bus.o \
31             ../../libsysfs/sysfs_class.o ../../libsysfs/sysfs_device.o \
32             ../../libsysfs/sysfs_dir.o ../../libsysfs/sysfs_driver.o \
33             ../../libsysfs/sysfs_utils.o
34
35 SUBDIRS = libdevmapper
36
37 recurse:
38         @for dir in $(SUBDIRS); do\
39         $(MAKE) KERNEL_DIR=$(KERNEL_DIR) -C $$dir ; \
40         done
41         $(MAKE) $(EXEC)
42         $(MAKE) devmap_name
43
44 all:    recurse
45         @echo ""
46         @echo "Make complete"
47
48 $(EXEC): $(OBJS)
49         $(LD) -o $(EXEC) $(CRT0) $(OBJS) $(SYSFSOBJS) $(DMOBJS) $(LIB) $(LIBGCC)
50         strip $(EXEC)
51         $(GZIP) $(EXEC).8 > $(EXEC).8.gz
52
53 devmap_name: devmap_name.o
54         $(LD) -o devmap_name $(CRT0) devmap_name.o $(DMOBJS) $(LIB) $(LIBGCC)
55         strip devmap_name
56         $(GZIP) devmap_name.8 > devmap_name.8.gz
57
58 clean:
59         rm -f core *.o $(EXEC) devmap_name *.gz
60         $(MAKE) -C libdevmapper clean
61
62 install:
63         install -d $(DESTDIR)$(bindir)
64         install -m 755 $(EXEC) $(DESTDIR)$(bindir)/
65         install -m 755 devmap_name $(DESTDIR)$(bindir)/
66         install -d $(DESTDIR)/etc/hotplug.d/scsi/
67         install -m 755 multipath.hotplug $(DESTDIR)/etc/hotplug.d/scsi/
68         install -d $(DESTDIR)$(mandir)
69         install -m 644 devmap_name.8.gz $(DESTDIR)$(mandir)
70         install -m 644 multipath.8.gz $(DESTDIR)$(mandir)
71
72 uninstall:
73         rm $(DESTDIR)/etc/hotplug.d/scsi/multipath.hotplug
74         rm $(DESTDIR)$(bindir)/$(EXEC)
75         rm $(DESTDIR)$(bindir)/devmap_name
76         rm $(DESTDIR)$(mandir)/devmap_name.8.gz
77         rm $(DESTDIR)$(mandir)/multipath.8.gz
78
79 # Code dependencies
80 main.o: main.c main.h sg_include.h devinfo.h