From http://www.jwz.org/xscreensaver/xscreensaver-5.39.tar.gz
[xscreensaver] / Makefile.in
1 # Makefile.in --- xscreensaver, Copyright (c) 1999-2014 Jamie Zawinski.
2 # the `../configure' script generates `Makefile' from this file.
3
4 @SET_MAKE@
5 srcdir          = @srcdir@
6 VPATH           = @srcdir@
7
8 SHELL           = /bin/sh
9 SUBDIRS         = utils jwxyz hacks/images hacks hacks/glx driver po
10 SUBDIRS2        = $(SUBDIRS) OSX android
11 TARFILES        = README README.hacking README.VMS INSTALL \
12                   configure configure.in Makefile.in config.h.in \
13                   config.h-vms install-sh setup.com config.guess aclocal.m4 \
14                   ax_pthread.m4 config.sub makevms.com \
15                   intltool-merge.in intltool-extract.in intltool-update.in \
16                   xscreensaver.spec \
17                   OSX/xscreensaver.xcodeproj/project.pbxproj
18
19 TAR             = tar
20
21 MAKE_SUBDIR  = for dir in $(SUBDIRS); do (cd $$dir; $(MAKE) $@) || exit 5; done
22 MAKE_SUBDIR2 = for dir in $(SUBDIRS2); do (cd $$dir; $(MAKE) $@) || exit 5; done
23
24 default::
25         @+$(MAKE_SUBDIR)
26 all::
27         @+$(MAKE_SUBDIR)
28 install::
29         @+$(MAKE_SUBDIR)
30 install-program::
31         @+$(MAKE_SUBDIR)
32 install-man::
33         @+$(MAKE_SUBDIR)
34 install-strip::
35         @+$(MAKE_SUBDIR)
36 uninstall::
37         @$(MAKE_SUBDIR)
38 uninstall-program::
39         @$(MAKE_SUBDIR)
40 uninstall-man::
41         @$(MAKE_SUBDIR)
42 depend::
43         @$(MAKE_SUBDIR)
44 distdepend::
45         @$(MAKE) update_spec_version
46         @$(MAKE_SUBDIR2)
47         @cd po ; $(MAKE) update-po
48
49 TAGS:: tags
50 tags::
51         @$(MAKE_SUBDIR)
52
53 clean::
54         @$(MAKE_SUBDIR2)
55
56 distclean:: clean
57         -rm -f config.h Makefile config.status config.cache config.log TAGS *~ "#"* intltool-extract intltool-merge intltool-update
58         @$(MAKE_SUBDIR2)
59
60 dist:: tar
61
62 # This really makes me sick...
63 tar::
64         @                                                                   \
65   sh config.status ;                                                        \
66   rm -f configure ;                                                         \
67   $(MAKE) configure ;                                                       \
68   $(MAKE) version-date distdepend ;                                         \
69   VERS=`sed -n 's/[^0-9]*\([0-9]\.[0-9][^. ]*\).*/\1/p' utils/version.h` ;  \
70   NAME="xscreensaver-$$VERS" ;                                              \
71   rm -rf $$NAME ; ln -s . $$NAME ;                                          \
72   FILES= ;                                                                  \
73   ADIR=archive/ ;                                                           \
74   for subdir in $(SUBDIRS2) ; do                                            \
75     d=`pwd` ;                                                               \
76     cd $$subdir ;                                                           \
77     FILES="$$FILES `$(MAKE) echo_tarfiles                                   \
78       | grep -v '^.*make\['                                                 \
79       | sed \"s|^|$$subdir/|g;s| | $$subdir/|g\"                            \
80       ` ";                                                                  \
81     cd $$d ; done ;                                                         \
82   echo creating tar file $$ADIR$$NAME.tar.gz... ;                           \
83   export COPYFILE_DISABLE=true ;                                            \
84   GZIP="-9v" $(TAR) -vczf $$ADIR$$NAME.tar.gz                               \
85     `echo $(TARFILES) $$FILES | sed "s|^|$$NAME/|g; s| | $$NAME/|g" ` ;     \
86   rm $$NAME
87
88
89 # This also makes me sick...
90 # autoconf generates a configure script that begins with a very hard to read,
91 # nearly impossible to customize --help blurb.  This horrid set of regexps
92 # go through and clean up the help text, by inserting whitespace and ripping
93 # out options we don't use.  Odds are good that this will fail with any version
94 # of autoconf other than the ones I've tried (2.12 and 2.13.)
95 #
96 configure::
97         aclocal
98         autoconf
99         autoheader
100         @TMP=configure.$$$$ ;                                                \
101         echo "munging configure's --help message..." ;                       \
102         ( perl -e '                                                          \
103                 my $$file="";                                                \
104                 while (<>) { $$file .= $$_; }                                \
105                 $$_ = $$file;                                                \
106                                                                              \
107                 s/^(Configuration:)$$/\n$$1\n/m;                             \
108                 s/^(Directory and file names:)$$/\n$$1\n/m;                  \
109                 s/^  --sbindir=.*\n//m;                                      \
110                 s/^  --sysconfdir.*\n//m;                                    \
111                 s/^  --sharedstatedir.*\n.*\n//m;                            \
112                 s/^  --localstatedir.*\n//m;                                 \
113                 s/^  --infodir.*\n//m;                                       \
114                 s/^(Host type:)$$/\n$$1\n/m;                                 \
115                 s/\nFeatures and packages:\n.*library files are in DIR\n/\n/s;\
116                 s/--enable and --with options recognized://m;                \
117                 s/\n  --with-x .*?(["\n])/$$1/s;                             \
118                 s/\n(Installation options:\n)/$$1/s;                         \
119                                                                              \
120                 s/^  --oldincludedir=.*$$/ \
121  --x-includes=DIR        X include files are in DIR\n \
122  --x-libraries=DIR       X library files are in DIR/m; \
123                                                                              \
124                 s@mandir=.\$$\{prefix}/man.@mandir=\\\$${datadir}/man@;       \
125                                                                              \
126                 s@rm -f conftest@rm -rf conftest@g;                          \
127                                                                              \
128                 print;'                                                      \
129         < configure                                                          \
130         > $$TMP &&                                                           \
131         cat $$TMP > configure ) ;                                            \
132         rm -f $$TMP
133
134 bump-version::
135         @                                                                   \
136   SRC=utils/version.h ;                                                     \
137   VERS=`sed -n 's/[^0-9]*\([0-9]\)\.\([0-9][^. ]*\).*/\1 \2/p' $$SRC` ;     \
138   set - $$VERS ;                                                            \
139   MAJOR="$$1"; MINOR="$$2";                                                 \
140   NEW=`echo $$MINOR + 1 | bc` ;                                             \
141   NEW=`echo $$NEW | sed 's/^\([0-9]\)$$/0\1/'` ;                            \
142   D=`date '+%d-%b-%Y'`;                                                     \
143   ADIR=archive/ ;                                                           \
144   if [ ! -f $${ADIR}xscreensaver-$$MAJOR.$$MINOR.tar.gz ]; then             \
145    echo "WARNING: $${ADIR}xscreensaver-$$MAJOR.$$MINOR.tar.gz does not exist.";\
146   fi ;                                                                      \
147   if [ -f $${ADIR}xscreensaver-$$MAJOR.$$NEW.tar.gz ]; then                 \
148     echo "WARNING: $${ADIR}xscreensaver-$$MAJOR.$$NEW.tar.gz already exists.";\
149   fi ;                                                                      \
150   /bin/echo -n "Bumping $$MAJOR.$$MINOR to $$MAJOR.$$NEW ($$D), ok? ";      \
151   read line;                                                                \
152   if [ "x$$line" != "xyes" -a  "x$$line" != "xy" ]; then                    \
153     exit 1 ;                                                                \
154   fi ;                                                                      \
155   TMP=/tmp/bv.$$ ;                                                          \
156   sed -e "s/\([0-9]\.[0-9][0-9]*\)/$$MAJOR.$$NEW/"                          \
157       -e "s/\(([0-9][0-9]*-[A-Za-z][a-z][a-z]-[0-9][0-9][0-9]*\))/($$D)/"   \
158         $$SRC > $$TMP ;                                                     \
159   /bin/echo -n "New version and date are ";                                 \
160   sed -n "s/[^0-9]*\([0-9]\.[0-9][0-9]*\) (\([-A-Za-z0-9]*\)).*/\1, \2./p"  \
161      $$TMP;                                                                 \
162   cat $$TMP > $$SRC ;                                                       \
163   rm -f $$TMP;                                                              \
164   echo "overwrote $$SRC";                                                   \
165   ls -lFd $$SRC
166
167 bump_version:: bump-version
168 tick-version:: bump-version
169 tick_version:: bump-version
170
171 version-date::
172         @                                                                   \
173   SRC=utils/version.h ;                                                     \
174   D=`date '+%d-%b-%Y'`;                                                     \
175   TMP=/tmp/bv.$$ ;                                                          \
176   sed -e "s/([0-9][^()]*)/($$D)/" < $$SRC > $$TMP ;                         \
177   /bin/echo -n "Updating date in $$SRC to \"$$D\"... " ;                    \
178   if cmp -s $$SRC $$TMP ; then                                              \
179     echo "unchanged." ;                                                     \
180   else                                                                      \
181     cat $$TMP > $$SRC ;                                                     \
182     echo "done." ;                                                          \
183   fi ;                                                                      \
184   rm -f $$TMP
185
186
187 update_spec_version::
188         @S=$(srcdir)/xscreensaver.spec ;                                    \
189         U=$(srcdir)/utils/version.h ;                                       \
190         VERS=`sed -n 's/[^0-9]*\([0-9]\.[0-9][^. ]*\).*/\1/p' < $$U` ;      \
191         /bin/echo -n "Updating $$S to \"$$VERS\"... " ;                     \
192         T=/tmp/xs.$$$$ ;                                                    \
193         sed "s/^\(%define.version[^0-9]*\)\(.*\)/\1$$VERS/"                 \
194           < $$S > $$T ;                                                     \
195         if cmp -s $$S $$T ; then                                            \
196           echo "unchanged." ;                                               \
197         else                                                                \
198           cat $$T > $$S ;                                                   \
199           echo "done." ;                                                    \
200         fi ;                                                                \
201         rm $$T
202
203 rpm::
204         @                                                                  \
205   VERS=`sed -n 's/[^0-9]*\([0-9]\.[0-9][^. ]*\).*/\1/p' utils/version.h` ; \
206   DIR=`pwd`/rpm_build ;                                                    \
207   ARCH=`rpm --showrc | sed -n 's/^build arch *: //p'` ;                    \
208   ADIR=archive/ ;                                                          \
209   TGZ=xscreensaver-$$VERS.tar.gz ;                                         \
210   if [ ! -f $${ADIR}$$TGZ ]; then                                          \
211     echo "$${ADIR}$$TGZ does not exist!  Did you forget to \`make tar'?" ; \
212     exit 1 ;                                                               \
213   fi ;                                                                     \
214   rm -rf /var/tmp/xscreensaver-$$VERS-root ;                               \
215   rm -rf $$DIR ;                                                           \
216   mkdir $$DIR ;                                                            \
217   ( cd $$DIR; mkdir BUILD RPMS RPMS/$$ARCH SOURCES SPECS SRPMS ) ;         \
218   cp -p $${ADIR}$$TGZ $$DIR/SOURCES/ ;                                     \
219   rpmbuild --define "_topdir $$DIR"                                        \
220            --define "USE_GL yes"                                           \
221            -v -ba xscreensaver.spec ;                                      \
222   echo '' ;                                                                \
223   echo 'RPM build complete' ;                                              \
224   echo '' ;                                                                \
225   rm -f $$DIR/$$TGZ ;                                                      \
226   rm -rf $$DIR/BUILD/xscreensaver-$$VERS ;                                 \
227   mv $$DIR/SRPMS/xscreensaver*-$$VERS-*.rpm . ;                            \
228   mv $$DIR/RPMS/$$ARCH/xscreensaver*-$$VERS-*.rpm . ;                      \
229   rm -rf $$DIR ;                                                           \
230   echo '' ;                                                                \
231   ls -lFG xscreensaver*-$$VERS-*.rpm
232
233 dmg::
234         $(MAKE) -C OSX release dmg
235 apk::
236         $(MAKE) -C android apk
237
238 www::
239         @                                                                   \
240   DEST=$$HOME/www/xscreensaver ;                                            \
241   VERS=`sed -n 's/[^0-9]*\([0-9]\.[0-9][^. ]*\).*/\1/p' utils/version.h` ;  \
242   HEAD="xscreensaver-$$VERS" ;                                              \
243   ADIR=archive/ ;                                                           \
244   BNAME="$$HEAD.tar.gz" ;                                                   \
245   NAME="$$ADIR$$BNAME" ;                                                    \
246   DNAME="$$DEST/$$HEAD.tar.gz" ;                                            \
247   BNAME2="$$HEAD.dmg" ;                                                     \
248   NAME2="$$ADIR$$BNAME2" ;                                                  \
249   DNAME2="$$DEST/$$HEAD.dmg" ;                                              \
250   BNAME3="$$HEAD.apk" ;                                                     \
251   NAME3="$$ADIR$$BNAME3" ;                                                  \
252   DNAME3="$$DEST/$$HEAD.apk" ;                                              \
253                                                                             \
254   if ! git diff --quiet ; then                                              \
255     echo "uncommitted changes exist!" ;                                     \
256     exit 1 ;                                                                \
257   fi ;                                                                      \
258                                                                             \
259   $(MAKE) -C OSX updates.xml ;                                              \
260                                                                             \
261   if [ ! -f $$NAME ]; then                                                  \
262     echo "$$NAME does not exist!  Did you forget to \`make tar'?" ;         \
263     exit 1 ;                                                                \
264   fi ;                                                                      \
265   if [ ! -f $$NAME2 ]; then                                                 \
266     echo "$$NAME2 does not exist!  Did you forget to \`make dmg'?" ;        \
267     exit 1 ;                                                                \
268   fi ;                                                                      \
269   if [ ! -f $$NAME3 ]; then                                                 \
270     echo "$$NAME3 does not exist!  Did you forget to \`make apk'?" ;        \
271     exit 1 ;                                                                \
272   fi ;                                                                      \
273   chmod a-w $$NAME ;                                                        \
274   if [ -f $$DNAME ]; then                                                   \
275     /bin/echo -n "WARNING: $$DNAME already exists!  Overwrite? ";           \
276     read line;                                                              \
277     if [ "x$$line" != "xyes" -a "x$$line" != "xy" ]; then                   \
278       exit 1 ;                                                              \
279     fi ;                                                                    \
280   fi ;                                                                      \
281   if [ -f $$DNAME2 ]; then                                                  \
282     /bin/echo -n "WARNING: $$DNAME2 already exists!  Overwrite? ";          \
283     read line;                                                              \
284     if [ "x$$line" != "xyes" -a "x$$line" != "xy" ]; then                   \
285       exit 1 ;                                                              \
286     fi ;                                                                    \
287   fi ;                                                                      \
288   if [ -f $$DNAME3 ]; then                                                  \
289     /bin/echo -n "WARNING: $$DNAME3 already exists!  Overwrite? ";          \
290     read line;                                                              \
291     if [ "x$$line" != "xyes" -a "x$$line" != "xy" ]; then                   \
292       exit 1 ;                                                              \
293     fi ;                                                                    \
294   fi ;                                                                      \
295                                                                             \
296   git tag -a "v$$VERS" -m "$$VERS" ;                                        \
297   git commit -m "$$VERS" . ;                                                \
298                                                                             \
299   ( cd $$DEST ; git pull ) ;                                                \
300                                                                             \
301   cp -p $$NAME $$DNAME ;                                                    \
302   cp -p $$NAME2 $$DNAME2 ;                                                  \
303   cp -p $$NAME3 $$DNAME3 ;                                                  \
304   chmod u+w $$DNAME $$DNAME2 $$DNAME3 ;                                     \
305   cp -p OSX/updates.xml $$DEST ;                                            \
306   cd $$DEST ;                                                               \
307                                                                             \
308   TMP=/tmp/xd.$$$$ ;                                                        \
309   sed "s/xscreensaver-5\.[0-9][0-9ab]*/$$HEAD/g" download.html > $$TMP ;    \
310   echo '' ;                                                                 \
311   diff -U0 download.html $$TMP ;                                            \
312   echo '' ;                                                                 \
313                                                                             \
314   for EXT in tar.gz dmg ; do                                                \
315     OLDEST=`ls xscreensaver*.$$EXT |                                        \
316       fgrep -v 5.14 |                                                       \
317       fgrep -v 5.34 |                                                       \
318       head -n 1` ;                                                          \
319     /bin/echo -n "Delete $$DEST/$$OLDEST? ";                                \
320     read line;                                                              \
321     if [ "x$$line" = "xyes" -o "x$$line" = "xy" ]; then                     \
322       set -x ;                                                              \
323       rm $$OLDEST ;                                                         \
324       git rm $$OLDEST ;                                                     \
325       set +x ;                                                              \
326     fi ;                                                                    \
327   done ;                                                                    \
328   set -x ;                                                                  \
329   cat $$TMP > download.html ;                                               \
330   rm -f $$TMP ;                                                             \
331                                                                             \
332   git add $$BNAME $$BNAME2 $$BNAME3 ;                                       \
333                                                                             \
334   $(MAKE) -C ../ xscreensaver/changelog.html xscreensaver/screenshots/index.html; \
335   git diff changelog.html ;                                                 \
336   set +x ;                                                                  \
337                                                                             \
338   /bin/echo -n "Ok? ";                                                      \
339   read line;                                                                \
340   if [ "x$$line" != "xyes" -a "x$$line" != "xy" ]; then                     \
341     exit 1 ;                                                                \
342   fi ;                                                                      \
343                                                                             \
344   git tag -a "v$$VERS" -m "$$VERS" ;                                        \
345   git commit -m "$$VERS" . ;                                                \
346   git push ;                                                                \
347
348
349 count::
350         @ \
351   /bin/echo -n "Current hack count: " ; \
352   ( ( cd hacks;     make -s INSTALL=true install-program install-scripts ) ; \
353     ( cd hacks/glx; make -s INSTALL=true install-program ) ) | \
354     grep true | \
355     grep -v helper | \
356     grep -v ljlatest | \
357     wc -l