OSDN Git Service

Unnecessary require was erased from the spec file.
[lxcf/lxcf.git] / lxcf / Makefile
1 # LXCF - LXC Facility
2 # Copyright (C) 2013-2014 FUJITSU LIMITED
3
4 # This program is free software; you can redistribute it and/or
5 # modify it under the terms of the GNU General Public License
6 # as published by the Free Software Foundation; version 2
7 # of the License.
8 #
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12 # GNU General Public License for more details.
13 #
14 # You should have received a copy of the GNU General Public License
15 # along with this program; if not, write to the Free Software
16 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
17 # 02110-1301, USA.
18
19 VERSION=0.7
20
21 prefix ?= /usr
22 exec_prefix ?= ${prefix}
23 datarootdir ?= ${prefix}/share
24 sbindir ?= ${exec_prefix}/sbin
25 libdir ?= ${exec_prefix}/lib64
26 systemddir ?= ${prefix}/lib/systemd
27 sysconfdir ?= /etc
28 localstatedir ?= /var
29 mandir ?= ${prefix}/share/man
30 docdir ?= ${datarootdir}/doc/lxcf-${VERSION}
31
32 all: src/lxcf-resource1 src/lxcf-sched doc/lxcf.1.gz
33
34 .PHONY: all install install_lib_lxcf install_sbin_lxcf install_conf \
35                 install_hooks install_man clean uninstall
36
37 .prepare:
38         @if [ ! -f $@ ] ; then touch $@ ; fi
39 ifneq ($(strip $(sbindir)),/usr/sbin)
40         sed -i "s@/usr/sbin@$(sbindir)@g" cmd/*
41 endif
42 ifneq ($(strip $(libdir)),/usr/lib64)
43         sed -i "s@/usr/lib64@$(libdir)@g" cmd/* conf/* lib/*
44 endif
45 ifneq ($(strip $(systemddir)),/usr/lib/systemd)
46         sed -i "s@/usr/lib/systemd@$(systemddir)@g" lib/*
47 endif
48 ifneq ($(strip $(sysconfdir)),/etc)
49         @touch -r src/lxcf-resource1.c .stamp-h1
50         @touch -r doc/lxcf.1 .stamp-h2
51         sed -i "s@/etc/lxcf@$(sysconfdir)/lxcf@g" cmd/* doc/* lib/* src/*
52         @touch -r .stamp-h1 src/lxcf-resource1.c ; rm -f .stamp-h1
53         @touch -r .stamp-h2 doc/lxcf.1 ; rm -f .stamp-h2
54 endif
55 ifneq ($(strip $(localstatedir)),/var)
56         @touch -r src/lxcf-sched.c .stamp-h3
57         sed -i "s@/var/\(\(log\|tmp\)/lxcf\)@$(localstatedir)/\1@g" \
58             cmd/* lib/* src/*
59         @touch -r .stamp-h3 src/lxcf-sched.c ; rm -f .stamp-h3
60 endif
61
62 install: src/lxcf-resource1 src/lxcf-sched doc/lxcf.1.gz install_lib_lxcf \
63                 install_sbin_lxcf install_conf install_hooks install_man
64 ifeq ($(strip $(DESTDIR)),)
65         @echo "Please reboot this system."
66 endif
67
68 src/lxcf-resource1: src/lxcf-resource1.c .prepare
69         $(CC) $(CFLAGS) -o $@ src/lxcf-resource1.c
70
71 src/lxcf-sched: src/lxcf-sched.c .prepare
72         $(CC) $(CFLAGS) -o $@ src/lxcf-sched.c
73
74 doc/lxcf.1.gz: doc/lxcf.1 .prepare
75         gzip -c doc/lxcf.1 > $@
76
77 install_lib_lxcf: .prepare
78         install -d -m 755 $(DESTDIR)$(libdir)/lxcf
79         install -m 755 lib/lxcf-init $(DESTDIR)$(libdir)/lxcf/lxcf-init
80         install -m 755 lib/lxcf-keygen $(DESTDIR)$(libdir)/lxcf/lxcf-keygen
81         install -m 755 lib/lxcf-rc $(DESTDIR)$(libdir)/lxcf/lxcf-rc
82         install -m 755 lib/lxcf-config $(DESTDIR)$(libdir)/lxcf/lxcf-config
83         install -m 755 lib/lxcf-maintenance $(DESTDIR)$(libdir)/lxcf/lxcf-maintenance
84         install -m 755 lib/lxcf-resource $(DESTDIR)$(libdir)/lxcf/lxcf-resource
85         install -m 755 src/lxcf-resource1 $(DESTDIR)$(libdir)/lxcf/lxcf-resource1
86         install -m 755 lib/lxcf-resource2 $(DESTDIR)$(libdir)/lxcf/lxcf-resource2
87         install -m 755 src/lxcf-sched $(DESTDIR)$(libdir)/lxcf/lxcf-sched
88         install -m 755 lib/lxcf-collection-broken-container $(DESTDIR)$(libdir)/lxcf/lxcf-collection-broken-container
89         install -m 755 lib/lxcf-sysgen $(DESTDIR)$(libdir)/lxcf/lxcf-sysgen
90         install -m 755 lib/lxcf-check-json $(DESTDIR)$(libdir)/lxcf/lxcf-check-json
91         install -m 755 lib/lxcf-createfile $(DESTDIR)$(libdir)/lxcf/lxcf-createfile
92         install -m 755 lib/lxcf-clearlog $(DESTDIR)$(libdir)/lxcf/lxcf-clearlog
93         install -m 755 lib/lxcf-setup $(DESTDIR)$(libdir)/lxcf/lxcf-setup
94         install -m 755 lib/lxcf-define $(DESTDIR)$(libdir)/lxcf/lxcf-define
95         install -m 755 lib/lxcf-load $(DESTDIR)$(libdir)/lxcf/lxcf-load
96         install -m 755 lib/lxcf-clone $(DESTDIR)$(libdir)/lxcf/lxcf-clone
97         install -m 755 lib/lxcf-clone-setup $(DESTDIR)$(libdir)/lxcf/lxcf-clone-setup
98         install -m 755 lib/lxcf-erase $(DESTDIR)$(libdir)/lxcf/lxcf-erase
99         install -m 755 lib/lxcf-erase-setup $(DESTDIR)$(libdir)/lxcf/lxcf-erase-setup
100         install -m 755 lib/lxcf-list $(DESTDIR)$(libdir)/lxcf/lxcf-list
101         install -m 755 lib/lxcf-update $(DESTDIR)$(libdir)/lxcf/lxcf-update
102         install -m 755 lib/lxcf-update1 $(DESTDIR)$(libdir)/lxcf/lxcf-update1
103         install -m 755 lib/lxcf-update2 $(DESTDIR)$(libdir)/lxcf/lxcf-update2
104         install -m 755 lib/lxcf-deploy $(DESTDIR)$(libdir)/lxcf/lxcf-deploy
105         install -m 755 lib/lxcf-start $(DESTDIR)$(libdir)/lxcf/lxcf-start
106         install -m 755 lib/lxcf-stop $(DESTDIR)$(libdir)/lxcf/lxcf-stop
107         install -m 755 lib/lxcf-reboot $(DESTDIR)$(libdir)/lxcf/lxcf-reboot
108         install -m 755 lib/lxcf-suspend $(DESTDIR)$(libdir)/lxcf/lxcf-suspend
109         install -m 755 lib/lxcf-resume $(DESTDIR)$(libdir)/lxcf/lxcf-resume
110         install -m 755 lib/lxcf-run $(DESTDIR)$(libdir)/lxcf/lxcf-run
111         install -m 755 lib/lxcf-autostart $(DESTDIR)$(libdir)/lxcf/lxcf-autostart
112         install -m 755 lib/lxcf-submit $(DESTDIR)$(libdir)/lxcf/lxcf-submit
113         install -m 755 lib/lxcf-snapshot $(DESTDIR)$(libdir)/lxcf/lxcf-snapshot
114         install -m 755 lib/lxcf-restore $(DESTDIR)$(libdir)/lxcf/lxcf-restore
115         install -m 755 lib/lxcf-uuid $(DESTDIR)$(libdir)/lxcf/lxcf-uuid
116         install -m 755 lib/lxcf-syncusr $(DESTDIR)$(libdir)/lxcf/lxcf-syncusr
117         install -m 755 lib/lxcf-log $(DESTDIR)$(libdir)/lxcf/lxcf-log
118         install -m 755 lib/lxcf-queue-list $(DESTDIR)$(libdir)/lxcf/lxcf-queue-list
119         install -m 755 lib/lxcf-queue-clear $(DESTDIR)$(libdir)/lxcf/lxcf-queue-clear
120         install -m 755 lib/lxcf-queue-cancel $(DESTDIR)$(libdir)/lxcf/lxcf-queue-cancel
121         install -m 755 lib/lxcf-queue-move $(DESTDIR)$(libdir)/lxcf/lxcf-queue-move
122         install -m 755 lib/lxcf-queue-multi $(DESTDIR)$(libdir)/lxcf/lxcf-queue-multi
123         install -m 755 lib/lxcf-parmchk-num $(DESTDIR)$(libdir)/lxcf/lxcf-parmchk-num
124         install -m 755 lib/lxcf-parmchk-num-kmg $(DESTDIR)$(libdir)/lxcf/lxcf-parmchk-num-kmg
125         install -m 755 lib/lxcf-parmchk-cname $(DESTDIR)$(libdir)/lxcf/lxcf-parmchk-cname
126         install -m 755 lib/lxcf-parmchk-float $(DESTDIR)$(libdir)/lxcf/lxcf-parmchk-float
127         install -m 755 lib/lxcf-parmchk-float-kmg $(DESTDIR)$(libdir)/lxcf/lxcf-parmchk-float-kmg
128         install -m 755 lib/lxcf-parmchk-hexdig $(DESTDIR)$(libdir)/lxcf/lxcf-parmchk-hexdig
129         install -m 755 lib/lxcf-parmchk-MJMI $(DESTDIR)$(libdir)/lxcf/lxcf-parmchk-MJMI
130
131 install_sbin_lxcf: .prepare
132         install -d -m 755 $(DESTDIR)$(sbindir)
133         install -m 755 cmd/lxcf $(DESTDIR)$(sbindir)/lxcf
134         install -d -m 755 $(DESTDIR)$(libdir)/lxcf/sbin
135         install -m 755 cmd/update-alert $(DESTDIR)$(libdir)/lxcf/sbin/update-alert
136         install -m 755 cmd/cpun $(DESTDIR)$(libdir)/lxcf/sbin/cpun
137         install -m 755 cmd/cpurate $(DESTDIR)$(libdir)/lxcf/sbin/cpurate
138         install -m 755 cmd/numa $(DESTDIR)$(libdir)/lxcf/sbin/numa
139         install -m 755 cmd/memlimit $(DESTDIR)$(libdir)/lxcf/sbin/memlimit
140         install -m 755 cmd/memswlimit $(DESTDIR)$(libdir)/lxcf/sbin/memswlimit
141         install -m 755 cmd/blkio_r $(DESTDIR)$(libdir)/lxcf/sbin/blkio_r
142         install -m 755 cmd/blkio_w $(DESTDIR)$(libdir)/lxcf/sbin/blkio_w
143         install -m 755 cmd/blkiops_r $(DESTDIR)$(libdir)/lxcf/sbin/blkiops_r
144         install -m 755 cmd/blkiops_w $(DESTDIR)$(libdir)/lxcf/sbin/blkiops_w
145         install -m 755 cmd/net_cls $(DESTDIR)$(libdir)/lxcf/sbin/net_cls
146         install -m 755 cmd/set $(DESTDIR)$(libdir)/lxcf/sbin/set
147         install -m 755 cmd/set-n $(DESTDIR)$(libdir)/lxcf/sbin/set-n
148         install -m 755 cmd/show $(DESTDIR)$(libdir)/lxcf/sbin/show
149         install -m 755 cmd/sysgen $(DESTDIR)$(libdir)/lxcf/sbin/sysgen
150         install -m 755 cmd/sysgen-n $(DESTDIR)$(libdir)/lxcf/sbin/sysgen-n
151         install -m 755 cmd/clone $(DESTDIR)$(libdir)/lxcf/sbin/clone
152         install -m 755 cmd/clone-n $(DESTDIR)$(libdir)/lxcf/sbin/clone-n
153         install -m 755 cmd/erase $(DESTDIR)$(libdir)/lxcf/sbin/erase
154         install -m 755 cmd/erase-n $(DESTDIR)$(libdir)/lxcf/sbin/erase-n
155         install -m 755 cmd/list $(DESTDIR)$(libdir)/lxcf/sbin/list
156         install -m 755 cmd/log $(DESTDIR)$(libdir)/lxcf/sbin/log
157         install -m 755 cmd/update $(DESTDIR)$(libdir)/lxcf/sbin/update
158         install -m 755 cmd/deploy $(DESTDIR)$(libdir)/lxcf/sbin/deploy
159         install -m 755 cmd/start $(DESTDIR)$(libdir)/lxcf/sbin/start
160         install -m 755 cmd/start-n $(DESTDIR)$(libdir)/lxcf/sbin/start-n
161         install -m 755 cmd/stop $(DESTDIR)$(libdir)/lxcf/sbin/stop
162         install -m 755 cmd/stop-n $(DESTDIR)$(libdir)/lxcf/sbin/stop-n
163         install -m 755 cmd/reboot $(DESTDIR)$(libdir)/lxcf/sbin/reboot
164         install -m 755 cmd/suspend $(DESTDIR)$(libdir)/lxcf/sbin/suspend
165         install -m 755 cmd/suspend-n $(DESTDIR)$(libdir)/lxcf/sbin/suspend-n
166         install -m 755 cmd/resume $(DESTDIR)$(libdir)/lxcf/sbin/resume
167         install -m 755 cmd/resume-n $(DESTDIR)$(libdir)/lxcf/sbin/resume-n
168         install -m 755 cmd/run $(DESTDIR)$(libdir)/lxcf/sbin/run
169         install -m 755 cmd/autostart $(DESTDIR)$(libdir)/lxcf/sbin/autostart
170         install -m 755 cmd/submit $(DESTDIR)$(libdir)/lxcf/sbin/submit
171         install -m 755 cmd/queue $(DESTDIR)$(libdir)/lxcf/sbin/queue
172         install -m 755 cmd/q $(DESTDIR)$(libdir)/lxcf/sbin/q
173         install -m 755 cmd/snapshot $(DESTDIR)$(libdir)/lxcf/sbin/snapshot
174         install -m 755 cmd/restore $(DESTDIR)$(libdir)/lxcf/sbin/restore
175         install -m 755 cmd/helpcmd $(DESTDIR)$(libdir)/lxcf/sbin/helpcmd
176         install -m 755 cmd/version $(DESTDIR)$(libdir)/lxcf/sbin/version
177
178 install_conf: .prepare
179         install -m 644 conf/helpfile.txt $(DESTDIR)$(libdir)/lxcf/helpfile.txt
180         install -d -m 755 $(DESTDIR)$(sysconfdir)/lxcf
181         install -m 644 conf/lxcf.conf $(DESTDIR)$(sysconfdir)/lxcf/lxcf.conf
182         install -m 644 conf/lxcf.conf $(DESTDIR)$(libdir)/lxcf/lxcf.conf
183         install -d -m 755 $(DESTDIR)$(sysconfdir)/libvirt/qemu/networks
184         install -m 644 conf/etc_lxcfnet1.xml \
185             $(DESTDIR)$(sysconfdir)/libvirt/qemu/networks/lxcfnet1.xml
186         install -d -m 755 $(DESTDIR)$(sysconfdir)/libvirt/qemu/networks/autostart
187         ln -f -s $(sysconfdir)/libvirt/qemu/networks/lxcfnet1.xml \
188             $(DESTDIR)$(sysconfdir)/libvirt/qemu/networks/autostart/lxcfnet1.xml
189         install -d -m 755 $(DESTDIR)$(systemddir)/system
190         install -m 644 conf/lxcf.service $(DESTDIR)$(systemddir)/system/lxcf.service
191         install -m 644 conf/lxcf-sched.service $(DESTDIR)$(systemddir)/system/lxcf-sched.service
192         install -d -m 755 $(DESTDIR)$(sysconfdir)/systemd/system/multi-user.target.wants
193         #ln -f -s $(systemddir)/system/lxcf.service \
194         #    $(DESTDIR)$(sysconfdir)/systemd/system/multi-user.target.wants/lxcf.service
195         #ln -f -s $(systemddir)/system/lxcf-sched.service \
196         #    $(DESTDIR)$(sysconfdir)/systemd/system/multi-user.target.wants/lxcf-sched.service
197         install -d -m 755 $(DESTDIR)$(localstatedir)/lib/libvirt/network
198         install -m 644 conf/var_lxcfnet1.xml \
199             $(DESTDIR)$(localstatedir)/lib/libvirt/network/lxcfnet1.xml
200         install -d -m 755 $(DESTDIR)$(localstatedir)/log/lxcf
201 ifeq ($(strip $(DESTDIR)),)
202         $(DESTDIR)$(libdir)/lxcf/lxcf-init
203 endif
204
205 install_hooks: .prepare
206         install -d -m 755 $(DESTDIR)$(sysconfdir)/libvirt/hooks
207         install -m 755 conf/lxcf-hook $(DESTDIR)$(sysconfdir)/libvirt/hooks/lxc
208         install -m 755 conf/lxcf-hook $(DESTDIR)$(sysconfdir)/libvirt/hooks/qemu
209
210 install_man: ChangeLog
211         install -d -m 755 $(DESTDIR)$(mandir)/man1
212         install -m 644 doc/lxcf.1.gz $(DESTDIR)$(mandir)/man1/lxcf.1.gz
213         install -d -m 755 $(DESTDIR)$(docdir)
214         install -m 644 README $(DESTDIR)$(docdir)/README
215         install -m 644 COPYING $(DESTDIR)$(docdir)/COPYING
216         install -m 644 ChangeLog $(DESTDIR)$(docdir)/ChangeLog
217         install -m 644 AUTHORS $(DESTDIR)$(docdir)/AUTHORS
218         install -d -m 755 $(DESTDIR)$(docdir)/example
219         install -m 644 example/README $(DESTDIR)$(docdir)/example/README
220         install -m 755 example/HA10 $(DESTDIR)$(docdir)/example/HA10
221         install -m 755 example/ops-script $(DESTDIR)$(docdir)/example/ops-script
222
223 ChangeLog:
224         if [ ! -f $@ ] ; then touch $@ ; fi
225
226 clean:
227         rm -f src/lxcf-resource1
228         rm -f src/lxcf-sched
229         rm -f doc/lxcf.1.gz
230         rm -f ChangeLog
231 ifneq ($(strip $(sbindir)),/usr/sbin)
232         sed -i "s@$(sbindir)@/usr/sbin@g" cmd/*
233 endif
234 ifneq ($(strip $(libdir)),/usr/lib64)
235         sed -i "/\(\/usr\/lib64\|systemd\|libexec\)/!s@$(libdir)@/usr/lib64@g" \
236             cmd/* conf/* lib/*
237 endif
238 ifneq ($(strip $(systemddir)),/usr/lib/systemd)
239         sed -i "s@$(systemddir)@/usr/lib/systemd@g" lib/*
240 endif
241 ifneq ($(strip $(sysconfdir)),/etc)
242         @touch -r src/lxcf-resource1.c .stamp-h1
243         @touch -r doc/lxcf.1 .stamp-h2
244         sed -i "s@$(sysconfdir)/lxcf@/etc/lxcf@g" cmd/* doc/* lib/* src/*
245         @touch -r .stamp-h1 src/lxcf-resource1.c ; rm -f .stamp-h1
246         @touch -r .stamp-h2 doc/lxcf.1 ; rm -f .stamp-h2
247 endif
248 ifneq ($(strip $(localstatedir)),/var)
249         @touch -r src/lxcf-sched.c .stamp-h3
250         sed -i "s@/$(sysconfdir)/\(\(log\|tmp\)/lxcf\)@/var/\1@g" \
251             cmd/* lib/* src/*
252         @touch -r .stamp-h3 src/lxcf-sched.c ; rm -f .stamp-h3
253 endif
254         @rm -f .prepare
255
256 uninstall:
257 ifeq ($(strip $(DESTDIR)),)
258         systemctl disable lxcf-sched
259 endif
260         rm -f $(DESTDIR)$(sbindir)/lxcf
261         rm -rf $(DESTDIR)$(libdir)/lxcf
262         rm -rf $(DESTDIR)$(sysconfdir)/libvirt/hooks
263         rm -f $(DESTDIR)$(sysconfdir)/libvirt/qemu/networks/lxcfnet1.xml
264         rm -f $(DESTDIR)$(sysconfdir)/libvirt/qemu/networks/autostart/lxcfnet1.xml
265         rm -f $(DESTDIR)$(systemddir)/system/lxcf.service
266         rm -f $(DESTDIR)$(systemddir)/system/lxcf-sched.service
267         rm -f $(DESTDIR)$(sysconfdir)/systemd/system/multi-user.target.wants/lxcf.service
268         rm -f $(DESTDIR)$(sysconfdir)/systemd/system/multi-user.target.wants/lxcf-sched.service
269         rm -f $(DESTDIR)$(localstatedir)/lib/libvirt/network/lxcfnet1.xml
270         rm -rf $(DESTDIR)$(localstatedir)/log/lxcf
271         rm -rf $(DESTDIR)$(localstatedir)/tmp/lxcf
272         rm -f $(DESTDIR)$(mandir)/man1/lxcf.1.gz
273         rm -rf $(DESTDIR)$(docdir)