# Makefile.in --- xscreensaver, Copyright © 1999-2021 Jamie Zawinski. # the `../configure' script generates `Makefile' from this file. @SET_MAKE@ srcdir = @srcdir@ VPATH = @srcdir@ SHELL = /bin/sh SUBDIRS = utils jwxyz hacks/images hacks hacks/glx hacks/fonts \ driver po SUBDIRS2 = $(SUBDIRS) OSX android TARFILES = README README.hacking INSTALL \ configure configure.ac Makefile.in config.h.in \ install-sh config.guess aclocal.m4 \ ax_pthread.m4 config.sub \ intltool-merge.in intltool-extract.in intltool-update.in \ xscreensaver.spec TAR = tar # Using $(MAKE) directly means the shell executes things even with "make -n" MAKE2 = $(MAKE) MAKE_SUBDIR = for dir in $(SUBDIRS); do (cd $$dir && $(MAKE2) $@) || exit 5; done MAKE_SUBDIR2 = for dir in $(SUBDIRS2); do (cd $$dir && $(MAKE2) $@) || exit 5; done default:: @+$(MAKE_SUBDIR) all:: @+$(MAKE_SUBDIR) install:: @+$(MAKE_SUBDIR) install-program:: @+$(MAKE_SUBDIR) install-man:: @+$(MAKE_SUBDIR) install-strip:: @+$(MAKE_SUBDIR) uninstall:: @$(MAKE_SUBDIR) uninstall-program:: @$(MAKE_SUBDIR) uninstall-man:: @$(MAKE_SUBDIR) depend:: @$(MAKE_SUBDIR) distdepend:: @$(MAKE2) update_spec_version @$(MAKE_SUBDIR2) @cd po ; $(MAKE2) update-po TAGS:: tags tags:: @$(MAKE_SUBDIR) clean:: @$(MAKE_SUBDIR2) distclean:: clean @$(MAKE_SUBDIR2) -rm -f config.h Makefile config.status config.cache config.log TAGS *~ "#"* intltool-extract intltool-merge intltool-update dist:: tar # This really makes me sick... tar:: @ \ sh config.status ; \ rm -f configure ; \ $(MAKE2) configure ; \ $(MAKE2) version-date distdepend ; \ $(MAKE2) _tar list_tarfiles: @find $(TARFILES) -type f -print | sort _tar: @ \ VERS=`sed -n 's/[^0-9]*\([0-9]\.[0-9][^. ]*\).*/\1/p' utils/version.h | \ head -1` ; \ NAME="xscreensaver-$$VERS" ; \ rm -rf $$NAME ; ln -s . $$NAME ; \ LIST="tar$$$$.txt" ; \ ADIR=archive/ ; \ rm -f "$$LIST" ; \ for subdir in . $(SUBDIRS2) ; do \ ( cd $$subdir ; \ $(MAKE2) list_tarfiles \ | grep -v '^.*make\[' \ | sed -e "s@^@$$NAME/$$subdir/@g" \ | sed -e "s@/\./@/@g" \ ) >> "$$LIST" ; \ done ; \ echo creating tar file $$ADIR$$NAME.tar.gz... ; \ export COPYFILE_DISABLE=true ; \ export GZIP="-9v" ; \ $(TAR) -vczf $$ADIR$$NAME.tar.gz -T "$$LIST" ; \ rm "$$LIST" "$$NAME" # This also makes me sick... # autoconf generates a configure script that begins with a very hard to read, # nearly impossible to customize --help blurb. This horrid set of regexps # go through and clean up the help text, by inserting whitespace and ripping # out options we don't use. Odds are good that this will fail with any version # of autoconf other than the ones I've tried (2.12 and 2.13.) # configure:: rm -f configure aclocal autoconf autoheader configure:: @TMP=configure.$$$$ ; \ echo "munging configure's --help message..." ; \ ( perl -e ' \ my $$file=""; \ while (<>) { $$file .= $$_; } \ $$_ = $$file; \ \ s/\nInstallation directories:.*?\n\n/\n/s; \ s/\nOptional Features:.*?\n\n/\n/s; \ s/\nOptional Packages:.*?\n\n/\n/s; \ \ s/^ +--sbindir=.*\n//m; \ s/^ +--sysconfdir.*\n//m; \ s/^ +--sharedstatedir.*\n.*\n//m; \ s/^ +--oldincludedir.*\n//m; \ s/^ +--infodir.*\n//m; \ s/^ +--htmldir.*\n//m; \ s/^ +--dvidir.*\n//m; \ s/^ +--pdfdir.*\n//m; \ s/^ +--psdir.*\n//m; \ s/^ +--with-x .*\n//m; \ \ s/(\n\n)\n+/$$1/gs; \ \ s/rm -f conftest/rm -rf conftest/g; \ \ print;' \ < configure \ > $$TMP && \ cat $$TMP > configure ) ; \ rm -f $$TMP # WARNING: This stands a good chance of breaking the world. # Be prepared to roll back all of /opt/local/ from Time Machine. automake-upgrade: sudo port upgrade autoconf automake libtool autoconf-archive cp -p /opt/local/share/automake*/{config.guess,config.sub,install-sh} . cp -p /opt/local/share/libtool/aclocal.m4 . cp -p /opt/local/share/aclocal/ax_pthread.m4 . echo also consider autoupdate $(MAKE2) configure bump-version:: @ \ SRC=utils/version.h ; \ VERS=`sed -n \ 's/[^0-9]*\([0-9]\)\.\([0-9][0-9]*\)\([^. \"]*\).*/\1 \2 \3/p' $$SRC | \ head -1` ; \ set - $$VERS ; \ MAJOR="$$1"; MINOR="$$2"; SUF="$$3"; \ VERS="$$MAJOR.$$MINOR$$SUF" ; \ if [ -z "$$SUF" ]; then \ MINOR=`echo $$MINOR + 1 | bc | sed 's/^\(.\)/0\1/'` ; \ else \ set - `echo $$SUF | sed 's/^\([^0-9]*\)/\1 /'` ; \ AA="$$1"; BB="$$2"; \ BB=`echo $$BB + 1 | bc` ; \ SUF="$$AA$$BB" ; \ fi ; \ VERS2="$$MAJOR.$$MINOR$$SUF" ; \ ADIR=archive/ ; \ if [ ! -f "$${ADIR}xscreensaver-$$VERS.tar.gz" ]; then \ echo "WARNING: $${ADIR}xscreensaver-$$VERS.tar.gz does not exist."; \ fi ; \ if [ -f "$${ADIR}xscreensaver-$$VERS2.tar.gz" ]; then \ echo "WARNING: $${ADIR}xscreensaver-$$VERS2.tar.gz already exists."; \ fi ; \ /bin/echo -n "Bumping $$VERS to $$VERS2, ok? "; \ read line; \ if [ "x$$line" != "xyes" -a "x$$line" != "xy" ]; then \ exit 1 ; \ fi ; \ \ TMP=/tmp/bv.$$ ; \ sed -e "s/\([0-9]\.[0-9][^. \"]*\)/$$VERS2/" $$SRC > $$TMP ; \ if cmp -s $$SRC $$TMP ; then \ echo "ERROR! UNCHANGED!" ; \ exit 1 ; \ fi ; \ \ cat $$TMP > $$SRC ; \ rm -f $$TMP; \ \ VERS3=`sed -n 's/[^0-9]*\([0-9]\.[0-9][^. \"]*\).*/\1/p' < $$SRC | \ tail -1`; \ if [ x"$$VERS2" != x"$$VERS3" ]; then \ echo "ERROR! \"$$VERS2\" vs \"$$VERS3\"!" ; \ exit 1 ; \ fi ; \ \ echo "Updated $$SRC version to \"$$VERS3\"" ; \ \ $(MAKE) version-date ; \ ls -lFd $$SRC bump_version:: bump-version tick-version:: bump-version tick_version:: bump-version version-date:: @ \ SRC=utils/version.h ; \ VERS=`sed -n 's/[^0-9]*\([0-9]\.[0-9][^. \"]*\).*/\1/p' < $$SRC | \ head -1`; \ D=`date '+%d-%b-%Y'`; \ TIME_T=`perl -e "use Date::Parse; print str2time('$$D 12:00')"` ; \ TMP=/tmp/bv.$$ ; \ sed -e "s/\([0-9]\.[0-9][^. \"]*\)/$$VERS/" \ -e "s/([0-9][^()]*)/($$D)/" \ -e "s/\(_RELEASED *\)[0-9][0-9]*/\1$$TIME_T/" \ < $$SRC > $$TMP ; \ if ! cmp -s $$SRC $$TMP ; then \ cat $$TMP > $$SRC ; \ echo "Updated $$SRC date to \"$$D\"" ; \ fi ; \ rm -f $$TMP update_spec_version:: @S=$(srcdir)/xscreensaver.spec ; \ U=$(srcdir)/utils/version.h ; \ VERS=`sed -n 's/[^0-9]*\([0-9]\.[0-9][^. ]*\).*/\1/p' < $$U | \ head -1` ; \ /bin/echo -n "Updating $$S to \"$$VERS\"... " ; \ T=/tmp/xs.$$$$ ; \ sed "s/^\(%define.version[^0-9]*\)\(.*\)/\1$$VERS/" \ < $$S > $$T ; \ if cmp -s $$S $$T ; then \ echo "unchanged." ; \ else \ cat $$T > $$S ; \ echo "done." ; \ fi ; \ rm $$T rpm:: @ \ VERS=`sed -n 's/[^0-9]*\([0-9]\.[0-9][^. ]*\).*/\1/p' utils/version.h | \ head -1` ; \ DIR=`pwd`/rpm_build ; \ ARCH=`rpm --showrc | sed -n 's/^build arch *: //p'` ; \ ADIR=archive/ ; \ TGZ=xscreensaver-$$VERS.tar.gz ; \ if [ ! -f $${ADIR}$$TGZ ]; then \ echo "$${ADIR}$$TGZ does not exist! Did you forget to \`make tar'?" ; \ exit 1 ; \ fi ; \ rm -rf /var/tmp/xscreensaver-$$VERS-root ; \ rm -rf $$DIR ; \ mkdir $$DIR ; \ ( cd $$DIR; mkdir BUILD RPMS RPMS/$$ARCH SOURCES SPECS SRPMS ) ; \ cp -p $${ADIR}$$TGZ $$DIR/SOURCES/ ; \ rpmbuild --define "_topdir $$DIR" \ --define "USE_GL yes" \ -v -ba xscreensaver.spec ; \ echo '' ; \ echo 'RPM build complete' ; \ echo '' ; \ rm -f $$DIR/$$TGZ ; \ rm -rf $$DIR/BUILD/xscreensaver-$$VERS ; \ mv $$DIR/SRPMS/xscreensaver*-$$VERS-*.rpm . ; \ mv $$DIR/RPMS/$$ARCH/xscreensaver*-$$VERS-*.rpm . ; \ rm -rf $$DIR ; \ echo '' ; \ ls -lFG xscreensaver*-$$VERS-*.rpm dmg:: $(MAKE2) -C OSX release dmg apk:: $(MAKE2) -C android apk www:: @ \ DEST=$$HOME/www/xscreensaver ; \ VERS=`sed -n 's/[^0-9]*\([0-9]\.[0-9][^. ]*\).*/\1/p' utils/version.h | \ head -1` ; \ HEAD="xscreensaver-$$VERS" ; \ ADIR=archive/ ; \ BNAME="$$HEAD.tar.gz" ; \ NAME="$$ADIR$$BNAME" ; \ DNAME="$$DEST/$$HEAD.tar.gz" ; \ BNAME2="$$HEAD.dmg" ; \ NAME2="$$ADIR$$BNAME2" ; \ DNAME2="$$DEST/$$HEAD.dmg" ; \ BNAME3="$$HEAD.apk" ; \ NAME3="$$ADIR$$BNAME3" ; \ DNAME3="$$DEST/$$HEAD.apk" ; \ \ if ! git diff --quiet ; then \ echo "uncommitted changes exist!" ; \ exit 1 ; \ fi ; \ \ $(MAKE2) -C OSX updates.xml ; \ \ if [ ! -f $$NAME ]; then \ echo "$$NAME does not exist! Did you forget to \`make tar'?" ; \ exit 1 ; \ fi ; \ if [ ! -f $$NAME2 ]; then \ echo "$$NAME2 does not exist! Did you forget to \`make dmg'?" ; \ exit 1 ; \ fi ; \ if [ ! -f $$NAME3 ]; then \ echo "$$NAME3 does not exist! Did you forget to \`make apk'?" ; \ exit 1 ; \ fi ; \ chmod a-w $$NAME ; \ if [ -f $$DNAME ]; then \ /bin/echo -n "WARNING: $$DNAME already exists! Overwrite? "; \ read line; \ if [ "x$$line" != "xyes" -a "x$$line" != "xy" ]; then \ exit 1 ; \ fi ; \ fi ; \ if [ -f $$DNAME2 ]; then \ /bin/echo -n "WARNING: $$DNAME2 already exists! Overwrite? "; \ read line; \ if [ "x$$line" != "xyes" -a "x$$line" != "xy" ]; then \ exit 1 ; \ fi ; \ fi ; \ if [ -f $$DNAME3 ]; then \ /bin/echo -n "WARNING: $$DNAME3 already exists! Overwrite? "; \ read line; \ if [ "x$$line" != "xyes" -a "x$$line" != "xy" ]; then \ exit 1 ; \ fi ; \ fi ; \ \ git tag -a "v$$VERS" -m "$$VERS" ; \ git commit -m "$$VERS" . ; \ \ ( cd $$DEST ; git pull ) ; \ \ cp -p $$NAME $$DNAME ; \ cp -p $$NAME2 $$DNAME2 ; \ cp -p $$NAME3 $$DNAME3 ; \ chmod u+w $$DNAME $$DNAME2 $$DNAME3 ; \ cp -p OSX/updates.xml $$DEST ; \ cd $$DEST ; \ \ TMP=/tmp/xd.$$$$ ; \ sed "s/xscreensaver-5\.[0-9][0-9ab]*/$$HEAD/g" download.html > $$TMP ; \ echo '' ; \ diff -U0 download.html $$TMP ; \ echo '' ; \ \ for EXT in tar.gz dmg ; do \ OLDEST=`ls xscreensaver*.$$EXT | \ fgrep -v 5.14 | \ fgrep -v 5.34 | \ head -n 1` ; \ /bin/echo -n "Delete $$DEST/$$OLDEST? "; \ read line; \ if [ "x$$line" = "xyes" -o "x$$line" = "xy" ]; then \ set -x ; \ rm $$OLDEST ; \ git rm $$OLDEST ; \ set +x ; \ fi ; \ done ; \ set -x ; \ cat $$TMP > download.html ; \ rm -f $$TMP ; \ \ git add $$BNAME $$BNAME2 $$BNAME3 ; \ \ $(MAKE2) -C ../ xscreensaver/changelog.html xscreensaver/screenshots/index.html; \ git diff changelog.html ; \ set +x ; \ \ /bin/echo -n "Ok? "; \ read line; \ if [ "x$$line" != "xyes" -a "x$$line" != "xy" ]; then \ exit 1 ; \ fi ; \ \ git tag -a "v$$VERS" -m "$$VERS" ; \ git commit -m "$$VERS" . ; \ git push ; \ count:: @ \ echo "Current hack count: " ; \ A=`cd hacks ; ( make -s INSTALL=true install-man | \ grep true | grep -v helper | grep -v ljlatest | wc -l )` ; \ echo " X11:" $$A ; \ B=`cd hacks/glx ; ( make -s INSTALL=true install-man | \ grep true | grep -v helper | grep -v ljlatest | wc -l )` ; \ echo " GLX:" $$B ; \ C=`echo $$A + $$B | bc` ; \ echo " Total:" $$C ; \ #cerebrum:: # rsync -vax . cerebrum:src/xscreensaver/ \ cerebrum:: rsync -vax . pi@10.0.1.19:xscreensaver/ \ --omit-dir-times \ --delete-during \ --exclude .git \ --exclude OSX \ --exclude android \ --exclude archive \ --exclude build \ --exclude gen \ --exclude videos \ --exclude config.h \ --exclude XScreenSaver_ad.h \ --include xscreensaver-getimage-file \ --include xscreensaver-getimage-video \ --include xscreensaver-text \ --exclude '*~' \ --include '*.asm' \ --include '*.c' \ --include '*.gif' \ --include '*.h' \ --include '*.in' \ --include '*.jpg' \ --include '*.m' \ --include '*.m4' \ --include '*.pdb' \ --include '*.png' \ --include '*.po' \ --include '*.xml' \ --include '*.xpm' \ --include '*.man' \ --include '*.ttf' \ --include '*.otf' \ --include '*.ui' \ --include 'configure*' \ --include '*/' \ --exclude '*'