2 # mdadm - manage Linux "md" devices aka RAID arrays.
4 # Copyright (C) 2001-2002 Neil Brown <neilb@cse.unsw.edu.au>
7 # This program is free software; you can redistribute it and/or modify
8 # it under the terms of the GNU General Public License as published by
9 # the Free Software Foundation; either version 2 of the License, or
10 # (at your option) any later version.
12 # This program is distributed in the hope that it will be useful,
13 # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 # GNU General Public License for more details.
17 # You should have received a copy of the GNU General Public License
18 # along with this program; if not, write to the Free Software
19 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
22 # Email: <neilb@cse.unsw.edu.au>
24 # School of Computer Science and Engineering
25 # The University of New South Wales
30 # define "CXFLAGS" to give extra flags to CC.
31 # e.g. make CXFLAGS=-O to optimise
33 UCLIBC_GCC
= $(shell for nm in i386-uclibc-linux-gcc i386-uclibc-gcc
; do which
$$nm > /dev
/null
&& { echo
$$nm ; exit
; } ; done
; echo false No uclibc found
)
36 KLIBC
=/home
/src
/klibc
/klibc-0.77
38 KLIBC_GCC
= gcc
-nostdinc
-iwithprefix
include -I
$(KLIBC
)/klibc
/include -I
$(KLIBC
)/linux
/include -I
$(KLIBC
)/klibc
/arch
/i386
/include -I
$(KLIBC
)/klibc
/include/bits32
42 CWFLAGS
= -Wall
-Werror
-Wstrict-prototypes
44 CONFFILE
= $(SYSCONFDIR
)/mdadm.conf
45 MAILCMD
=/usr
/sbin
/sendmail
-t
46 CFLAGS
= $(CWFLAGS
) -DCONFFILE
=\"$(CONFFILE
)\" $(CXFLAGS
) -DSendmail
=\""$(MAILCMD)"\"
48 # If you want a static binary, you might uncomment these
52 INSTALL
= /usr
/bin
/install
55 MANDIR
= /usr
/share
/man
56 MAN4DIR
= $(MANDIR
)/man4
57 MAN5DIR
= $(MANDIR
)/man5
58 MAN8DIR
= $(MANDIR
)/man8
60 OBJS
= mdadm.o config.o mdstat.o ReadMe.o util.o Manage.o Assemble.o Build.o \
61 Create.o Detail.o Examine.o Grow.o Monitor.o dlink.o Kill.o Query.o \
62 mdopen.o super0.o super1.o bitmap.o
63 SRCS
= mdadm.c config.c mdstat.c ReadMe.c util.c Manage.c Assemble.c Build.c \
64 Create.c Detail.c Examine.c Grow.c Monitor.c dlink.c Kill.c Query.c \
65 mdopen.c super0.c super1.c bitmap.c
67 ASSEMBLE_SRCS
:= mdassemble.c Assemble.c config.c dlink.c util.c super0.c super1.c
68 ASSEMBLE_FLAGS
:= -DMDASSEMBLE
70 ASSEMBLE_SRCS
+= mdopen.c mdstat.c
71 ASSEMBLE_FLAGS
+= -DMDASSEMBLE_AUTO
74 all : mdadm mdadm.man md.man mdadm.conf.man
76 everything
: all mdadm.static mdadm.tcc mdadm.uclibc mdassemble mdassemble.uclibc mdassemble.static mdassemble.man
79 $(CC
) $(LDFLAGS
) -o mdadm
$^
81 mdadm.static
: $(OBJS
)
82 $(CC
) $(LDFLAGS
) -static
-o mdadm.static
$^
84 mdadm.tcc
: $(SRCS
) mdadm.h
85 $(TCC
) -o mdadm.tcc
$(SRCS
)
87 mdadm.uclibc
: $(SRCS
) mdadm.h
88 $(UCLIBC_GCC
) -DUCLIBC
-o mdadm.uclibc
$(SRCS
)
90 mdadm.klibc
: $(SRCS
) mdadm.h
92 gcc
-nostdinc
-iwithprefix
include -I
$(KLIBC
)/klibc
/include -I
$(KLIBC
)/linux
/include -I
$(KLIBC
)/klibc
/arch
/i386
/include -I
$(KLIBC
)/klibc
/include/bits32
$(CFLAGS
) $(SRCS
)
94 mdassemble
: $(ASSEMBLE_SRCS
) mdadm.h
96 $(DIET_GCC
) $(ASSEMBLE_FLAGS
) -o mdassemble
$(ASSEMBLE_SRCS
)
98 mdassemble.static
: $(ASSEMBLE_SRCS
) mdadm.h
100 $(CC
) $(LDFLAGS
) $(ASSEMBLE_FLAGS
) -static
-o mdassemble
$(ASSEMBLE_SRCS
)
102 mdassemble.uclibc
: $(ASSEMBLE_SRCS
) mdadm.h
104 $(UCLIBC_GCC
) $(ASSEMBLE_FLAGS
) -DUCLIBC
-static
-o mdassemble.uclibc
$(ASSEMBLE_SRCS
)
107 mdassemble.klibc
: $(ASSEMBLE_SRCS
) mdadm.h
109 $(KLIBC_GCC
) $(CFLAGS
) $(ASSEMBLE_FLAGS
) -o mdassemble
$(ASSEMBLE_SRCS
)
112 nroff
-man mdadm
.8 > mdadm.man
115 nroff
-man md
.4 > md.man
117 mdadm.conf.man
: mdadm.conf
.5
118 nroff
-man mdadm.conf
.5 > mdadm.conf.man
120 mdassemble.man
: mdassemble
.8
121 nroff
-man mdassemble
.8 > mdassemble.man
123 $(OBJS
) : mdadm.h bitmap.h
125 install : mdadm mdadm
.8 md
.4 mdadm.conf
.5
126 $(INSTALL
) -D
$(STRIP
) -m
755 mdadm
$(DESTDIR
)$(BINDIR
)/mdadm
127 $(INSTALL
) -D
-m
644 mdadm
.8 $(DESTDIR
)$(MAN8DIR
)/mdadm
.8
128 $(INSTALL
) -D
-m
644 md
.4 $(DESTDIR
)$(MAN4DIR
)/md
.4
129 $(INSTALL
) -D
-m
644 mdadm.conf
.5 $(DESTDIR
)$(MAN5DIR
)/mdadm.conf
.5
132 rm -f mdadm
$(OBJS
) core
*.man mdadm.tcc mdadm.uclibc mdadm.static
*.orig
*.porig
*.rej
*.alt \
133 mdassemble mdassemble.static mdassemble.uclibc mdassemble.klibc