Inserting VZGOT development tree within GIT
[safe/jmp/vzgot] / Makefile
1 #--------------------------------------------------------------------
2 #to make Mentor executable
3 #--------------------------------------------------------------------
4 #variable checking
5 #devbase est fait sur le nom de dieux goth
6 #Odin,Gaus,Donar,Volla,Phol
7 ORIG?="montreal"
8 ifeq ("$(ORIG)","mercier")
9 export DEVBASE=odin
10 endif
11 ifeq ("$(ORIG)","longueuil")
12 export DEVBASE=gaus
13 endif
14 #defining devbase
15 DEVDIR=`(cd /home/safe ; pwd)`/safetst/$(DEVBASE)
16 #--------------------------------------------------------------------
17 dev     :  fclean chkmake
18            @ $(MAKE) $(NCPU) -s fdebug
19
20 devprod :  fclean chkmake
21            @ $(MAKE) $(NCPU) -s fprod
22
23 chkmake :  Makefile.inc Makefile
24            @ $(MAKE) -s  fclean
25            @ touch chkmake
26
27 fclean  :  clean
28            @ for i in $(PRIVDIRS) ;                             \
29              do                                                 \
30              echo "Doing now \"$$i clean\"" ;                   \
31              $(MAKE) -s  -C $$i clean ;                         \
32              done                       
33            @ rm -fr $(RPMDIR)/SOURCES/$(APLR)*.tgz              \
34                     $(APPNAME)*.src.rpm 
35
36 fdebug  :  
37            @ $(MAKE) -s debug
38            @ for i in $(PRIVDIRS) ;                             \
39              do                                                 \
40              echo "Doing: $$i debug" ;                          \
41              $(MAKE) -s -C $$i debug ;                          \
42              done                       
43
44 fprod   :  
45            @ $(MAKE) -s prod
46            @ for i in $(PRIVDIRS) ;                             \
47              do                                                 \
48              echo "Doing: $$i prod" ;                           \
49              $(MAKE) -s -C $$i prod ;                           \
50              done                       
51
52 #--------------------------------------------------------------------
53 #to test application localy
54 vzboot  :  dev
55            @ $(MAKE) ACTION="boot cont" vzgotry
56         
57 vzgotry :  
58            - exec app/$(APPNAME) -b $(DEVDIR) -v -f -d9 $(ACTION)
59
60 #--------------------------------------------------------------------
61 #to save the current distribution
62 sauve   :  fclean
63            @ echo "starting RCS process"
64            @ support/sauver $(SRC)
65            @ for i in $(ALLDIRS) ; \
66              do  \
67              $(MAKE) -s -C $$i $@ ; \
68              done
69            @ echo "RCS process completed"
70 #--------------------------------------------------------------------
71 #creation d'un band de test
72 devbase :
73            @ (                                                  \
74              if [ -z $(DEVBASE) ] ; then                        \
75                echo "DEVBASE environment variable is missing" ; \
76              else                                               \
77                echo "Starting to build devbase \"$(DEVBASE)\"" ;\
78                $(MAKE) -s devil ;                               \
79              fi                                                 \
80              )
81
82 devil   :
83            @ $(MAKE) -s fclean fdebug 
84            @ echo "Creating \"$(DEVBASE)\" test executable"; 
85            @ (                                                  \
86              if [ -d $(DEVDIR) ] ; then                         \
87                rm -fr $(DEVDIR)/* ;                             \
88              else                                               \
89                mkdir $(DEVDIR) ;                                \
90              fi ;                                               \
91              )
92            @ #creating basic prexisting system directory        
93            @ mkdir -p                                           \
94                 $(DEVDIR)/$(VZDIR)/cont/.oldroot                \
95                 $(DEVDIR)/$(VZDIR)/cont/rootfs                  \
96                 $(DEVDIR)/usr/bin                               \
97                 $(DEVDIR)/var/tmp                               \
98                 $(DEVDIR)/var/lock/$(APPNAME)                   \
99                 $(DEVDIR)/tmp
100            @ echo "\"$(DEVBASE)\" now ready"
101
102 #--------------------------------------------------------------------
103 #to make a full distribution
104
105 distrib :  fclean rpm
106            $(MAKE) dorpm_distrib
107 #--------------------------------------------------------------------
108 #to test application
109 xtest   :  rpm
110            @ ssh -q -Y -t $(XTSTSYS) sudo                               \
111                 rm -f ~safe/rpmbuild/RPMS/i586/$(APPNAME)*.i586.rpm
112            @ ssh -q -Y -t $(XTSTSYS) sudo                               \
113                 rm -f ~safe/$(APPNAME)*.src.rpm
114            @ scp -q $(APPNAME)*.src.rpm $(XTSTSYS):
115            @ ssh -Y -t $(XTSTSYS)                               \
116                 "rpmbuild --rebuild $(APPNAME)*.src.rpm"
117            @ ssh -Y -t $(XTSTSYS) sudo                          \
118                 rpm -Uhv ~safe/rpmbuild/RPMS/i586/$(APPNAME)*.i586.rpm
119
120 test    :  binary
121            @ ssh $(TSTSYS).safe.ca                              \
122                 "rm -fr $(APPNAME)-*.x86_64.rpm"
123            @ scp -q                                             \
124                 $(RPMDIR)/RPMS/x86_64/$(APPNAME)-*.x86_64.rpm   \
125                 $(TSTSYS).safe.ca:
126             @ ssh -Y -t $(TSTSYS).safe.ca sudo                  \
127                 rpm -Uhv ~safe/$(APPNAME)-*.x86_64.rpm
128
129 binary  :  rpm  
130            @ echo "Making RPM binary"
131            @ rm -fr $(RPMDIR)/RPMS/x86_64/$(APPNAME)-*.x86_64.rpm
132            @ rm -fr $(APPNAME)-*.x86_64.rpm
133            @ rpm --quiet -Uhv $(APLR)*.src.rpm  > /dev/null
134            @ rpmbuild                                           \
135                 --ba                                            \
136                 --quiet                                         \
137                 --rebuild                                       \
138                 $(RPMDIR)/SPECS/$(APPNAME).spec
139            @ cp $(RPMDIR)/RPMS/x86_64/$(APPNAME)-*.x86_64.rpm . 
140            @ echo "RPM binary completed"
141
142
143 rpmlint :  binary
144            @ rpmlint $(APPNAME)-*.x86_64.rpm 
145
146 release :  binary
147            @ ssh $(FTPSITE).safe.ca                             \
148                 mkdir -p /var/ftp/pub/linux/vzgot/archives
149            @ ssh $(FTPSITE).safe.ca                             \
150                 mv /var/ftp/pub/linux/vzgot/*.rpm               \
151                    /var/ftp/pub/linux/vzgot/archives
152            @ scp -p support/{README,QUICK-START}                \
153                 $(APPNAME)-*.rpm                                \
154                 $(FTPSITE).safe.ca:/var/ftp/pub/linux/vzgot
155            @ grep -v '^[#.*]' Changes   |                       \
156                 ssh $(FTPSITE).safe.ca                          \
157                    "cat - > /var/ftp/pub/linux/vzgot/Changes"
158 #--------------------------------------------------------------------
159 #to make the RPM SRC file
160 rpm     :
161            @ echo "Making RPM src"
162            @ $(MAKE) -s vztar
163            @ rm -fr                                             \
164                 $(RPMDIR)/SOURCES/$(APLR)*.tgz                  \
165                 $(APPNAME)*.src.rpm
166            @ mv $(APLR).tgz $(RPMDIR)/SOURCES
167            @ rpmbuild -bs                                       \
168                 --quiet                                         \
169                 --define "_topdir /home/safe/RPM"               \
170                 support/$(APPNAME).spec > /dev/null 2>&1
171            @ mv $(RPMDIR)/SRPMS/$(APLR)*.src.rpm .
172            @ echo "RPM src completed"
173         
174 vztar   :
175            @ rm -fr $(APLR).tgz
176            @ mkdir -p                                           \
177                 $(APLR)/conf                                    \
178                 $(APLR)/lib                                     \
179                 $(APLR)/app                                     \
180                 $(APLR)/cgroup.d                                \
181                 $(APLR)/etc                                     \
182                 $(APLR)/etc/sysconfig                           \
183                 $(APLR)/etc/snmp                                \
184                 $(APLR)/shell
185            @ #copying version, build_date and info file
186            @ date > $(APLR)/$(APLR).build_date
187            @ #adding RPM data
188            @ cp -ap RPM $(APLR)
189            @ #adding group information
190            @ cp -ap cgroup.d/devices.* $(APLR)/cgroup.d
191            @ #adding application sources
192            @ cp -a lib/{*.c,*.h} $(APLR)/lib
193            @ cp -a app/*.c $(APLR)/app
194            @ cp -a shell/vzgot.* $(APLR)/shell
195            @ #adding configuration file
196            @ cp -a support/vzgot_config $(APLR)/conf
197            @ cp -a support/vzgot_list $(APLR)/conf
198            @ cp -a support/redhat_init.sh $(APLR)/conf
199            @ cp -a support/{README,QUICK-START} $(APLR)
200            @ grep -v '^[#.*]' Changes > $(APLR)/Changes
201            @ cp -a etc/{users,groups,sudoers} $(APLR)/etc
202            @ cp -a etc/{resolv.conf,shadow} $(APLR)/etc
203            @ cp -a etc/iptables $(APLR)/etc/sysconfig
204            @ cp -a etc/snmpd.conf $(APLR)/etc/snmp
205            @ #adding construction file
206            @ cp -a Makefile.inc  $(APLR)/Makefile
207            @ @ cp -a lib/Makefile.inc $(APLR)/lib/Makefile
208            @ @ cp -a app/Makefile.inc $(APLR)/app/Makefile
209            @ tar zcf $(APLR).tgz $(APLR)
210            @ rm -fr $(APLR)
211
212 #--------------------------------------------------------------------
213 togit   :  fclean
214            @ git add .
215            @ git clean -f -q
216            @ echo "Ready for \"git commit -a\""
217
218 #--------------------------------------------------------------------
219 SRC     =                                                       \
220            Changes                                              \
221            Makefile.inc
222
223 ALLDIRS =                                                       \
224           $(SUBDIRS)                                            \
225           etc cgroup.d shell support
226
227
228 PROG=   $(APPNAME)
229
230 VZDIR=/var/lib/vzgot
231 #--------------------------------------------------------------------
232 include ./Makefile.inc
233 include /etc/saferepo/Makefile.dorpm
234 #--------------------------------------------------------------------
235 #rpm definitions
236 RPMDIR  =       ~/RPM
237 TSTSYS  =       Sorel
238 XTSTSYS =       192.219.254.58
239 FTPSITE =       ftploc
240 #====================================================================
241 .PHONY: sauve binary rpm rpmlint chkmake togit
242 #--------------------------------------------------------------------