1 # Makefile.in --- xscreensaver, Copyright (c) 1999-2014 Jamie Zawinski.
2 # the `../configure' script generates `Makefile' from this file.
9 SUBDIRS = utils driver hacks hacks/glx po
10 #SUBDIRS = utils driver hacks hacks/glx
11 SUBDIRS2 = $(SUBDIRS) OSX
12 TARFILES = README README.hacking README.VMS INSTALL \
13 configure configure.in Makefile.in config.h.in \
14 config.h-vms install-sh setup.com config.guess aclocal.m4 \
15 ax_pthread.m4 config.sub makevms.com \
16 intltool-merge.in intltool-extract.in intltool-update.in \
18 xscreensaver.xcodeproj/project.pbxproj
22 MAKE_SUBDIR = for dir in $(SUBDIRS); do $(MAKE) -C $$dir $@ || exit 5; done
23 MAKE_SUBDIR2 = for dir in $(SUBDIRS2); do $(MAKE) -C $$dir $@ || exit 5; done
46 @$(MAKE) update_spec_version
48 @$(MAKE) -C po update-po
58 -rm -f config.h Makefile config.status config.cache config.log TAGS *~ "#"* intltool-extract intltool-merge intltool-update
63 # This really makes me sick...
69 $(MAKE) version-date distdepend ; \
70 VERS=`sed -n 's/[^0-9]*\([0-9]\.[0-9][^. ]*\).*/\1/p' utils/version.h` ; \
71 NAME="xscreensaver-$$VERS" ; \
72 rm -rf $$NAME ; ln -s . $$NAME ; \
75 for subdir in $(SUBDIRS2) ; do \
78 FILES="$$FILES `$(MAKE) echo_tarfiles \
79 | grep -v '^.*make\[' \
80 | sed \"s|^|$$subdir/|g;s| | $$subdir/|g\" \
83 echo creating tar file $$ADIR$$NAME.tar.gz... ; \
84 export COPYFILE_DISABLE=true ; \
85 GZIP="-9v" $(TAR) -vczf $$ADIR$$NAME.tar.gz \
86 `echo $(TARFILES) $$FILES | sed "s|^|$$NAME/|g; s| | $$NAME/|g" ` ; \
90 # This also makes me sick...
91 # autoconf generates a configure script that begins with a very hard to read,
92 # nearly impossible to customize --help blurb. This horrid set of regexps
93 # go through and clean up the help text, by inserting whitespace and ripping
94 # out options we don't use. Odds are good that this will fail with any version
95 # of autoconf other than the ones I've tried (2.12 and 2.13.)
101 @TMP=configure.$$$$ ; \
102 echo "munging configure's --help message..." ; \
105 while (<>) { $$file .= $$_; } \
108 s/^(Configuration:)$$/\n$$1\n/m; \
109 s/^(Directory and file names:)$$/\n$$1\n/m; \
110 s/^ --sbindir=.*\n//m; \
111 s/^ --sysconfdir.*\n//m; \
112 s/^ --sharedstatedir.*\n.*\n//m; \
113 s/^ --localstatedir.*\n//m; \
114 s/^ --infodir.*\n//m; \
115 s/^(Host type:)$$/\n$$1\n/m; \
116 s/\nFeatures and packages:\n.*library files are in DIR\n/\n/s;\
117 s/--enable and --with options recognized://m; \
118 s/\n --with-x .*?(["\n])/$$1/s; \
119 s/\n(Installation options:\n)/$$1/s; \
121 s/^ --oldincludedir=.*$$/ \
122 --x-includes=DIR X include files are in DIR\n \
123 --x-libraries=DIR X library files are in DIR/m; \
125 s@mandir=.\$${prefix}/man.@mandir=\\\$${datadir}/man@; \
127 s@rm -f conftest@rm -rf conftest@g; \
132 cat $$TMP > configure ) ; \
137 SRC=utils/version.h ; \
138 VERS=`sed -n 's/[^0-9]*\([0-9]\)\.\([0-9][^. ]*\).*/\1 \2/p' $$SRC` ; \
140 MAJOR="$$1"; MINOR="$$2"; \
141 NEW=`echo $$MINOR + 1 | bc` ; \
142 NEW=`echo $$NEW | sed 's/^\([0-9]\)$$/0\1/'` ; \
143 D=`date '+%d-%b-%Y'`; \
145 if [ ! -f $${ADIR}xscreensaver-$$MAJOR.$$MINOR.tar.gz ]; then \
146 echo "WARNING: $${ADIR}xscreensaver-$$MAJOR.$$MINOR.tar.gz does not exist.";\
148 if [ -f $${ADIR}xscreensaver-$$MAJOR.$$NEW.tar.gz ]; then \
149 echo "WARNING: $${ADIR}xscreensaver-$$MAJOR.$$NEW.tar.gz already exists.";\
151 /bin/echo -n "Bumping $$MAJOR.$$MINOR to $$MAJOR.$$NEW ($$D), ok? "; \
153 if [ "x$$line" != "xyes" -a "x$$line" != "xy" ]; then \
157 sed -e "s/\([0-9]\.[0-9][0-9]*\)/$$MAJOR.$$NEW/" \
158 -e "s/\(([0-9][0-9]*-[A-Za-z][a-z][a-z]-[0-9][0-9][0-9]*\))/($$D)/" \
160 /bin/echo -n "New version and date are "; \
161 sed -n "s/[^0-9]*\([0-9]\.[0-9][0-9]*\) (\([-A-Za-z0-9]*\)).*/\1, \2./p" \
163 cat $$TMP > $$SRC ; \
165 echo "overwrote $$SRC"; \
168 bump_version:: bump-version
169 tick-version:: bump-version
170 tick_version:: bump-version
174 SRC=utils/version.h ; \
175 D=`date '+%d-%b-%Y'`; \
177 sed -e "s/([0-9][^()]*)/($$D)/" < $$SRC > $$TMP ; \
178 /bin/echo -n "Updating date in $$SRC to \"$$D\"... " ; \
179 if cmp -s $$SRC $$TMP ; then \
180 echo "unchanged." ; \
182 cat $$TMP > $$SRC ; \
188 update_spec_version::
189 @S=$(srcdir)/xscreensaver.spec ; \
190 U=$(srcdir)/utils/version.h ; \
191 VERS=`sed -n 's/[^0-9]*\([0-9]\.[0-9][^. ]*\).*/\1/p' < $$U` ; \
192 /bin/echo -n "Updating $$S to \"$$VERS\"... " ; \
194 sed "s/^\(%define.version[^0-9]*\)\(.*\)/\1$$VERS/" \
196 if cmp -s $$S $$T ; then \
197 echo "unchanged." ; \
206 VERS=`sed -n 's/[^0-9]*\([0-9]\.[0-9][^. ]*\).*/\1/p' utils/version.h` ; \
207 DIR=`pwd`/rpm_build ; \
208 ARCH=`rpm --showrc | sed -n 's/^build arch *: //p'` ; \
210 TGZ=xscreensaver-$$VERS.tar.gz ; \
211 if [ ! -f $${ADIR}$$TGZ ]; then \
212 echo "$${ADIR}$$TGZ does not exist! Did you forget to \`make tar'?" ; \
215 rm -rf /var/tmp/xscreensaver-$$VERS-root ; \
218 ( cd $$DIR; mkdir BUILD RPMS RPMS/$$ARCH SOURCES SPECS SRPMS ) ; \
219 cp -p $${ADIR}$$TGZ $$DIR/SOURCES/ ; \
220 rpmbuild --define "_topdir $$DIR" \
221 --define "USE_GL yes" \
222 -v -ba xscreensaver.spec ; \
224 echo 'RPM build complete' ; \
226 rm -f $$DIR/$$TGZ ; \
227 rm -rf $$DIR/BUILD/xscreensaver-$$VERS ; \
228 mv $$DIR/SRPMS/xscreensaver*-$$VERS-*.rpm . ; \
229 mv $$DIR/RPMS/$$ARCH/xscreensaver*-$$VERS-*.rpm . ; \
232 ls -lFG xscreensaver*-$$VERS-*.rpm
236 VERS=`sed -n 's/[^0-9]*\([0-9]\.[0-9][^. ]*\).*/\1/p' utils/version.h` ; \
237 D=xscreensaver-$$VERS ; \
239 NAME="$${ADIR}$$D.tar.gz" ; \
240 if [ ! -f $$NAME ]; then \
241 echo "$$NAME does not exist! Did you forget to \`make tar'?" ; \
248 if [ -d $$D ]; then \
252 zcat $${ADIR}$$D.tar.gz | tar -xf - ; \
258 mkdir BIN/lesstif ; \
264 ../../configure --without-xpm --without-xdbe --without-xshm \
265 --with-motif=/usr/local/motif ; \
266 echo --------------------------------------------------------------- ; \
268 ( cd driver; gmake tests ) ; \
269 echo --------------------------------------------------------------- ); \
274 ../../configure --with-motif=/usr/local/lesstif --without-gnome ; \
275 echo --------------------------------------------------------------- ; \
276 ( cd utils; gmake all ) ; \
277 ( cd driver; gmake all ) ; \
278 echo --------------------------------------------------------------- ); \
283 $(MAKE) -C OSX release dmg
287 DEST=$$HOME/www/xscreensaver ; \
288 VERS=`sed -n 's/[^0-9]*\([0-9]\.[0-9][^. ]*\).*/\1/p' utils/version.h` ; \
289 HEAD="xscreensaver-$$VERS" ; \
291 BNAME="$$HEAD.tar.gz" ; \
292 NAME="$$ADIR$$BNAME" ; \
293 DNAME="$$DEST/$$HEAD.tar.gz" ; \
294 BNAME2="$$HEAD.dmg" ; \
295 NAME2="$$ADIR$$BNAME2" ; \
296 DNAME2="$$DEST/$$HEAD.dmg" ; \
298 if ! git diff --quiet ; then \
299 echo "uncommitted changes exist!" ; \
303 $(MAKE) -C OSX updates.xml ; \
305 if [ ! -f $$NAME ]; then \
306 echo "$$NAME does not exist! Did you forget to \`make tar'?" ; \
309 if [ ! -f $$NAME2 ]; then \
310 echo "$$NAME2 does not exist! Did you forget to \`make dmg'?" ; \
314 if [ -f $$DNAME ]; then \
315 /bin/echo -n "WARNING: $$DNAME already exists! Overwrite? "; \
317 if [ "x$$line" != "xyes" -a "x$$line" != "xy" ]; then \
321 if [ -f $$DNAME2 ]; then \
322 /bin/echo -n "WARNING: $$DNAME2 already exists! Overwrite? "; \
324 if [ "x$$line" != "xyes" -a "x$$line" != "xy" ]; then \
329 git commit -a -m "$$VERS" . ; \
330 git tag -a "v$$VERS" -m "$$VERS" . ; \
332 ( cd $$DEST ; git pull . ) ; \
334 cp -p $$NAME $$DNAME ; \
335 cp -p $$NAME2 $$DNAME2 ; \
336 chmod u+w $$DNAME $$DNAME2 ; \
337 cp -p OSX/updates.xml $$DEST ; \
341 sed "s/xscreensaver-5\.[0-9][0-9ab]*/$$HEAD/g" download.html > $$TMP ; \
343 diff -U0 download.html $$TMP ; \
346 for EXT in tar.gz dmg ; do \
347 OLDEST=`ls xscreensaver*.$$EXT | \
350 /bin/echo -n "Delete $$DEST/$$OLDEST? "; \
352 if [ "x$$line" = "xyes" -o "x$$line" = "xy" ]; then \
360 cat $$TMP > download.html ; \
363 git add $$BNAME $$BNAME2 ; \
365 $(MAKE) -C ../ xscreensaver/changelog.html xscreensaver/screenshots/index.html; \
366 git diff changelog.html ; \
369 /bin/echo -n "Ok? "; \
371 if [ "x$$line" != "xyes" -a "x$$line" != "xy" ]; then \
375 git commit -m "$$VERS" . ; \
376 git tag -a "v$$VERS" -m "$$VERS" ; \
382 /bin/echo -n "Current hack count: " ; \
383 ( ( cd hacks; make -s INSTALL=true install-program install-scripts ) ; \
384 ( cd hacks/glx; make -s INSTALL=true install-program ) ) | \