gnome-breakout-0.5.3/0000777000175000017500000000000010052645513011444 500000000000000gnome-breakout-0.5.3/Makefile.in0000664000175000017500000003113310052645511013426 00000000000000# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am # Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. SHELL = @SHELL@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ prefix = @prefix@ exec_prefix = @exec_prefix@ bindir = @bindir@ sbindir = @sbindir@ libexecdir = @libexecdir@ datadir = @datadir@ sysconfdir = @sysconfdir@ sharedstatedir = @sharedstatedir@ localstatedir = @localstatedir@ libdir = @libdir@ infodir = @infodir@ mandir = @mandir@ includedir = @includedir@ oldincludedir = /usr/include DESTDIR = pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = . ACLOCAL = @ACLOCAL@ AUTOCONF = @AUTOCONF@ AUTOMAKE = @AUTOMAKE@ AUTOHEADER = @AUTOHEADER@ INSTALL = @INSTALL@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) INSTALL_DATA = @INSTALL_DATA@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ transform = @program_transform_name@ NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : host_alias = @host_alias@ host_triplet = @host@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CFLAGS = @CFLAGS@ CPPFLAGS = @CPPFLAGS@ DATADIRNAME = @DATADIRNAME@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GNOMEUI_CFLAGS = @GNOMEUI_CFLAGS@ GNOMEUI_LIBS = @GNOMEUI_LIBS@ HAVE_LIB = @HAVE_LIB@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ LDFLAGS = @LDFLAGS@ LIB = @LIB@ LTLIB = @LTLIB@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MKINSTALLDIRS = @MKINSTALLDIRS@ PACKAGE = @PACKAGE@ PKG_CONFIG = @PKG_CONFIG@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ WARN_CXXFLAGS = @WARN_CXXFLAGS@ SUBDIRS = po src pixmaps levels scoredir = $(localstatedir)/games EXTRA_DIST = gnome-breakout.desktop gnome-breakout.png TODO BUGS iconpixmapdir = $(datadir)/pixmaps iconpixmap_DATA = gnome-breakout.png Gamesdir = $(datadir)/gnome/apps/Games Games_DATA = gnome-breakout.desktop ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_CLEAN_FILES = gnome-breakout.spec DATA = $(Games_DATA) $(iconpixmap_DATA) DIST_COMMON = README ABOUT-NLS AUTHORS COPYING ChangeLog INSTALL \ Makefile.am Makefile.in NEWS TODO aclocal.m4 config.guess config.sub \ configure configure.in gnome-breakout.spec.in install-sh missing \ mkinstalldirs DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) TAR = tar GZIP_ENV = --best all: all-redirect .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status cd $(top_builddir) \ && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ configure.in cd $(srcdir) && $(ACLOCAL) config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) $(SHELL) ./config.status --recheck $(srcdir)/configure: @MAINTAINER_MODE_TRUE@$(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES) cd $(srcdir) && $(AUTOCONF) gnome-breakout.spec: $(top_builddir)/config.status gnome-breakout.spec.in cd $(top_builddir) && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status install-GamesDATA: $(Games_DATA) @$(NORMAL_INSTALL) $(mkinstalldirs) $(DESTDIR)$(Gamesdir) @list='$(Games_DATA)'; for p in $$list; do \ if test -f $(srcdir)/$$p; then \ echo " $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(Gamesdir)/$$p"; \ $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(Gamesdir)/$$p; \ else if test -f $$p; then \ echo " $(INSTALL_DATA) $$p $(DESTDIR)$(Gamesdir)/$$p"; \ $(INSTALL_DATA) $$p $(DESTDIR)$(Gamesdir)/$$p; \ fi; fi; \ done uninstall-GamesDATA: @$(NORMAL_UNINSTALL) list='$(Games_DATA)'; for p in $$list; do \ rm -f $(DESTDIR)$(Gamesdir)/$$p; \ done install-iconpixmapDATA: $(iconpixmap_DATA) @$(NORMAL_INSTALL) $(mkinstalldirs) $(DESTDIR)$(iconpixmapdir) @list='$(iconpixmap_DATA)'; for p in $$list; do \ if test -f $(srcdir)/$$p; then \ echo " $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(iconpixmapdir)/$$p"; \ $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(iconpixmapdir)/$$p; \ else if test -f $$p; then \ echo " $(INSTALL_DATA) $$p $(DESTDIR)$(iconpixmapdir)/$$p"; \ $(INSTALL_DATA) $$p $(DESTDIR)$(iconpixmapdir)/$$p; \ fi; fi; \ done uninstall-iconpixmapDATA: @$(NORMAL_UNINSTALL) list='$(iconpixmap_DATA)'; for p in $$list; do \ rm -f $(DESTDIR)$(iconpixmapdir)/$$p; \ done # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. @SET_MAKE@ all-recursive install-data-recursive install-exec-recursive \ installdirs-recursive install-recursive uninstall-recursive \ check-recursive installcheck-recursive info-recursive dvi-recursive: @set fnord $(MAKEFLAGS); amf=$$2; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" mostlyclean-recursive clean-recursive distclean-recursive \ maintainer-clean-recursive: @set fnord $(MAKEFLAGS); amf=$$2; \ dot_seen=no; \ rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \ rev="$$subdir $$rev"; \ test "$$subdir" != "." || dot_seen=yes; \ done; \ test "$$dot_seen" = "no" && rev=". $$rev"; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done tags: TAGS ID: $(HEADERS) $(SOURCES) $(LISP) list='$(SOURCES) $(HEADERS)'; \ unique=`for i in $$list; do echo $$i; done | \ awk ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ here=`pwd` && cd $(srcdir) \ && mkid -f$$here/ID $$unique $(LISP) TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) tags=; \ here=`pwd`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS)'; \ unique=`for i in $$list; do echo $$i; done | \ awk ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ || (cd $(srcdir) && etags -o $$here/TAGS $(ETAGS_ARGS) $$tags $$unique $(LISP)) mostlyclean-tags: clean-tags: distclean-tags: -rm -f TAGS ID maintainer-clean-tags: distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) # This target untars the dist file and tries a VPATH configuration. Then # it guarantees that the distribution is self-contained by making another # tarfile. distcheck: dist -rm -rf $(distdir) GZIP=$(GZIP_ENV) $(TAR) zxf $(distdir).tar.gz mkdir $(distdir)/=build mkdir $(distdir)/=inst dc_install_base=`cd $(distdir)/=inst && pwd`; \ cd $(distdir)/=build \ && ../configure --srcdir=.. --prefix=$$dc_install_base \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) dvi \ && $(MAKE) $(AM_MAKEFLAGS) check \ && $(MAKE) $(AM_MAKEFLAGS) install \ && $(MAKE) $(AM_MAKEFLAGS) installcheck \ && $(MAKE) $(AM_MAKEFLAGS) dist -rm -rf $(distdir) @banner="$(distdir).tar.gz is ready for distribution"; \ dashes=`echo "$$banner" | sed s/./=/g`; \ echo "$$dashes"; \ echo "$$banner"; \ echo "$$dashes" dist: distdir -chmod -R a+r $(distdir) GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir) -rm -rf $(distdir) dist-all: distdir -chmod -R a+r $(distdir) GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir) -rm -rf $(distdir) distdir: $(DISTFILES) -rm -rf $(distdir) mkdir $(distdir) -chmod 777 $(distdir) @for file in $(DISTFILES); do \ d=$(srcdir); \ if test -d $$d/$$file; then \ cp -pr $$d/$$file $(distdir)/$$file; \ else \ test -f $(distdir)/$$file \ || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ || cp -p $$d/$$file $(distdir)/$$file || :; \ fi; \ done for subdir in $(SUBDIRS); do \ if test "$$subdir" = .; then :; else \ test -d $(distdir)/$$subdir \ || mkdir $(distdir)/$$subdir \ || exit 1; \ chmod 777 $(distdir)/$$subdir; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir=../$(distdir) distdir=../$(distdir)/$$subdir distdir) \ || exit 1; \ fi; \ done info-am: info: info-recursive dvi-am: dvi: dvi-recursive check-am: all-am check: check-recursive installcheck-am: installcheck: installcheck-recursive install-exec-am: install-exec: install-exec-recursive install-data-am: install-GamesDATA install-iconpixmapDATA \ install-data-local install-data: install-data-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am install: install-recursive uninstall-am: uninstall-GamesDATA uninstall-iconpixmapDATA uninstall: uninstall-recursive all-am: Makefile $(DATA) all-redirect: all-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install installdirs: installdirs-recursive installdirs-am: $(mkinstalldirs) $(DESTDIR)$(Gamesdir) $(DESTDIR)$(iconpixmapdir) mostlyclean-generic: clean-generic: distclean-generic: -rm -f Makefile $(CONFIG_CLEAN_FILES) -rm -f config.cache config.log stamp-h stamp-h[0-9]* maintainer-clean-generic: mostlyclean-am: mostlyclean-tags mostlyclean-generic mostlyclean: mostlyclean-recursive clean-am: clean-tags clean-generic mostlyclean-am clean: clean-recursive distclean-am: distclean-tags distclean-generic clean-am distclean: distclean-recursive -rm -f config.status maintainer-clean-am: maintainer-clean-tags maintainer-clean-generic \ distclean-am @echo "This command is intended for maintainers to use;" @echo "it deletes files that may require special tools to rebuild." maintainer-clean: maintainer-clean-recursive -rm -f config.status .PHONY: uninstall-GamesDATA install-GamesDATA uninstall-iconpixmapDATA \ install-iconpixmapDATA install-data-recursive uninstall-data-recursive \ install-exec-recursive uninstall-exec-recursive installdirs-recursive \ uninstalldirs-recursive all-recursive check-recursive \ installcheck-recursive info-recursive dvi-recursive \ mostlyclean-recursive distclean-recursive clean-recursive \ maintainer-clean-recursive tags tags-recursive mostlyclean-tags \ distclean-tags clean-tags maintainer-clean-tags distdir info-am info \ dvi-am dvi check check-am installcheck-am installcheck install-exec-am \ install-exec install-data-local install-data-am install-data install-am \ install uninstall-am uninstall all-redirect all-am all installdirs-am \ installdirs mostlyclean-generic distclean-generic clean-generic \ maintainer-clean-generic clean mostlyclean distclean maintainer-clean install-data-local: -$(mkinstalldirs) $(DESTDIR)$(scoredir) -touch $(DESTDIR)$(scoredir)/gnome-breakout.scores -chown games.games $(DESTDIR)$(scoredir)/gnome-breakout.scores -chmod 0664 $(DESTDIR)$(scoredir)/gnome-breakout.scores -chgrp games $(DESTDIR)$(bindir)/gnome-breakout && chmod 2755 $(DESTDIR)$(bindir)/gnome-breakout # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: gnome-breakout-0.5.3/README0000664000175000017500000000404407675551502012257 00000000000000This is a development release of a GNOME clone of the classic arcade game, Breakout. Some common questions: Q: Just what is Breakout, anyway? A: Play the game, and find out. Q: It's been quite a while since the last release. What's up? A: I'm now employed. Instead of coding for the fame, glory, and sex appeal that isn't generally associated with the Open Source coder, I'm doing it for money. Which can buy all three. Q: Is this release playable? A: Yes. Unlike some programmers, I don't like making a million so called "development releases" which contain nothing more than a couple of header files. This is a development release which, hopefully, people will actually want to develop. Q: Doesn't GNOME have enough games? A: You can never have enough games. Q: Are you going to ever write anything useful in C? First ripple, now this. A: I have, but I doubt that my previous employer would like it if I gave the world the source. Which is a pity, because they were really useful bits of code. Q: I'd like to write some more levels for GNOME Breakout. How can I do this? A: Take a look at the .gbl files in the levels directory. At the moment there's no documentation for creating levels, but it's pretty straightforward. Q: I've played both Arkanoid and Breakout to death, and this doesn't have half the features of either. Whats up? A: I haven't gotten around to them yet. If you'd like to see a certain feature, either write it yourself or mail me with your idea. If I like it, I'll implement it myself. Q: File foo.c impliments glaring-design-bug-bar. Why is this? A: It does? Oh. I didn't know that. Either re-impliment it properly, or tell me about it so I can re-impliment it myself. Q: GNOME Breakout's behavior is non-GNOME-compliant. What are you going to do about this? A: Again, either re-impliment it, or tell me about it. I've tried to make this as GNOME-compliant as possible, but it is my first GNOME project. Q: You just made these questions up, didn't you? A: Yes. A: 42. Q: I'll get back to you on that.. gnome-breakout-0.5.3/ABOUT-NLS0000664000175000017500000004464407675551502012640 00000000000000Notes on the Free Translation Project ************************************* Free software is going international! The Free Translation Project is a way to get maintainers of free software, translators, and users all together, so that will gradually become able to speak many languages. A few packages already provide translations for their messages. If you found this `ABOUT-NLS' file inside a distribution, you may assume that the distributed package does use GNU `gettext' internally, itself available at your nearest GNU archive site. But you do _not_ need to install GNU `gettext' prior to configuring, installing or using this package with messages translated. Installers will find here some useful hints. These notes also explain how users should proceed for getting the programs to use the available translations. They tell how people wanting to contribute and work at translations should contact the appropriate team. When reporting bugs in the `intl/' directory or bugs which may be related to internationalization, you should tell about the version of `gettext' which is used. The information can be found in the `intl/VERSION' file, in internationalized packages. Quick configuration advice ========================== If you want to exploit the full power of internationalization, you should configure it using ./configure --with-included-gettext to force usage of internationalizing routines provided within this package, despite the existence of internationalizing capabilities in the operating system where this package is being installed. So far, only the `gettext' implementation in the GNU C library version 2 provides as many features (such as locale alias, message inheritance, automatic charset conversion or plural form handling) as the implementation here. It is also not possible to offer this additional functionality on top of a `catgets' implementation. Future versions of GNU `gettext' will very likely convey even more functionality. So it might be a good idea to change to GNU `gettext' as soon as possible. So you need _not_ provide this option if you are using GNU libc 2 or you have installed a recent copy of the GNU gettext package with the included `libintl'. INSTALL Matters =============== Some packages are "localizable" when properly installed; the programs they contain can be made to speak your own native language. Most such packages use GNU `gettext'. Other packages have their own ways to internationalization, predating GNU `gettext'. By default, this package will be installed to allow translation of messages. It will automatically detect whether the system already provides the GNU `gettext' functions. If not, the GNU `gettext' own library will be used. This library is wholly contained within this package, usually in the `intl/' subdirectory, so prior installation of the GNU `gettext' package is _not_ required. Installers may use special options at configuration time for changing the default behaviour. The commands: ./configure --with-included-gettext ./configure --disable-nls will respectively bypass any pre-existing `gettext' to use the internationalizing routines provided within this package, or else, _totally_ disable translation of messages. When you already have GNU `gettext' installed on your system and run configure without an option for your new package, `configure' will probably detect the previously built and installed `libintl.a' file and will decide to use this. This might be not what is desirable. You should use the more recent version of the GNU `gettext' library. I.e. if the file `intl/VERSION' shows that the library which comes with this package is more recent, you should use ./configure --with-included-gettext to prevent auto-detection. The configuration process will not test for the `catgets' function and therefore it will not be used. The reason is that even an emulation of `gettext' on top of `catgets' could not provide all the extensions of the GNU `gettext' library. Internationalized packages have usually many `po/LL.po' files, where LL gives an ISO 639 two-letter code identifying the language. Unless translations have been forbidden at `configure' time by using the `--disable-nls' switch, all available translations are installed together with the package. However, the environment variable `LINGUAS' may be set, prior to configuration, to limit the installed set. `LINGUAS' should then contain a space separated list of two-letter codes, stating which languages are allowed. Using This Package ================== As a user, if your language has been installed for this package, you only have to set the `LANG' environment variable to the appropriate `LL_CC' combination. Here `LL' is an ISO 639 two-letter language code, and `CC' is an ISO 3166 two-letter country code. For example, let's suppose that you speak German and live in Germany. At the shell prompt, merely execute `setenv LANG de_DE' (in `csh'), `export LANG; LANG=de_DE' (in `sh') or `export LANG=de_DE' (in `bash'). This can be done from your `.login' or `.profile' file, once and for all. You might think that the country code specification is redundant. But in fact, some languages have dialects in different countries. For example, `de_AT' is used for Austria, and `pt_BR' for Brazil. The country code serves to distinguish the dialects. Not all programs have translations for all languages. By default, an English message is shown in place of a nonexistent translation. If you understand other languages, you can set up a priority list of languages. This is done through a different environment variable, called `LANGUAGE'. GNU `gettext' gives preference to `LANGUAGE' over `LANG' for the purpose of message handling, but you still need to have `LANG' set to the primary language; this is required by other parts of the system libraries. For example, some Swedish users who would rather read translations in German than English for when Swedish is not available, set `LANGUAGE' to `sv:de' while leaving `LANG' to `sv_SE'. In the `LANGUAGE' environment variable, but not in the `LANG' environment variable, `LL_CC' combinations can be abbreviated as `LL' to denote the language's main dialect. For example, `de' is equivalent to `de_DE' (German as spoken in Germany), and `pt' to `pt_PT' (Portuguese as spoken in Portugal) in this context. Translating Teams ================= For the Free Translation Project to be a success, we need interested people who like their own language and write it well, and who are also able to synergize with other translators speaking the same language. Each translation team has its own mailing list. The up-to-date list of teams can be found at the Free Translation Project's homepage, `http://www.iro.umontreal.ca/contrib/po/HTML/', in the "National teams" area. If you'd like to volunteer to _work_ at translating messages, you should become a member of the translating team for your own language. The subscribing address is _not_ the same as the list itself, it has `-request' appended. For example, speakers of Swedish can send a message to `sv-request@li.org', having this message body: subscribe Keep in mind that team members are expected to participate _actively_ in translations, or at solving translational difficulties, rather than merely lurking around. If your team does not exist yet and you want to start one, or if you are unsure about what to do or how to get started, please write to `translation@iro.umontreal.ca' to reach the coordinator for all translator teams. The English team is special. It works at improving and uniformizing the terminology in use. Proven linguistic skill are praised more than programming skill, here. Available Packages ================== Languages are not equally supported in all packages. The following matrix shows the current state of internationalization, as of September 2001. The matrix shows, in regard of each package, for which languages PO files have been submitted to translation coordination, with a translation percentage of at least 50%. Ready PO files bg cs da de el en eo es et fi fr gl he hr id it ja +----------------------------------------------------+ a2ps | [] [] [] | bash | [] [] [] [] | bfd | | binutils | [] | bison | [] [] [] [] [] | clisp | [] [] [] [] | cpio | [] [] [] [] [] | diffutils | [] [] [] [] [] [] [] | enscript | [] [] | error | [] [] | fetchmail | | fileutils | [] [] [] [] [] [] [] [] | findutils | [] [] [] [] [] [] [] [] | flex | [] [] [] | freetype | | gas | | gawk | [] [] | gcal | | gcc | | gettext | [] [] [] [] [] [] [] [] [] [] | gnupg | [] [] [] [] [] [] [] | gprof | | grep | [] [] [] [] [] [] [] [] | hello | [] [] [] [] [] [] [] [] [] [] [] | id-utils | [] [] [] | indent | [] [] [] [] [] | jpilot | [] | kbd | | ld | [] | libc | [] [] [] [] [] [] [] [] | lilypond | [] | lynx | [] [] [] [] | m4 | [] [] [] [] [] [] [] [] | make | [] [] [] [] [] [] | mysecretdiary | [] | nano | [] [] [] | opcodes | | parted | [] [] [] | ptx | [] [] [] [] [] [] [] | python | | recode | [] [] [] [] [] [] [] [] [] | sed | [] [] [] [] [] [] [] [] [] [] [] [] | sh-utils | [] [] [] [] [] [] [] [] [] [] | sharutils | [] [] [] [] [] [] [] [] | sketch | | soundtracker | [] [] [] | sp | | tar | [] [] [] [] [] [] [] [] | texinfo | [] [] [] [] [] [] | textutils | [] [] [] [] [] [] [] [] | util-linux | [] [] | wdiff | [] [] [] | wget | [] [] [] [] [] [] [] [] [] [] | +----------------------------------------------------+ bg cs da de el en eo es et fi fr gl he hr id it ja 0 14 24 32 11 1 8 23 13 1 33 22 4 0 7 9 18 ko lv nb nl nn no pl pt pt_BR ru sk sl sv tr uk zh +----------------------------------------------------+ a2ps | [] [] [] | 6 bash | | 4 bfd | | 0 binutils | | 1 bison | [] | 6 clisp | [] | 5 cpio | [] [] [] [] [] | 10 diffutils | [] [] [] [] | 11 enscript | [] [] [] | 5 error | [] [] | 4 fetchmail | | 0 fileutils | [] [] [] [] [] [] [] [] [] | 17 findutils | [] [] [] [] [] [] [] [] | 16 flex | [] [] [] | 6 freetype | | 0 gas | | 0 gawk | [] | 3 gcal | | 0 gcc | | 0 gettext | [] [] [] [] [] [] [] [] | 18 gnupg | [] [] [] | 10 gprof | | 0 grep | [] [] [] [] | 12 hello | [] [] [] [] [] [] [] [] [] [] [] | 22 id-utils | [] [] [] | 6 indent | [] [] [] [] [] [] [] | 12 jpilot | | 1 kbd | [] | 1 ld | | 1 libc | [] [] [] [] [] [] [] [] | 16 lilypond | [] [] | 3 lynx | [] [] [] [] | 8 m4 | [] [] [] [] | 12 make | [] [] [] [] [] [] | 12 mysecretdiary | | 1 nano | [] | 4 opcodes | [] | 1 parted | [] [] | 5 ptx | [] [] [] [] [] [] [] [] | 15 python | | 0 recode | [] [] [] [] | 13 sed | [] [] [] [] [] [] [] | 19 sh-utils | [] [] [] [] [] [] [] [] [] [] [] | 21 sharutils | [] [] [] | 11 sketch | | 0 soundtracker | | 3 sp | | 0 tar | [] [] [] [] [] [] [] | 15 texinfo | [] | 7 textutils | [] [] [] [] [] [] [] [] | 16 util-linux | [] [] | 4 wdiff | [] [] [] [] | 7 wget | [] [] [] [] [] [] [] | 17 +----------------------------------------------------+ 33 teams ko lv nb nl nn no pl pt pt_BR ru sk sl sv tr uk zh 53 domains 9 1 6 20 0 6 17 1 13 25 10 11 23 21 2 2 387 Some counters in the preceding matrix are higher than the number of visible blocks let us expect. This is because a few extra PO files are used for implementing regional variants of languages, or language dialects. For a PO file in the matrix above to be effective, the package to which it applies should also have been internationalized and distributed as such by its maintainer. There might be an observable lag between the mere existence a PO file and its wide availability in a distribution. If September 2001 seems to be old, you may fetch a more recent copy of this `ABOUT-NLS' file on most GNU archive sites. The most up-to-date matrix with full percentage details can be found at `http://www.iro.umontreal.ca/contrib/po/HTML/matrix.html'. Using `gettext' in new packages =============================== If you are writing a freely available program and want to internationalize it you are welcome to use GNU `gettext' in your package. Of course you have to respect the GNU Library General Public License which covers the use of the GNU `gettext' library. This means in particular that even non-free programs can use `libintl' as a shared library, whereas only free software can use `libintl' as a static library or use modified versions of `libintl'. Once the sources are changed appropriately and the setup can handle to use of `gettext' the only thing missing are the translations. The Free Translation Project is also available for packages which are not developed inside the GNU project. Therefore the information given above applies also for every other Free Software Project. Contact `translation@iro.umontreal.ca' to make the `.pot' files available to the translation teams. gnome-breakout-0.5.3/AUTHORS0000664000175000017500000000124707675551502012451 00000000000000Michael Pearson * Most things not listed below. Jens Finke * The RPM .spec file. Detlef Reichl * Bugtesting, suggestions, and misc patches Valek Filippov * Russian translation Fatih Demir * Turkish translation N0mada * Title graphic * Bat pictures Marisa Mack * mmack levels Matthias Haller * gnome-breakout.spec corrections * German translation * Proper mouse behaviour and pointer grabbing Mathieu Dutour * mdutour levels Kai Lahmann * Icon gnome-breakout-0.5.3/COPYING0000664000175000017500000004311007675551502012427 00000000000000 GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License. gnome-breakout-0.5.3/ChangeLog0000664000175000017500000000364210052645305013140 000000000000002004-05-19 Michael Pearson * 0.5.3 release 2001-05-19 Michael Pearson * Added Swedish translation, courtesy of Bo Rosen. 2001-04-07 Michael Pearson * 0.5.2 release * Changed the pixmaps to make them pwettier 2001-01-29 Michael Pearson * 0.5 release 2000-04-29 Michael Pearson * Replaced the icon with Kai Lahmann's, because it scales better. 2000-04-24 Michael Pearson * Spec file now sets permissions, installs po files, and unsets the LINGUAS env variable. Courtesy Matthias Haller 2000-04-19 Michael Pearson * 0.4 release 2000-04-08 Michael Pearson * 0.3.1 release 2000-04-07 Michael Pearson * Replaced my title.png with N0mada's title. 2000-04-06 Michael Pearson * INSTALL : Added a note pertaining to the /var/lib Debian thing 2000-04-04 Fatih Demir * gnome-breakout.desktop : Added the Turkish translation . 2000-04-04 Michael Pearson * 0.3 release 2000-04-03 Michael Pearson * 0.2.1 bugfix release * 0.2.2 bugfix release * Added more pixmaps to pixmap/ for the stronger blocks 2000-03-31 Michael Pearson * Added the russian translation, thanks to Valek Filippov 2000-03-28 Michael Pearson * Made Makefile.am install scores, and setgid games gnome-breakout 2000-03-25 Michael Pearson * Added BUGS as a seperate file from TODO * 0.2 release 2000-03-22 Michael Pearson * Applied the .spec patch, thanks to Jens Finke 2000-03-21 Michael Pearson * Initial release gnome-breakout-0.5.3/INSTALL0000664000175000017500000001731207675551502012432 00000000000000And now for the generic GNU install instructions: Basic Installation ================== These are generic installation instructions. The `configure' shell script attempts to guess correct values for various system-dependent variables used during compilation. It uses those values to create a `Makefile' in each directory of the package. It may also create one or more `.h' files containing system-dependent definitions. Finally, it creates a shell script `config.status' that you can run in the future to recreate the current configuration, a file `config.cache' that saves the results of its tests to speed up reconfiguring, and a file `config.log' containing compiler output (useful mainly for debugging `configure'). If you need to do unusual things to compile the package, please try to figure out how `configure' could check whether to do them, and mail diffs or instructions to the address given in the `README' so they can be considered for the next release. If at some point `config.cache' contains results you don't want to keep, you may remove or edit it. The file `configure.in' is used to create `configure' by a program called `autoconf'. You only need `configure.in' if you want to change it or regenerate `configure' using a newer version of `autoconf'. The simplest way to compile this package is: 1. `cd' to the directory containing the package's source code and type `./configure' to configure the package for your system. If you're using `csh' on an old version of System V, you might need to type `sh ./configure' instead to prevent `csh' from trying to execute `configure' itself. Running `configure' takes awhile. While running, it prints some messages telling which features it is checking for. 2. Type `make' to compile the package. 3. Optionally, type `make check' to run any self-tests that come with the package. 4. Type `make install' to install the programs and any data files and documentation. 5. You can remove the program binaries and object files from the source code directory by typing `make clean'. To also remove the files that `configure' created (so you can compile the package for a different kind of computer), type `make distclean'. There is also a `make maintainer-clean' target, but that is intended mainly for the package's developers. If you use it, you may have to get all sorts of other programs in order to regenerate files that came with the distribution. Compilers and Options ===================== Some systems require unusual options for compilation or linking that the `configure' script does not know about. You can give `configure' initial values for variables by setting them in the environment. Using a Bourne-compatible shell, you can do that on the command line like this: CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure Or on systems that have the `env' program, you can do it like this: env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure Compiling For Multiple Architectures ==================================== You can compile the package for more than one kind of computer at the same time, by placing the object files for each architecture in their own directory. To do this, you must use a version of `make' that supports the `VPATH' variable, such as GNU `make'. `cd' to the directory where you want the object files and executables to go and run the `configure' script. `configure' automatically checks for the source code in the directory that `configure' is in and in `..'. If you have to use a `make' that does not supports the `VPATH' variable, you have to compile the package for one architecture at a time in the source code directory. After you have installed the package for one architecture, use `make distclean' before reconfiguring for another architecture. Installation Names ================== By default, `make install' will install the package's files in `/usr/local/bin', `/usr/local/man', etc. You can specify an installation prefix other than `/usr/local' by giving `configure' the option `--prefix=PATH'. You can specify separate installation prefixes for architecture-specific files and architecture-independent files. If you give `configure' the option `--exec-prefix=PATH', the package will use PATH as the prefix for installing programs and libraries. Documentation and other data files will still use the regular prefix. In addition, if you use an unusual directory layout you can give options like `--bindir=PATH' to specify different values for particular kinds of files. Run `configure --help' for a list of the directories you can set and what kinds of files go in them. If the package supports it, you can cause programs to be installed with an extra prefix or suffix on their names by giving `configure' the option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. Optional Features ================= Some packages pay attention to `--enable-FEATURE' options to `configure', where FEATURE indicates an optional part of the package. They may also pay attention to `--with-PACKAGE' options, where PACKAGE is something like `gnu-as' or `x' (for the X Window System). The `README' should mention any `--enable-' and `--with-' options that the package recognizes. For packages that use the X Window System, `configure' can usually find the X include and library files automatically, but if it doesn't, you can use the `configure' options `--x-includes=DIR' and `--x-libraries=DIR' to specify their locations. Specifying the System Type ========================== There may be some features `configure' can not figure out automatically, but needs to determine by the type of host the package will run on. Usually `configure' can figure that out, but if it prints a message saying it can not guess the host type, give it the `--host=TYPE' option. TYPE can either be a short name for the system type, such as `sun4', or a canonical name with three fields: CPU-COMPANY-SYSTEM See the file `config.sub' for the possible values of each field. If `config.sub' isn't included in this package, then this package doesn't need to know the host type. If you are building compiler tools for cross-compiling, you can also use the `--target=TYPE' option to select the type of system they will produce code for and the `--build=TYPE' option to select the type of system on which you are compiling the package. Sharing Defaults ================ If you want to set default values for `configure' scripts to share, you can create a site shell script called `config.site' that gives default values for variables like `CC', `cache_file', and `prefix'. `configure' looks for `PREFIX/share/config.site' if it exists, then `PREFIX/etc/config.site' if it exists. Or, you can set the `CONFIG_SITE' environment variable to the location of the site script. A warning: not all `configure' scripts look for a site script. Operation Controls ================== `configure' recognizes the following options to control how it operates. `--cache-file=FILE' Use and save the results of the tests in FILE instead of `./config.cache'. Set FILE to `/dev/null' to disable caching, for debugging `configure'. `--help' Print a summary of the options to `configure', and exit. `--quiet' `--silent' `-q' Do not print messages saying which checks are being made. To suppress all normal output, redirect it to `/dev/null' (any error messages will still be shown). `--srcdir=DIR' Look for the package's source code in directory DIR. Usually `configure' can determine that directory automatically. `--version' Print the version of Autoconf used to generate the `configure' script, and exit. `configure' also accepts some other, not widely useful, options. gnome-breakout-0.5.3/Makefile.am0000664000175000017500000000116707713447022013430 00000000000000SUBDIRS = po src pixmaps levels scoredir=$(localstatedir)/games EXTRA_DIST = \ gnome-breakout.desktop \ gnome-breakout.png \ TODO \ BUGS iconpixmapdir = $(datadir)/pixmaps iconpixmap_DATA = gnome-breakout.png Gamesdir = $(datadir)/gnome/apps/Games Games_DATA = gnome-breakout.desktop install-data-local: -$(mkinstalldirs) $(DESTDIR)$(scoredir) -touch $(DESTDIR)$(scoredir)/gnome-breakout.scores -chown games.games $(DESTDIR)$(scoredir)/gnome-breakout.scores -chmod 0664 $(DESTDIR)$(scoredir)/gnome-breakout.scores -chgrp games $(DESTDIR)$(bindir)/gnome-breakout && chmod 2755 $(DESTDIR)$(bindir)/gnome-breakout gnome-breakout-0.5.3/NEWS0000664000175000017500000000352110052645073012063 000000000000002004-05-19 GNOME Breakout v0.5.3: Changed all deprecated GNOME 1 and GTK 1 functionality to GNOME 2 and GTK 2 calls. 2001-04-07 GNOME Breakout v0.5.2: Fixed a nasty next level bug, changed the block pixmaps. 2001-02-12 GNOME Breakout v0.5.1: Fixed a couple more focus issues, added a couple of usability patches, repaired minor scores permissions, rewrote the pause code. 2001-02-06 GNOME Breakout v0.5: Bounce entropy, improvements to pause/focus code, new powerups, new block types, and customisable levelfiles. 2000-04-19 GNOME Breakout v0.4: I've finally implimented some "real" powerups, which are really cool. And there's a new title graphic. And some bugs have been fixed. And there's some new levels. And some other stuff. 2000-04-08 GNOME Breakout v0.3.1: Veny meeny buggerfixen, ja. 2000-04-04 GNOME Breakout v0.3: New features: - End game dialog, with scoreboard - "Sticky" bat - Stronger blocks - A couple of new levels - Minor UI improvements 2000-04-03 GNOME Breakout v0.2.2: Another bugfix. On the same day, too :) - Difficulty level now only changes when you start a new game - UI usability tweaks - Explicit pausing 2000-04-03 GNOME Breakout v0.2.1: Bugfix release. Fixes the following: - Stuck-in-wall bug, and some of the stuck-in-block bugs - Loss of focus is now detected by whether the mouse pointer is inside the canvas or not. 2000-03-25 GNOME Breakout v0.2: Second public development release. The following bugs have been fixed: - Various random segfaults - Infinite horizontal ball looping And these BRILLIANT NEW FEATURES (cough) have been implimented: - A preferences dialog - Mouse control - A new level - Difficulty support - Redefineable keys - Pause on focus loss - A .spec file for all you rpm heads out there (courtesy Jens Finke) 2000-03-21 GNOME Breakout v0.1: Initial public development release. Be very, very afraid. gnome-breakout-0.5.3/TODO0000664000175000017500000000054610052645331012055 00000000000000Things which need to be completed before I'll call this 1.0: - Sound - More animated graphics - Debian package - Full documentation - Lose and win eyecandy - Add exploding blocks to existing levels - Improve collision detection - Move drawing code to something other than GNOME Canvas (gdk pixbuf?) Ideas for post 1.0: - Seperate tilesets - Save/load games gnome-breakout-0.5.3/aclocal.m40000664000175000017500000015705410051761447013242 00000000000000dnl aclocal.m4 generated automatically by aclocal 1.4-p6 dnl Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl This program is distributed in the hope that it will be useful, dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A dnl PARTICULAR PURPOSE. # lib-prefix.m4 serial 3 (gettext-0.13) dnl Copyright (C) 2001-2003 Free Software Foundation, Inc. dnl This file is free software, distributed under the terms of the GNU dnl General Public License. As a special exception to the GNU General dnl Public License, this file may be distributed as part of a program dnl that contains a configuration script generated by Autoconf, under dnl the same distribution terms as the rest of that program. dnl From Bruno Haible. dnl AC_LIB_ARG_WITH is synonymous to AC_ARG_WITH in autoconf-2.13, and dnl similar to AC_ARG_WITH in autoconf 2.52...2.57 except that is doesn't dnl require excessive bracketing. ifdef([AC_HELP_STRING], [AC_DEFUN([AC_LIB_ARG_WITH], [AC_ARG_WITH([$1],[[$2]],[$3],[$4])])], [AC_DEFUN([AC_][LIB_ARG_WITH], [AC_ARG_WITH([$1],[$2],[$3],[$4])])]) dnl AC_LIB_PREFIX adds to the CPPFLAGS and LDFLAGS the flags that are needed dnl to access previously installed libraries. The basic assumption is that dnl a user will want packages to use other packages he previously installed dnl with the same --prefix option. dnl This macro is not needed if only AC_LIB_LINKFLAGS is used to locate dnl libraries, but is otherwise very convenient. AC_DEFUN([AC_LIB_PREFIX], [ AC_BEFORE([$0], [AC_LIB_LINKFLAGS]) AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) dnl By default, look in $includedir and $libdir. use_additional=yes AC_LIB_WITH_FINAL_PREFIX([ eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" ]) AC_LIB_ARG_WITH([lib-prefix], [ --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib --without-lib-prefix don't search for libraries in includedir and libdir], [ if test "X$withval" = "Xno"; then use_additional=no else if test "X$withval" = "X"; then AC_LIB_WITH_FINAL_PREFIX([ eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" ]) else additional_includedir="$withval/include" additional_libdir="$withval/lib" fi fi ]) if test $use_additional = yes; then dnl Potentially add $additional_includedir to $CPPFLAGS. dnl But don't add it dnl 1. if it's the standard /usr/include, dnl 2. if it's already present in $CPPFLAGS, dnl 3. if it's /usr/local/include and we are using GCC on Linux, dnl 4. if it doesn't exist as a directory. if test "X$additional_includedir" != "X/usr/include"; then haveit= for x in $CPPFLAGS; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-I$additional_includedir"; then haveit=yes break fi done if test -z "$haveit"; then if test "X$additional_includedir" = "X/usr/local/include"; then if test -n "$GCC"; then case $host_os in linux*) haveit=yes;; esac fi fi if test -z "$haveit"; then if test -d "$additional_includedir"; then dnl Really add $additional_includedir to $CPPFLAGS. CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-I$additional_includedir" fi fi fi fi dnl Potentially add $additional_libdir to $LDFLAGS. dnl But don't add it dnl 1. if it's the standard /usr/lib, dnl 2. if it's already present in $LDFLAGS, dnl 3. if it's /usr/local/lib and we are using GCC on Linux, dnl 4. if it doesn't exist as a directory. if test "X$additional_libdir" != "X/usr/lib"; then haveit= for x in $LDFLAGS; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test "X$additional_libdir" = "X/usr/local/lib"; then if test -n "$GCC"; then case $host_os in linux*) haveit=yes;; esac fi fi if test -z "$haveit"; then if test -d "$additional_libdir"; then dnl Really add $additional_libdir to $LDFLAGS. LDFLAGS="${LDFLAGS}${LDFLAGS:+ }-L$additional_libdir" fi fi fi fi fi ]) dnl AC_LIB_PREPARE_PREFIX creates variables acl_final_prefix, dnl acl_final_exec_prefix, containing the values to which $prefix and dnl $exec_prefix will expand at the end of the configure script. AC_DEFUN([AC_LIB_PREPARE_PREFIX], [ dnl Unfortunately, prefix and exec_prefix get only finally determined dnl at the end of configure. if test "X$prefix" = "XNONE"; then acl_final_prefix="$ac_default_prefix" else acl_final_prefix="$prefix" fi if test "X$exec_prefix" = "XNONE"; then acl_final_exec_prefix='${prefix}' else acl_final_exec_prefix="$exec_prefix" fi acl_save_prefix="$prefix" prefix="$acl_final_prefix" eval acl_final_exec_prefix=\"$acl_final_exec_prefix\" prefix="$acl_save_prefix" ]) dnl AC_LIB_WITH_FINAL_PREFIX([statement]) evaluates statement, with the dnl variables prefix and exec_prefix bound to the values they will have dnl at the end of the configure script. AC_DEFUN([AC_LIB_WITH_FINAL_PREFIX], [ acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" $1 exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" ]) # lib-link.m4 serial 4 (gettext-0.12) dnl Copyright (C) 2001-2003 Free Software Foundation, Inc. dnl This file is free software, distributed under the terms of the GNU dnl General Public License. As a special exception to the GNU General dnl Public License, this file may be distributed as part of a program dnl that contains a configuration script generated by Autoconf, under dnl the same distribution terms as the rest of that program. dnl From Bruno Haible. dnl AC_LIB_LINKFLAGS(name [, dependencies]) searches for libname and dnl the libraries corresponding to explicit and implicit dependencies. dnl Sets and AC_SUBSTs the LIB${NAME} and LTLIB${NAME} variables and dnl augments the CPPFLAGS variable. AC_DEFUN([AC_LIB_LINKFLAGS], [ AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) AC_REQUIRE([AC_LIB_RPATH]) define([Name],[translit([$1],[./-], [___])]) define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) AC_CACHE_CHECK([how to link with lib[]$1], [ac_cv_lib[]Name[]_libs], [ AC_LIB_LINKFLAGS_BODY([$1], [$2]) ac_cv_lib[]Name[]_libs="$LIB[]NAME" ac_cv_lib[]Name[]_ltlibs="$LTLIB[]NAME" ac_cv_lib[]Name[]_cppflags="$INC[]NAME" ]) LIB[]NAME="$ac_cv_lib[]Name[]_libs" LTLIB[]NAME="$ac_cv_lib[]Name[]_ltlibs" INC[]NAME="$ac_cv_lib[]Name[]_cppflags" AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME) AC_SUBST([LIB]NAME) AC_SUBST([LTLIB]NAME) dnl Also set HAVE_LIB[]NAME so that AC_LIB_HAVE_LINKFLAGS can reuse the dnl results of this search when this library appears as a dependency. HAVE_LIB[]NAME=yes undefine([Name]) undefine([NAME]) ]) dnl AC_LIB_HAVE_LINKFLAGS(name, dependencies, includes, testcode) dnl searches for libname and the libraries corresponding to explicit and dnl implicit dependencies, together with the specified include files and dnl the ability to compile and link the specified testcode. If found, it dnl sets and AC_SUBSTs HAVE_LIB${NAME}=yes and the LIB${NAME} and dnl LTLIB${NAME} variables and augments the CPPFLAGS variable, and dnl #defines HAVE_LIB${NAME} to 1. Otherwise, it sets and AC_SUBSTs dnl HAVE_LIB${NAME}=no and LIB${NAME} and LTLIB${NAME} to empty. AC_DEFUN([AC_LIB_HAVE_LINKFLAGS], [ AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) AC_REQUIRE([AC_LIB_RPATH]) define([Name],[translit([$1],[./-], [___])]) define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) dnl Search for lib[]Name and define LIB[]NAME, LTLIB[]NAME and INC[]NAME dnl accordingly. AC_LIB_LINKFLAGS_BODY([$1], [$2]) dnl Add $INC[]NAME to CPPFLAGS before performing the following checks, dnl because if the user has installed lib[]Name and not disabled its use dnl via --without-lib[]Name-prefix, he wants to use it. ac_save_CPPFLAGS="$CPPFLAGS" AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME) AC_CACHE_CHECK([for lib[]$1], [ac_cv_lib[]Name], [ ac_save_LIBS="$LIBS" LIBS="$LIBS $LIB[]NAME" AC_TRY_LINK([$3], [$4], [ac_cv_lib[]Name=yes], [ac_cv_lib[]Name=no]) LIBS="$ac_save_LIBS" ]) if test "$ac_cv_lib[]Name" = yes; then HAVE_LIB[]NAME=yes AC_DEFINE([HAVE_LIB]NAME, 1, [Define if you have the $1 library.]) AC_MSG_CHECKING([how to link with lib[]$1]) AC_MSG_RESULT([$LIB[]NAME]) else HAVE_LIB[]NAME=no dnl If $LIB[]NAME didn't lead to a usable library, we don't need dnl $INC[]NAME either. CPPFLAGS="$ac_save_CPPFLAGS" LIB[]NAME= LTLIB[]NAME= fi AC_SUBST([HAVE_LIB]NAME) AC_SUBST([LIB]NAME) AC_SUBST([LTLIB]NAME) undefine([Name]) undefine([NAME]) ]) dnl Determine the platform dependent parameters needed to use rpath: dnl libext, shlibext, hardcode_libdir_flag_spec, hardcode_libdir_separator, dnl hardcode_direct, hardcode_minus_L. AC_DEFUN([AC_LIB_RPATH], [ AC_REQUIRE([AC_PROG_CC]) dnl we use $CC, $GCC, $LDFLAGS AC_REQUIRE([AC_LIB_PROG_LD]) dnl we use $LD, $with_gnu_ld AC_REQUIRE([AC_CANONICAL_HOST]) dnl we use $host AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT]) dnl we use $ac_aux_dir AC_CACHE_CHECK([for shared library run path origin], acl_cv_rpath, [ CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \ ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh . ./conftest.sh rm -f ./conftest.sh acl_cv_rpath=done ]) wl="$acl_cv_wl" libext="$acl_cv_libext" shlibext="$acl_cv_shlibext" hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec" hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator" hardcode_direct="$acl_cv_hardcode_direct" hardcode_minus_L="$acl_cv_hardcode_minus_L" dnl Determine whether the user wants rpath handling at all. AC_ARG_ENABLE(rpath, [ --disable-rpath do not hardcode runtime library paths], :, enable_rpath=yes) ]) dnl AC_LIB_LINKFLAGS_BODY(name [, dependencies]) searches for libname and dnl the libraries corresponding to explicit and implicit dependencies. dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables. AC_DEFUN([AC_LIB_LINKFLAGS_BODY], [ define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) dnl By default, look in $includedir and $libdir. use_additional=yes AC_LIB_WITH_FINAL_PREFIX([ eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" ]) AC_LIB_ARG_WITH([lib$1-prefix], [ --with-lib$1-prefix[=DIR] search for lib$1 in DIR/include and DIR/lib --without-lib$1-prefix don't search for lib$1 in includedir and libdir], [ if test "X$withval" = "Xno"; then use_additional=no else if test "X$withval" = "X"; then AC_LIB_WITH_FINAL_PREFIX([ eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" ]) else additional_includedir="$withval/include" additional_libdir="$withval/lib" fi fi ]) dnl Search the library and its dependencies in $additional_libdir and dnl $LDFLAGS. Using breadth-first-seach. LIB[]NAME= LTLIB[]NAME= INC[]NAME= rpathdirs= ltrpathdirs= names_already_handled= names_next_round='$1 $2' while test -n "$names_next_round"; do names_this_round="$names_next_round" names_next_round= for name in $names_this_round; do already_handled= for n in $names_already_handled; do if test "$n" = "$name"; then already_handled=yes break fi done if test -z "$already_handled"; then names_already_handled="$names_already_handled $name" dnl See if it was already located by an earlier AC_LIB_LINKFLAGS dnl or AC_LIB_HAVE_LINKFLAGS call. uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'` eval value=\"\$HAVE_LIB$uppername\" if test -n "$value"; then if test "$value" = yes; then eval value=\"\$LIB$uppername\" test -z "$value" || LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$value" eval value=\"\$LTLIB$uppername\" test -z "$value" || LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$value" else dnl An earlier call to AC_LIB_HAVE_LINKFLAGS has determined dnl that this library doesn't exist. So just drop it. : fi else dnl Search the library lib$name in $additional_libdir and $LDFLAGS dnl and the already constructed $LIBNAME/$LTLIBNAME. found_dir= found_la= found_so= found_a= if test $use_additional = yes; then if test -n "$shlibext" && test -f "$additional_libdir/lib$name.$shlibext"; then found_dir="$additional_libdir" found_so="$additional_libdir/lib$name.$shlibext" if test -f "$additional_libdir/lib$name.la"; then found_la="$additional_libdir/lib$name.la" fi else if test -f "$additional_libdir/lib$name.$libext"; then found_dir="$additional_libdir" found_a="$additional_libdir/lib$name.$libext" if test -f "$additional_libdir/lib$name.la"; then found_la="$additional_libdir/lib$name.la" fi fi fi fi if test "X$found_dir" = "X"; then for x in $LDFLAGS $LTLIB[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) case "$x" in -L*) dir=`echo "X$x" | sed -e 's/^X-L//'` if test -n "$shlibext" && test -f "$dir/lib$name.$shlibext"; then found_dir="$dir" found_so="$dir/lib$name.$shlibext" if test -f "$dir/lib$name.la"; then found_la="$dir/lib$name.la" fi else if test -f "$dir/lib$name.$libext"; then found_dir="$dir" found_a="$dir/lib$name.$libext" if test -f "$dir/lib$name.la"; then found_la="$dir/lib$name.la" fi fi fi ;; esac if test "X$found_dir" != "X"; then break fi done fi if test "X$found_dir" != "X"; then dnl Found the library. LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$found_dir -l$name" if test "X$found_so" != "X"; then dnl Linking with a shared library. We attempt to hardcode its dnl directory into the executable's runpath, unless it's the dnl standard /usr/lib. if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/lib"; then dnl No hardcoding is needed. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" else dnl Use an explicit option to hardcode DIR into the resulting dnl binary. dnl Potentially add DIR to ltrpathdirs. dnl The ltrpathdirs will be appended to $LTLIBNAME at the end. haveit= for x in $ltrpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $found_dir" fi dnl The hardcoding into $LIBNAME is system dependent. if test "$hardcode_direct" = yes; then dnl Using DIR/libNAME.so during linking hardcodes DIR into the dnl resulting binary. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" else if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then dnl Use an explicit option to hardcode DIR into the resulting dnl binary. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" dnl Potentially add DIR to rpathdirs. dnl The rpathdirs will be appended to $LIBNAME at the end. haveit= for x in $rpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $found_dir" fi else dnl Rely on "-L$found_dir". dnl But don't add it if it's already contained in the LDFLAGS dnl or the already constructed $LIBNAME haveit= for x in $LDFLAGS $LIB[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-L$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir" fi if test "$hardcode_minus_L" != no; then dnl FIXME: Not sure whether we should use dnl "-L$found_dir -l$name" or "-L$found_dir $found_so" dnl here. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" else dnl We cannot use $hardcode_runpath_var and LD_RUN_PATH dnl here, because this doesn't fit in flags passed to the dnl compiler. So give up. No hardcoding. This affects only dnl very old systems. dnl FIXME: Not sure whether we should use dnl "-L$found_dir -l$name" or "-L$found_dir $found_so" dnl here. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name" fi fi fi fi else if test "X$found_a" != "X"; then dnl Linking with a static library. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_a" else dnl We shouldn't come here, but anyway it's good to have a dnl fallback. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir -l$name" fi fi dnl Assume the include files are nearby. additional_includedir= case "$found_dir" in */lib | */lib/) basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e 's,/lib/*$,,'` additional_includedir="$basedir/include" ;; esac if test "X$additional_includedir" != "X"; then dnl Potentially add $additional_includedir to $INCNAME. dnl But don't add it dnl 1. if it's the standard /usr/include, dnl 2. if it's /usr/local/include and we are using GCC on Linux, dnl 3. if it's already present in $CPPFLAGS or the already dnl constructed $INCNAME, dnl 4. if it doesn't exist as a directory. if test "X$additional_includedir" != "X/usr/include"; then haveit= if test "X$additional_includedir" = "X/usr/local/include"; then if test -n "$GCC"; then case $host_os in linux*) haveit=yes;; esac fi fi if test -z "$haveit"; then for x in $CPPFLAGS $INC[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-I$additional_includedir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_includedir"; then dnl Really add $additional_includedir to $INCNAME. INC[]NAME="${INC[]NAME}${INC[]NAME:+ }-I$additional_includedir" fi fi fi fi fi dnl Look for dependencies. if test -n "$found_la"; then dnl Read the .la file. It defines the variables dnl dlname, library_names, old_library, dependency_libs, current, dnl age, revision, installed, dlopen, dlpreopen, libdir. save_libdir="$libdir" case "$found_la" in */* | *\\*) . "$found_la" ;; *) . "./$found_la" ;; esac libdir="$save_libdir" dnl We use only dependency_libs. for dep in $dependency_libs; do case "$dep" in -L*) additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` dnl Potentially add $additional_libdir to $LIBNAME and $LTLIBNAME. dnl But don't add it dnl 1. if it's the standard /usr/lib, dnl 2. if it's /usr/local/lib and we are using GCC on Linux, dnl 3. if it's already present in $LDFLAGS or the already dnl constructed $LIBNAME, dnl 4. if it doesn't exist as a directory. if test "X$additional_libdir" != "X/usr/lib"; then haveit= if test "X$additional_libdir" = "X/usr/local/lib"; then if test -n "$GCC"; then case $host_os in linux*) haveit=yes;; esac fi fi if test -z "$haveit"; then haveit= for x in $LDFLAGS $LIB[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_libdir"; then dnl Really add $additional_libdir to $LIBNAME. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$additional_libdir" fi fi haveit= for x in $LDFLAGS $LTLIB[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_libdir"; then dnl Really add $additional_libdir to $LTLIBNAME. LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$additional_libdir" fi fi fi fi ;; -R*) dir=`echo "X$dep" | sed -e 's/^X-R//'` if test "$enable_rpath" != no; then dnl Potentially add DIR to rpathdirs. dnl The rpathdirs will be appended to $LIBNAME at the end. haveit= for x in $rpathdirs; do if test "X$x" = "X$dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $dir" fi dnl Potentially add DIR to ltrpathdirs. dnl The ltrpathdirs will be appended to $LTLIBNAME at the end. haveit= for x in $ltrpathdirs; do if test "X$x" = "X$dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $dir" fi fi ;; -l*) dnl Handle this in the next round. names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` ;; *.la) dnl Handle this in the next round. Throw away the .la's dnl directory; it is already contained in a preceding -L dnl option. names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` ;; *) dnl Most likely an immediate library name. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$dep" LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$dep" ;; esac done fi else dnl Didn't find the library; assume it is in the system directories dnl known to the linker and runtime loader. (All the system dnl directories known to the linker should also be known to the dnl runtime loader, otherwise the system is severely misconfigured.) LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name" LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-l$name" fi fi fi done done if test "X$rpathdirs" != "X"; then if test -n "$hardcode_libdir_separator"; then dnl Weird platform: only the last -rpath option counts, the user must dnl pass all path elements in one option. We can arrange that for a dnl single library, but not when more than one $LIBNAMEs are used. alldirs= for found_dir in $rpathdirs; do alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$found_dir" done dnl Note: hardcode_libdir_flag_spec uses $libdir and $wl. acl_save_libdir="$libdir" libdir="$alldirs" eval flag=\"$hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag" else dnl The -rpath options are cumulative. for found_dir in $rpathdirs; do acl_save_libdir="$libdir" libdir="$found_dir" eval flag=\"$hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag" done fi fi if test "X$ltrpathdirs" != "X"; then dnl When using libtool, the option that works for both libraries and dnl executables is -R. The -R options are cumulative. for found_dir in $ltrpathdirs; do LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir" done fi ]) dnl AC_LIB_APPENDTOVAR(VAR, CONTENTS) appends the elements of CONTENTS to VAR, dnl unless already present in VAR. dnl Works only for CPPFLAGS, not for LIB* variables because that sometimes dnl contains two or three consecutive elements that belong together. AC_DEFUN([AC_LIB_APPENDTOVAR], [ for element in [$2]; do haveit= for x in $[$1]; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X$element"; then haveit=yes break fi done if test -z "$haveit"; then [$1]="${[$1]}${[$1]:+ }$element" fi done ]) # lib-ld.m4 serial 3 (gettext-0.13) dnl Copyright (C) 1996-2003 Free Software Foundation, Inc. dnl This file is free software, distributed under the terms of the GNU dnl General Public License. As a special exception to the GNU General dnl Public License, this file may be distributed as part of a program dnl that contains a configuration script generated by Autoconf, under dnl the same distribution terms as the rest of that program. dnl Subroutines of libtool.m4, dnl with replacements s/AC_/AC_LIB/ and s/lt_cv/acl_cv/ to avoid collision dnl with libtool.m4. dnl From libtool-1.4. Sets the variable with_gnu_ld to yes or no. AC_DEFUN([AC_LIB_PROG_LD_GNU], [AC_CACHE_CHECK([if the linker ($LD) is GNU ld], acl_cv_prog_gnu_ld, [# I'd rather use --version here, but apparently some GNU ld's only accept -v. case `$LD -v 2>&1 conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. AC_MSG_CHECKING([for ld used by GCC]) case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [[\\/]* | [A-Za-z]:[\\/]*)] [re_direlt='/[^/][^/]*/\.\./'] # Canonicalize the path of ld ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'` while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then AC_MSG_CHECKING([for GNU ld]) else AC_MSG_CHECKING([for non-GNU ld]) fi AC_CACHE_VAL(acl_cv_path_LD, [if test -z "$LD"; then IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}" for ac_dir in $PATH; do test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then acl_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some GNU ld's only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$acl_cv_path_LD" -v 2>&1 < /dev/null` in *GNU* | *'with BFD'*) test "$with_gnu_ld" != no && break ;; *) test "$with_gnu_ld" != yes && break ;; esac fi done IFS="$ac_save_ifs" else acl_cv_path_LD="$LD" # Let the user override the test with a path. fi]) LD="$acl_cv_path_LD" if test -n "$LD"; then AC_MSG_RESULT($LD) else AC_MSG_RESULT(no) fi test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH]) AC_LIB_PROG_LD_GNU ]) # Do all the work for Automake. This macro actually does too much -- # some checks are only needed if your package does certain things. # But this isn't really a big deal. # serial 1 dnl Usage: dnl AM_INIT_AUTOMAKE(package,version, [no-define]) AC_DEFUN([AM_INIT_AUTOMAKE], [AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl AC_REQUIRE([AC_PROG_INSTALL]) PACKAGE=[$1] AC_SUBST(PACKAGE) VERSION=[$2] AC_SUBST(VERSION) dnl test to see if srcdir already configured if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) fi ifelse([$3],, AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])) AC_REQUIRE([AM_SANITY_CHECK]) AC_REQUIRE([AC_ARG_PROGRAM]) dnl FIXME This is truly gross. missing_dir=`cd $ac_aux_dir && pwd` AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}, $missing_dir) AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir) AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}, $missing_dir) AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir) AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir) AC_REQUIRE([AC_PROG_MAKE_SET])]) # Copyright 2002 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # AM_AUTOMAKE_VERSION(VERSION) # ---------------------------- # Automake X.Y traces this macro to ensure aclocal.m4 has been # generated from the m4 files accompanying Automake X.Y. AC_DEFUN([AM_AUTOMAKE_VERSION],[am__api_version="1.4"]) # AM_SET_CURRENT_AUTOMAKE_VERSION # ------------------------------- # Call AM_AUTOMAKE_VERSION so it can be traced. # This function is AC_REQUIREd by AC_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], [AM_AUTOMAKE_VERSION([1.4-p6])]) # # Check to make sure that the build environment is sane. # AC_DEFUN([AM_SANITY_CHECK], [AC_MSG_CHECKING([whether build environment is sane]) # Just in case sleep 1 echo timestamp > conftestfile # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` if test "[$]*" = "X"; then # -L didn't work. set X `ls -t $srcdir/configure conftestfile` fi if test "[$]*" != "X $srcdir/configure conftestfile" \ && test "[$]*" != "X conftestfile $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken alias in your environment]) fi test "[$]2" = conftestfile ) then # Ok. : else AC_MSG_ERROR([newly created file is older than distributed files! Check your system clock]) fi rm -f conftest* AC_MSG_RESULT(yes)]) dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY) dnl The program must properly implement --version. AC_DEFUN([AM_MISSING_PROG], [AC_MSG_CHECKING(for working $2) # Run test in a subshell; some versions of sh will print an error if # an executable is not found, even if stderr is redirected. # Redirect stdin to placate older versions of autoconf. Sigh. if ($2 --version) < /dev/null > /dev/null 2>&1; then $1=$2 AC_MSG_RESULT(found) else $1="$3/missing $2" AC_MSG_RESULT(missing) fi AC_SUBST($1)]) dnl PKG_CHECK_MODULES(GSTUFF, gtk+-2.0 >= 1.3 glib = 1.3.4, action-if, action-not) dnl defines GSTUFF_LIBS, GSTUFF_CFLAGS, see pkg-config man page dnl also defines GSTUFF_PKG_ERRORS on error AC_DEFUN(PKG_CHECK_MODULES, [ succeeded=no if test -z "$PKG_CONFIG"; then AC_PATH_PROG(PKG_CONFIG, pkg-config, no) fi if test "$PKG_CONFIG" = "no" ; then echo "*** The pkg-config script could not be found. Make sure it is" echo "*** in your path, or set the PKG_CONFIG environment variable" echo "*** to the full path to pkg-config." echo "*** Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config." else PKG_CONFIG_MIN_VERSION=0.9.0 if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then AC_MSG_CHECKING(for $2) if $PKG_CONFIG --exists "$2" ; then AC_MSG_RESULT(yes) succeeded=yes AC_MSG_CHECKING($1_CFLAGS) $1_CFLAGS=`$PKG_CONFIG --cflags "$2"` AC_MSG_RESULT($$1_CFLAGS) AC_MSG_CHECKING($1_LIBS) $1_LIBS=`$PKG_CONFIG --libs "$2"` AC_MSG_RESULT($$1_LIBS) else $1_CFLAGS="" $1_LIBS="" ## If we have a custom action on failure, don't print errors, but ## do set a variable so people can do so. $1_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"` ifelse([$4], ,echo $$1_PKG_ERRORS,) fi AC_SUBST($1_CFLAGS) AC_SUBST($1_LIBS) else echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer." echo "*** See http://www.freedesktop.org/software/pkgconfig" fi fi if test $succeeded = yes; then ifelse([$3], , :, [$3]) else ifelse([$4], , AC_MSG_ERROR([Library requirements ($2) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them.]), [$4]) fi ]) # Add --enable-maintainer-mode option to configure. # From Jim Meyering # serial 1 AC_DEFUN([AM_MAINTAINER_MODE], [AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) dnl maintainer-mode is disabled by default AC_ARG_ENABLE(maintainer-mode, [ --enable-maintainer-mode enable make rules and dependencies not useful (and sometimes confusing) to the casual installer], USE_MAINTAINER_MODE=$enableval, USE_MAINTAINER_MODE=no) AC_MSG_RESULT($USE_MAINTAINER_MODE) AM_CONDITIONAL(MAINTAINER_MODE, test $USE_MAINTAINER_MODE = yes) MAINT=$MAINTAINER_MODE_TRUE AC_SUBST(MAINT)dnl ] ) # Define a conditional. AC_DEFUN([AM_CONDITIONAL], [AC_SUBST($1_TRUE) AC_SUBST($1_FALSE) if $2; then $1_TRUE= $1_FALSE='#' else $1_TRUE='#' $1_FALSE= fi]) # isc-posix.m4 serial 2 (gettext-0.11.2) dnl Copyright (C) 1995-2002 Free Software Foundation, Inc. dnl This file is free software, distributed under the terms of the GNU dnl General Public License. As a special exception to the GNU General dnl Public License, this file may be distributed as part of a program dnl that contains a configuration script generated by Autoconf, under dnl the same distribution terms as the rest of that program. # This file is not needed with autoconf-2.53 and newer. Remove it in 2005. # This test replaces the one in autoconf. # Currently this macro should have the same name as the autoconf macro # because gettext's gettext.m4 (distributed in the automake package) # still uses it. Otherwise, the use in gettext.m4 makes autoheader # give these diagnostics: # configure.in:556: AC_TRY_COMPILE was called before AC_ISC_POSIX # configure.in:556: AC_TRY_RUN was called before AC_ISC_POSIX undefine([AC_ISC_POSIX]) AC_DEFUN([AC_ISC_POSIX], [ dnl This test replaces the obsolescent AC_ISC_POSIX kludge. AC_CHECK_LIB(cposix, strerror, [LIBS="$LIBS -lcposix"]) ] ) dnl GNOME_COMPILE_WARNINGS dnl Turn on many useful compiler warnings dnl For now, only works on GCC AC_DEFUN([GNOME_COMPILE_WARNINGS],[ dnl ****************************** dnl More compiler warnings dnl ****************************** if test -z "$1" ; then default_compile_warnings=yes else default_compile_warnings="$1" fi AC_ARG_ENABLE(compile-warnings, [ --enable-compile-warnings=[no/minimum/yes/maximum/error] Turn on compiler warnings.],, [enable_compile_warnings="$default_compile_warnings"]) warnCFLAGS= if test "x$GCC" != xyes; then enable_compile_warnings=no fi warning_flags= realsave_CFLAGS="$CFLAGS" case "$enable_compile_warnings" in no) warning_flags= ;; minimum) warning_flags="-Wall" ;; yes) warning_flags="-Wall -Wmissing-prototypes" ;; maximum|error) warning_flags="-Wall -Wmissing-prototypes -Wnested-externs -Wpointer-arith" CFLAGS="$warning_flags $CFLAGS" for option in -Wno-sign-compare; do SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $option" AC_MSG_CHECKING([whether gcc understands $option]) AC_TRY_COMPILE([], [], has_option=yes, has_option=no,) CFLAGS="$SAVE_CFLAGS" AC_MSG_RESULT($has_option) if test $has_option = yes; then warning_flags="$warning_flags $option" fi unset has_option unset SAVE_CFLAGS done unset option if test "$enable_compile_warnings" = "error" ; then warning_flags="$warning_flags -Werror" fi ;; *) AC_MSG_ERROR(Unknown argument '$enable_compile_warnings' to --enable-compile-warnings) ;; esac CFLAGS="$realsave_CFLAGS" AC_MSG_CHECKING(what warning flags to pass to the C compiler) AC_MSG_RESULT($warning_flags) AC_ARG_ENABLE(iso-c, [ --enable-iso-c Try to warn if code is not ISO C ],, enable_iso_c=no) AC_MSG_CHECKING(what language compliance flags to pass to the C compiler) complCFLAGS= if test "x$enable_iso_c" != "xno"; then if test "x$GCC" = "xyes"; then case " $CFLAGS " in *[\ \ ]-ansi[\ \ ]*) ;; *) complCFLAGS="$complCFLAGS -ansi" ;; esac case " $CFLAGS " in *[\ \ ]-pedantic[\ \ ]*) ;; *) complCFLAGS="$complCFLAGS -pedantic" ;; esac fi fi AC_MSG_RESULT($complCFLAGS) WARN_CFLAGS="$warning_flags $complCFLAGS" AC_SUBST(WARN_CFLAGS) ]) dnl For C++, do basically the same thing. AC_DEFUN([GNOME_CXX_WARNINGS],[ AC_ARG_ENABLE(cxx-warnings, [ --enable-cxx-warnings=[no/minimum/yes] Turn on compiler warnings.],,enable_cxx_warnings=minimum) AC_MSG_CHECKING(what warning flags to pass to the C++ compiler) warnCXXFLAGS= if test "x$GCC" != xyes; then enable_compile_warnings=no fi if test "x$enable_cxx_warnings" != "xno"; then if test "x$GCC" = "xyes"; then case " $CXXFLAGS " in *[\ \ ]-Wall[\ \ ]*) ;; *) warnCXXFLAGS="-Wall -Wno-unused" ;; esac ## -W is not all that useful. And it cannot be controlled ## with individual -Wno-xxx flags, unlike -Wall if test "x$enable_cxx_warnings" = "xyes"; then warnCXXFLAGS="$warnCXXFLAGS -Wshadow -Woverloaded-virtual" fi fi fi AC_MSG_RESULT($warnCXXFLAGS) AC_ARG_ENABLE(iso-cxx, [ --enable-iso-cxx Try to warn if code is not ISO C++ ],, enable_iso_cxx=no) AC_MSG_CHECKING(what language compliance flags to pass to the C++ compiler) complCXXFLAGS= if test "x$enable_iso_cxx" != "xno"; then if test "x$GCC" = "xyes"; then case " $CXXFLAGS " in *[\ \ ]-ansi[\ \ ]*) ;; *) complCXXFLAGS="$complCXXFLAGS -ansi" ;; esac case " $CXXFLAGS " in *[\ \ ]-pedantic[\ \ ]*) ;; *) complCXXFLAGS="$complCXXFLAGS -pedantic" ;; esac fi fi AC_MSG_RESULT($complCXXFLAGS) WARN_CXXFLAGS="$CXXFLAGS $warnCXXFLAGS $complCXXFLAGS" AC_SUBST(WARN_CXXFLAGS) ]) # Copyright (C) 1995-2002 Free Software Foundation, Inc. # Copyright (C) 2001-2003 Red Hat, Inc. # # This file is free software, distributed under the terms of the GNU # General Public License. As a special exception to the GNU General # Public License, this file may be distributed as part of a program # that contains a configuration script generated by Autoconf, under # the same distribution terms as the rest of that program. # # This file can be copied and used freely without restrictions. It can # be used in projects which are not available under the GNU Public License # but which still want to provide support for the GNU gettext functionality. # # Macro to add for using GNU gettext. # Ulrich Drepper , 1995, 1996 # # Modified to never use included libintl. # Owen Taylor , 12/15/1998 # # Major rework to remove unused code # Owen Taylor , 12/11/2002 # # Added better handling of ALL_LINGUAS from GNU gettext version # written by Bruno Haible, Owen Taylor 5/30/3002 # # We need this here as well, since someone might use autoconf-2.5x # to configure GLib then an older version to configure a package # using AM_GLIB_GNU_GETTEXT AC_PREREQ(2.53) dnl dnl We go to great lengths to make sure that aclocal won't dnl try to pull in the installed version of these macros dnl when running aclocal in the glib directory. dnl m4_copy([AC_DEFUN],[glib_DEFUN]) m4_copy([AC_REQUIRE],[glib_REQUIRE]) dnl dnl At the end, if we're not within glib, we'll define the public dnl definitions in terms of our private definitions. dnl # GLIB_LC_MESSAGES #-------------------- glib_DEFUN([GLIB_LC_MESSAGES], [AC_CHECK_HEADERS([locale.h]) if test $ac_cv_header_locale_h = yes; then AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES, [AC_TRY_LINK([#include ], [return LC_MESSAGES], am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)]) if test $am_cv_val_LC_MESSAGES = yes; then AC_DEFINE(HAVE_LC_MESSAGES, 1, [Define if your file defines LC_MESSAGES.]) fi fi]) # GLIB_PATH_PROG_WITH_TEST #---------------------------- dnl GLIB_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR, dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]]) glib_DEFUN([GLIB_PATH_PROG_WITH_TEST], [# Extract the first word of "$2", so it can be a program name with args. set dummy $2; ac_word=[$]2 AC_MSG_CHECKING([for $ac_word]) AC_CACHE_VAL(ac_cv_path_$1, [case "[$]$1" in /*) ac_cv_path_$1="[$]$1" # Let the user override the test with a path. ;; *) IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" for ac_dir in ifelse([$5], , $PATH, [$5]); do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then if [$3]; then ac_cv_path_$1="$ac_dir/$ac_word" break fi fi done IFS="$ac_save_ifs" dnl If no 4th arg is given, leave the cache variable unset, dnl so AC_PATH_PROGS will keep looking. ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4" ])dnl ;; esac])dnl $1="$ac_cv_path_$1" if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then AC_MSG_RESULT([$]$1) else AC_MSG_RESULT(no) fi AC_SUBST($1)dnl ]) # GLIB_WITH_NLS #----------------- glib_DEFUN([GLIB_WITH_NLS], dnl NLS is obligatory [USE_NLS=yes AC_SUBST(USE_NLS) gt_cv_have_gettext=no CATOBJEXT=NONE XGETTEXT=: INTLLIBS= AC_CHECK_HEADER(libintl.h, [gt_cv_func_dgettext_libintl="no" libintl_extra_libs="" # # First check in libc # AC_CACHE_CHECK([for dgettext in libc], gt_cv_func_dgettext_libc, [AC_TRY_LINK([ #include ], [return (int) dgettext ("","")], gt_cv_func_dgettext_libc=yes, gt_cv_func_dgettext_libc=no) ]) if test "$gt_cv_func_dgettext_libc" = "yes" ; then AC_CHECK_FUNCS(bind_textdomain_codeset) fi # # If we don't have everything we want, check in libintl # if test "$gt_cv_func_dgettext_libc" != "yes" \ || test "$ac_cv_func_bind_textdomain_codeset" != "yes" ; then AC_CHECK_LIB(intl, bindtextdomain, [AC_CHECK_LIB(intl, dgettext, gt_cv_func_dgettext_libintl=yes)]) if test "$gt_cv_func_dgettext_libintl" != "yes" ; then AC_MSG_CHECKING([if -liconv is needed to use gettext]) AC_MSG_RESULT([]) AC_CHECK_LIB(intl, dcgettext, [gt_cv_func_dgettext_libintl=yes libintl_extra_libs=-liconv], :,-liconv) fi # # If we found libintl, then check in it for bind_textdomain_codeset(); # we'll prefer libc if neither have bind_textdomain_codeset(), # and both have dgettext # if test "$gt_cv_func_dgettext_libintl" = "yes" ; then glib_save_LIBS="$LIBS" LIBS="$LIBS -lintl $libintl_extra_libs" unset ac_cv_func_bind_textdomain_codeset AC_CHECK_FUNCS(bind_textdomain_codeset) LIBS="$glib_save_LIBS" if test "$ac_cv_func_bind_textdomain_codeset" = "yes" ; then gt_cv_func_dgettext_libc=no else if test "$gt_cv_func_dgettext_libc" = "yes"; then gt_cv_func_dgettext_libintl=no fi fi fi fi if test "$gt_cv_func_dgettext_libc" = "yes" \ || test "$gt_cv_func_dgettext_libintl" = "yes"; then gt_cv_have_gettext=yes fi if test "$gt_cv_func_dgettext_libintl" = "yes"; then INTLLIBS="-lintl $libintl_extra_libs" fi if test "$gt_cv_have_gettext" = "yes"; then AC_DEFINE(HAVE_GETTEXT,1, [Define if the GNU gettext() function is already present or preinstalled.]) GLIB_PATH_PROG_WITH_TEST(MSGFMT, msgfmt, [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)dnl if test "$MSGFMT" != "no"; then glib_save_LIBS="$LIBS" LIBS="$LIBS $INTLLIBS" AC_CHECK_FUNCS(dcgettext) AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) GLIB_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :) AC_TRY_LINK(, [extern int _nl_msg_cat_cntr; return _nl_msg_cat_cntr], [CATOBJEXT=.gmo DATADIRNAME=share], [case $host in *-*-solaris*) dnl On Solaris, if bind_textdomain_codeset is in libc, dnl GNU format message catalog is always supported, dnl since both are added to the libc all together. dnl Hence, we'd like to go with DATADIRNAME=share and dnl and CATOBJEXT=.gmo in this case. AC_CHECK_FUNC(bind_textdomain_codeset, [CATOBJEXT=.gmo DATADIRNAME=share], [CATOBJEXT=.mo DATADIRNAME=lib]) ;; *) CATOBJEXT=.mo DATADIRNAME=lib ;; esac]) LIBS="$glib_save_LIBS" INSTOBJEXT=.mo else gt_cv_have_gettext=no fi fi ]) if test "$gt_cv_have_gettext" = "yes" ; then AC_DEFINE(ENABLE_NLS, 1, [always defined to indicate that i18n is enabled]) fi dnl Test whether we really found GNU xgettext. if test "$XGETTEXT" != ":"; then dnl If it is not GNU xgettext we define it as : so that the dnl Makefiles still can work. if $XGETTEXT --omit-header /dev/null 2> /dev/null; then : ; else AC_MSG_RESULT( [found xgettext program is not GNU xgettext; ignore it]) XGETTEXT=":" fi fi # We need to process the po/ directory. POSUB=po AC_OUTPUT_COMMANDS( [case "$CONFIG_FILES" in *po/Makefile.in*) sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile esac]) dnl These rules are solely for the distribution goal. While doing this dnl we only have to keep exactly one list of the available catalogs dnl in configure.in. for lang in $ALL_LINGUAS; do GMOFILES="$GMOFILES $lang.gmo" POFILES="$POFILES $lang.po" done dnl Make all variables we use known to autoconf. AC_SUBST(CATALOGS) AC_SUBST(CATOBJEXT) AC_SUBST(DATADIRNAME) AC_SUBST(GMOFILES) AC_SUBST(INSTOBJEXT) AC_SUBST(INTLLIBS) AC_SUBST(PO_IN_DATADIR_TRUE) AC_SUBST(PO_IN_DATADIR_FALSE) AC_SUBST(POFILES) AC_SUBST(POSUB) ]) # AM_GLIB_GNU_GETTEXT # ------------------- # Do checks necessary for use of gettext. If a suitable implementation # of gettext is found in either in libintl or in the C library, # it will set INTLLIBS to the libraries needed for use of gettext # and AC_DEFINE() HAVE_GETTEXT and ENABLE_NLS. (The shell variable # gt_cv_have_gettext will be set to "yes".) It will also call AC_SUBST() # on various variables needed by the Makefile.in.in installed by # glib-gettextize. dnl glib_DEFUN(GLIB_GNU_GETTEXT, [AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_HEADER_STDC])dnl GLIB_LC_MESSAGES GLIB_WITH_NLS if test "$gt_cv_have_gettext" = "yes"; then if test "x$ALL_LINGUAS" = "x"; then LINGUAS= else AC_MSG_CHECKING(for catalogs to be installed) NEW_LINGUAS= for presentlang in $ALL_LINGUAS; do useit=no if test "%UNSET%" != "${LINGUAS-%UNSET%}"; then desiredlanguages="$LINGUAS" else desiredlanguages="$ALL_LINGUAS" fi for desiredlang in $desiredlanguages; do # Use the presentlang catalog if desiredlang is # a. equal to presentlang, or # b. a variant of presentlang (because in this case, # presentlang can be used as a fallback for messages # which are not translated in the desiredlang catalog). case "$desiredlang" in "$presentlang"*) useit=yes;; esac done if test $useit = yes; then NEW_LINGUAS="$NEW_LINGUAS $presentlang" fi done LINGUAS=$NEW_LINGUAS AC_MSG_RESULT($LINGUAS) fi dnl Construct list of names of catalog files to be constructed. if test -n "$LINGUAS"; then for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done fi fi dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly dnl find the mkinstalldirs script in another subdir but ($top_srcdir). dnl Try to locate is. MKINSTALLDIRS= if test -n "$ac_aux_dir"; then MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" fi if test -z "$MKINSTALLDIRS"; then MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs" fi AC_SUBST(MKINSTALLDIRS) dnl Generate list of files to be processed by xgettext which will dnl be included in po/Makefile. test -d po || mkdir po if test "x$srcdir" != "x."; then if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then posrcprefix="$srcdir/" else posrcprefix="../$srcdir/" fi else posrcprefix="../" fi rm -f po/POTFILES sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \ < $srcdir/po/POTFILES.in > po/POTFILES ]) # AM_GLIB_DEFINE_LOCALEDIR(VARIABLE) # ------------------------------- # Define VARIABLE to the location where catalog files will # be installed by po/Makefile. glib_DEFUN(GLIB_DEFINE_LOCALEDIR, [glib_REQUIRE([GLIB_GNU_GETTEXT])dnl glib_save_prefix="$prefix" glib_save_exec_prefix="$exec_prefix" test "x$prefix" = xNONE && prefix=$ac_default_prefix test "x$exec_prefix" = xNONE && exec_prefix=$prefix if test "x$CATOBJEXT" = "x.mo" ; then localedir=`eval echo "${libdir}/locale"` else localedir=`eval echo "${datadir}/locale"` fi prefix="$glib_save_prefix" exec_prefix="$glib_save_exec_prefix" AC_DEFINE_UNQUOTED($1, "$localedir", [Define the location where the catalogs will be installed]) ]) dnl dnl Now the definitions that aclocal will find dnl ifdef(glib_configure_in,[],[ AC_DEFUN(AM_GLIB_GNU_GETTEXT,[GLIB_GNU_GETTEXT($@)]) AC_DEFUN(AM_GLIB_DEFINE_LOCALEDIR,[GLIB_DEFINE_LOCALEDIR($@)]) ])dnl gnome-breakout-0.5.3/config.guess0000755000175000017500000012206507731002047013705 00000000000000#! /bin/sh # Attempt to guess a canonical system name. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003 Free Software Foundation, Inc. timestamp='2003-07-02' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Per Bothner . # Please send patches to . Submit a context # diff and a properly formatted ChangeLog entry. # # This script attempts to guess a canonical system name similar to # config.sub. If it succeeds, it prints the system name on stdout, and # exits with 0. Otherwise, it exits with 1. # # The plan is that this can be called by configure scripts if you # don't specify an explicit build system type. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] Output the configuration name of the system \`$me' is run on. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit 0 ;; --version | -v ) echo "$version" ; exit 0 ;; --help | --h* | -h ) echo "$usage"; exit 0 ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" >&2 exit 1 ;; * ) break ;; esac done if test $# != 0; then echo "$me: too many arguments$help" >&2 exit 1 fi trap 'exit 1' 1 2 15 # CC_FOR_BUILD -- compiler used by this script. Note that the use of a # compiler to aid in system detection is discouraged as it requires # temporary files to be created and, as you can see below, it is a # headache to deal with in a portable fashion. # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still # use `HOST_CC' if defined, but it is deprecated. # Portable tmp directory creation inspired by the Autoconf team. set_cc_for_build=' trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; : ${TMPDIR=/tmp} ; { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; dummy=$tmp/dummy ; tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; case $CC_FOR_BUILD,$HOST_CC,$CC in ,,) echo "int x;" > $dummy.c ; for c in cc gcc c89 c99 ; do if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then CC_FOR_BUILD="$c"; break ; fi ; done ; if test x"$CC_FOR_BUILD" = x ; then CC_FOR_BUILD=no_compiler_found ; fi ;; ,,*) CC_FOR_BUILD=$CC ;; ,*,*) CC_FOR_BUILD=$HOST_CC ;; esac ;' # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (ghazi@noc.rutgers.edu 1994-08-24) if (test -f /.attbin/uname) >/dev/null 2>&1 ; then PATH=$PATH:/.attbin ; export PATH fi UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown # Note: order is significant - the case branches are not exclusive. case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently # switched to ELF, *-*-netbsd* would select the old # object file format. This provides both forward # compatibility and a consistent mechanism for selecting the # object file format. # # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". sysctl="sysctl -n hw.machine_arch" UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ /usr/sbin/$sysctl 2>/dev/null || echo unknown)` case "${UNAME_MACHINE_ARCH}" in armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; *) machine=${UNAME_MACHINE_ARCH}-unknown ;; esac # The Operating System including object format, if it has switched # to ELF recently, or will in the future. case "${UNAME_MACHINE_ARCH}" in arm*|i386|m68k|ns32k|sh3*|sparc|vax) eval $set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep __ELF__ >/dev/null then # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). # Return netbsd for either. FIX? os=netbsd else os=netbsdelf fi ;; *) os=netbsd ;; esac # The OS release # Debian GNU/NetBSD machines have a different userland, and # thus, need a distinct triplet. However, they do not need # kernel version information, so it can be replaced with a # suitable tag, in the style of linux-gnu. case "${UNAME_VERSION}" in Debian*) release='-gnu' ;; *) release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. echo "${machine}-${os}${release}" exit 0 ;; amiga:OpenBSD:*:*) echo m68k-unknown-openbsd${UNAME_RELEASE} exit 0 ;; arc:OpenBSD:*:*) echo mipsel-unknown-openbsd${UNAME_RELEASE} exit 0 ;; hp300:OpenBSD:*:*) echo m68k-unknown-openbsd${UNAME_RELEASE} exit 0 ;; mac68k:OpenBSD:*:*) echo m68k-unknown-openbsd${UNAME_RELEASE} exit 0 ;; macppc:OpenBSD:*:*) echo powerpc-unknown-openbsd${UNAME_RELEASE} exit 0 ;; mvme68k:OpenBSD:*:*) echo m68k-unknown-openbsd${UNAME_RELEASE} exit 0 ;; mvme88k:OpenBSD:*:*) echo m88k-unknown-openbsd${UNAME_RELEASE} exit 0 ;; mvmeppc:OpenBSD:*:*) echo powerpc-unknown-openbsd${UNAME_RELEASE} exit 0 ;; pmax:OpenBSD:*:*) echo mipsel-unknown-openbsd${UNAME_RELEASE} exit 0 ;; sgi:OpenBSD:*:*) echo mipseb-unknown-openbsd${UNAME_RELEASE} exit 0 ;; sun3:OpenBSD:*:*) echo m68k-unknown-openbsd${UNAME_RELEASE} exit 0 ;; wgrisc:OpenBSD:*:*) echo mipsel-unknown-openbsd${UNAME_RELEASE} exit 0 ;; *:OpenBSD:*:*) echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE} exit 0 ;; alpha:OSF1:*:*) if test $UNAME_RELEASE = "V4.0"; then UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` fi # According to Compaq, /usr/sbin/psrinfo has been available on # OSF/1 and Tru64 systems produced since 1995. I hope that # covers most systems running today. This code pipes the CPU # types through head -n 1, so we only detect the type of CPU 0. ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` case "$ALPHA_CPU_TYPE" in "EV4 (21064)") UNAME_MACHINE="alpha" ;; "EV4.5 (21064)") UNAME_MACHINE="alpha" ;; "LCA4 (21066/21068)") UNAME_MACHINE="alpha" ;; "EV5 (21164)") UNAME_MACHINE="alphaev5" ;; "EV5.6 (21164A)") UNAME_MACHINE="alphaev56" ;; "EV5.6 (21164PC)") UNAME_MACHINE="alphapca56" ;; "EV5.7 (21164PC)") UNAME_MACHINE="alphapca57" ;; "EV6 (21264)") UNAME_MACHINE="alphaev6" ;; "EV6.7 (21264A)") UNAME_MACHINE="alphaev67" ;; "EV6.8CB (21264C)") UNAME_MACHINE="alphaev68" ;; "EV6.8AL (21264B)") UNAME_MACHINE="alphaev68" ;; "EV6.8CX (21264D)") UNAME_MACHINE="alphaev68" ;; "EV6.9A (21264/EV69A)") UNAME_MACHINE="alphaev69" ;; "EV7 (21364)") UNAME_MACHINE="alphaev7" ;; "EV7.9 (21364A)") UNAME_MACHINE="alphaev79" ;; esac # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` exit 0 ;; Alpha*:OpenVMS:*:*) echo alpha-hp-vms exit 0 ;; Alpha\ *:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # Should we change UNAME_MACHINE based on the output of uname instead # of the specific Alpha model? echo alpha-pc-interix exit 0 ;; 21064:Windows_NT:50:3) echo alpha-dec-winnt3.5 exit 0 ;; Amiga*:UNIX_System_V:4.0:*) echo m68k-unknown-sysv4 exit 0;; *:[Aa]miga[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-amigaos exit 0 ;; *:[Mm]orph[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-morphos exit 0 ;; *:OS/390:*:*) echo i370-ibm-openedition exit 0 ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} exit 0;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) echo hppa1.1-hitachi-hiuxmpp exit 0;; Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. if test "`(/bin/universe) 2>/dev/null`" = att ; then echo pyramid-pyramid-sysv3 else echo pyramid-pyramid-bsd fi exit 0 ;; NILE*:*:*:dcosx) echo pyramid-pyramid-svr4 exit 0 ;; DRS?6000:unix:4.0:6*) echo sparc-icl-nx6 exit 0 ;; DRS?6000:UNIX_SV:4.2*:7*) case `/usr/bin/uname -p` in sparc) echo sparc-icl-nx7 && exit 0 ;; esac ;; sun4H:SunOS:5.*:*) echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit 0 ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit 0 ;; i86pc:SunOS:5.*:*) echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit 0 ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit 0 ;; sun4*:SunOS:*:*) case "`/usr/bin/arch -k`" in Series*|S4*) UNAME_RELEASE=`uname -v` ;; esac # Japanese Language versions have a version number like `4.1.3-JL'. echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` exit 0 ;; sun3*:SunOS:*:*) echo m68k-sun-sunos${UNAME_RELEASE} exit 0 ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 case "`/bin/arch`" in sun3) echo m68k-sun-sunos${UNAME_RELEASE} ;; sun4) echo sparc-sun-sunos${UNAME_RELEASE} ;; esac exit 0 ;; aushp:SunOS:*:*) echo sparc-auspex-sunos${UNAME_RELEASE} exit 0 ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not # "atarist" or "atariste" at least should have a processor # > m68000). The system name ranges from "MiNT" over "FreeMiNT" # to the lowercase version "mint" (or "freemint"). Finally # the system name "TOS" denotes a system which is actually not # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit 0 ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit 0 ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit 0 ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) echo m68k-milan-mint${UNAME_RELEASE} exit 0 ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) echo m68k-hades-mint${UNAME_RELEASE} exit 0 ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) echo m68k-unknown-mint${UNAME_RELEASE} exit 0 ;; powerpc:machten:*:*) echo powerpc-apple-machten${UNAME_RELEASE} exit 0 ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 exit 0 ;; RISC*:ULTRIX:*:*) echo mips-dec-ultrix${UNAME_RELEASE} exit 0 ;; VAX*:ULTRIX*:*:*) echo vax-dec-ultrix${UNAME_RELEASE} exit 0 ;; 2020:CLIX:*:* | 2430:CLIX:*:*) echo clipper-intergraph-clix${UNAME_RELEASE} exit 0 ;; mips:*:*:UMIPS | mips:*:*:RISCos) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #ifdef __cplusplus #include /* for printf() prototype */ int main (int argc, char *argv[]) { #else int main (argc, argv) int argc; char *argv[]; { #endif #if defined (host_mips) && defined (MIPSEB) #if defined (SYSTYPE_SYSV) printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_SVR4) printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); #endif #endif exit (-1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c \ && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \ && exit 0 echo mips-mips-riscos${UNAME_RELEASE} exit 0 ;; Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax exit 0 ;; Motorola:*:4.3:PL8-*) echo powerpc-harris-powermax exit 0 ;; Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) echo powerpc-harris-powermax exit 0 ;; Night_Hawk:Power_UNIX:*:*) echo powerpc-harris-powerunix exit 0 ;; m88k:CX/UX:7*:*) echo m88k-harris-cxux7 exit 0 ;; m88k:*:4*:R4*) echo m88k-motorola-sysv4 exit 0 ;; m88k:*:3*:R3*) echo m88k-motorola-sysv3 exit 0 ;; AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] then if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ [ ${TARGET_BINARY_INTERFACE}x = x ] then echo m88k-dg-dgux${UNAME_RELEASE} else echo m88k-dg-dguxbcs${UNAME_RELEASE} fi else echo i586-dg-dgux${UNAME_RELEASE} fi exit 0 ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) echo m88k-dolphin-sysv3 exit 0 ;; M88*:*:R3*:*) # Delta 88k system running SVR3 echo m88k-motorola-sysv3 exit 0 ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) echo m88k-tektronix-sysv3 exit 0 ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) echo m68k-tektronix-bsd exit 0 ;; *:IRIX*:*:*) echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` exit 0 ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX ' i*86:AIX:*:*) echo i386-ibm-aix exit 0 ;; ia64:AIX:*:*) if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} exit 0 ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include main() { if (!__power_pc()) exit(1); puts("powerpc-ibm-aix3.2.5"); exit(0); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0 echo rs6000-ibm-aix3.2.5 elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then echo rs6000-ibm-aix3.2.4 else echo rs6000-ibm-aix3.2 fi exit 0 ;; *:AIX:*:[45]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 else IBM_ARCH=powerpc fi if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${IBM_ARCH}-ibm-aix${IBM_REV} exit 0 ;; *:AIX:*:*) echo rs6000-ibm-aix exit 0 ;; ibmrt:4.4BSD:*|romp-ibm:BSD:*) echo romp-ibm-bsd4.4 exit 0 ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to exit 0 ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx exit 0 ;; DPX/2?00:B.O.S.:*:*) echo m68k-bull-sysv3 exit 0 ;; 9000/[34]??:4.3bsd:1.*:*) echo m68k-hp-bsd exit 0 ;; hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) echo m68k-hp-bsd4.4 exit 0 ;; 9000/[34678]??:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` case "${UNAME_MACHINE}" in 9000/31? ) HP_ARCH=m68000 ;; 9000/[34]?? ) HP_ARCH=m68k ;; 9000/[678][0-9][0-9]) if [ -x /usr/bin/getconf ]; then sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` case "${sc_cpu_version}" in 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 case "${sc_kernel_bits}" in 32) HP_ARCH="hppa2.0n" ;; 64) HP_ARCH="hppa2.0w" ;; '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 esac ;; esac fi if [ "${HP_ARCH}" = "" ]; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #define _HPUX_SOURCE #include #include int main () { #if defined(_SC_KERNEL_BITS) long bits = sysconf(_SC_KERNEL_BITS); #endif long cpu = sysconf (_SC_CPU_VERSION); switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0"); break; case CPU_PA_RISC1_1: puts ("hppa1.1"); break; case CPU_PA_RISC2_0: #if defined(_SC_KERNEL_BITS) switch (bits) { case 64: puts ("hppa2.0w"); break; case 32: puts ("hppa2.0n"); break; default: puts ("hppa2.0"); break; } break; #else /* !defined(_SC_KERNEL_BITS) */ puts ("hppa2.0"); break; #endif default: puts ("hppa1.0"); break; } exit (0); } EOF (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac if [ ${HP_ARCH} = "hppa2.0w" ] then # avoid double evaluation of $set_cc_for_build test -n "$CC_FOR_BUILD" || eval $set_cc_for_build if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E -) | grep __LP64__ >/dev/null then HP_ARCH="hppa2.0w" else HP_ARCH="hppa64" fi fi echo ${HP_ARCH}-hp-hpux${HPUX_REV} exit 0 ;; ia64:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` echo ia64-hp-hpux${HPUX_REV} exit 0 ;; 3050*:HI-UX:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include int main () { long cpu = sysconf (_SC_CPU_VERSION); /* The order matters, because CPU_IS_HP_MC68K erroneously returns true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct results, however. */ if (CPU_IS_PA_RISC (cpu)) { switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; default: puts ("hppa-hitachi-hiuxwe2"); break; } } else if (CPU_IS_HP_MC68K (cpu)) puts ("m68k-hitachi-hiuxwe2"); else puts ("unknown-hitachi-hiuxwe2"); exit (0); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0 echo unknown-hitachi-hiuxwe2 exit 0 ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) echo hppa1.1-hp-bsd exit 0 ;; 9000/8??:4.3bsd:*:*) echo hppa1.0-hp-bsd exit 0 ;; *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) echo hppa1.0-hp-mpeix exit 0 ;; hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) echo hppa1.1-hp-osf exit 0 ;; hp8??:OSF1:*:*) echo hppa1.0-hp-osf exit 0 ;; i*86:OSF1:*:*) if [ -x /usr/sbin/sysversion ] ; then echo ${UNAME_MACHINE}-unknown-osf1mk else echo ${UNAME_MACHINE}-unknown-osf1 fi exit 0 ;; parisc*:Lites*:*:*) echo hppa1.1-hp-lites exit 0 ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) echo c1-convex-bsd exit 0 ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit 0 ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) echo c34-convex-bsd exit 0 ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) echo c38-convex-bsd exit 0 ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) echo c4-convex-bsd exit 0 ;; CRAY*Y-MP:*:*:*) echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit 0 ;; CRAY*[A-Z]90:*:*:*) echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -e 's/\.[^.]*$/.X/' exit 0 ;; CRAY*TS:*:*:*) echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit 0 ;; CRAY*T3E:*:*:*) echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit 0 ;; CRAY*SV1:*:*:*) echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit 0 ;; *:UNICOS/mp:*:*) echo nv1-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit 0 ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit 0 ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} exit 0 ;; sparc*:BSD/OS:*:*) echo sparc-unknown-bsdi${UNAME_RELEASE} exit 0 ;; *:BSD/OS:*:*) echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} exit 0 ;; *:FreeBSD:*:*|*:GNU/FreeBSD:*:*) # Determine whether the default compiler uses glibc. eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include #if __GLIBC__ >= 2 LIBC=gnu #else LIBC= #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` # GNU/FreeBSD systems have a "k" prefix to indicate we are using # FreeBSD's kernel, but not the complete OS. case ${LIBC} in gnu) kernel_only='k' ;; esac echo ${UNAME_MACHINE}-unknown-${kernel_only}freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC} exit 0 ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin exit 0 ;; i*:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit 0 ;; i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit 0 ;; x86:Interix*:[34]*) echo i586-pc-interix${UNAME_RELEASE}|sed -e 's/\..*//' exit 0 ;; [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) echo i${UNAME_MACHINE}-pc-mks exit 0 ;; i*:Windows_NT*:* | Pentium*:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we # UNAME_MACHINE based on the output of uname instead of i386? echo i586-pc-interix exit 0 ;; i*:UWIN*:*) echo ${UNAME_MACHINE}-pc-uwin exit 0 ;; p*:CYGWIN*:*) echo powerpcle-unknown-cygwin exit 0 ;; prep*:SunOS:5.*:*) echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit 0 ;; *:GNU:*:*) echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` exit 0 ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix exit 0 ;; arm*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit 0 ;; cris:Linux:*:*) echo cris-axis-linux-gnu exit 0 ;; ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit 0 ;; m68*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit 0 ;; mips:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef mips #undef mipsel #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=mipsel #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=mips #else CPU= #endif #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0 ;; mips64:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef mips64 #undef mips64el #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=mips64el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=mips64 #else CPU= #endif #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0 ;; ppc:Linux:*:*) echo powerpc-unknown-linux-gnu exit 0 ;; ppc64:Linux:*:*) echo powerpc64-unknown-linux-gnu exit 0 ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in EV5) UNAME_MACHINE=alphaev5 ;; EV56) UNAME_MACHINE=alphaev56 ;; PCA56) UNAME_MACHINE=alphapca56 ;; PCA57) UNAME_MACHINE=alphapca56 ;; EV6) UNAME_MACHINE=alphaev6 ;; EV67) UNAME_MACHINE=alphaev67 ;; EV68*) UNAME_MACHINE=alphaev68 ;; esac objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} exit 0 ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in PA7*) echo hppa1.1-unknown-linux-gnu ;; PA8*) echo hppa2.0-unknown-linux-gnu ;; *) echo hppa-unknown-linux-gnu ;; esac exit 0 ;; parisc64:Linux:*:* | hppa64:Linux:*:*) echo hppa64-unknown-linux-gnu exit 0 ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux exit 0 ;; sh64*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit 0 ;; sh*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit 0 ;; sparc:Linux:*:* | sparc64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit 0 ;; x86_64:Linux:*:*) echo x86_64-unknown-linux-gnu exit 0 ;; i*86:Linux:*:*) # The BFD linker knows what the default object file format is, so # first see if it will tell us. cd to the root directory to prevent # problems with other programs or directories called `ld' in the path. # Set LC_ALL=C to ensure ld outputs messages in English. ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ | sed -ne '/supported targets:/!d s/[ ][ ]*/ /g s/.*supported targets: *// s/ .*// p'` case "$ld_supported_targets" in elf32-i386) TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" ;; a.out-i386-linux) echo "${UNAME_MACHINE}-pc-linux-gnuaout" exit 0 ;; coff-i386) echo "${UNAME_MACHINE}-pc-linux-gnucoff" exit 0 ;; "") # Either a pre-BFD a.out linker (linux-gnuoldld) or # one that does not give us useful --help. echo "${UNAME_MACHINE}-pc-linux-gnuoldld" exit 0 ;; esac # Determine whether the default compiler is a.out or elf eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include #ifdef __ELF__ # ifdef __GLIBC__ # if __GLIBC__ >= 2 LIBC=gnu # else LIBC=gnulibc1 # endif # else LIBC=gnulibc1 # endif #else #ifdef __INTEL_COMPILER LIBC=gnu #else LIBC=gnuaout #endif #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0 test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0 ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. # earlier versions are messed up and put the nodename in both # sysname and nodename. echo i386-sequent-sysv4 exit 0 ;; i*86:UNIX_SV:4.2MP:2.*) # Unixware is an offshoot of SVR4, but it has its own version # number series starting with 2... # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} exit 0 ;; i*86:OS/2:*:*) # If we were able to find `uname', then EMX Unix compatibility # is probably installed. echo ${UNAME_MACHINE}-pc-os2-emx exit 0 ;; i*86:XTS-300:*:STOP) echo ${UNAME_MACHINE}-unknown-stop exit 0 ;; i*86:atheos:*:*) echo ${UNAME_MACHINE}-unknown-atheos exit 0 ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) echo i386-unknown-lynxos${UNAME_RELEASE} exit 0 ;; i*86:*DOS:*:*) echo ${UNAME_MACHINE}-pc-msdosdjgpp exit 0 ;; i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} else echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} fi exit 0 ;; i*86:*:5:[78]*) case `/bin/uname -X | grep "^Machine"` in *486*) UNAME_MACHINE=i486 ;; *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} exit 0 ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ && UNAME_MACHINE=i586 (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ && UNAME_MACHINE=i686 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ && UNAME_MACHINE=i686 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL else echo ${UNAME_MACHINE}-pc-sysv32 fi exit 0 ;; pc:*:*:*) # Left here for compatibility: # uname -m prints for DJGPP always 'pc', but it prints nothing about # the processor, so we play safe by assuming i386. echo i386-pc-msdosdjgpp exit 0 ;; Intel:Mach:3*:*) echo i386-pc-mach3 exit 0 ;; paragon:*:*:*) echo i860-intel-osf1 exit 0 ;; i860:*:4.*:*) # i860-SVR4 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 fi exit 0 ;; mini*:CTIX:SYS*5:*) # "miniframe" echo m68010-convergent-sysv exit 0 ;; mc68k:UNIX:SYSTEM5:3.51m) echo m68k-convergent-sysv exit 0 ;; M680?0:D-NIX:5.3:*) echo m68k-diab-dnix exit 0 ;; M68*:*:R3V[567]*:*) test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;; 3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0) OS_REL='' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && echo i486-ncr-sysv4.3${OS_REL} && exit 0 /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && echo i486-ncr-sysv4 && exit 0 ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) echo m68k-unknown-lynxos${UNAME_RELEASE} exit 0 ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 exit 0 ;; TSUNAMI:LynxOS:2.*:*) echo sparc-unknown-lynxos${UNAME_RELEASE} exit 0 ;; rs6000:LynxOS:2.*:*) echo rs6000-unknown-lynxos${UNAME_RELEASE} exit 0 ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) echo powerpc-unknown-lynxos${UNAME_RELEASE} exit 0 ;; SM[BE]S:UNIX_SV:*:*) echo mips-dde-sysv${UNAME_RELEASE} exit 0 ;; RM*:ReliantUNIX-*:*:*) echo mips-sni-sysv4 exit 0 ;; RM*:SINIX-*:*:*) echo mips-sni-sysv4 exit 0 ;; *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` echo ${UNAME_MACHINE}-sni-sysv4 else echo ns32k-sni-sysv fi exit 0 ;; PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort # says echo i586-unisys-sysv4 exit 0 ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # How about differentiating between stratus architectures? -djm echo hppa1.1-stratus-sysv4 exit 0 ;; *:*:*:FTX*) # From seanf@swdc.stratus.com. echo i860-stratus-sysv4 exit 0 ;; *:VOS:*:*) # From Paul.Green@stratus.com. echo hppa1.1-stratus-vos exit 0 ;; mc68*:A/UX:*:*) echo m68k-apple-aux${UNAME_RELEASE} exit 0 ;; news*:NEWS-OS:6*:*) echo mips-sony-newsos6 exit 0 ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if [ -d /usr/nec ]; then echo mips-nec-sysv${UNAME_RELEASE} else echo mips-unknown-sysv${UNAME_RELEASE} fi exit 0 ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. echo powerpc-be-beos exit 0 ;; BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. echo powerpc-apple-beos exit 0 ;; BePC:BeOS:*:*) # BeOS running on Intel PC compatible. echo i586-pc-beos exit 0 ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} exit 0 ;; SX-5:SUPER-UX:*:*) echo sx5-nec-superux${UNAME_RELEASE} exit 0 ;; SX-6:SUPER-UX:*:*) echo sx6-nec-superux${UNAME_RELEASE} exit 0 ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} exit 0 ;; *:Rhapsody:*:*) echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} exit 0 ;; *:Darwin:*:*) case `uname -p` in *86) UNAME_PROCESSOR=i686 ;; powerpc) UNAME_PROCESSOR=powerpc ;; esac echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} exit 0 ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` if test "$UNAME_PROCESSOR" = "x86"; then UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} exit 0 ;; *:QNX:*:4*) echo i386-pc-qnx exit 0 ;; NSR-[DGKLNPTVW]:NONSTOP_KERNEL:*:*) echo nsr-tandem-nsk${UNAME_RELEASE} exit 0 ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux exit 0 ;; BS2000:POSIX*:*:*) echo bs2000-siemens-sysv exit 0 ;; DS/*:UNIX_System_V:*:*) echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} exit 0 ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. if test "$cputype" = "386"; then UNAME_MACHINE=i386 else UNAME_MACHINE="$cputype" fi echo ${UNAME_MACHINE}-unknown-plan9 exit 0 ;; *:TOPS-10:*:*) echo pdp10-unknown-tops10 exit 0 ;; *:TENEX:*:*) echo pdp10-unknown-tenex exit 0 ;; KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) echo pdp10-dec-tops20 exit 0 ;; XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) echo pdp10-xkl-tops20 exit 0 ;; *:TOPS-20:*:*) echo pdp10-unknown-tops20 exit 0 ;; *:ITS:*:*) echo pdp10-unknown-its exit 0 ;; SEI:*:*:SEIUX) echo mips-sei-seiux${UNAME_RELEASE} exit 0 ;; esac #echo '(No uname command or uname output not recognized.)' 1>&2 #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 eval $set_cc_for_build cat >$dummy.c < # include #endif main () { #if defined (sony) #if defined (MIPSEB) /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, I don't know.... */ printf ("mips-sony-bsd\n"); exit (0); #else #include printf ("m68k-sony-newsos%s\n", #ifdef NEWSOS4 "4" #else "" #endif ); exit (0); #endif #endif #if defined (__arm) && defined (__acorn) && defined (__unix) printf ("arm-acorn-riscix"); exit (0); #endif #if defined (hp300) && !defined (hpux) printf ("m68k-hp-bsd\n"); exit (0); #endif #if defined (NeXT) #if !defined (__ARCHITECTURE__) #define __ARCHITECTURE__ "m68k" #endif int version; version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; if (version < 4) printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); else printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); exit (0); #endif #if defined (MULTIMAX) || defined (n16) #if defined (UMAXV) printf ("ns32k-encore-sysv\n"); exit (0); #else #if defined (CMU) printf ("ns32k-encore-mach\n"); exit (0); #else printf ("ns32k-encore-bsd\n"); exit (0); #endif #endif #endif #if defined (__386BSD__) printf ("i386-pc-bsd\n"); exit (0); #endif #if defined (sequent) #if defined (i386) printf ("i386-sequent-dynix\n"); exit (0); #endif #if defined (ns32000) printf ("ns32k-sequent-dynix\n"); exit (0); #endif #endif #if defined (_SEQUENT_) struct utsname un; uname(&un); if (strncmp(un.version, "V2", 2) == 0) { printf ("i386-sequent-ptx2\n"); exit (0); } if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ printf ("i386-sequent-ptx1\n"); exit (0); } printf ("i386-sequent-ptx\n"); exit (0); #endif #if defined (vax) # if !defined (ultrix) # include # if defined (BSD) # if BSD == 43 printf ("vax-dec-bsd4.3\n"); exit (0); # else # if BSD == 199006 printf ("vax-dec-bsd4.3reno\n"); exit (0); # else printf ("vax-dec-bsd\n"); exit (0); # endif # endif # else printf ("vax-dec-bsd\n"); exit (0); # endif # else printf ("vax-dec-ultrix\n"); exit (0); # endif #endif #if defined (alliant) && defined (i860) printf ("i860-alliant-bsd\n"); exit (0); #endif exit (1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && $dummy && exit 0 # Apollos put the system type in the environment. test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; } # Convex versions that predate uname can use getsysinfo(1) if [ -x /usr/convex/getsysinfo ] then case `getsysinfo -f cpu_type` in c1*) echo c1-convex-bsd exit 0 ;; c2*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit 0 ;; c34*) echo c34-convex-bsd exit 0 ;; c38*) echo c38-convex-bsd exit 0 ;; c4*) echo c4-convex-bsd exit 0 ;; esac fi cat >&2 < in order to provide the needed information to handle your system. config.guess timestamp = $timestamp uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` /bin/uname -X = `(/bin/uname -X) 2>/dev/null` hostinfo = `(hostinfo) 2>/dev/null` /bin/universe = `(/bin/universe) 2>/dev/null` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` /bin/arch = `(/bin/arch) 2>/dev/null` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` UNAME_MACHINE = ${UNAME_MACHINE} UNAME_RELEASE = ${UNAME_RELEASE} UNAME_SYSTEM = ${UNAME_SYSTEM} UNAME_VERSION = ${UNAME_VERSION} EOF exit 1 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: gnome-breakout-0.5.3/config.sub0000755000175000017500000007320307731002047013347 00000000000000#! /bin/sh # Configuration validation subroutine script. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003 Free Software Foundation, Inc. timestamp='2003-07-17' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software # can handle that machine. It does not imply ALL GNU software can. # # This file is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Please send patches to . Submit a context # diff and a properly formatted ChangeLog entry. # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. # If it is invalid, we print an error message on stderr and exit with code 1. # Otherwise, we print the canonical config type on stdout and succeed. # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases # that are meaningful with *any* GNU software. # Each package is responsible for reporting which valid configurations # it does not support. The user should be able to distinguish # a failure to support a valid configuration from a meaningless # configuration. # The goal of this file is to map all the various variations of a given # machine specification into a single specification in the form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or in some cases, the newer four-part form: # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # It is wrong to echo any other type of specification. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] CPU-MFR-OPSYS $0 [OPTION] ALIAS Canonicalize a configuration name. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.sub ($timestamp) Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit 0 ;; --version | -v ) echo "$version" ; exit 0 ;; --help | --h* | -h ) echo "$usage"; exit 0 ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" exit 1 ;; *local*) # First pass through any local machine types. echo $1 exit 0;; * ) break ;; esac done case $# in 0) echo "$me: missing argument$help" >&2 exit 1;; 1) ;; *) echo "$me: too many arguments$help" >&2 exit 1;; esac # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). # Here we must recognize all the valid KERNEL-OS combinations. maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in nto-qnx* | linux-gnu* | kfreebsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; *) basic_machine=`echo $1 | sed 's/-[^-]*$//'` if [ $basic_machine != $1 ] then os=`echo $1 | sed 's/.*-/-/'` else os=; fi ;; esac ### Let's recognize common machines as not being operating systems so ### that things like config.sub decstation-3100 work. We also ### recognize some manufacturers as not being operating systems, so we ### can provide default operating systems below. case $os in -sun*os*) # Prevent following clause from handling this invalid input. ;; -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ -apple | -axis) os= basic_machine=$1 ;; -sim | -cisco | -oki | -wec | -winbond) os= basic_machine=$1 ;; -scout) ;; -wrs) os=-vxworks basic_machine=$1 ;; -chorusos*) os=-chorusos basic_machine=$1 ;; -chorusrdb) os=-chorusrdb basic_machine=$1 ;; -hiux*) os=-hiuxwe2 ;; -sco5) os=-sco3.2v5 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco4) os=-sco3.2v4 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2.[4-9]*) os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2v[4-9]*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco*) os=-sco3.2v2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -udk*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -isc) os=-isc2.2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -clix*) basic_machine=clipper-intergraph ;; -isc*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -lynx*) os=-lynxos ;; -ptx*) basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` ;; -windowsnt*) os=`echo $os | sed -e 's/windowsnt/winnt/'` ;; -psos*) os=-psos ;; -mint | -mint[0-9]*) basic_machine=m68k-atari os=-mint ;; esac # Decode aliases for certain CPU-COMPANY combinations. case $basic_machine in # Recognize the basic CPU types without company name. # Some are omitted here because they have special meanings below. 1750a | 580 \ | a29k \ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | am33_2.0 \ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \ | c4x | clipper \ | d10v | d30v | dlx | dsp16xx \ | fr30 | frv \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | i370 | i860 | i960 | ia64 \ | ip2k | iq2000 \ | m32r | m68000 | m68k | m88k | mcore \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ | mips64vr | mips64vrel \ | mips64orion | mips64orionel \ | mips64vr4100 | mips64vr4100el \ | mips64vr4300 | mips64vr4300el \ | mips64vr5000 | mips64vr5000el \ | mipsisa32 | mipsisa32el \ | mipsisa32r2 | mipsisa32r2el \ | mipsisa64 | mipsisa64el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ | msp430 \ | ns16k | ns32k \ | openrisc | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ | pyramid \ | sh | sh[1234] | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ | sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv9 | sparcv9b \ | strongarm \ | tahoe | thumb | tic4x | tic80 | tron \ | v850 | v850e \ | we32k \ | x86 | xscale | xstormy16 | xtensa \ | z8k) basic_machine=$basic_machine-unknown ;; m6811 | m68hc11 | m6812 | m68hc12) # Motorola 68HC11/12. basic_machine=$basic_machine-unknown os=-none ;; m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) ;; # We use `pc' rather than `unknown' # because (1) that's what they normally are, and # (2) the word "unknown" tends to confuse beginning users. i*86 | x86_64) basic_machine=$basic_machine-pc ;; # Object if more than one company name word. *-*-*) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; # Recognize the basic CPU types with company name. 580-* \ | a29k-* \ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* \ | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ | clipper-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | elxsi-* \ | f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | i*86-* | i860-* | i960-* | ia64-* \ | ip2k-* | iq2000-* \ | m32r-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ | m88110-* | m88k-* | mcore-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ | mips64vr-* | mips64vrel-* \ | mips64orion-* | mips64orionel-* \ | mips64vr4100-* | mips64vr4100el-* \ | mips64vr4300-* | mips64vr4300el-* \ | mips64vr5000-* | mips64vr5000el-* \ | mipsisa32-* | mipsisa32el-* \ | mipsisa32r2-* | mipsisa32r2el-* \ | mipsisa64-* | mipsisa64el-* \ | mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ | mipstx39-* | mipstx39el-* \ | msp430-* \ | none-* | np1-* | nv1-* | ns16k-* | ns32k-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ | pyramid-* \ | romp-* | rs6000-* \ | sh-* | sh[1234]-* | sh[23]e-* | sh[34]eb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \ | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \ | tahoe-* | thumb-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ | tron-* \ | v850-* | v850e-* | vax-* \ | we32k-* \ | x86-* | x86_64-* | xps100-* | xscale-* | xstormy16-* \ | xtensa-* \ | ymp-* \ | z8k-*) ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. 386bsd) basic_machine=i386-unknown os=-bsd ;; 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) basic_machine=m68000-att ;; 3b*) basic_machine=we32k-att ;; a29khif) basic_machine=a29k-amd os=-udi ;; adobe68k) basic_machine=m68010-adobe os=-scout ;; alliant | fx80) basic_machine=fx80-alliant ;; altos | altos3068) basic_machine=m68k-altos ;; am29k) basic_machine=a29k-none os=-bsd ;; amd64) basic_machine=x86_64-pc ;; amdahl) basic_machine=580-amdahl os=-sysv ;; amiga | amiga-*) basic_machine=m68k-unknown ;; amigaos | amigados) basic_machine=m68k-unknown os=-amigaos ;; amigaunix | amix) basic_machine=m68k-unknown os=-sysv4 ;; apollo68) basic_machine=m68k-apollo os=-sysv ;; apollo68bsd) basic_machine=m68k-apollo os=-bsd ;; aux) basic_machine=m68k-apple os=-aux ;; balance) basic_machine=ns32k-sequent os=-dynix ;; c90) basic_machine=c90-cray os=-unicos ;; convex-c1) basic_machine=c1-convex os=-bsd ;; convex-c2) basic_machine=c2-convex os=-bsd ;; convex-c32) basic_machine=c32-convex os=-bsd ;; convex-c34) basic_machine=c34-convex os=-bsd ;; convex-c38) basic_machine=c38-convex os=-bsd ;; cray | j90) basic_machine=j90-cray os=-unicos ;; crds | unos) basic_machine=m68k-crds ;; cris | cris-* | etrax*) basic_machine=cris-axis ;; da30 | da30-*) basic_machine=m68k-da30 ;; decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) basic_machine=mips-dec ;; decsystem10* | dec10*) basic_machine=pdp10-dec os=-tops10 ;; decsystem20* | dec20*) basic_machine=pdp10-dec os=-tops20 ;; delta | 3300 | motorola-3300 | motorola-delta \ | 3300-motorola | delta-motorola) basic_machine=m68k-motorola ;; delta88) basic_machine=m88k-motorola os=-sysv3 ;; dpx20 | dpx20-*) basic_machine=rs6000-bull os=-bosx ;; dpx2* | dpx2*-bull) basic_machine=m68k-bull os=-sysv3 ;; ebmon29k) basic_machine=a29k-amd os=-ebmon ;; elxsi) basic_machine=elxsi-elxsi os=-bsd ;; encore | umax | mmax) basic_machine=ns32k-encore ;; es1800 | OSE68k | ose68k | ose | OSE) basic_machine=m68k-ericsson os=-ose ;; fx2800) basic_machine=i860-alliant ;; genix) basic_machine=ns32k-ns ;; gmicro) basic_machine=tron-gmicro os=-sysv ;; go32) basic_machine=i386-pc os=-go32 ;; h3050r* | hiux*) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; h8300hms) basic_machine=h8300-hitachi os=-hms ;; h8300xray) basic_machine=h8300-hitachi os=-xray ;; h8500hms) basic_machine=h8500-hitachi os=-hms ;; harris) basic_machine=m88k-harris os=-sysv3 ;; hp300-*) basic_machine=m68k-hp ;; hp300bsd) basic_machine=m68k-hp os=-bsd ;; hp300hpux) basic_machine=m68k-hp os=-hpux ;; hp3k9[0-9][0-9] | hp9[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k2[0-9][0-9] | hp9k31[0-9]) basic_machine=m68000-hp ;; hp9k3[2-9][0-9]) basic_machine=m68k-hp ;; hp9k6[0-9][0-9] | hp6[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k7[0-79][0-9] | hp7[0-79][0-9]) basic_machine=hppa1.1-hp ;; hp9k78[0-9] | hp78[0-9]) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[0-9][13679] | hp8[0-9][13679]) basic_machine=hppa1.1-hp ;; hp9k8[0-9][0-9] | hp8[0-9][0-9]) basic_machine=hppa1.0-hp ;; hppa-next) os=-nextstep3 ;; hppaosf) basic_machine=hppa1.1-hp os=-osf ;; hppro) basic_machine=hppa1.1-hp os=-proelf ;; i370-ibm* | ibm*) basic_machine=i370-ibm ;; # I'm not sure what "Sysv32" means. Should this be sysv3.2? i*86v32) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv32 ;; i*86v4*) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv4 ;; i*86v) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv ;; i*86sol2) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-solaris2 ;; i386mach) basic_machine=i386-mach os=-mach ;; i386-vsta | vsta) basic_machine=i386-unknown os=-vsta ;; iris | iris4d) basic_machine=mips-sgi case $os in -irix*) ;; *) os=-irix4 ;; esac ;; isi68 | isi) basic_machine=m68k-isi os=-sysv ;; m88k-omron*) basic_machine=m88k-omron ;; magnum | m3230) basic_machine=mips-mips os=-sysv ;; merlin) basic_machine=ns32k-utek os=-sysv ;; mingw32) basic_machine=i386-pc os=-mingw32 ;; miniframe) basic_machine=m68000-convergent ;; *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) basic_machine=m68k-atari os=-mint ;; mips3*-*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` ;; mips3*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown ;; mmix*) basic_machine=mmix-knuth os=-mmixware ;; monitor) basic_machine=m68k-rom68k os=-coff ;; morphos) basic_machine=powerpc-unknown os=-morphos ;; msdos) basic_machine=i386-pc os=-msdos ;; mvs) basic_machine=i370-ibm os=-mvs ;; ncr3000) basic_machine=i486-ncr os=-sysv4 ;; netbsd386) basic_machine=i386-unknown os=-netbsd ;; netwinder) basic_machine=armv4l-rebel os=-linux ;; news | news700 | news800 | news900) basic_machine=m68k-sony os=-newsos ;; news1000) basic_machine=m68030-sony os=-newsos ;; news-3600 | risc-news) basic_machine=mips-sony os=-newsos ;; necv70) basic_machine=v70-nec os=-sysv ;; next | m*-next ) basic_machine=m68k-next case $os in -nextstep* ) ;; -ns2*) os=-nextstep2 ;; *) os=-nextstep3 ;; esac ;; nh3000) basic_machine=m68k-harris os=-cxux ;; nh[45]000) basic_machine=m88k-harris os=-cxux ;; nindy960) basic_machine=i960-intel os=-nindy ;; mon960) basic_machine=i960-intel os=-mon960 ;; nonstopux) basic_machine=mips-compaq os=-nonstopux ;; np1) basic_machine=np1-gould ;; nv1) basic_machine=nv1-cray os=-unicosmp ;; nsr-tandem) basic_machine=nsr-tandem ;; op50n-* | op60c-*) basic_machine=hppa1.1-oki os=-proelf ;; or32 | or32-*) basic_machine=or32-unknown os=-coff ;; OSE68000 | ose68000) basic_machine=m68000-ericsson os=-ose ;; os68k) basic_machine=m68k-none os=-os68k ;; pa-hitachi) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; paragon) basic_machine=i860-intel os=-osf ;; pbd) basic_machine=sparc-tti ;; pbb) basic_machine=m68k-tti ;; pc532 | pc532-*) basic_machine=ns32k-pc532 ;; pentium | p5 | k5 | k6 | nexgen | viac3) basic_machine=i586-pc ;; pentiumpro | p6 | 6x86 | athlon | athlon_*) basic_machine=i686-pc ;; pentiumii | pentium2 | pentiumiii | pentium3) basic_machine=i686-pc ;; pentium4) basic_machine=i786-pc ;; pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumpro-* | p6-* | 6x86-* | athlon-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium4-*) basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pn) basic_machine=pn-gould ;; power) basic_machine=power-ibm ;; ppc) basic_machine=powerpc-unknown ;; ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppcle | powerpclittle | ppc-le | powerpc-little) basic_machine=powerpcle-unknown ;; ppcle-* | powerpclittle-*) basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64) basic_machine=powerpc64-unknown ;; ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64le | powerpc64little | ppc64-le | powerpc64-little) basic_machine=powerpc64le-unknown ;; ppc64le-* | powerpc64little-*) basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ps2) basic_machine=i386-ibm ;; pw32) basic_machine=i586-unknown os=-pw32 ;; rom68k) basic_machine=m68k-rom68k os=-coff ;; rm[46]00) basic_machine=mips-siemens ;; rtpc | rtpc-*) basic_machine=romp-ibm ;; s390 | s390-*) basic_machine=s390-ibm ;; s390x | s390x-*) basic_machine=s390x-ibm ;; sa29200) basic_machine=a29k-amd os=-udi ;; sb1) basic_machine=mipsisa64sb1-unknown ;; sb1el) basic_machine=mipsisa64sb1el-unknown ;; sei) basic_machine=mips-sei os=-seiux ;; sequent) basic_machine=i386-sequent ;; sh) basic_machine=sh-hitachi os=-hms ;; sh64) basic_machine=sh64-unknown ;; sparclite-wrs | simso-wrs) basic_machine=sparclite-wrs os=-vxworks ;; sps7) basic_machine=m68k-bull os=-sysv2 ;; spur) basic_machine=spur-unknown ;; st2000) basic_machine=m68k-tandem ;; stratus) basic_machine=i860-stratus os=-sysv4 ;; sun2) basic_machine=m68000-sun ;; sun2os3) basic_machine=m68000-sun os=-sunos3 ;; sun2os4) basic_machine=m68000-sun os=-sunos4 ;; sun3os3) basic_machine=m68k-sun os=-sunos3 ;; sun3os4) basic_machine=m68k-sun os=-sunos4 ;; sun4os3) basic_machine=sparc-sun os=-sunos3 ;; sun4os4) basic_machine=sparc-sun os=-sunos4 ;; sun4sol2) basic_machine=sparc-sun os=-solaris2 ;; sun3 | sun3-*) basic_machine=m68k-sun ;; sun4) basic_machine=sparc-sun ;; sun386 | sun386i | roadrunner) basic_machine=i386-sun ;; sv1) basic_machine=sv1-cray os=-unicos ;; symmetry) basic_machine=i386-sequent os=-dynix ;; t3e) basic_machine=alphaev5-cray os=-unicos ;; t90) basic_machine=t90-cray os=-unicos ;; tic54x | c54x*) basic_machine=tic54x-unknown os=-coff ;; tic55x | c55x*) basic_machine=tic55x-unknown os=-coff ;; tic6x | c6x*) basic_machine=tic6x-unknown os=-coff ;; tx39) basic_machine=mipstx39-unknown ;; tx39el) basic_machine=mipstx39el-unknown ;; toad1) basic_machine=pdp10-xkl os=-tops20 ;; tower | tower-32) basic_machine=m68k-ncr ;; udi29k) basic_machine=a29k-amd os=-udi ;; ultra3) basic_machine=a29k-nyu os=-sym1 ;; v810 | necv810) basic_machine=v810-nec os=-none ;; vaxv) basic_machine=vax-dec os=-sysv ;; vms) basic_machine=vax-dec os=-vms ;; vpp*|vx|vx-*) basic_machine=f301-fujitsu ;; vxworks960) basic_machine=i960-wrs os=-vxworks ;; vxworks68) basic_machine=m68k-wrs os=-vxworks ;; vxworks29k) basic_machine=a29k-wrs os=-vxworks ;; w65*) basic_machine=w65-wdc os=-none ;; w89k-*) basic_machine=hppa1.1-winbond os=-proelf ;; xps | xps100) basic_machine=xps100-honeywell ;; ymp) basic_machine=ymp-cray os=-unicos ;; z8k-*-coff) basic_machine=z8k-unknown os=-sim ;; none) basic_machine=none-none os=-none ;; # Here we handle the default manufacturer of certain CPU types. It is in # some cases the only manufacturer, in others, it is the most popular. w89k) basic_machine=hppa1.1-winbond ;; op50n) basic_machine=hppa1.1-oki ;; op60c) basic_machine=hppa1.1-oki ;; romp) basic_machine=romp-ibm ;; rs6000) basic_machine=rs6000-ibm ;; vax) basic_machine=vax-dec ;; pdp10) # there are many clones, so DEC is not a safe bet basic_machine=pdp10-unknown ;; pdp11) basic_machine=pdp11-dec ;; we32k) basic_machine=we32k-att ;; sh3 | sh4 | sh[34]eb | sh[1234]le | sh[23]ele) basic_machine=sh-unknown ;; sh64) basic_machine=sh64-unknown ;; sparc | sparcv9 | sparcv9b) basic_machine=sparc-sun ;; cydra) basic_machine=cydra-cydrome ;; orion) basic_machine=orion-highlevel ;; orion105) basic_machine=clipper-highlevel ;; mac | mpw | mac-mpw) basic_machine=m68k-apple ;; pmac | pmac-mpw) basic_machine=powerpc-apple ;; *-unknown) # Make sure to match an already-canonicalized machine name. ;; *) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; esac # Here we canonicalize certain aliases for manufacturers. case $basic_machine in *-digital*) basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` ;; *-commodore*) basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` ;; *) ;; esac # Decode manufacturer-specific aliases for certain operating systems. if [ x"$os" != x"" ] then case $os in # First match some system type aliases # that might get confused with valid system types. # -solaris* is a basic system type, with this one exception. -solaris1 | -solaris1.*) os=`echo $os | sed -e 's|solaris1|sunos4|'` ;; -solaris) os=-solaris2 ;; -svr4*) os=-sysv4 ;; -unixware*) os=-sysv4.2uw ;; -gnu/linux*) os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` ;; # First accept the basic system types. # The portable systems comes first. # Each alternative MUST END IN A *, to match a version number. # -sysv* is not here because it comes later, after sysvr4. -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ | -aos* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -netbsd* | -openbsd* | -kfreebsd* | -freebsd* | -riscix* \ | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* \ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) case $basic_machine in x86-* | i*86-*) ;; *) os=-nto$os ;; esac ;; -nto-qnx*) ;; -nto*) os=`echo $os | sed -e 's|nto|nto-qnx|'` ;; -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ | -windows* | -osx | -abug | -netware* | -os9* | -beos* \ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) ;; -mac*) os=`echo $os | sed -e 's|mac|macos|'` ;; -linux*) os=`echo $os | sed -e 's|linux|linux-gnu|'` ;; -sunos5*) os=`echo $os | sed -e 's|sunos5|solaris2|'` ;; -sunos6*) os=`echo $os | sed -e 's|sunos6|solaris3|'` ;; -opened*) os=-openedition ;; -wince*) os=-wince ;; -osfrose*) os=-osfrose ;; -osf*) os=-osf ;; -utek*) os=-bsd ;; -dynix*) os=-bsd ;; -acis*) os=-aos ;; -atheos*) os=-atheos ;; -386bsd) os=-bsd ;; -ctix* | -uts*) os=-sysv ;; -nova*) os=-rtmk-nova ;; -ns2 ) os=-nextstep2 ;; -nsk*) os=-nsk ;; # Preserve the version number of sinix5. -sinix5.*) os=`echo $os | sed -e 's|sinix|sysv|'` ;; -sinix*) os=-sysv4 ;; -triton*) os=-sysv3 ;; -oss*) os=-sysv3 ;; -svr4) os=-sysv4 ;; -svr3) os=-sysv3 ;; -sysvr4) os=-sysv4 ;; # This must come after -sysvr4. -sysv*) ;; -ose*) os=-ose ;; -es1800*) os=-ose ;; -xenix) os=-xenix ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) os=-mint ;; -aros*) os=-aros ;; -kaos*) os=-kaos ;; -none) ;; *) # Get rid of the `-' at the beginning of $os. os=`echo $os | sed 's/[^-]*-//'` echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 exit 1 ;; esac else # Here we handle the default operating systems that come with various machines. # The value should be what the vendor currently ships out the door with their # machine or put another way, the most popular os provided with the machine. # Note that if you're going to try to match "-MANUFACTURER" here (say, # "-sun"), then you have to tell the case statement up towards the top # that MANUFACTURER isn't an operating system. Otherwise, code above # will signal an error saying that MANUFACTURER isn't an operating # system, and we'll never get to this point. case $basic_machine in *-acorn) os=-riscix1.2 ;; arm*-rebel) os=-linux ;; arm*-semi) os=-aout ;; c4x-* | tic4x-*) os=-coff ;; # This must come before the *-dec entry. pdp10-*) os=-tops20 ;; pdp11-*) os=-none ;; *-dec | vax-*) os=-ultrix4.2 ;; m68*-apollo) os=-domain ;; i386-sun) os=-sunos4.0.2 ;; m68000-sun) os=-sunos3 # This also exists in the configure program, but was not the # default. # os=-sunos4 ;; m68*-cisco) os=-aout ;; mips*-cisco) os=-elf ;; mips*-*) os=-elf ;; or32-*) os=-coff ;; *-tti) # must be before sparc entry or we get the wrong os. os=-sysv3 ;; sparc-* | *-sun) os=-sunos4.1.1 ;; *-be) os=-beos ;; *-ibm) os=-aix ;; *-wec) os=-proelf ;; *-winbond) os=-proelf ;; *-oki) os=-proelf ;; *-hp) os=-hpux ;; *-hitachi) os=-hiux ;; i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) os=-sysv ;; *-cbm) os=-amigaos ;; *-dg) os=-dgux ;; *-dolphin) os=-sysv3 ;; m68k-ccur) os=-rtu ;; m88k-omron*) os=-luna ;; *-next ) os=-nextstep ;; *-sequent) os=-ptx ;; *-crds) os=-unos ;; *-ns) os=-genix ;; i370-*) os=-mvs ;; *-next) os=-nextstep3 ;; *-gould) os=-sysv ;; *-highlevel) os=-bsd ;; *-encore) os=-bsd ;; *-sgi) os=-irix ;; *-siemens) os=-sysv4 ;; *-masscomp) os=-rtu ;; f30[01]-fujitsu | f700-fujitsu) os=-uxpv ;; *-rom68k) os=-coff ;; *-*bug) os=-coff ;; *-apple) os=-macos ;; *-atari*) os=-mint ;; *) os=-none ;; esac fi # Here we handle the case where we know the os, and the CPU type, but not the # manufacturer. We pick the logical manufacturer. vendor=unknown case $basic_machine in *-unknown) case $os in -riscix*) vendor=acorn ;; -sunos*) vendor=sun ;; -aix*) vendor=ibm ;; -beos*) vendor=be ;; -hpux*) vendor=hp ;; -mpeix*) vendor=hp ;; -hiux*) vendor=hitachi ;; -unos*) vendor=crds ;; -dgux*) vendor=dg ;; -luna*) vendor=omron ;; -genix*) vendor=ns ;; -mvs* | -opened*) vendor=ibm ;; -ptx*) vendor=sequent ;; -vxsim* | -vxworks* | -windiss*) vendor=wrs ;; -aux*) vendor=apple ;; -hms*) vendor=hitachi ;; -mpw* | -macos*) vendor=apple ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) vendor=atari ;; -vos*) vendor=stratus ;; esac basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` ;; esac echo $basic_machine$os exit 0 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: gnome-breakout-0.5.3/configure0000775000175000017500000052236310051761453013305 00000000000000#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.59 for gnome-breakout 0.5.3. # # Copyright (C) 2003 Free Software Foundation, Inc. # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## --------------------- ## ## M4sh Initialization. ## ## --------------------- ## # Be Bourne compatible if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then set -o posix fi DUALCASE=1; export DUALCASE # for MKS sh # Support unset when possible. if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then as_unset=unset else as_unset=false fi # Work around bugs in pre-3.0 UWIN ksh. $as_unset ENV MAIL MAILPATH PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. for as_var in \ LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ LC_TELEPHONE LC_TIME do if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then eval $as_var=C; export $as_var else $as_unset $as_var fi done # Required to use basename. if expr a : '\(a\)' >/dev/null 2>&1; then as_expr=expr else as_expr=false fi if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi # Name of the executable. as_me=`$as_basename "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)$' \| \ . : '\(.\)' 2>/dev/null || echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; } /^X\/\(\/\/\)$/{ s//\1/; q; } /^X\/\(\/\).*/{ s//\1/; q; } s/.*/./; q'` # PATH needs CR, and LINENO needs CR and PATH. # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi as_lineno_1=$LINENO as_lineno_2=$LINENO as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` test "x$as_lineno_1" != "x$as_lineno_2" && test "x$as_lineno_3" = "x$as_lineno_2" || { # Find who we are. Look in the path if we contain no path at all # relative or not. case $0 in *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2 { (exit 1); exit 1; }; } fi case $CONFIG_SHELL in '') as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for as_base in sh bash ksh sh5; do case $as_dir in /*) if ("$as_dir/$as_base" -c ' as_lineno_1=$LINENO as_lineno_2=$LINENO as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` test "x$as_lineno_1" != "x$as_lineno_2" && test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; } $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; } CONFIG_SHELL=$as_dir/$as_base export CONFIG_SHELL exec "$CONFIG_SHELL" "$0" ${1+"$@"} fi;; esac done done ;; esac # Create $as_me.lineno as a copy of $as_myself, but with $LINENO # uniformly replaced by the line number. The first 'sed' inserts a # line-number line before each line; the second 'sed' does the real # work. The second script uses 'N' to pair each line-number line # with the numbered line, and appends trailing '-' during # substitution so that $LINENO is not a special case at line end. # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-) sed '=' <$as_myself | sed ' N s,$,-, : loop s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3, t loop s,-$,, s,^['$as_cr_digits']*\n,, ' >$as_me.lineno && chmod +x $as_me.lineno || { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 { (exit 1); exit 1; }; } # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensible to this). . ./$as_me.lineno # Exit status is that of the last command. exit } case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in *c*,-n*) ECHO_N= ECHO_C=' ' ECHO_T=' ' ;; *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; *) ECHO_N= ECHO_C='\c' ECHO_T= ;; esac if expr a : '\(a\)' >/dev/null 2>&1; then as_expr=expr else as_expr=false fi rm -f conf$$ conf$$.exe conf$$.file echo >conf$$.file if ln -s conf$$.file conf$$ 2>/dev/null; then # We could just check for DJGPP; but this test a) works b) is more generic # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). if test -f conf$$.exe; then # Don't use ln at all; we don't have any links as_ln_s='cp -p' else as_ln_s='ln -s' fi elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.file if mkdir -p . 2>/dev/null; then as_mkdir_p=: else test -d ./-p && rmdir ./-p as_mkdir_p=false fi as_executable_p="test -f" # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" # IFS # We need space, tab and new line, in precisely that order. as_nl=' ' IFS=" $as_nl" # CDPATH. $as_unset CDPATH # Name of the host. # hostname on some systems (SVR3.2, Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` exec 6>&1 # # Initializations. # ac_default_prefix=/usr/local ac_config_libobj_dir=. cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= SHELL=${CONFIG_SHELL-/bin/sh} # Maximum number of lines to put in a shell here document. # This variable seems obsolete. It should probably be removed, and # only ac_max_sed_lines should be used. : ${ac_max_here_lines=38} # Identity of this package. PACKAGE_NAME='gnome-breakout' PACKAGE_TARNAME='gnome-breakout' PACKAGE_VERSION='0.5.3' PACKAGE_STRING='gnome-breakout 0.5.3' PACKAGE_BUGREPORT='' ac_unique_file="src/gnome-breakout.c" # Factoring default headers for most tests. ac_includes_default="\ #include #if HAVE_SYS_TYPES_H # include #endif #if HAVE_SYS_STAT_H # include #endif #if STDC_HEADERS # include # include #else # if HAVE_STDLIB_H # include # endif #endif #if HAVE_STRING_H # if !STDC_HEADERS && HAVE_MEMORY_H # include # endif # include #endif #if HAVE_STRINGS_H # include #endif #if HAVE_INTTYPES_H # include #else # if HAVE_STDINT_H # include # endif #endif #if HAVE_UNISTD_H # include #endif" ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO SET_MAKE PKG_CONFIG GNOMEUI_CFLAGS GNOMEUI_LIBS MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CPP EGREP WARN_CFLAGS USE_NLS MSGFMT GMSGFMT XGETTEXT CATALOGS CATOBJEXT DATADIRNAME GMOFILES INSTOBJEXT INTLLIBS PO_IN_DATADIR_TRUE PO_IN_DATADIR_FALSE POFILES POSUB MKINSTALLDIRS GETTEXT_PACKAGE LIBOBJS LTLIBOBJS' ac_subst_files='' # Initialize some variables set by options. ac_init_help= ac_init_version=false # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datadir='${prefix}/share' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' libdir='${exec_prefix}/lib' includedir='${prefix}/include' oldincludedir='/usr/include' infodir='${prefix}/info' mandir='${prefix}/man' ac_prev= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval "$ac_prev=\$ac_option" ac_prev= continue fi ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'` # Accept the important Cygnus configure options, so we can diagnose typos. case $ac_option in -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad | --data | --dat | --da) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ | --da=*) datadir=$ac_optarg ;; -disable-* | --disable-*) ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid feature name: $ac_feature" >&2 { (exit 1); exit 1; }; } ac_feature=`echo $ac_feature | sed 's/-/_/g'` eval "enable_$ac_feature=no" ;; -enable-* | --enable-*) ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid feature name: $ac_feature" >&2 { (exit 1); exit 1; }; } ac_feature=`echo $ac_feature | sed 's/-/_/g'` case $ac_option in *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; *) ac_optarg=yes ;; esac eval "enable_$ac_feature='$ac_optarg'" ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst \ | --locals | --local | --loca | --loc | --lo) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* \ | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid package name: $ac_package" >&2 { (exit 1); exit 1; }; } ac_package=`echo $ac_package| sed 's/-/_/g'` case $ac_option in *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; *) ac_optarg=yes ;; esac eval "with_$ac_package='$ac_optarg'" ;; -without-* | --without-*) ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid package name: $ac_package" >&2 { (exit 1); exit 1; }; } ac_package=`echo $ac_package | sed 's/-/_/g'` eval "with_$ac_package=no" ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) { echo "$as_me: error: unrecognized option: $ac_option Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; } ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid variable name: $ac_envvar" >&2 { (exit 1); exit 1; }; } ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` eval "$ac_envvar='$ac_optarg'" export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` { echo "$as_me: error: missing argument to $ac_option" >&2 { (exit 1); exit 1; }; } fi # Be sure to have absolute paths. for ac_var in exec_prefix prefix do eval ac_val=$`echo $ac_var` case $ac_val in [\\/$]* | ?:[\\/]* | NONE | '' ) ;; *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 { (exit 1); exit 1; }; };; esac done # Be sure to have absolute paths. for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \ localstatedir libdir includedir oldincludedir infodir mandir do eval ac_val=$`echo $ac_var` case $ac_val in [\\/$]* | ?:[\\/]* ) ;; *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 { (exit 1); exit 1; }; };; esac done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. If a cross compiler is detected then cross compile mode will be used." >&2 elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then its parent. ac_confdir=`(dirname "$0") 2>/dev/null || $as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$0" : 'X\(//\)[^/]' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$0" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` srcdir=$ac_confdir if test ! -r $srcdir/$ac_unique_file; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r $srcdir/$ac_unique_file; then if test "$ac_srcdir_defaulted" = yes; then { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2 { (exit 1); exit 1; }; } else { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 { (exit 1); exit 1; }; } fi fi (cd $srcdir && test -r ./$ac_unique_file) 2>/dev/null || { echo "$as_me: error: sources are in $srcdir, but \`cd $srcdir' does not work" >&2 { (exit 1); exit 1; }; } srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'` ac_env_build_alias_set=${build_alias+set} ac_env_build_alias_value=$build_alias ac_cv_env_build_alias_set=${build_alias+set} ac_cv_env_build_alias_value=$build_alias ac_env_host_alias_set=${host_alias+set} ac_env_host_alias_value=$host_alias ac_cv_env_host_alias_set=${host_alias+set} ac_cv_env_host_alias_value=$host_alias ac_env_target_alias_set=${target_alias+set} ac_env_target_alias_value=$target_alias ac_cv_env_target_alias_set=${target_alias+set} ac_cv_env_target_alias_value=$target_alias ac_env_CC_set=${CC+set} ac_env_CC_value=$CC ac_cv_env_CC_set=${CC+set} ac_cv_env_CC_value=$CC ac_env_CFLAGS_set=${CFLAGS+set} ac_env_CFLAGS_value=$CFLAGS ac_cv_env_CFLAGS_set=${CFLAGS+set} ac_cv_env_CFLAGS_value=$CFLAGS ac_env_LDFLAGS_set=${LDFLAGS+set} ac_env_LDFLAGS_value=$LDFLAGS ac_cv_env_LDFLAGS_set=${LDFLAGS+set} ac_cv_env_LDFLAGS_value=$LDFLAGS ac_env_CPPFLAGS_set=${CPPFLAGS+set} ac_env_CPPFLAGS_value=$CPPFLAGS ac_cv_env_CPPFLAGS_set=${CPPFLAGS+set} ac_cv_env_CPPFLAGS_value=$CPPFLAGS ac_env_CPP_set=${CPP+set} ac_env_CPP_value=$CPP ac_cv_env_CPP_set=${CPP+set} ac_cv_env_CPP_value=$CPP # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures gnome-breakout 0.5.3 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print \`checking...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] _ACEOF cat <<_ACEOF Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --datadir=DIR read-only architecture-independent data [PREFIX/share] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --infodir=DIR info documentation [PREFIX/info] --mandir=DIR man documentation [PREFIX/man] _ACEOF cat <<\_ACEOF Program names: --program-prefix=PREFIX prepend PREFIX to installed program names --program-suffix=SUFFIX append SUFFIX to installed program names --program-transform-name=PROGRAM run sed PROGRAM on installed program names _ACEOF fi if test -n "$ac_init_help"; then case $ac_init_help in short | recursive ) echo "Configuration of gnome-breakout 0.5.3:";; esac cat <<\_ACEOF Optional Features: --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --enable-maintainer-mode enable make rules and dependencies not useful (and sometimes confusing) to the casual installer --enable-compile-warnings=no/minimum/yes/maximum/error Turn on compiler warnings. --enable-iso-c Try to warn if code is not ISO C Some influential environment variables: CC C compiler command CFLAGS C compiler flags LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory CPPFLAGS C/C++ preprocessor flags, e.g. -I if you have headers in a nonstandard directory CPP C preprocessor Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. _ACEOF fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. ac_popdir=`pwd` for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d $ac_dir || continue ac_builddir=. if test "$ac_dir" != .; then ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` # A "../" for each directory in $ac_dir_suffix. ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` else ac_dir_suffix= ac_top_builddir= fi case $srcdir in .) # No --srcdir option. We are building in place. ac_srcdir=. if test -z "$ac_top_builddir"; then ac_top_srcdir=. else ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` fi ;; [\\/]* | ?:[\\/]* ) # Absolute path. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ;; *) # Relative path. ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_builddir$srcdir ;; esac # Do not use `cd foo && pwd` to compute absolute paths, because # the directories may not exist. case `pwd` in .) ac_abs_builddir="$ac_dir";; *) case "$ac_dir" in .) ac_abs_builddir=`pwd`;; [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; *) ac_abs_builddir=`pwd`/"$ac_dir";; esac;; esac case $ac_abs_builddir in .) ac_abs_top_builddir=${ac_top_builddir}.;; *) case ${ac_top_builddir}. in .) ac_abs_top_builddir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; esac;; esac case $ac_abs_builddir in .) ac_abs_srcdir=$ac_srcdir;; *) case $ac_srcdir in .) ac_abs_srcdir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; esac;; esac case $ac_abs_builddir in .) ac_abs_top_srcdir=$ac_top_srcdir;; *) case $ac_top_srcdir in .) ac_abs_top_srcdir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; esac;; esac cd $ac_dir # Check for guested configure; otherwise get Cygnus style configure. if test -f $ac_srcdir/configure.gnu; then echo $SHELL $ac_srcdir/configure.gnu --help=recursive elif test -f $ac_srcdir/configure; then echo $SHELL $ac_srcdir/configure --help=recursive elif test -f $ac_srcdir/configure.ac || test -f $ac_srcdir/configure.in; then echo $ac_configure --help else echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi cd "$ac_popdir" done fi test -n "$ac_init_help" && exit 0 if $ac_init_version; then cat <<\_ACEOF gnome-breakout configure 0.5.3 generated by GNU Autoconf 2.59 Copyright (C) 2003 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF exit 0 fi exec 5>config.log cat >&5 <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by gnome-breakout $as_me 0.5.3, which was generated by GNU Autoconf 2.59. Invocation command line was $ $0 $@ _ACEOF { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` hostinfo = `(hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. echo "PATH: $as_dir" done } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_sep= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*) ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;; 2) ac_configure_args1="$ac_configure_args1 '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'" # Get rid of the leading space. ac_sep=" " ;; esac done done $as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; } $as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; } # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Be sure not to use single quotes in there, as some shells, # such as our DU 5.0 friend, will then `close' the trap. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { echo cat <<\_ASBOX ## ---------------- ## ## Cache variables. ## ## ---------------- ## _ASBOX echo # The following way of writing the cache mishandles newlines in values, { (set) 2>&1 | case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in *ac_space=\ *) sed -n \ "s/'"'"'/'"'"'\\\\'"'"''"'"'/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p" ;; *) sed -n \ "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" ;; esac; } echo cat <<\_ASBOX ## ----------------- ## ## Output variables. ## ## ----------------- ## _ASBOX echo for ac_var in $ac_subst_vars do eval ac_val=$`echo $ac_var` echo "$ac_var='"'"'$ac_val'"'"'" done | sort echo if test -n "$ac_subst_files"; then cat <<\_ASBOX ## ------------- ## ## Output files. ## ## ------------- ## _ASBOX echo for ac_var in $ac_subst_files do eval ac_val=$`echo $ac_var` echo "$ac_var='"'"'$ac_val'"'"'" done | sort echo fi if test -s confdefs.h; then cat <<\_ASBOX ## ----------- ## ## confdefs.h. ## ## ----------- ## _ASBOX echo sed "/^$/d" confdefs.h | sort echo fi test "$ac_signal" != 0 && echo "$as_me: caught signal $ac_signal" echo "$as_me: exit $exit_status" } >&5 rm -f core *.core && rm -rf conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -rf conftest* confdefs.h # AIX cpp loses on an empty file, so make sure it contains at least a newline. echo >confdefs.h # Predefined preprocessor variables. cat >>confdefs.h <<_ACEOF #define PACKAGE_NAME "$PACKAGE_NAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_TARNAME "$PACKAGE_TARNAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_VERSION "$PACKAGE_VERSION" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_STRING "$PACKAGE_STRING" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" _ACEOF # Let the site file select an alternate cache file if it wants to. # Prefer explicitly selected file to automatically selected ones. if test -z "$CONFIG_SITE"; then if test "x$prefix" != xNONE; then CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" else CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" fi fi for ac_site_file in $CONFIG_SITE; do if test -r "$ac_site_file"; then { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special # files actually), so we avoid doing that. if test -f "$cache_file"; then { echo "$as_me:$LINENO: loading cache $cache_file" >&5 echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . $cache_file;; *) . ./$cache_file;; esac fi else { echo "$as_me:$LINENO: creating cache $cache_file" >&5 echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in `(set) 2>&1 | sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val="\$ac_cv_env_${ac_var}_value" eval ac_new_val="\$ac_env_${ac_var}_value" case $ac_old_set,$ac_new_set in set,) { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5 echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} { echo "$as_me:$LINENO: former value: $ac_old_val" >&5 echo "$as_me: former value: $ac_old_val" >&2;} { echo "$as_me:$LINENO: current value: $ac_new_val" >&5 echo "$as_me: current value: $ac_new_val" >&2;} ac_cache_corrupted=: fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*) ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) ac_configure_args="$ac_configure_args '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5 echo "$as_me: error: changes in the environment can compromise the build" >&2;} { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} { (exit 1); exit 1; }; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu am__api_version="1.4" ac_aux_dir= for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do if test -f $ac_dir/install-sh; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" break elif test -f $ac_dir/install.sh; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install.sh -c" break elif test -f $ac_dir/shtool; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/shtool install -c" break fi done if test -z "$ac_aux_dir"; then { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5 echo "$as_me: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&2;} { (exit 1); exit 1; }; } fi ac_config_guess="$SHELL $ac_aux_dir/config.guess" ac_config_sub="$SHELL $ac_aux_dir/config.sub" ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure. # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6 if test -z "$INSTALL"; then if test "${ac_cv_path_install+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. # Account for people who put trailing slashes in PATH elements. case $as_dir/ in ./ | .// | /cC/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi done done ;; esac done fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. We don't cache a # path for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the path is relative. INSTALL=$ac_install_sh fi fi echo "$as_me:$LINENO: result: $INSTALL" >&5 echo "${ECHO_T}$INSTALL" >&6 # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' echo "$as_me:$LINENO: checking whether build environment is sane" >&5 echo $ECHO_N "checking whether build environment is sane... $ECHO_C" >&6 # Just in case sleep 1 echo timestamp > conftestfile # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` if test "$*" = "X"; then # -L didn't work. set X `ls -t $srcdir/configure conftestfile` fi if test "$*" != "X $srcdir/configure conftestfile" \ && test "$*" != "X conftestfile $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". { { echo "$as_me:$LINENO: error: ls -t appears to fail. Make sure there is not a broken alias in your environment" >&5 echo "$as_me: error: ls -t appears to fail. Make sure there is not a broken alias in your environment" >&2;} { (exit 1); exit 1; }; } fi test "$2" = conftestfile ) then # Ok. : else { { echo "$as_me:$LINENO: error: newly created file is older than distributed files! Check your system clock" >&5 echo "$as_me: error: newly created file is older than distributed files! Check your system clock" >&2;} { (exit 1); exit 1; }; } fi rm -f conftest* echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 test "$program_prefix" != NONE && program_transform_name="s,^,$program_prefix,;$program_transform_name" # Use a double $ so make ignores it. test "$program_suffix" != NONE && program_transform_name="s,\$,$program_suffix,;$program_transform_name" # Double any \ or $. echo might interpret backslashes. # By default was `s,x,x', remove it if useless. cat <<\_ACEOF >conftest.sed s/[\\$]/&&/g;s/;s,x,x,$// _ACEOF program_transform_name=`echo $program_transform_name | sed -f conftest.sed` rm conftest.sed echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6 set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,:./+-,___p_,'` if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.make <<\_ACEOF all: @echo 'ac_maketemp="$(MAKE)"' _ACEOF # GNU make sometimes prints "make[1]: Entering...", which would confuse us. eval `${MAKE-make} -f conftest.make 2>/dev/null | grep temp=` if test -n "$ac_maketemp"; then eval ac_cv_prog_make_${ac_make}_set=yes else eval ac_cv_prog_make_${ac_make}_set=no fi rm -f conftest.make fi if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 SET_MAKE= else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 SET_MAKE="MAKE=${MAKE-make}" fi PACKAGE=gnome-breakout VERSION=0.5.3 if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then { { echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5 echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;} { (exit 1); exit 1; }; } fi cat >>confdefs.h <<_ACEOF #define PACKAGE "$PACKAGE" _ACEOF cat >>confdefs.h <<_ACEOF #define VERSION "$VERSION" _ACEOF missing_dir=`cd $ac_aux_dir && pwd` echo "$as_me:$LINENO: checking for working aclocal-${am__api_version}" >&5 echo $ECHO_N "checking for working aclocal-${am__api_version}... $ECHO_C" >&6 # Run test in a subshell; some versions of sh will print an error if # an executable is not found, even if stderr is redirected. # Redirect stdin to placate older versions of autoconf. Sigh. if (aclocal-${am__api_version} --version) < /dev/null > /dev/null 2>&1; then ACLOCAL=aclocal-${am__api_version} echo "$as_me:$LINENO: result: found" >&5 echo "${ECHO_T}found" >&6 else ACLOCAL="$missing_dir/missing aclocal-${am__api_version}" echo "$as_me:$LINENO: result: missing" >&5 echo "${ECHO_T}missing" >&6 fi echo "$as_me:$LINENO: checking for working autoconf" >&5 echo $ECHO_N "checking for working autoconf... $ECHO_C" >&6 # Run test in a subshell; some versions of sh will print an error if # an executable is not found, even if stderr is redirected. # Redirect stdin to placate older versions of autoconf. Sigh. if (autoconf --version) < /dev/null > /dev/null 2>&1; then AUTOCONF=autoconf echo "$as_me:$LINENO: result: found" >&5 echo "${ECHO_T}found" >&6 else AUTOCONF="$missing_dir/missing autoconf" echo "$as_me:$LINENO: result: missing" >&5 echo "${ECHO_T}missing" >&6 fi echo "$as_me:$LINENO: checking for working automake-${am__api_version}" >&5 echo $ECHO_N "checking for working automake-${am__api_version}... $ECHO_C" >&6 # Run test in a subshell; some versions of sh will print an error if # an executable is not found, even if stderr is redirected. # Redirect stdin to placate older versions of autoconf. Sigh. if (automake-${am__api_version} --version) < /dev/null > /dev/null 2>&1; then AUTOMAKE=automake-${am__api_version} echo "$as_me:$LINENO: result: found" >&5 echo "${ECHO_T}found" >&6 else AUTOMAKE="$missing_dir/missing automake-${am__api_version}" echo "$as_me:$LINENO: result: missing" >&5 echo "${ECHO_T}missing" >&6 fi echo "$as_me:$LINENO: checking for working autoheader" >&5 echo $ECHO_N "checking for working autoheader... $ECHO_C" >&6 # Run test in a subshell; some versions of sh will print an error if # an executable is not found, even if stderr is redirected. # Redirect stdin to placate older versions of autoconf. Sigh. if (autoheader --version) < /dev/null > /dev/null 2>&1; then AUTOHEADER=autoheader echo "$as_me:$LINENO: result: found" >&5 echo "${ECHO_T}found" >&6 else AUTOHEADER="$missing_dir/missing autoheader" echo "$as_me:$LINENO: result: missing" >&5 echo "${ECHO_T}missing" >&6 fi echo "$as_me:$LINENO: checking for working makeinfo" >&5 echo $ECHO_N "checking for working makeinfo... $ECHO_C" >&6 # Run test in a subshell; some versions of sh will print an error if # an executable is not found, even if stderr is redirected. # Redirect stdin to placate older versions of autoconf. Sigh. if (makeinfo --version) < /dev/null > /dev/null 2>&1; then MAKEINFO=makeinfo echo "$as_me:$LINENO: result: found" >&5 echo "${ECHO_T}found" >&6 else MAKEINFO="$missing_dir/missing makeinfo" echo "$as_me:$LINENO: result: missing" >&5 echo "${ECHO_T}missing" >&6 fi succeeded=no if test -z "$PKG_CONFIG"; then # Extract the first word of "pkg-config", so it can be a program name with args. set dummy pkg-config; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_path_PKG_CONFIG+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case $PKG_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no" ;; esac fi PKG_CONFIG=$ac_cv_path_PKG_CONFIG if test -n "$PKG_CONFIG"; then echo "$as_me:$LINENO: result: $PKG_CONFIG" >&5 echo "${ECHO_T}$PKG_CONFIG" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi if test "$PKG_CONFIG" = "no" ; then echo "*** The pkg-config script could not be found. Make sure it is" echo "*** in your path, or set the PKG_CONFIG environment variable" echo "*** to the full path to pkg-config." echo "*** Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config." else PKG_CONFIG_MIN_VERSION=0.9.0 if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then echo "$as_me:$LINENO: checking for libgnomeui-2.0" >&5 echo $ECHO_N "checking for libgnomeui-2.0... $ECHO_C" >&6 if $PKG_CONFIG --exists "libgnomeui-2.0" ; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 succeeded=yes echo "$as_me:$LINENO: checking GNOMEUI_CFLAGS" >&5 echo $ECHO_N "checking GNOMEUI_CFLAGS... $ECHO_C" >&6 GNOMEUI_CFLAGS=`$PKG_CONFIG --cflags "libgnomeui-2.0"` echo "$as_me:$LINENO: result: $GNOMEUI_CFLAGS" >&5 echo "${ECHO_T}$GNOMEUI_CFLAGS" >&6 echo "$as_me:$LINENO: checking GNOMEUI_LIBS" >&5 echo $ECHO_N "checking GNOMEUI_LIBS... $ECHO_C" >&6 GNOMEUI_LIBS=`$PKG_CONFIG --libs "libgnomeui-2.0"` echo "$as_me:$LINENO: result: $GNOMEUI_LIBS" >&5 echo "${ECHO_T}$GNOMEUI_LIBS" >&6 else GNOMEUI_CFLAGS="" GNOMEUI_LIBS="" ## If we have a custom action on failure, don't print errors, but ## do set a variable so people can do so. GNOMEUI_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "libgnomeui-2.0"` echo $GNOMEUI_PKG_ERRORS fi else echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer." echo "*** See http://www.freedesktop.org/software/pkgconfig" fi fi if test $succeeded = yes; then : else { { echo "$as_me:$LINENO: error: Library requirements (libgnomeui-2.0) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them." >&5 echo "$as_me: error: Library requirements (libgnomeui-2.0) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them." >&2;} { (exit 1); exit 1; }; } fi #AM_CONFIG_HEADER(config.c) echo "$as_me:$LINENO: checking whether to enable maintainer-specific portions of Makefiles" >&5 echo $ECHO_N "checking whether to enable maintainer-specific portions of Makefiles... $ECHO_C" >&6 # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. if test "${enable_maintainer_mode+set}" = set; then enableval="$enable_maintainer_mode" USE_MAINTAINER_MODE=$enableval else USE_MAINTAINER_MODE=no fi; echo "$as_me:$LINENO: result: $USE_MAINTAINER_MODE" >&5 echo "${ECHO_T}$USE_MAINTAINER_MODE" >&6 if test $USE_MAINTAINER_MODE = yes; then MAINTAINER_MODE_TRUE= MAINTAINER_MODE_FALSE='#' else MAINTAINER_MODE_TRUE='#' MAINTAINER_MODE_FALSE= fi MAINT=$MAINTAINER_MODE_TRUE #AM_ACLOCAL_INCLUDE(macros) #GNOME_INIT ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}gcc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="gcc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 echo "${ECHO_T}$ac_ct_CC" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi CC=$ac_ct_CC else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}cc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="cc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 echo "${ECHO_T}$ac_ct_CC" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi CC=$ac_ct_CC else CC="$ac_cv_prog_CC" fi fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 echo "${ECHO_T}$ac_ct_CC" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$ac_ct_CC" && break done CC=$ac_ct_CC fi fi test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&5 echo "$as_me: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } # Provide some information about the compiler. echo "$as_me:$LINENO:" \ "checking for C compiler version" >&5 ac_compiler=`set X $ac_compile; echo $2` { (eval echo "$as_me:$LINENO: \"$ac_compiler --version &5\"") >&5 (eval $ac_compiler --version &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (eval echo "$as_me:$LINENO: \"$ac_compiler -v &5\"") >&5 (eval $ac_compiler -v &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (eval echo "$as_me:$LINENO: \"$ac_compiler -V &5\"") >&5 (eval $ac_compiler -V &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files a.out a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. echo "$as_me:$LINENO: checking for C compiler default output file name" >&5 echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6 ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5 (eval $ac_link_default) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # Find the output, starting from the most likely. This scheme is # not robust to junk in `.', hence go to wildcards (a.*) only as a last # resort. # Be careful to initialize this variable, since it used to be cached. # Otherwise an old cache value of `no' led to `EXEEXT = no' in a Makefile. ac_cv_exeext= # b.out is created by i960 compilers. for ac_file in a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;; conftest.$ac_ext ) # This is the source file. ;; [ab].out ) # We found the default executable, but exeext='' is most # certainly right. break;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` # FIXME: I believe we export ac_cv_exeext for Libtool, # but it would be cool to find out if it's true. Does anybody # maintain Libtool? --akim. export ac_cv_exeext break;; * ) break;; esac done else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { echo "$as_me:$LINENO: error: C compiler cannot create executables See \`config.log' for more details." >&5 echo "$as_me: error: C compiler cannot create executables See \`config.log' for more details." >&2;} { (exit 77); exit 77; }; } fi ac_exeext=$ac_cv_exeext echo "$as_me:$LINENO: result: $ac_file" >&5 echo "${ECHO_T}$ac_file" >&6 # Check the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. echo "$as_me:$LINENO: checking whether the C compiler works" >&5 echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6 # FIXME: These cross compiler hacks should be removed for Autoconf 3.0 # If not cross compiling, check that we can run a simple program. if test "$cross_compiling" != yes; then if { ac_try='./$ac_file' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else { { echo "$as_me:$LINENO: error: cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details." >&5 echo "$as_me: error: cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi fi fi echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 rm -f a.out a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save # Check the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. echo "$as_me:$LINENO: checking whether we are cross compiling" >&5 echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6 echo "$as_me:$LINENO: result: $cross_compiling" >&5 echo "${ECHO_T}$cross_compiling" >&6 echo "$as_me:$LINENO: checking for suffix of executables" >&5 echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6 if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will # work properly (i.e., refer to `conftest.exe'), while it won't with # `rm'. for ac_file in conftest.exe conftest conftest.*; do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` export ac_cv_exeext break;; * ) break;; esac done else { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute suffix of executables: cannot compile and link See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi rm -f conftest$ac_cv_exeext echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5 echo "${ECHO_T}$ac_cv_exeext" >&6 rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT echo "$as_me:$LINENO: checking for suffix of object files" >&5 echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6 if test "${ac_cv_objext+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.o conftest.obj if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute suffix of object files: cannot compile See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_objext" >&5 echo "${ECHO_T}$ac_cv_objext" >&6 OBJEXT=$ac_cv_objext ac_objext=$OBJEXT echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6 if test "${ac_cv_c_compiler_gnu+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_compiler_gnu=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_compiler_gnu=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6 GCC=`test $ac_compiler_gnu = yes && echo yes` ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS CFLAGS="-g" echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6 if test "${ac_cv_prog_cc_g+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_prog_cc_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_prog_cc_g=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 echo "${ECHO_T}$ac_cv_prog_cc_g" >&6 if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi echo "$as_me:$LINENO: checking for $CC option to accept ANSI C" >&5 echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6 if test "${ac_cv_prog_cc_stdc+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_prog_cc_stdc=no ac_save_CC=$CC cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include #include /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std1 is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std1. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF # Don't try gcc -ansi; that turns off useful extensions and # breaks some systems' header files. # AIX -qlanglvl=ansi # Ultrix and OSF/1 -std1 # HP-UX 10.20 and later -Ae # HP-UX older versions -Aa -D_HPUX_SOURCE # SVR4 -Xc -D__EXTENSIONS__ for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_prog_cc_stdc=$ac_arg break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext done rm -f conftest.$ac_ext conftest.$ac_objext CC=$ac_save_CC fi case "x$ac_cv_prog_cc_stdc" in x|xno) echo "$as_me:$LINENO: result: none needed" >&5 echo "${ECHO_T}none needed" >&6 ;; *) echo "$as_me:$LINENO: result: $ac_cv_prog_cc_stdc" >&5 echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6 CC="$CC $ac_cv_prog_cc_stdc" ;; esac # Some people use a C++ compiler to compile C. Since we use `exit', # in C++ we need to declare it. In case someone uses the same compiler # for both compiling C and C++ we need to have the C++ compiler decide # the declaration of exit, since it's the most demanding environment. cat >conftest.$ac_ext <<_ACEOF #ifndef __cplusplus choke me #endif _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then for ac_declaration in \ '' \ 'extern "C" void std::exit (int) throw (); using std::exit;' \ 'extern "C" void std::exit (int); using std::exit;' \ 'extern "C" void exit (int) throw ();' \ 'extern "C" void exit (int);' \ 'void exit (int);' do cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_declaration #include int main () { exit (42); ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 continue fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_declaration int main () { exit (42); ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext done rm -f conftest* if test -n "$ac_declaration"; then echo '#ifdef __cplusplus' >>confdefs.h echo $ac_declaration >>confdefs.h echo '#endif' >>confdefs.h fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu echo "$as_me:$LINENO: checking for strerror in -lcposix" >&5 echo $ECHO_N "checking for strerror in -lcposix... $ECHO_C" >&6 if test "${ac_cv_lib_cposix_strerror+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lcposix $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char strerror (); int main () { strerror (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_cposix_strerror=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_cposix_strerror=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_cposix_strerror" >&5 echo "${ECHO_T}$ac_cv_lib_cposix_strerror" >&6 if test $ac_cv_lib_cposix_strerror = yes; then LIBS="$LIBS -lcposix" fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6 # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then if test "${ac_cv_prog_CPP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # Double quotes because CPP needs to be expanded for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" do ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether non-existent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then # Broken: success on invalid input. continue else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then break fi done ac_cv_prog_CPP=$CPP fi CPP=$ac_cv_prog_CPP else ac_cv_prog_CPP=$CPP fi echo "$as_me:$LINENO: result: $CPP" >&5 echo "${ECHO_T}$CPP" >&6 ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether non-existent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then # Broken: success on invalid input. continue else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." >&5 echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu echo "$as_me:$LINENO: checking for egrep" >&5 echo $ECHO_N "checking for egrep... $ECHO_C" >&6 if test "${ac_cv_prog_egrep+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if echo a | (grep -E '(a|b)') >/dev/null 2>&1 then ac_cv_prog_egrep='grep -E' else ac_cv_prog_egrep='egrep' fi fi echo "$as_me:$LINENO: result: $ac_cv_prog_egrep" >&5 echo "${ECHO_T}$ac_cv_prog_egrep" >&6 EGREP=$ac_cv_prog_egrep echo "$as_me:$LINENO: checking for ANSI C header files" >&5 echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6 if test "${ac_cv_header_stdc+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include #include int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_header_stdc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_header_stdc=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2); exit (0); } _ACEOF rm -f conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_header_stdc=no fi rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi fi echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 echo "${ECHO_T}$ac_cv_header_stdc" >&6 if test $ac_cv_header_stdc = yes; then cat >>confdefs.h <<\_ACEOF #define STDC_HEADERS 1 _ACEOF fi if test -z "maximum" ; then default_compile_warnings=yes else default_compile_warnings="maximum" fi # Check whether --enable-compile-warnings or --disable-compile-warnings was given. if test "${enable_compile_warnings+set}" = set; then enableval="$enable_compile_warnings" else enable_compile_warnings="$default_compile_warnings" fi; warnCFLAGS= if test "x$GCC" != xyes; then enable_compile_warnings=no fi warning_flags= realsave_CFLAGS="$CFLAGS" case "$enable_compile_warnings" in no) warning_flags= ;; minimum) warning_flags="-Wall" ;; yes) warning_flags="-Wall -Wmissing-prototypes" ;; maximum|error) warning_flags="-Wall -Wmissing-prototypes -Wnested-externs -Wpointer-arith" CFLAGS="$warning_flags $CFLAGS" for option in -Wno-sign-compare; do SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $option" echo "$as_me:$LINENO: checking whether gcc understands $option" >&5 echo $ECHO_N "checking whether gcc understands $option... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then has_option=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 has_option=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext CFLAGS="$SAVE_CFLAGS" echo "$as_me:$LINENO: result: $has_option" >&5 echo "${ECHO_T}$has_option" >&6 if test $has_option = yes; then warning_flags="$warning_flags $option" fi unset has_option unset SAVE_CFLAGS done unset option if test "$enable_compile_warnings" = "error" ; then warning_flags="$warning_flags -Werror" fi ;; *) { { echo "$as_me:$LINENO: error: Unknown argument '$enable_compile_warnings' to --enable-compile-warnings" >&5 echo "$as_me: error: Unknown argument '$enable_compile_warnings' to --enable-compile-warnings" >&2;} { (exit 1); exit 1; }; } ;; esac CFLAGS="$realsave_CFLAGS" echo "$as_me:$LINENO: checking what warning flags to pass to the C compiler" >&5 echo $ECHO_N "checking what warning flags to pass to the C compiler... $ECHO_C" >&6 echo "$as_me:$LINENO: result: $warning_flags" >&5 echo "${ECHO_T}$warning_flags" >&6 # Check whether --enable-iso-c or --disable-iso-c was given. if test "${enable_iso_c+set}" = set; then enableval="$enable_iso_c" else enable_iso_c=no fi; echo "$as_me:$LINENO: checking what language compliance flags to pass to the C compiler" >&5 echo $ECHO_N "checking what language compliance flags to pass to the C compiler... $ECHO_C" >&6 complCFLAGS= if test "x$enable_iso_c" != "xno"; then if test "x$GCC" = "xyes"; then case " $CFLAGS " in *\ \ -ansi\ \ *) ;; *) complCFLAGS="$complCFLAGS -ansi" ;; esac case " $CFLAGS " in *\ \ -pedantic\ \ *) ;; *) complCFLAGS="$complCFLAGS -pedantic" ;; esac fi fi echo "$as_me:$LINENO: result: $complCFLAGS" >&5 echo "${ECHO_T}$complCFLAGS" >&6 WARN_CFLAGS="$warning_flags $complCFLAGS" ALL_LINGUAS="ru tr de sv" # On IRIX 5.3, sys/types and inttypes.h are conflicting. for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ inttypes.h stdint.h unistd.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then eval "$as_ac_Header=yes" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_Header=no" fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done for ac_header in locale.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if eval "test \"\${$as_ac_Header+set}\" = set"; then echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 else # Is the header compilable? echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6 # Is the header present? echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6 # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## ----------------------------------------- ## ## Report this to the gnome-breakout lists. ## ## ----------------------------------------- ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 fi if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done if test $ac_cv_header_locale_h = yes; then echo "$as_me:$LINENO: checking for LC_MESSAGES" >&5 echo $ECHO_N "checking for LC_MESSAGES... $ECHO_C" >&6 if test "${am_cv_val_LC_MESSAGES+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include int main () { return LC_MESSAGES ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then am_cv_val_LC_MESSAGES=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 am_cv_val_LC_MESSAGES=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $am_cv_val_LC_MESSAGES" >&5 echo "${ECHO_T}$am_cv_val_LC_MESSAGES" >&6 if test $am_cv_val_LC_MESSAGES = yes; then cat >>confdefs.h <<\_ACEOF #define HAVE_LC_MESSAGES 1 _ACEOF fi fi USE_NLS=yes gt_cv_have_gettext=no CATOBJEXT=NONE XGETTEXT=: INTLLIBS= if test "${ac_cv_header_libintl_h+set}" = set; then echo "$as_me:$LINENO: checking for libintl.h" >&5 echo $ECHO_N "checking for libintl.h... $ECHO_C" >&6 if test "${ac_cv_header_libintl_h+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi echo "$as_me:$LINENO: result: $ac_cv_header_libintl_h" >&5 echo "${ECHO_T}$ac_cv_header_libintl_h" >&6 else # Is the header compilable? echo "$as_me:$LINENO: checking libintl.h usability" >&5 echo $ECHO_N "checking libintl.h usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6 # Is the header present? echo "$as_me:$LINENO: checking libintl.h presence" >&5 echo $ECHO_N "checking libintl.h presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6 # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: libintl.h: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: libintl.h: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: libintl.h: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: libintl.h: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: libintl.h: present but cannot be compiled" >&5 echo "$as_me: WARNING: libintl.h: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: libintl.h: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: libintl.h: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: libintl.h: see the Autoconf documentation" >&5 echo "$as_me: WARNING: libintl.h: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: libintl.h: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: libintl.h: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: libintl.h: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: libintl.h: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: libintl.h: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: libintl.h: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## ----------------------------------------- ## ## Report this to the gnome-breakout lists. ## ## ----------------------------------------- ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac echo "$as_me:$LINENO: checking for libintl.h" >&5 echo $ECHO_N "checking for libintl.h... $ECHO_C" >&6 if test "${ac_cv_header_libintl_h+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_header_libintl_h=$ac_header_preproc fi echo "$as_me:$LINENO: result: $ac_cv_header_libintl_h" >&5 echo "${ECHO_T}$ac_cv_header_libintl_h" >&6 fi if test $ac_cv_header_libintl_h = yes; then gt_cv_func_dgettext_libintl="no" libintl_extra_libs="" # # First check in libc # echo "$as_me:$LINENO: checking for dgettext in libc" >&5 echo $ECHO_N "checking for dgettext in libc... $ECHO_C" >&6 if test "${gt_cv_func_dgettext_libc+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include int main () { return (int) dgettext ("","") ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then gt_cv_func_dgettext_libc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 gt_cv_func_dgettext_libc=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $gt_cv_func_dgettext_libc" >&5 echo "${ECHO_T}$gt_cv_func_dgettext_libc" >&6 if test "$gt_cv_func_dgettext_libc" = "yes" ; then for ac_func in bind_textdomain_codeset do as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` echo "$as_me:$LINENO: checking for $ac_func" >&5 echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 if eval "test \"\${$as_ac_var+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define $ac_func to an innocuous variant, in case declares $ac_func. For example, HP-UX 11i declares gettimeofday. */ #define $ac_func innocuous_$ac_func /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef $ac_func /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" { #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char $ac_func (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub_$ac_func) || defined (__stub___$ac_func) choke me #else char (*f) () = $ac_func; #endif #ifdef __cplusplus } #endif int main () { return f != $ac_func; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then eval "$as_ac_var=yes" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 if test `eval echo '${'$as_ac_var'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done fi # # If we don't have everything we want, check in libintl # if test "$gt_cv_func_dgettext_libc" != "yes" \ || test "$ac_cv_func_bind_textdomain_codeset" != "yes" ; then echo "$as_me:$LINENO: checking for bindtextdomain in -lintl" >&5 echo $ECHO_N "checking for bindtextdomain in -lintl... $ECHO_C" >&6 if test "${ac_cv_lib_intl_bindtextdomain+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lintl $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char bindtextdomain (); int main () { bindtextdomain (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_intl_bindtextdomain=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_intl_bindtextdomain=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_intl_bindtextdomain" >&5 echo "${ECHO_T}$ac_cv_lib_intl_bindtextdomain" >&6 if test $ac_cv_lib_intl_bindtextdomain = yes; then echo "$as_me:$LINENO: checking for dgettext in -lintl" >&5 echo $ECHO_N "checking for dgettext in -lintl... $ECHO_C" >&6 if test "${ac_cv_lib_intl_dgettext+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lintl $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char dgettext (); int main () { dgettext (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_intl_dgettext=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_intl_dgettext=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_intl_dgettext" >&5 echo "${ECHO_T}$ac_cv_lib_intl_dgettext" >&6 if test $ac_cv_lib_intl_dgettext = yes; then gt_cv_func_dgettext_libintl=yes fi fi if test "$gt_cv_func_dgettext_libintl" != "yes" ; then echo "$as_me:$LINENO: checking if -liconv is needed to use gettext" >&5 echo $ECHO_N "checking if -liconv is needed to use gettext... $ECHO_C" >&6 echo "$as_me:$LINENO: result: " >&5 echo "${ECHO_T}" >&6 echo "$as_me:$LINENO: checking for dcgettext in -lintl" >&5 echo $ECHO_N "checking for dcgettext in -lintl... $ECHO_C" >&6 if test "${ac_cv_lib_intl_dcgettext+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lintl -liconv $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char dcgettext (); int main () { dcgettext (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_intl_dcgettext=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_intl_dcgettext=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_intl_dcgettext" >&5 echo "${ECHO_T}$ac_cv_lib_intl_dcgettext" >&6 if test $ac_cv_lib_intl_dcgettext = yes; then gt_cv_func_dgettext_libintl=yes libintl_extra_libs=-liconv else : fi fi # # If we found libintl, then check in it for bind_textdomain_codeset(); # we'll prefer libc if neither have bind_textdomain_codeset(), # and both have dgettext # if test "$gt_cv_func_dgettext_libintl" = "yes" ; then glib_save_LIBS="$LIBS" LIBS="$LIBS -lintl $libintl_extra_libs" unset ac_cv_func_bind_textdomain_codeset for ac_func in bind_textdomain_codeset do as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` echo "$as_me:$LINENO: checking for $ac_func" >&5 echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 if eval "test \"\${$as_ac_var+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define $ac_func to an innocuous variant, in case declares $ac_func. For example, HP-UX 11i declares gettimeofday. */ #define $ac_func innocuous_$ac_func /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef $ac_func /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" { #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char $ac_func (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub_$ac_func) || defined (__stub___$ac_func) choke me #else char (*f) () = $ac_func; #endif #ifdef __cplusplus } #endif int main () { return f != $ac_func; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then eval "$as_ac_var=yes" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 if test `eval echo '${'$as_ac_var'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done LIBS="$glib_save_LIBS" if test "$ac_cv_func_bind_textdomain_codeset" = "yes" ; then gt_cv_func_dgettext_libc=no else if test "$gt_cv_func_dgettext_libc" = "yes"; then gt_cv_func_dgettext_libintl=no fi fi fi fi if test "$gt_cv_func_dgettext_libc" = "yes" \ || test "$gt_cv_func_dgettext_libintl" = "yes"; then gt_cv_have_gettext=yes fi if test "$gt_cv_func_dgettext_libintl" = "yes"; then INTLLIBS="-lintl $libintl_extra_libs" fi if test "$gt_cv_have_gettext" = "yes"; then cat >>confdefs.h <<\_ACEOF #define HAVE_GETTEXT 1 _ACEOF # Extract the first word of "msgfmt", so it can be a program name with args. set dummy msgfmt; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_path_MSGFMT+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case "$MSGFMT" in /*) ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. ;; *) IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" for ac_dir in $PATH; do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then if test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"; then ac_cv_path_MSGFMT="$ac_dir/$ac_word" break fi fi done IFS="$ac_save_ifs" test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT="no" ;; esac fi MSGFMT="$ac_cv_path_MSGFMT" if test "$MSGFMT" != "no"; then echo "$as_me:$LINENO: result: $MSGFMT" >&5 echo "${ECHO_T}$MSGFMT" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi if test "$MSGFMT" != "no"; then glib_save_LIBS="$LIBS" LIBS="$LIBS $INTLLIBS" for ac_func in dcgettext do as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` echo "$as_me:$LINENO: checking for $ac_func" >&5 echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 if eval "test \"\${$as_ac_var+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define $ac_func to an innocuous variant, in case declares $ac_func. For example, HP-UX 11i declares gettimeofday. */ #define $ac_func innocuous_$ac_func /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef $ac_func /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" { #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char $ac_func (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub_$ac_func) || defined (__stub___$ac_func) choke me #else char (*f) () = $ac_func; #endif #ifdef __cplusplus } #endif int main () { return f != $ac_func; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then eval "$as_ac_var=yes" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 if test `eval echo '${'$as_ac_var'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done # Extract the first word of "gmsgfmt", so it can be a program name with args. set dummy gmsgfmt; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_path_GMSGFMT+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case $GMSGFMT in [\\/]* | ?:[\\/]*) ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" ;; esac fi GMSGFMT=$ac_cv_path_GMSGFMT if test -n "$GMSGFMT"; then echo "$as_me:$LINENO: result: $GMSGFMT" >&5 echo "${ECHO_T}$GMSGFMT" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi # Extract the first word of "xgettext", so it can be a program name with args. set dummy xgettext; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_path_XGETTEXT+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case "$XGETTEXT" in /*) ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. ;; *) IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" for ac_dir in $PATH; do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then if test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"; then ac_cv_path_XGETTEXT="$ac_dir/$ac_word" break fi fi done IFS="$ac_save_ifs" test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":" ;; esac fi XGETTEXT="$ac_cv_path_XGETTEXT" if test "$XGETTEXT" != ":"; then echo "$as_me:$LINENO: result: $XGETTEXT" >&5 echo "${ECHO_T}$XGETTEXT" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { extern int _nl_msg_cat_cntr; return _nl_msg_cat_cntr ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then CATOBJEXT=.gmo DATADIRNAME=share else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 case $host in *-*-solaris*) echo "$as_me:$LINENO: checking for bind_textdomain_codeset" >&5 echo $ECHO_N "checking for bind_textdomain_codeset... $ECHO_C" >&6 if test "${ac_cv_func_bind_textdomain_codeset+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define bind_textdomain_codeset to an innocuous variant, in case declares bind_textdomain_codeset. For example, HP-UX 11i declares gettimeofday. */ #define bind_textdomain_codeset innocuous_bind_textdomain_codeset /* System header to define __stub macros and hopefully few prototypes, which can conflict with char bind_textdomain_codeset (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef bind_textdomain_codeset /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" { #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char bind_textdomain_codeset (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub_bind_textdomain_codeset) || defined (__stub___bind_textdomain_codeset) choke me #else char (*f) () = bind_textdomain_codeset; #endif #ifdef __cplusplus } #endif int main () { return f != bind_textdomain_codeset; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_func_bind_textdomain_codeset=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_func_bind_textdomain_codeset=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_func_bind_textdomain_codeset" >&5 echo "${ECHO_T}$ac_cv_func_bind_textdomain_codeset" >&6 if test $ac_cv_func_bind_textdomain_codeset = yes; then CATOBJEXT=.gmo DATADIRNAME=share else CATOBJEXT=.mo DATADIRNAME=lib fi ;; *) CATOBJEXT=.mo DATADIRNAME=lib ;; esac fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="$glib_save_LIBS" INSTOBJEXT=.mo else gt_cv_have_gettext=no fi fi fi if test "$gt_cv_have_gettext" = "yes" ; then cat >>confdefs.h <<\_ACEOF #define ENABLE_NLS 1 _ACEOF fi if test "$XGETTEXT" != ":"; then if $XGETTEXT --omit-header /dev/null 2> /dev/null; then : ; else echo "$as_me:$LINENO: result: found xgettext program is not GNU xgettext; ignore it" >&5 echo "${ECHO_T}found xgettext program is not GNU xgettext; ignore it" >&6 XGETTEXT=":" fi fi # We need to process the po/ directory. POSUB=po ac_config_commands="$ac_config_commands default-1" for lang in $ALL_LINGUAS; do GMOFILES="$GMOFILES $lang.gmo" POFILES="$POFILES $lang.po" done if test "$gt_cv_have_gettext" = "yes"; then if test "x$ALL_LINGUAS" = "x"; then LINGUAS= else echo "$as_me:$LINENO: checking for catalogs to be installed" >&5 echo $ECHO_N "checking for catalogs to be installed... $ECHO_C" >&6 NEW_LINGUAS= for presentlang in $ALL_LINGUAS; do useit=no if test "%UNSET%" != "${LINGUAS-%UNSET%}"; then desiredlanguages="$LINGUAS" else desiredlanguages="$ALL_LINGUAS" fi for desiredlang in $desiredlanguages; do # Use the presentlang catalog if desiredlang is # a. equal to presentlang, or # b. a variant of presentlang (because in this case, # presentlang can be used as a fallback for messages # which are not translated in the desiredlang catalog). case "$desiredlang" in "$presentlang"*) useit=yes;; esac done if test $useit = yes; then NEW_LINGUAS="$NEW_LINGUAS $presentlang" fi done LINGUAS=$NEW_LINGUAS echo "$as_me:$LINENO: result: $LINGUAS" >&5 echo "${ECHO_T}$LINGUAS" >&6 fi if test -n "$LINGUAS"; then for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done fi fi MKINSTALLDIRS= if test -n "$ac_aux_dir"; then MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" fi if test -z "$MKINSTALLDIRS"; then MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs" fi test -d po || mkdir po if test "x$srcdir" != "x."; then if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then posrcprefix="$srcdir/" else posrcprefix="../$srcdir/" fi else posrcprefix="../" fi rm -f po/POTFILES sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \ < $srcdir/po/POTFILES.in > po/POTFILES cat >>confdefs.h <<_ACEOF #define GETTEXT_PACKAGE "$GETTEXT_PACKAGE" _ACEOF #localstatedir=`gnome-config --localstatedir` ac_config_files="$ac_config_files Makefile src/Makefile po/Makefile.in pixmaps/Makefile levels/Makefile gnome-breakout.spec" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, don't put newlines in cache variables' values. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. { (set) 2>&1 | case `(ac_space=' '; set | grep ac_space) 2>&1` in *ac_space=\ *) # `set' does not quote correctly, so add quotes (double-quote # substitution turns \\\\ into \\, and sed turns \\ into \). sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n \ "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" ;; esac; } | sed ' t clear : clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ : end' >>confcache if diff $cache_file confcache >/dev/null 2>&1; then :; else if test -w $cache_file; then test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file" cat confcache >$cache_file else echo "not updating unwritable cache $cache_file" fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' # VPATH may cause trouble with some makes, so we remove $(srcdir), # ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=/{ s/:*\$(srcdir):*/:/; s/:*\${srcdir}:*/:/; s/:*@srcdir@:*/:/; s/^\([^=]*=[ ]*\):*/\1/; s/:*$//; s/^[^=]*=[ ]*$//; }' fi # Transform confdefs.h into DEFS. # Protect against shell expansion while executing Makefile rules. # Protect against Makefile macro expansion. # # If the first sed substitution is executed (which looks for macros that # take arguments), then we branch to the quote section. Otherwise, # look for a macro that doesn't take arguments. cat >confdef2opt.sed <<\_ACEOF t clear : clear s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\),-D\1=\2,g t quote s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\),-D\1=\2,g t quote d : quote s,[ `~#$^&*(){}\\|;'"<>?],\\&,g s,\[,\\&,g s,\],\\&,g s,\$,$$,g p _ACEOF # We use echo to avoid assuming a particular line-breaking character. # The extra dot is to prevent the shell from consuming trailing # line-breaks from the sub-command output. A line-break within # single-quotes doesn't work because, if this script is created in a # platform that uses two characters for line-breaks (e.g., DOS), tr # would break. ac_LF_and_DOT=`echo; echo .` DEFS=`sed -n -f confdef2opt.sed confdefs.h | tr "$ac_LF_and_DOT" ' .'` rm -f confdef2opt.sed ac_libobjs= ac_ltlibobjs= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_i=`echo "$ac_i" | sed 's/\$U\././;s/\.o$//;s/\.obj$//'` # 2. Add them. ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext" ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs : ${CONFIG_STATUS=./config.status} ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 echo "$as_me: creating $CONFIG_STATUS" >&6;} cat >$CONFIG_STATUS <<_ACEOF #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF ## --------------------- ## ## M4sh Initialization. ## ## --------------------- ## # Be Bourne compatible if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then set -o posix fi DUALCASE=1; export DUALCASE # for MKS sh # Support unset when possible. if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then as_unset=unset else as_unset=false fi # Work around bugs in pre-3.0 UWIN ksh. $as_unset ENV MAIL MAILPATH PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. for as_var in \ LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ LC_TELEPHONE LC_TIME do if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then eval $as_var=C; export $as_var else $as_unset $as_var fi done # Required to use basename. if expr a : '\(a\)' >/dev/null 2>&1; then as_expr=expr else as_expr=false fi if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi # Name of the executable. as_me=`$as_basename "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)$' \| \ . : '\(.\)' 2>/dev/null || echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; } /^X\/\(\/\/\)$/{ s//\1/; q; } /^X\/\(\/\).*/{ s//\1/; q; } s/.*/./; q'` # PATH needs CR, and LINENO needs CR and PATH. # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi as_lineno_1=$LINENO as_lineno_2=$LINENO as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` test "x$as_lineno_1" != "x$as_lineno_2" && test "x$as_lineno_3" = "x$as_lineno_2" || { # Find who we are. Look in the path if we contain no path at all # relative or not. case $0 in *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5 echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;} { (exit 1); exit 1; }; } fi case $CONFIG_SHELL in '') as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for as_base in sh bash ksh sh5; do case $as_dir in /*) if ("$as_dir/$as_base" -c ' as_lineno_1=$LINENO as_lineno_2=$LINENO as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` test "x$as_lineno_1" != "x$as_lineno_2" && test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; } $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; } CONFIG_SHELL=$as_dir/$as_base export CONFIG_SHELL exec "$CONFIG_SHELL" "$0" ${1+"$@"} fi;; esac done done ;; esac # Create $as_me.lineno as a copy of $as_myself, but with $LINENO # uniformly replaced by the line number. The first 'sed' inserts a # line-number line before each line; the second 'sed' does the real # work. The second script uses 'N' to pair each line-number line # with the numbered line, and appends trailing '-' during # substitution so that $LINENO is not a special case at line end. # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-) sed '=' <$as_myself | sed ' N s,$,-, : loop s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3, t loop s,-$,, s,^['$as_cr_digits']*\n,, ' >$as_me.lineno && chmod +x $as_me.lineno || { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5 echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;} { (exit 1); exit 1; }; } # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensible to this). . ./$as_me.lineno # Exit status is that of the last command. exit } case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in *c*,-n*) ECHO_N= ECHO_C=' ' ECHO_T=' ' ;; *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; *) ECHO_N= ECHO_C='\c' ECHO_T= ;; esac if expr a : '\(a\)' >/dev/null 2>&1; then as_expr=expr else as_expr=false fi rm -f conf$$ conf$$.exe conf$$.file echo >conf$$.file if ln -s conf$$.file conf$$ 2>/dev/null; then # We could just check for DJGPP; but this test a) works b) is more generic # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). if test -f conf$$.exe; then # Don't use ln at all; we don't have any links as_ln_s='cp -p' else as_ln_s='ln -s' fi elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.file if mkdir -p . 2>/dev/null; then as_mkdir_p=: else test -d ./-p && rmdir ./-p as_mkdir_p=false fi as_executable_p="test -f" # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" # IFS # We need space, tab and new line, in precisely that order. as_nl=' ' IFS=" $as_nl" # CDPATH. $as_unset CDPATH exec 6>&1 # Open the log real soon, to keep \$[0] and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. Logging --version etc. is OK. exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX } >&5 cat >&5 <<_CSEOF This file was extended by gnome-breakout $as_me 0.5.3, which was generated by GNU Autoconf 2.59. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ _CSEOF echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5 echo >&5 _ACEOF # Files that config.status was made for. if test -n "$ac_config_files"; then echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS fi if test -n "$ac_config_headers"; then echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS fi if test -n "$ac_config_links"; then echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS fi if test -n "$ac_config_commands"; then echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS fi cat >>$CONFIG_STATUS <<\_ACEOF ac_cs_usage="\ \`$as_me' instantiates files from templates according to the current configuration. Usage: $0 [OPTIONS] [FILE]... -h, --help print this help, then exit -V, --version print version number, then exit -q, --quiet do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE Configuration files: $config_files Configuration commands: $config_commands Report bugs to ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF ac_cs_version="\\ gnome-breakout config.status 0.5.3 configured by $0, generated by GNU Autoconf 2.59, with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\" Copyright (C) 2003 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." srcdir=$srcdir INSTALL="$INSTALL" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # If no file are specified by the user, then we need to provide default # value. By we need to know if files were specified by the user. ac_need_defaults=: while test $# != 0 do case $1 in --*=*) ac_option=`expr "x$1" : 'x\([^=]*\)='` ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'` ac_shift=: ;; -*) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; *) # This is not an option, so the user has probably given explicit # arguments. ac_option=$1 ac_need_defaults=false;; esac case $ac_option in # Handling of the options. _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --vers* | -V ) echo "$ac_cs_version"; exit 0 ;; --he | --h) # Conflict between --help and --header { { echo "$as_me:$LINENO: error: ambiguous option: $1 Try \`$0 --help' for more information." >&5 echo "$as_me: error: ambiguous option: $1 Try \`$0 --help' for more information." >&2;} { (exit 1); exit 1; }; };; --help | --hel | -h ) echo "$ac_cs_usage"; exit 0 ;; --debug | --d* | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift CONFIG_FILES="$CONFIG_FILES $ac_optarg" ac_need_defaults=false;; --header | --heade | --head | --hea ) $ac_shift CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg" ac_need_defaults=false;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1 Try \`$0 --help' for more information." >&5 echo "$as_me: error: unrecognized option: $1 Try \`$0 --help' for more information." >&2;} { (exit 1); exit 1; }; } ;; *) ac_config_targets="$ac_config_targets $1" ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF if \$ac_cs_recheck; then echo "running $SHELL $0 " $ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6 exec $SHELL $0 $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF # # INIT-COMMANDS section. # _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF for ac_config_target in $ac_config_targets do case "$ac_config_target" in # Handling of arguments. "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;; "src/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; "po/Makefile.in" ) CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;; "pixmaps/Makefile" ) CONFIG_FILES="$CONFIG_FILES pixmaps/Makefile" ;; "levels/Makefile" ) CONFIG_FILES="$CONFIG_FILES levels/Makefile" ;; "gnome-breakout.spec" ) CONFIG_FILES="$CONFIG_FILES gnome-breakout.spec" ;; "default-1" ) CONFIG_COMMANDS="$CONFIG_COMMANDS default-1" ;; *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 echo "$as_me: error: invalid argument: $ac_config_target" >&2;} { (exit 1); exit 1; }; };; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason to put it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Create a temporary directory, and hook for its removal unless debugging. $debug || { trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0 trap '{ (exit 1); exit 1; }' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" } || { tmp=./confstat$$-$RANDOM (umask 077 && mkdir $tmp) } || { echo "$me: cannot create a temporary directory in ." >&2 { (exit 1); exit 1; } } _ACEOF cat >>$CONFIG_STATUS <<_ACEOF # # CONFIG_FILES section. # # No need to generate the scripts if there are no CONFIG_FILES. # This happens for instance when ./config.status config.h if test -n "\$CONFIG_FILES"; then # Protect against being on the right side of a sed subst in config.status. sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g; s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF s,@SHELL@,$SHELL,;t t s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t s,@exec_prefix@,$exec_prefix,;t t s,@prefix@,$prefix,;t t s,@program_transform_name@,$program_transform_name,;t t s,@bindir@,$bindir,;t t s,@sbindir@,$sbindir,;t t s,@libexecdir@,$libexecdir,;t t s,@datadir@,$datadir,;t t s,@sysconfdir@,$sysconfdir,;t t s,@sharedstatedir@,$sharedstatedir,;t t s,@localstatedir@,$localstatedir,;t t s,@libdir@,$libdir,;t t s,@includedir@,$includedir,;t t s,@oldincludedir@,$oldincludedir,;t t s,@infodir@,$infodir,;t t s,@mandir@,$mandir,;t t s,@build_alias@,$build_alias,;t t s,@host_alias@,$host_alias,;t t s,@target_alias@,$target_alias,;t t s,@DEFS@,$DEFS,;t t s,@ECHO_C@,$ECHO_C,;t t s,@ECHO_N@,$ECHO_N,;t t s,@ECHO_T@,$ECHO_T,;t t s,@LIBS@,$LIBS,;t t s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t s,@INSTALL_DATA@,$INSTALL_DATA,;t t s,@PACKAGE@,$PACKAGE,;t t s,@VERSION@,$VERSION,;t t s,@ACLOCAL@,$ACLOCAL,;t t s,@AUTOCONF@,$AUTOCONF,;t t s,@AUTOMAKE@,$AUTOMAKE,;t t s,@AUTOHEADER@,$AUTOHEADER,;t t s,@MAKEINFO@,$MAKEINFO,;t t s,@SET_MAKE@,$SET_MAKE,;t t s,@PKG_CONFIG@,$PKG_CONFIG,;t t s,@GNOMEUI_CFLAGS@,$GNOMEUI_CFLAGS,;t t s,@GNOMEUI_LIBS@,$GNOMEUI_LIBS,;t t s,@MAINTAINER_MODE_TRUE@,$MAINTAINER_MODE_TRUE,;t t s,@MAINTAINER_MODE_FALSE@,$MAINTAINER_MODE_FALSE,;t t s,@MAINT@,$MAINT,;t t s,@CC@,$CC,;t t s,@CFLAGS@,$CFLAGS,;t t s,@LDFLAGS@,$LDFLAGS,;t t s,@CPPFLAGS@,$CPPFLAGS,;t t s,@ac_ct_CC@,$ac_ct_CC,;t t s,@EXEEXT@,$EXEEXT,;t t s,@OBJEXT@,$OBJEXT,;t t s,@CPP@,$CPP,;t t s,@EGREP@,$EGREP,;t t s,@WARN_CFLAGS@,$WARN_CFLAGS,;t t s,@USE_NLS@,$USE_NLS,;t t s,@MSGFMT@,$MSGFMT,;t t s,@GMSGFMT@,$GMSGFMT,;t t s,@XGETTEXT@,$XGETTEXT,;t t s,@CATALOGS@,$CATALOGS,;t t s,@CATOBJEXT@,$CATOBJEXT,;t t s,@DATADIRNAME@,$DATADIRNAME,;t t s,@GMOFILES@,$GMOFILES,;t t s,@INSTOBJEXT@,$INSTOBJEXT,;t t s,@INTLLIBS@,$INTLLIBS,;t t s,@PO_IN_DATADIR_TRUE@,$PO_IN_DATADIR_TRUE,;t t s,@PO_IN_DATADIR_FALSE@,$PO_IN_DATADIR_FALSE,;t t s,@POFILES@,$POFILES,;t t s,@POSUB@,$POSUB,;t t s,@MKINSTALLDIRS@,$MKINSTALLDIRS,;t t s,@GETTEXT_PACKAGE@,$GETTEXT_PACKAGE,;t t s,@LIBOBJS@,$LIBOBJS,;t t s,@LTLIBOBJS@,$LTLIBOBJS,;t t CEOF _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # Split the substitutions into bite-sized pieces for seds with # small command number limits, like on Digital OSF/1 and HP-UX. ac_max_sed_lines=48 ac_sed_frag=1 # Number of current file. ac_beg=1 # First line for current file. ac_end=$ac_max_sed_lines # Line after last line for current file. ac_more_lines=: ac_sed_cmds= while $ac_more_lines; do if test $ac_beg -gt 1; then sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag else sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag fi if test ! -s $tmp/subs.frag; then ac_more_lines=false else # The purpose of the label and of the branching condition is to # speed up the sed processing (if there are no `@' at all, there # is no need to browse any of the substitutions). # These are the two extra sed commands mentioned above. (echo ':t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed if test -z "$ac_sed_cmds"; then ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed" else ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed" fi ac_sed_frag=`expr $ac_sed_frag + 1` ac_beg=$ac_end ac_end=`expr $ac_end + $ac_max_sed_lines` fi done if test -z "$ac_sed_cmds"; then ac_sed_cmds=cat fi fi # test -n "$CONFIG_FILES" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". case $ac_file in - | *:- | *:-:* ) # input from stdin cat >$tmp/stdin ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; * ) ac_file_in=$ac_file.in ;; esac # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories. ac_dir=`(dirname "$ac_file") 2>/dev/null || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` { if $as_mkdir_p; then mkdir -p "$ac_dir" else as_dir="$ac_dir" as_dirs= while test ! -d "$as_dir"; do as_dirs="$as_dir $as_dirs" as_dir=`(dirname "$as_dir") 2>/dev/null || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` done test ! -n "$as_dirs" || mkdir $as_dirs fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} { (exit 1); exit 1; }; }; } ac_builddir=. if test "$ac_dir" != .; then ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` # A "../" for each directory in $ac_dir_suffix. ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` else ac_dir_suffix= ac_top_builddir= fi case $srcdir in .) # No --srcdir option. We are building in place. ac_srcdir=. if test -z "$ac_top_builddir"; then ac_top_srcdir=. else ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` fi ;; [\\/]* | ?:[\\/]* ) # Absolute path. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ;; *) # Relative path. ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_builddir$srcdir ;; esac # Do not use `cd foo && pwd` to compute absolute paths, because # the directories may not exist. case `pwd` in .) ac_abs_builddir="$ac_dir";; *) case "$ac_dir" in .) ac_abs_builddir=`pwd`;; [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; *) ac_abs_builddir=`pwd`/"$ac_dir";; esac;; esac case $ac_abs_builddir in .) ac_abs_top_builddir=${ac_top_builddir}.;; *) case ${ac_top_builddir}. in .) ac_abs_top_builddir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; esac;; esac case $ac_abs_builddir in .) ac_abs_srcdir=$ac_srcdir;; *) case $ac_srcdir in .) ac_abs_srcdir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; esac;; esac case $ac_abs_builddir in .) ac_abs_top_srcdir=$ac_top_srcdir;; *) case $ac_top_srcdir in .) ac_abs_top_srcdir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; esac;; esac case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; *) ac_INSTALL=$ac_top_builddir$INSTALL ;; esac # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ if test x"$ac_file" = x-; then configure_input= else configure_input="$ac_file. " fi configure_input=$configure_input"Generated from `echo $ac_file_in | sed 's,.*/,,'` by configure." # First look for the input files in the build tree, otherwise in the # src tree. ac_file_inputs=`IFS=: for f in $ac_file_in; do case $f in -) echo $tmp/stdin ;; [\\/$]*) # Absolute (can't be DOS-style, as IFS=:) test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } echo "$f";; *) # Relative if test -f "$f"; then # Build tree echo "$f" elif test -f "$srcdir/$f"; then # Source tree echo "$srcdir/$f" else # /dev/null tree { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } fi;; esac done` || { (exit 1); exit 1; } if test x"$ac_file" != x-; then { echo "$as_me:$LINENO: creating $ac_file" >&5 echo "$as_me: creating $ac_file" >&6;} rm -f "$ac_file" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF sed "$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s,@configure_input@,$configure_input,;t t s,@srcdir@,$ac_srcdir,;t t s,@abs_srcdir@,$ac_abs_srcdir,;t t s,@top_srcdir@,$ac_top_srcdir,;t t s,@abs_top_srcdir@,$ac_abs_top_srcdir,;t t s,@builddir@,$ac_builddir,;t t s,@abs_builddir@,$ac_abs_builddir,;t t s,@top_builddir@,$ac_top_builddir,;t t s,@abs_top_builddir@,$ac_abs_top_builddir,;t t s,@INSTALL@,$ac_INSTALL,;t t " $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out rm -f $tmp/stdin if test x"$ac_file" != x-; then mv $tmp/out $ac_file else cat $tmp/out rm -f $tmp/out fi done _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # # CONFIG_COMMANDS section. # for ac_file in : $CONFIG_COMMANDS; do test "x$ac_file" = x: && continue ac_dest=`echo "$ac_file" | sed 's,:.*,,'` ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'` ac_dir=`(dirname "$ac_dest") 2>/dev/null || $as_expr X"$ac_dest" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_dest" : 'X\(//\)[^/]' \| \ X"$ac_dest" : 'X\(//\)$' \| \ X"$ac_dest" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$ac_dest" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` { if $as_mkdir_p; then mkdir -p "$ac_dir" else as_dir="$ac_dir" as_dirs= while test ! -d "$as_dir"; do as_dirs="$as_dir $as_dirs" as_dir=`(dirname "$as_dir") 2>/dev/null || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` done test ! -n "$as_dirs" || mkdir $as_dirs fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} { (exit 1); exit 1; }; }; } ac_builddir=. if test "$ac_dir" != .; then ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` # A "../" for each directory in $ac_dir_suffix. ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` else ac_dir_suffix= ac_top_builddir= fi case $srcdir in .) # No --srcdir option. We are building in place. ac_srcdir=. if test -z "$ac_top_builddir"; then ac_top_srcdir=. else ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` fi ;; [\\/]* | ?:[\\/]* ) # Absolute path. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ;; *) # Relative path. ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_builddir$srcdir ;; esac # Do not use `cd foo && pwd` to compute absolute paths, because # the directories may not exist. case `pwd` in .) ac_abs_builddir="$ac_dir";; *) case "$ac_dir" in .) ac_abs_builddir=`pwd`;; [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; *) ac_abs_builddir=`pwd`/"$ac_dir";; esac;; esac case $ac_abs_builddir in .) ac_abs_top_builddir=${ac_top_builddir}.;; *) case ${ac_top_builddir}. in .) ac_abs_top_builddir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; esac;; esac case $ac_abs_builddir in .) ac_abs_srcdir=$ac_srcdir;; *) case $ac_srcdir in .) ac_abs_srcdir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; esac;; esac case $ac_abs_builddir in .) ac_abs_top_srcdir=$ac_top_srcdir;; *) case $ac_top_srcdir in .) ac_abs_top_srcdir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; esac;; esac { echo "$as_me:$LINENO: executing $ac_dest commands" >&5 echo "$as_me: executing $ac_dest commands" >&6;} case $ac_dest in default-1 ) case "$CONFIG_FILES" in *po/Makefile.in*) sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile esac ;; esac done _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF { (exit 0); exit 0; } _ACEOF chmod +x $CONFIG_STATUS ac_clean_files=$ac_clean_files_save # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || { (exit 1); exit 1; } fi gnome-breakout-0.5.3/configure.in0000664000175000017500000000135310051563231013670 00000000000000GETTEXT_PACKAGE=gnome_breakout AC_INIT(gnome-breakout, 0.5.3) AC_CONFIG_SRCDIR(src/gnome-breakout.c) AM_INIT_AUTOMAKE(AC_PACKAGE_NAME, AC_PACKAGE_VERSION) PKG_CHECK_MODULES(GNOMEUI, libgnomeui-2.0) AC_SUBST(GNOMEUI_CFLAGS) AC_SUBST(GNOMEUI_LIBS) #AM_CONFIG_HEADER(config.c) AM_MAINTAINER_MODE #AM_ACLOCAL_INCLUDE(macros) #GNOME_INIT AC_PROG_CC AC_ISC_POSIX AC_HEADER_STDC GNOME_COMPILE_WARNINGS(maximum) ALL_LINGUAS="ru tr de sv" AM_GLIB_GNU_GETTEXT AC_SUBST(GETTEXT_PACKAGE) AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE") AC_SUBST(CFLAGS) AC_SUBST(CPPFLAGS) AC_SUBST(LDFLAGS) #localstatedir=`gnome-config --localstatedir` AC_OUTPUT([ Makefile src/Makefile po/Makefile.in pixmaps/Makefile levels/Makefile gnome-breakout.spec ]) gnome-breakout-0.5.3/gnome-breakout.spec.in0000664000175000017500000000173607675551502015604 00000000000000%define name @PACKAGE@ %define version @VERSION@ %define prefix @prefix@ %define localstatedir @localstatedir@ Summary : A bust-the-blocks game for GNOME Name : %{name} Version : %{version} Prefix : %{prefix} Release : 1 Copyright : GPL Group : X11/Games Source : http://www.senet.com.au/~alcaron/%{name}-%{version}.tar.gz Buildroot : %{_tmppath}/%{name}-%{version}-root %description A breakout clone for GNOME. %prep %setup %build CFLAGS="${RPM_OPT_FLAGS}" ./configure --prefix="%{prefix}" make %install rm -rf "${RPM_BUILD_ROOT}" make install DESTDIR="${RPM_BUILD_ROOT}" %clean rm -rf "${RPM_BUILD_ROOT}" %files %defattr(-, root, root) %doc AUTHORS COPYING ChangeLog INSTALL NEWS README TODO %attr(2111, root, games) %{prefix}/bin/gnome-breakout %{prefix}/share/gnome-breakout/pixmaps %{prefix}/share/gnome-breakout/levels %{prefix}/share/gnome/apps/Games/gnome-breakout.desktop %attr(0644, games, games) %{localstatedir}/games/gnome-breakout.scores gnome-breakout-0.5.3/install-sh0000775000175000017500000001273607675551502013412 00000000000000#!/bin/sh # # install - install a program, script, or datafile # This comes from X11R5 (mit/util/scripts/install.sh). # # Copyright 1991 by the Massachusetts Institute of Technology # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that # the above copyright notice appear in all copies and that both that # copyright notice and this permission notice appear in supporting # documentation, and that the name of M.I.T. not be used in advertising or # publicity pertaining to distribution of the software without specific, # written prior permission. M.I.T. makes no representations about the # suitability of this software for any purpose. It is provided "as is" # without express or implied warranty. # # Calling this script install-sh is preferred over install.sh, to prevent # `make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. It can only install one file at a time, a restriction # shared with many OS's install programs. # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit="${DOITPROG-}" # put in absolute paths if you don't have them in your path; or use env. vars. mvprog="${MVPROG-mv}" cpprog="${CPPROG-cp}" chmodprog="${CHMODPROG-chmod}" chownprog="${CHOWNPROG-chown}" chgrpprog="${CHGRPPROG-chgrp}" stripprog="${STRIPPROG-strip}" rmprog="${RMPROG-rm}" mkdirprog="${MKDIRPROG-mkdir}" transformbasename="" transform_arg="" instcmd="$mvprog" chmodcmd="$chmodprog 0755" chowncmd="" chgrpcmd="" stripcmd="" rmcmd="$rmprog -f" mvcmd="$mvprog" src="" dst="" dir_arg="" while [ x"$1" != x ]; do case $1 in -c) instcmd="$cpprog" shift continue;; -d) dir_arg=true shift continue;; -m) chmodcmd="$chmodprog $2" shift shift continue;; -o) chowncmd="$chownprog $2" shift shift continue;; -g) chgrpcmd="$chgrpprog $2" shift shift continue;; -s) stripcmd="$stripprog" shift continue;; -t=*) transformarg=`echo $1 | sed 's/-t=//'` shift continue;; -b=*) transformbasename=`echo $1 | sed 's/-b=//'` shift continue;; *) if [ x"$src" = x ] then src=$1 else # this colon is to work around a 386BSD /bin/sh bug : dst=$1 fi shift continue;; esac done if [ x"$src" = x ] then echo "install: no input file specified" exit 1 else true fi if [ x"$dir_arg" != x ]; then dst=$src src="" if [ -d $dst ]; then instcmd=: chmodcmd="" else instcmd=mkdir fi else # Waiting for this to be detected by the "$instcmd $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if [ -f $src -o -d $src ] then true else echo "install: $src does not exist" exit 1 fi if [ x"$dst" = x ] then echo "install: no destination specified" exit 1 else true fi # If destination is a directory, append the input filename; if your system # does not like double slashes in filenames, you may need to add some logic if [ -d $dst ] then dst="$dst"/`basename $src` else true fi fi ## this sed command emulates the dirname command dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` # Make sure that the destination directory exists. # this part is taken from Noah Friedman's mkinstalldirs script # Skip lots of stat calls in the usual case. if [ ! -d "$dstdir" ]; then defaultIFS=' ' IFS="${IFS-${defaultIFS}}" oIFS="${IFS}" # Some sh's can't handle IFS=/ for some reason. IFS='%' set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'` IFS="${oIFS}" pathcomp='' while [ $# -ne 0 ] ; do pathcomp="${pathcomp}${1}" shift if [ ! -d "${pathcomp}" ] ; then $mkdirprog "${pathcomp}" else true fi pathcomp="${pathcomp}/" done fi if [ x"$dir_arg" != x ] then $doit $instcmd $dst && if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi && if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi && if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi && if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi else # If we're going to rename the final executable, determine the name now. if [ x"$transformarg" = x ] then dstfile=`basename $dst` else dstfile=`basename $dst $transformbasename | sed $transformarg`$transformbasename fi # don't allow the sed command to completely eliminate the filename if [ x"$dstfile" = x ] then dstfile=`basename $dst` else true fi # Make a temp file name in the proper directory. dsttmp=$dstdir/#inst.$$# # Move or copy the file name to the temp name $doit $instcmd $src $dsttmp && trap "rm -f ${dsttmp}" 0 && # and set any options; do chmod last to preserve setuid bits # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $instcmd $src $dsttmp" command. if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi && if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi && if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi && if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi && # Now rename the file to the real destination. $doit $rmcmd -f $dstdir/$dstfile && $doit $mvcmd $dsttmp $dstdir/$dstfile fi && exit 0 gnome-breakout-0.5.3/missing0000775000175000017500000001421307675551502012775 00000000000000#! /bin/sh # Common stub for a few missing GNU programs while installing. # Copyright (C) 1996, 1997 Free Software Foundation, Inc. # Franc,ois Pinard , 1996. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # 02111-1307, USA. if test $# -eq 0; then echo 1>&2 "Try \`$0 --help' for more information" exit 1 fi case "$1" in -h|--h|--he|--hel|--help) echo "\ $0 [OPTION]... PROGRAM [ARGUMENT]... Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an error status if there is no known handling for PROGRAM. Options: -h, --help display this help and exit -v, --version output version information and exit Supported PROGRAM values: aclocal touch file \`aclocal.m4' autoconf touch file \`configure' autoheader touch file \`config.h.in' automake touch all \`Makefile.in' files bison create \`y.tab.[ch]', if possible, from existing .[ch] flex create \`lex.yy.c', if possible, from existing .c lex create \`lex.yy.c', if possible, from existing .c makeinfo touch the output file yacc create \`y.tab.[ch]', if possible, from existing .[ch]" ;; -v|--v|--ve|--ver|--vers|--versi|--versio|--version) echo "missing - GNU libit 0.0" ;; -*) echo 1>&2 "$0: Unknown \`$1' option" echo 1>&2 "Try \`$0 --help' for more information" exit 1 ;; aclocal) echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified \`acinclude.m4' or \`configure.in'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." touch aclocal.m4 ;; autoconf) echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified \`configure.in'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." touch configure ;; autoheader) echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified \`acconfig.h' or \`configure.in'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' configure.in` test -z "$files" && files="config.h" touch_files= for f in $files; do case "$f" in *:*) touch_files="$touch_files "`echo "$f" | sed -e 's/^[^:]*://' -e 's/:.*//'`;; *) touch_files="$touch_files $f.in";; esac done touch $touch_files ;; automake) echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified \`Makefile.am', \`acinclude.m4' or \`configure.in'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." find . -type f -name Makefile.am -print | sed 's/\.am$/.in/' | while read f; do touch "$f"; done ;; bison|yacc) echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified a \`.y' file. You may need the \`Bison' package in order for those modifications to take effect. You can get \`Bison' from any GNU archive site." rm -f y.tab.c y.tab.h if [ $# -ne 1 ]; then eval LASTARG="\${$#}" case "$LASTARG" in *.y) SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" y.tab.c fi SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" y.tab.h fi ;; esac fi if [ ! -f y.tab.h ]; then echo >y.tab.h fi if [ ! -f y.tab.c ]; then echo 'main() { return 0; }' >y.tab.c fi ;; lex|flex) echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified a \`.l' file. You may need the \`Flex' package in order for those modifications to take effect. You can get \`Flex' from any GNU archive site." rm -f lex.yy.c if [ $# -ne 1 ]; then eval LASTARG="\${$#}" case "$LASTARG" in *.l) SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" lex.yy.c fi ;; esac fi if [ ! -f lex.yy.c ]; then echo 'main() { return 0; }' >lex.yy.c fi ;; makeinfo) echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified a \`.texi' or \`.texinfo' file, or any other file indirectly affecting the aspect of the manual. The spurious call might also be the consequence of using a buggy \`make' (AIX, DU, IRIX). You might want to install the \`Texinfo' package or the \`GNU make' package. Grab either from any GNU archive site." file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` if test -z "$file"; then file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file` fi touch $file ;; *) echo 1>&2 "\ WARNING: \`$1' is needed, and you do not seem to have it handy on your system. You might have modified some files without having the proper tools for further handling them. Check the \`README' file, it often tells you about the needed prerequirements for installing this package. You may also peek at any GNU archive site, in case some other package would contain this missing \`$1' program." exit 1 ;; esac exit 0 gnome-breakout-0.5.3/mkinstalldirs0000775000175000017500000000133107675551502014201 00000000000000#! /bin/sh # mkinstalldirs --- make directory hierarchy # Author: Noah Friedman # Created: 1993-05-16 # Public domain # $Id: mkinstalldirs,v 1.1.1.1 2003/06/23 10:15:30 alcaron Exp $ errstatus=0 for file do set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'` shift pathcomp= for d do pathcomp="$pathcomp$d" case "$pathcomp" in -* ) pathcomp=./$pathcomp ;; esac if test ! -d "$pathcomp"; then echo "mkdir $pathcomp" mkdir "$pathcomp" || lasterr=$? if test ! -d "$pathcomp"; then errstatus=$lasterr fi fi pathcomp="$pathcomp/" done done exit $errstatus # mkinstalldirs ends here gnome-breakout-0.5.3/gnome-breakout.desktop0000664000175000017500000000046107675551502015710 00000000000000[Desktop Entry] Name=GNOME Breakout Name[tr]=Gnome Breakout Name[de]=GNOME Breakout Comment=The classic arcade game Breakout for GNOME Comment[tr]=Breakout klasiinin Gnome tekili Comment[de]=Das klassische Arcade Spiel Breakout fr GNOME Exec=gnome-breakout Icon=gnome-breakout.png Terminal=0 Type=Game gnome-breakout-0.5.3/gnome-breakout.png0000664000175000017500000000066407675551502015030 00000000000000PNG  IHDR00WgAMA abKGDC pHYs  ~tIME%/1IDATxAK@_H7$ \,`?*KŃvdgv!Btf:XCya`*j3j=gӱ%.KS0X]nϤjlz mV,{JUv@Giخv֫d 4QbsY)$.9JqBNf!]6y|`us'"!%Gԗes`&I9 ~'_D ]I!B-ܞP1tIENDB`gnome-breakout-0.5.3/BUGS0000664000175000017500000000246207675551502012064 00000000000000feature, n: A surprising property of a program. Occasionaly documented. To call a property a feature sometimes means the author did not consider that case, and the program makes an unexpected, though not necessarily wrong response. See BUG. "That's not a bug, it's a feature!" A bug can be changed to a feature by documenting it. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - The ball gets enters infinite bouncing loops if it gets stuck between a series of invincible blocks. Again, a design bug, which I've currently worked around by randomizing the direction of the ball after 20 seconds of airtime and by adding the "Kill Ball" menu item. - Entropy will amplify collision detection bugs. I think it's horrible, regardless, but somebody wanted it implimented. - Entropy sucks. It's supposed to. - When keyboard control is enabled, and the app has keyboard focus, and the pointer is outside the window, the application doesn't register keyup events. This gets annoying very quickly, but I can't seem to work out how to fix it. - There may be issues with the automatic pause logic. - Probably uses deprecated GNOME/GTK functions. Most of the development on GNOME Breakout was done in the first quarter of 2000, and the API has probably changed since then. gnome-breakout-0.5.3/po/0000777000175000017500000000000010052645512012061 500000000000000gnome-breakout-0.5.3/po/ChangeLog0000664000175000017500000000163107675551502013566 000000000000002001-11-17 gettextize * Makefile.in.in: Upgrade to gettext-0.10.40. 2001-11-17 gettextize * Makefile.in.in: Upgrade to gettext-0.10.40. 2001-11-17 gettextize * Makefile.in.in: Upgrade to gettext-0.10.40. 2001-05-19 gettextize * Makefile.in.in: Upgrade to gettext-0.10.36. 2001-05-19 gettextize * Makefile.in.in: Upgrade to gettext-0.10.36. * cat-id-tbl.c: Remove file. * stamp-cat-id: Remove file. 2000-04-24 Michael Pearson * Patched the turkish translation * Added German translation, courtesy of Matthias Haller 2000-04-04 Fatih Demir * tr.po : Added the Turkish translation for release 0.3 . 2000-04-23 Matthias Haller * de.po : Added the German translation for release 0.4 . gnome-breakout-0.5.3/po/Makefile.in.in0000644000175000017500000001637410051761447014467 00000000000000# Makefile for program source directory in GNU NLS utilities package. # Copyright (C) 1995, 1996, 1997 by Ulrich Drepper # # This file file be copied and used freely without restrictions. It can # be used in projects which are not available under the GNU Public License # but which still want to provide support for the GNU gettext functionality. # Please note that the actual code is *not* freely available. # # - Modified by Owen Taylor to use GETTEXT_PACKAGE # instead of PACKAGE and to look for po2tbl in ./ not in intl/ # # - Modified by jacob berkman to install # Makefile.in.in and po2tbl.sed.in for use with glib-gettextize GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ PACKAGE = @PACKAGE@ VERSION = @VERSION@ SHELL = /bin/sh @SET_MAKE@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ prefix = @prefix@ exec_prefix = @exec_prefix@ datadir = @datadir@ libdir = @libdir@ localedir = $(libdir)/locale gnulocaledir = $(datadir)/locale gettextsrcdir = $(datadir)/glib-2.0/gettext/po subdir = po INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ MKINSTALLDIRS = $(top_srcdir)/@MKINSTALLDIRS@ CC = @CC@ GENCAT = @GENCAT@ GMSGFMT = @GMSGFMT@ MSGFMT = @MSGFMT@ XGETTEXT = @XGETTEXT@ MSGMERGE = msgmerge DEFS = @DEFS@ CFLAGS = @CFLAGS@ CPPFLAGS = @CPPFLAGS@ INCLUDES = -I.. -I$(top_srcdir)/intl COMPILE = $(CC) -c $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS) SOURCES = POFILES = @POFILES@ GMOFILES = @GMOFILES@ DISTFILES = ChangeLog Makefile.in.in POTFILES.in $(GETTEXT_PACKAGE).pot \ $(POFILES) $(GMOFILES) $(SOURCES) POTFILES = \ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ INSTOBJEXT = @INSTOBJEXT@ .SUFFIXES: .SUFFIXES: .c .o .po .pox .gmo .mo .msg .cat .c.o: $(COMPILE) $< .po.pox: $(MAKE) $(GETTEXT_PACKAGE).pot $(MSGMERGE) $< $(srcdir)/$(GETTEXT_PACKAGE).pot -o $*.pox .po.mo: $(MSGFMT) -o $@ $< .po.gmo: file=$(srcdir)/`echo $* | sed 's,.*/,,'`.gmo \ && rm -f $$file && $(GMSGFMT) -o $$file $< .po.cat: sed -f ../intl/po2msg.sed < $< > $*.msg \ && rm -f $@ && $(GENCAT) $@ $*.msg all: all-@USE_NLS@ all-yes: $(CATALOGS) all-no: $(srcdir)/$(GETTEXT_PACKAGE).pot: $(POTFILES) $(XGETTEXT) --default-domain=$(GETTEXT_PACKAGE) --directory=$(top_srcdir) \ --add-comments --keyword=_ --keyword=N_ \ --files-from=$(srcdir)/POTFILES.in \ && test ! -f $(GETTEXT_PACKAGE).po \ || ( rm -f $(srcdir)/$(GETTEXT_PACKAGE).pot \ && mv $(GETTEXT_PACKAGE).po $(srcdir)/$(GETTEXT_PACKAGE).pot ) install: install-exec install-data install-exec: install-data: install-data-@USE_NLS@ install-data-no: all install-data-yes: all if test -r "$(MKINSTALLDIRS)"; then \ $(MKINSTALLDIRS) $(DESTDIR)$(datadir); \ else \ $(SHELL) $(top_srcdir)/mkinstalldirs $(DESTDIR)$(datadir); \ fi @catalogs='$(CATALOGS)'; \ for cat in $$catalogs; do \ cat=`basename $$cat`; \ case "$$cat" in \ *.gmo) destdir=$(gnulocaledir);; \ *) destdir=$(localedir);; \ esac; \ lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \ dir=$(DESTDIR)$$destdir/$$lang/LC_MESSAGES; \ if test -r "$(MKINSTALLDIRS)"; then \ $(MKINSTALLDIRS) $$dir; \ else \ $(SHELL) $(top_srcdir)/mkinstalldirs $$dir; \ fi; \ if test -r $$cat; then \ $(INSTALL_DATA) $$cat $$dir/$(GETTEXT_PACKAGE)$(INSTOBJEXT); \ echo "installing $$cat as $$dir/$(GETTEXT_PACKAGE)$(INSTOBJEXT)"; \ else \ $(INSTALL_DATA) $(srcdir)/$$cat $$dir/$(GETTEXT_PACKAGE)$(INSTOBJEXT); \ echo "installing $(srcdir)/$$cat as" \ "$$dir/$(GETTEXT_PACKAGE)$(INSTOBJEXT)"; \ fi; \ if test -r $$cat.m; then \ $(INSTALL_DATA) $$cat.m $$dir/$(GETTEXT_PACKAGE)$(INSTOBJEXT).m; \ echo "installing $$cat.m as $$dir/$(GETTEXT_PACKAGE)$(INSTOBJEXT).m"; \ else \ if test -r $(srcdir)/$$cat.m ; then \ $(INSTALL_DATA) $(srcdir)/$$cat.m \ $$dir/$(GETTEXT_PACKAGE)$(INSTOBJEXT).m; \ echo "installing $(srcdir)/$$cat as" \ "$$dir/$(GETTEXT_PACKAGE)$(INSTOBJEXT).m"; \ else \ true; \ fi; \ fi; \ done if test "$(PACKAGE)" = "glib"; then \ if test -r "$(MKINSTALLDIRS)"; then \ $(MKINSTALLDIRS) $(DESTDIR)$(gettextsrcdir); \ else \ $(SHELL) $(top_srcdir)/mkinstalldirs $(DESTDIR)$(gettextsrcdir); \ fi; \ $(INSTALL_DATA) $(srcdir)/Makefile.in.in \ $(DESTDIR)$(gettextsrcdir)/Makefile.in.in; \ else \ : ; \ fi # Define this as empty until I found a useful application. installcheck: uninstall: catalogs='$(CATALOGS)'; \ for cat in $$catalogs; do \ cat=`basename $$cat`; \ lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \ rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE)$(INSTOBJEXT); \ rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE)$(INSTOBJEXT).m; \ rm -f $(DESTDIR)$(gnulocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE)$(INSTOBJEXT); \ rm -f $(DESTDIR)$(gnulocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE)$(INSTOBJEXT).m; \ done if test "$(PACKAGE)" = "glib"; then \ rm -f $(DESTDIR)$(gettextsrcdir)/Makefile.in.in; \ fi check: all dvi info tags TAGS ID: mostlyclean: rm -f core core.* *.pox $(GETTEXT_PACKAGE).po *.old.po cat-id-tbl.tmp rm -fr *.o clean: mostlyclean distclean: clean rm -f Makefile Makefile.in POTFILES *.mo *.msg *.cat *.cat.m maintainer-clean: distclean @echo "This command is intended for maintainers to use;" @echo "it deletes files that may require special tools to rebuild." rm -f $(GMOFILES) distdir = ../$(GETTEXT_PACKAGE)-$(VERSION)/$(subdir) dist distdir: update-po $(DISTFILES) dists="$(DISTFILES)"; \ for file in $$dists; do \ ln $(srcdir)/$$file $(distdir) 2> /dev/null \ || cp -p $(srcdir)/$$file $(distdir); \ done update-po: Makefile $(MAKE) $(GETTEXT_PACKAGE).pot tmpdir=`pwd`; \ cd $(srcdir); \ catalogs='$(CATALOGS)'; \ for cat in $$catalogs; do \ cat=`basename $$cat`; \ lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \ echo "$$lang:"; \ if $(MSGMERGE) $$lang.po $(GETTEXT_PACKAGE).pot -o $$tmpdir/$$lang.new.po; then \ if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ rm -f $$tmpdir/$$lang.new.po; \ else \ if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ :; \ else \ echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ rm -f $$tmpdir/$$lang.new.po; \ exit 1; \ fi; \ fi; \ else \ echo "msgmerge for $$cat failed!"; \ rm -f $$tmpdir/$$lang.new.po; \ fi; \ done # POTFILES is created from POTFILES.in by stripping comments, empty lines # and Intltool tags (enclosed in square brackets), and appending a full # relative path to them POTFILES: POTFILES.in ( if test 'x$(srcdir)' != 'x.'; then \ posrcprefix='$(top_srcdir)/'; \ else \ posrcprefix="../"; \ fi; \ rm -f $@-t $@ \ && (sed -e '/^#/d' \ -e "s/^\[.*\] +//" \ -e '/^[ ]*$$/d' \ -e "s@.*@ $$posrcprefix& \\\\@" < $(srcdir)/$@.in \ | sed -e '$$s/\\$$//') > $@-t \ && chmod a-w $@-t \ && mv $@-t $@ ) Makefile: Makefile.in.in ../config.status POTFILES cd .. \ && CONFIG_FILES=$(subdir)/$@.in CONFIG_HEADERS= \ $(SHELL) ./config.status # Tell versions [3.59,3.63) of GNU make not to export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: gnome-breakout-0.5.3/po/POTFILES.in0000664000175000017500000000024007675551502013564 00000000000000src/anim.c src/ball.c src/collision.c src/game.c src/gnome-breakout.c src/gui.c src/gui-callbacks.c src/gui-preferences.c src/block.c src/powerup.c src/flags.c gnome-breakout-0.5.3/po/.pot0000664000175000017500000001101310052645511012575 00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2004-05-19 21:55+1000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" #: src/gui.c:33 src/gui-callbacks.c:86 msgid "GNOME Breakout" msgstr "" #: src/gui.c:130 msgid "Score: 0" msgstr "" #: src/gui.c:132 msgid "Lives: 0" msgstr "" #: src/gui.c:186 #, c-format msgid "No: %d" msgstr "" #: src/gui.c:191 #, c-format msgid "Name: %s" msgstr "" #: src/gui.c:192 #, c-format msgid "Author: %s" msgstr "" #: src/gui.c:193 #, c-format msgid "Levelfile: %s" msgstr "" #: src/gui.c:195 src/gui.c:404 msgid "Name:" msgstr "" #: src/gui.c:196 src/gui.c:405 msgid "Author:" msgstr "" #: src/gui.c:197 msgid "Filename:" msgstr "" #: src/gui.c:211 #, c-format msgid "Score: %d" msgstr "" #: src/gui.c:218 #, c-format msgid "Lives: %d" msgstr "" #. FIXME: Remove this when appropriate #: src/gui.c:236 msgid "_Kill ball" msgstr "" #: src/gui.c:237 msgid "Kill the current ball if it gets stuck" msgstr "" #: src/gui.c:311 msgid "GNOME Breakout: You win!" msgstr "" #: src/gui.c:314 msgid "GNOME Breakout: You lose!" msgstr "" #: src/gui.c:403 msgid "No:" msgstr "" #: src/gui.c:406 msgid "Levelfile:" msgstr "" #: src/gui-callbacks.c:69 msgid "The classic arcade game Breakout." msgstr "" #: src/gui-callbacks.c:72 msgid "translator credits" msgstr "" #. name #. version #: src/gui-callbacks.c:88 msgid "Copyright (c) 2000-2003 Michael Pearson" msgstr "" #. FIXME!! #: src/gui-callbacks.c:206 msgid "Help hasn't been implimented yet. So go ahead and write some for me :)" msgstr "" #: src/gui-callbacks.c:257 msgid "GNOME Breakout: Scores" msgstr "" #: src/gui-preferences.c:148 msgid "GNOME Breakout Preferences" msgstr "" #. Vbox and Tablabel - Constructor #: src/gui-preferences.c:201 msgid "Game" msgstr "" #: src/gui-preferences.c:218 msgid "Levels" msgstr "" #: src/gui-preferences.c:226 msgid "Add" msgstr "" #: src/gui-preferences.c:227 msgid "Remove" msgstr "" #: src/gui-preferences.c:292 msgid "Difficulty" msgstr "" #: src/gui-preferences.c:294 msgid "Difficulty (next game)" msgstr "" #: src/gui-preferences.c:298 msgid "Easy" msgstr "" #: src/gui-preferences.c:300 msgid "Medium" msgstr "" #: src/gui-preferences.c:302 msgid "Hard" msgstr "" #. Automatic Pause Frame - Constructor #: src/gui-preferences.c:346 msgid "Automatic Pause" msgstr "" #: src/gui-preferences.c:348 msgid "When we lose keyboard focus" msgstr "" #: src/gui-preferences.c:349 msgid "When the mouse pointer leaves the play window" msgstr "" #: src/gui-preferences.c:350 msgid "When the preferences dialog is active" msgstr "" #: src/gui-preferences.c:378 msgid "Hide the pointer" msgstr "" #. Bounce Entropy - Constructor #: src/gui-preferences.c:390 msgid "Bounce Entropy (Experimental): " msgstr "" #: src/gui-preferences.c:467 msgid "Control" msgstr "" #. Method Frame and Radio Buttons #: src/gui-preferences.c:475 msgid "Method" msgstr "" #: src/gui-preferences.c:479 msgid "Keyboard" msgstr "" #: src/gui-preferences.c:481 msgid "Mouse" msgstr "" #. Bat speed #: src/gui-preferences.c:501 msgid "Bat speed: " msgstr "" #. Keybindings Frame #: src/gui-preferences.c:521 msgid "Keybindings" msgstr "" #: src/gui-preferences.c:531 msgid "Left:" msgstr "" #: src/gui-preferences.c:548 msgid "Right:" msgstr "" #: src/gui-preferences.c:565 msgid "Fire One:" msgstr "" #: src/gui-preferences.c:582 msgid "Fire Two:" msgstr "" #: src/flags.c:123 msgid "Difficulty in config files is an incorrect value, resetting to defaults" msgstr "" #: src/flags.c:153 msgid "" "Both keyboard control and mouse control are TRUE in user preferences, " "resetting to defaults" msgstr "" #: src/flags.c:158 msgid "" "Neither keyboard control or mouse control are TRUE in user preferences, " "resetting to defaults" msgstr "" #: src/flags.c:178 msgid "Bat speed is lower than allowed range, setting to lowest" msgstr "" #: src/flags.c:182 msgid "Bat speed is higher than allowed range, setting to highest" msgstr "" #: src/flags.c:188 msgid "Bounce entropy is lower than allowed range, setting to lowest" msgstr "" #: src/flags.c:192 msgid "Bounce entropy is higher than allowed range, setting to highest" msgstr "" gnome-breakout-0.5.3/po/ru.po0000664000175000017500000001524610052645511012774 00000000000000# Copyright (C) 2000 Free Software Foundation, Inc. # Valek Filippov , 2000. # msgid "" msgstr "" "Project-Id-Version: Gnome-Breakout\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2004-05-19 21:55+1000\n" "PO-Revision-Date: 2000-04-04 21:25+04:00\n" "Last-Translator: Valek Filippov \n" "Language-Team: Russian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=koi8-r\n" "Content-Transfer-Encoding: 8-bit\n" #: src/gui.c:33 src/gui-callbacks.c:86 msgid "GNOME Breakout" msgstr "GNOME Breakout" #: src/gui.c:130 msgid "Score: 0" msgstr ": 0" #: src/gui.c:132 msgid "Lives: 0" msgstr ": 0" #: src/gui.c:186 #, fuzzy, c-format msgid "No: %d" msgstr ": %d" #: src/gui.c:191 #, c-format msgid "Name: %s" msgstr "" #: src/gui.c:192 #, c-format msgid "Author: %s" msgstr "" #: src/gui.c:193 #, fuzzy, c-format msgid "Levelfile: %s" msgstr ": %d" #: src/gui.c:195 src/gui.c:404 #, fuzzy msgid "Name:" msgstr "" #: src/gui.c:196 src/gui.c:405 msgid "Author:" msgstr "" #: src/gui.c:197 #, fuzzy msgid "Filename:" msgstr " 1:" #: src/gui.c:211 #, c-format msgid "Score: %d" msgstr ": %d" #: src/gui.c:218 #, c-format msgid "Lives: %d" msgstr ": %d" #. FIXME: Remove this when appropriate #: src/gui.c:236 msgid "_Kill ball" msgstr " " #: src/gui.c:237 msgid "Kill the current ball if it gets stuck" msgstr " gets stuck" #: src/gui.c:311 msgid "GNOME Breakout: You win!" msgstr "GNOME Breakout: !" #: src/gui.c:314 msgid "GNOME Breakout: You lose!" msgstr "GNOME Breakout: !" #: src/gui.c:403 msgid "No:" msgstr "" #: src/gui.c:406 #, fuzzy msgid "Levelfile:" msgstr ": 0" #: src/gui-callbacks.c:69 msgid "The classic arcade game Breakout." msgstr "" #: src/gui-callbacks.c:72 msgid "translator credits" msgstr "" #. name #. version #: src/gui-callbacks.c:88 #, fuzzy msgid "Copyright (c) 2000-2003 Michael Pearson" msgstr " () 2000 Michael Pearson" #. FIXME!! #: src/gui-callbacks.c:206 msgid "Help hasn't been implimented yet. So go ahead and write some for me :)" msgstr "" " . - " " :-)" #: src/gui-callbacks.c:257 msgid "GNOME Breakout: Scores" msgstr "GNOME Breakout: " #: src/gui-preferences.c:148 msgid "GNOME Breakout Preferences" msgstr " GNOME Breakout" #. Vbox and Tablabel - Constructor #: src/gui-preferences.c:201 msgid "Game" msgstr "" #: src/gui-preferences.c:218 #, fuzzy msgid "Levels" msgstr ": 0" #: src/gui-preferences.c:226 msgid "Add" msgstr "" #: src/gui-preferences.c:227 msgid "Remove" msgstr "" #: src/gui-preferences.c:292 msgid "Difficulty" msgstr "" #: src/gui-preferences.c:294 msgid "Difficulty (next game)" msgstr " ( )" #: src/gui-preferences.c:298 msgid "Easy" msgstr "" #: src/gui-preferences.c:300 msgid "Medium" msgstr "" #: src/gui-preferences.c:302 msgid "Hard" msgstr "" #. Automatic Pause Frame - Constructor #: src/gui-preferences.c:346 msgid "Automatic Pause" msgstr "" #: src/gui-preferences.c:348 msgid "When we lose keyboard focus" msgstr "" #: src/gui-preferences.c:349 msgid "When the mouse pointer leaves the play window" msgstr "" #: src/gui-preferences.c:350 msgid "When the preferences dialog is active" msgstr "" #: src/gui-preferences.c:378 msgid "Hide the pointer" msgstr "" #. Bounce Entropy - Constructor #: src/gui-preferences.c:390 msgid "Bounce Entropy (Experimental): " msgstr "" #: src/gui-preferences.c:467 msgid "Control" msgstr "" #. Method Frame and Radio Buttons #: src/gui-preferences.c:475 msgid "Method" msgstr "" #: src/gui-preferences.c:479 msgid "Keyboard" msgstr "" #: src/gui-preferences.c:481 msgid "Mouse" msgstr "" #. Bat speed #: src/gui-preferences.c:501 msgid "Bat speed: " msgstr " : " #. Keybindings Frame #: src/gui-preferences.c:521 msgid "Keybindings" msgstr " " #: src/gui-preferences.c:531 msgid "Left:" msgstr ":" #: src/gui-preferences.c:548 msgid "Right:" msgstr ":" #: src/gui-preferences.c:565 msgid "Fire One:" msgstr " 1:" #: src/gui-preferences.c:582 msgid "Fire Two:" msgstr " 2:" #: src/flags.c:123 msgid "Difficulty in config files is an incorrect value, resetting to defaults" msgstr "" "\"\" - , " " " #: src/flags.c:153 msgid "" "Both keyboard control and mouse control are TRUE in user preferences, " "resetting to defaults" msgstr "" " , " " ." #: src/flags.c:158 msgid "" "Neither keyboard control or mouse control are TRUE in user preferences, " "resetting to defaults" msgstr "" " , " " ." #: src/flags.c:178 msgid "Bat speed is lower than allowed range, setting to lowest" msgstr " \" , " #: src/flags.c:182 msgid "Bat speed is higher than allowed range, setting to highest" msgstr " , " #: src/flags.c:188 #, fuzzy msgid "Bounce entropy is lower than allowed range, setting to lowest" msgstr " \" , " #: src/flags.c:192 #, fuzzy msgid "Bounce entropy is higher than allowed range, setting to highest" msgstr " , " #, fuzzy #~ msgid "" #~ "The classic arcade game Breakout. Written for my cat, Marmalade. (Hi, " #~ "Jason! Hi, Matt! Hi, JV! Hi, Joe! Hi, Tom! Hi, Richard!)\n" #~ " \n" #~ "This, if you haven't guessed yet, is a development release. Send " #~ "bugreports and comments to alcaron@senet.com.au, but check to see if they " #~ "haven't already been listed in TODO or BUGS.\n" #~ " \n" #~ "Also, I've noticed a couple of segfaults that seem to happen randomly, " #~ "and I'm having trouble reproducing them. So run this under gdb, and if it " #~ "dies, send me the backtrace." #~ msgstr "" #~ " \"Breakout\". - " #~ ".\n" #~ "\n" #~ ", , . " #~ " alcaron@senet.com.au, " #~ " TODO BUGS.\n" #~ "\n" #~ " segfault, " #~ " . gdb " #~ " , backtrace." #~ msgid "Pause on loss of focus" #~ msgstr " " gnome-breakout-0.5.3/po/tr.po0000664000175000017500000001531210052645512012766 00000000000000# ------------------------------------------------------- # Copyright (C) 2000 Free Software Foundation, Inc. # Fatih Demir , 2000. # msgid "" msgstr "" "Project-Id-Version: gnome-breakout 0.4\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2004-05-19 21:55+1000\n" "PO-Revision-Date: 2000-04-19 23:59+0100\n" "Last-Translator: Fatih Demir \n" "Language-Team: Turkish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=iso-8859-9\n" "Content-Transfer-Encoding: 8bit\n" #: src/gui.c:33 src/gui-callbacks.c:86 msgid "GNOME Breakout" msgstr "Gnome Breakout" #: src/gui.c:130 msgid "Score: 0" msgstr "Puan : 0" #: src/gui.c:132 msgid "Lives: 0" msgstr "Hayat : 0" #: src/gui.c:186 #, fuzzy, c-format msgid "No: %d" msgstr "Puan : %d" #: src/gui.c:191 #, c-format msgid "Name: %s" msgstr "" #: src/gui.c:192 #, c-format msgid "Author: %s" msgstr "" #: src/gui.c:193 #, fuzzy, c-format msgid "Levelfile: %s" msgstr "Seviye : %d" #: src/gui.c:195 src/gui.c:404 #, fuzzy msgid "Name:" msgstr "Oyun" #: src/gui.c:196 src/gui.c:405 msgid "Author:" msgstr "" #: src/gui.c:197 #, fuzzy msgid "Filename:" msgstr "Atele (1) :" #: src/gui.c:211 #, c-format msgid "Score: %d" msgstr "Puan : %d" #: src/gui.c:218 #, c-format msgid "Lives: %d" msgstr "Hayat : %d" #. FIXME: Remove this when appropriate #: src/gui.c:236 msgid "_Kill ball" msgstr "_Topu ldr" #: src/gui.c:237 msgid "Kill the current ball if it gets stuck" msgstr "Geerli topu ldr" #: src/gui.c:311 msgid "GNOME Breakout: You win!" msgstr "Gnome Breakout : Sen kazandn !" #: src/gui.c:314 msgid "GNOME Breakout: You lose!" msgstr "Gnome Breakout : Sen kaybettin !" #: src/gui.c:403 msgid "No:" msgstr "" #: src/gui.c:406 #, fuzzy msgid "Levelfile:" msgstr "Seviye : 0" #: src/gui-callbacks.c:69 msgid "The classic arcade game Breakout." msgstr "" #: src/gui-callbacks.c:72 msgid "translator credits" msgstr "" #. name #. version #: src/gui-callbacks.c:88 #, fuzzy msgid "Copyright (c) 2000-2003 Michael Pearson" msgstr "Tel'if hakk (C) 2000 Michael Pearson" #. FIXME!! #: src/gui-callbacks.c:206 msgid "Help hasn't been implimented yet. So go ahead and write some for me :)" msgstr "u ana kadar yardm yazlmamtr . Yardm edebilirsen , et :)" #: src/gui-callbacks.c:257 msgid "GNOME Breakout: Scores" msgstr "Gnome Breakout : Puanlar " #: src/gui-preferences.c:148 msgid "GNOME Breakout Preferences" msgstr "Gnome Breakout ayarlar" #. Vbox and Tablabel - Constructor #: src/gui-preferences.c:201 msgid "Game" msgstr "Oyun" #: src/gui-preferences.c:218 #, fuzzy msgid "Levels" msgstr "Seviye : 0" #: src/gui-preferences.c:226 msgid "Add" msgstr "" #: src/gui-preferences.c:227 msgid "Remove" msgstr "" #: src/gui-preferences.c:292 msgid "Difficulty" msgstr "Zorluk derecesi" #: src/gui-preferences.c:294 msgid "Difficulty (next game)" msgstr "Zorluk derecesi ( nmzdeki oyun )" #: src/gui-preferences.c:298 msgid "Easy" msgstr "Kolay" #: src/gui-preferences.c:300 msgid "Medium" msgstr "Vasat" #: src/gui-preferences.c:302 msgid "Hard" msgstr "Zor" #. Automatic Pause Frame - Constructor #: src/gui-preferences.c:346 msgid "Automatic Pause" msgstr "" #: src/gui-preferences.c:348 msgid "When we lose keyboard focus" msgstr "" #: src/gui-preferences.c:349 msgid "When the mouse pointer leaves the play window" msgstr "" #: src/gui-preferences.c:350 msgid "When the preferences dialog is active" msgstr "" #: src/gui-preferences.c:378 msgid "Hide the pointer" msgstr "" #. Bounce Entropy - Constructor #: src/gui-preferences.c:390 msgid "Bounce Entropy (Experimental): " msgstr "" #: src/gui-preferences.c:467 msgid "Control" msgstr "Ynetim" #. Method Frame and Radio Buttons #: src/gui-preferences.c:475 msgid "Method" msgstr "" #: src/gui-preferences.c:479 msgid "Keyboard" msgstr "Klavye" #: src/gui-preferences.c:481 msgid "Mouse" msgstr "Fare" #. Bat speed #: src/gui-preferences.c:501 msgid "Bat speed: " msgstr "Vurma hz :" #. Keybindings Frame #: src/gui-preferences.c:521 msgid "Keybindings" msgstr "Tu balar" #: src/gui-preferences.c:531 msgid "Left:" msgstr "Sol :" #: src/gui-preferences.c:548 msgid "Right:" msgstr "Sa :" #: src/gui-preferences.c:565 msgid "Fire One:" msgstr "Atele (1) :" #: src/gui-preferences.c:582 msgid "Fire Two:" msgstr "Atele (2) :" #: src/flags.c:123 msgid "Difficulty in config files is an incorrect value, resetting to defaults" msgstr "" "Ayar dosyalarndaki zorluk seviyesi ayar yanl, nayarl deerlere geri " "dnyorum ." #: src/flags.c:153 msgid "" "Both keyboard control and mouse control are TRUE in user preferences, " "resetting to defaults" msgstr "" "Klavye ve fare kontrl belirlenmi ; bu akl ii deildir .nayarlar " "ntanml deerlere geri alyorum ." #: src/flags.c:158 msgid "" "Neither keyboard control or mouse control are TRUE in user preferences, " "resetting to defaults" msgstr "" "Klavye yada fare kontrl belirlenmemi ; bu akl ii deildir .nayarlar " "ntanml deerlere geri alyorum " #: src/flags.c:178 msgid "Bat speed is lower than allowed range, setting to lowest" msgstr "Vuru hz olaandan dk, en dn ayarlyorum" #: src/flags.c:182 msgid "Bat speed is higher than allowed range, setting to highest" msgstr "Vuru hz olaandan yksek, en ykseini ayarlyorum" #: src/flags.c:188 #, fuzzy msgid "Bounce entropy is lower than allowed range, setting to lowest" msgstr "Vuru hz olaandan dk, en dn ayarlyorum" #: src/flags.c:192 #, fuzzy msgid "Bounce entropy is higher than allowed range, setting to highest" msgstr "Vuru hz olaandan yksek, en ykseini ayarlyorum" #, fuzzy #~ msgid "" #~ "The classic arcade game Breakout. Written for my cat, Marmalade. (Hi, " #~ "Jason! Hi, Matt! Hi, JV! Hi, Joe! Hi, Tom! Hi, Richard!)\n" #~ " \n" #~ "This, if you haven't guessed yet, is a development release. Send " #~ "bugreports and comments to alcaron@senet.com.au, but check to see if they " #~ "haven't already been listed in TODO or BUGS.\n" #~ " \n" #~ "Also, I've noticed a couple of segfaults that seem to happen randomly, " #~ "and I'm having trouble reproducing them. So run this under gdb, and if it " #~ "dies, send me the backtrace." #~ msgstr "" #~ "Breakout oyun klasiinin Gnome versiyonu . Benim kedim Marmalade iin " #~ "yazdm bunu.\n" #~ " \n" #~ "u ana kadar anlayamadnsa , bir gelimede olan bir oyun/uygulamadr ve " #~ "bundandolay her trl yardm ve destek yada hata raporlar ok ho " #~ "gelir .Ama gndermeden nce TODO ve BUGS dosyalarna bak .\n" #~ " \n" #~ "Ve : ben bazn ara sra bu oyunumun ktne tank oldum .Bu klerin " #~ "nedenini renemedim ; yle bir ke tank olursan mmkmsebana bir " #~ "gdb-veri dosyasn gnder ." #~ msgid "Pause on loss of focus" #~ msgstr "Foks kaybedince oyuna ara ver" gnome-breakout-0.5.3/po/de.po0000664000175000017500000001575310052645512012742 00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR Free Software Foundation, Inc. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2004-05-19 21:55+1000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: ENCODING\n" #: src/gui.c:33 src/gui-callbacks.c:86 msgid "GNOME Breakout" msgstr "GNOME Breakout" #: src/gui.c:130 msgid "Score: 0" msgstr "Punkte: 0" #: src/gui.c:132 msgid "Lives: 0" msgstr "Leben: 0" #: src/gui.c:186 #, fuzzy, c-format msgid "No: %d" msgstr "Punkte: %d" #: src/gui.c:191 #, c-format msgid "Name: %s" msgstr "" #: src/gui.c:192 #, c-format msgid "Author: %s" msgstr "" #: src/gui.c:193 #, fuzzy, c-format msgid "Levelfile: %s" msgstr "Ebene: %d" #: src/gui.c:195 src/gui.c:404 #, fuzzy msgid "Name:" msgstr "Spiel" #: src/gui.c:196 src/gui.c:405 msgid "Author:" msgstr "" #: src/gui.c:197 #, fuzzy msgid "Filename:" msgstr "Schiessen 1:" #: src/gui.c:211 #, c-format msgid "Score: %d" msgstr "Punkte: %d" #: src/gui.c:218 #, c-format msgid "Lives: %d" msgstr "Leben: %d" #. FIXME: Remove this when appropriate #: src/gui.c:236 msgid "_Kill ball" msgstr "Ball _zerstren" #: src/gui.c:237 msgid "Kill the current ball if it gets stuck" msgstr "" #: src/gui.c:311 msgid "GNOME Breakout: You win!" msgstr "GNOME Breakout: Sie haben gewonnen!" #: src/gui.c:314 msgid "GNOME Breakout: You lose!" msgstr "GNOME Breakout: Sie haben verloren!" #: src/gui.c:403 msgid "No:" msgstr "" #: src/gui.c:406 #, fuzzy msgid "Levelfile:" msgstr "Ebene: 0" #: src/gui-callbacks.c:69 msgid "The classic arcade game Breakout." msgstr "" #: src/gui-callbacks.c:72 msgid "translator credits" msgstr "" #. name #. version #: src/gui-callbacks.c:88 #, fuzzy msgid "Copyright (c) 2000-2003 Michael Pearson" msgstr "Copyright (c) 2000 Michael Pearson" #. FIXME!! #: src/gui-callbacks.c:206 msgid "Help hasn't been implimented yet. So go ahead and write some for me :)" msgstr "" "Die Hilfe ist noch nich verfgbar, also sein Sie so nett und schreiben mir " "eine :)" #: src/gui-callbacks.c:257 msgid "GNOME Breakout: Scores" msgstr "GNOME Breakout: Punkte" #: src/gui-preferences.c:148 msgid "GNOME Breakout Preferences" msgstr "GNOME Breakout Einstellungen" #. Vbox and Tablabel - Constructor #: src/gui-preferences.c:201 msgid "Game" msgstr "Spiel" #: src/gui-preferences.c:218 #, fuzzy msgid "Levels" msgstr "Ebene: 0" #: src/gui-preferences.c:226 msgid "Add" msgstr "" #: src/gui-preferences.c:227 msgid "Remove" msgstr "" #: src/gui-preferences.c:292 msgid "Difficulty" msgstr "Schwierigkeitsgrad" #: src/gui-preferences.c:294 msgid "Difficulty (next game)" msgstr "Schwierigkeitsgrad (nchstes Spiel)" #: src/gui-preferences.c:298 msgid "Easy" msgstr "Einfach" #: src/gui-preferences.c:300 msgid "Medium" msgstr "Mittel" #: src/gui-preferences.c:302 msgid "Hard" msgstr "Schwierig" #. Automatic Pause Frame - Constructor #: src/gui-preferences.c:346 msgid "Automatic Pause" msgstr "" #: src/gui-preferences.c:348 msgid "When we lose keyboard focus" msgstr "" #: src/gui-preferences.c:349 msgid "When the mouse pointer leaves the play window" msgstr "" #: src/gui-preferences.c:350 msgid "When the preferences dialog is active" msgstr "" #: src/gui-preferences.c:378 msgid "Hide the pointer" msgstr "" #. Bounce Entropy - Constructor #: src/gui-preferences.c:390 msgid "Bounce Entropy (Experimental): " msgstr "" #: src/gui-preferences.c:467 msgid "Control" msgstr "Steuerung" #. Method Frame and Radio Buttons #: src/gui-preferences.c:475 msgid "Method" msgstr "" #: src/gui-preferences.c:479 msgid "Keyboard" msgstr "Tastatur" #: src/gui-preferences.c:481 msgid "Mouse" msgstr "Maus" #. Bat speed #: src/gui-preferences.c:501 msgid "Bat speed: " msgstr "Schlger Geschwindigkeit" #. Keybindings Frame #: src/gui-preferences.c:521 msgid "Keybindings" msgstr "Tastenzuweisungen" #: src/gui-preferences.c:531 msgid "Left:" msgstr "Links:" #: src/gui-preferences.c:548 msgid "Right:" msgstr "Rechts:" #: src/gui-preferences.c:565 msgid "Fire One:" msgstr "Schiessen 1:" #: src/gui-preferences.c:582 msgid "Fire Two:" msgstr "Schiessen 2:" #: src/flags.c:123 msgid "Difficulty in config files is an incorrect value, resetting to defaults" msgstr "" "Die Schwierigkeitsstufe in der Konfigurationsdatei ist falsch. Benutze " "Standardeinstellungen." #: src/flags.c:153 msgid "" "Both keyboard control and mouse control are TRUE in user preferences, " "resetting to defaults" msgstr "" "Tastatur- und Mauskontrolle sind TRUE in der Konfigurationsdatei, Benutze " "Standardeinstellungen." #: src/flags.c:158 msgid "" "Neither keyboard control or mouse control are TRUE in user preferences, " "resetting to defaults" msgstr "" "Weder Tastatur- und noch Mauskontrolle sind TRUE in der Konfigurationsdatei, " "Benutze Standardeinstellungen." #: src/flags.c:178 msgid "Bat speed is lower than allowed range, setting to lowest" msgstr "" "Schlgergeschwindigkeit in der Konfigurationsdatei ist zu klein. Benutze " "kleinst mglich Einstellung" #: src/flags.c:182 msgid "Bat speed is higher than allowed range, setting to highest" msgstr "" "Schlgergeschwindigkeit in der Konfigurationsdatei ist zu gross. Benutze " "grsst mglich Einstellung" #: src/flags.c:188 #, fuzzy msgid "Bounce entropy is lower than allowed range, setting to lowest" msgstr "" "Schlgergeschwindigkeit in der Konfigurationsdatei ist zu klein. Benutze " "kleinst mglich Einstellung" #: src/flags.c:192 #, fuzzy msgid "Bounce entropy is higher than allowed range, setting to highest" msgstr "" "Schlgergeschwindigkeit in der Konfigurationsdatei ist zu gross. Benutze " "grsst mglich Einstellung" #, fuzzy #~ msgid "" #~ "The classic arcade game Breakout. Written for my cat, Marmalade. (Hi, " #~ "Jason! Hi, Matt! Hi, JV! Hi, Joe! Hi, Tom! Hi, Richard!)\n" #~ " \n" #~ "This, if you haven't guessed yet, is a development release. Send " #~ "bugreports and comments to alcaron@senet.com.au, but check to see if they " #~ "haven't already been listed in TODO or BUGS.\n" #~ " \n" #~ "Also, I've noticed a couple of segfaults that seem to happen randomly, " #~ "and I'm having trouble reproducing them. So run this under gdb, and if it " #~ "dies, send me the backtrace." #~ msgstr "" #~ "Das klassische Arkade Breakout. Geschrieben fr meine Katze Marmalade.\n" #~ " \n" #~ "Diese Version ist ein Entwickler Realease. Bitte informieren Sie mich ber " #~ "Fehler und Anregungen unter dieser Adresse , aber " #~ "bitte lesen Sie vorher die Texte TODO oder BUGS, um zu sehen ob die " #~ "Fehler oder Anregungen nicht schon bekannt sind.\n" #~ " \n" #~ "In unregelmssigen Abstnden knnen Speicherzugriffsfehler aufreten, bei " #~ "denen ich Schwierigkeiten habe sie nachzuvollziehen. Bitte starten Sie " #~ "das Programm unter gdb und schicken Sie mir das Ergebnis." #~ msgid "Pause on loss of focus" #~ msgstr "Pausieren bei Fokus verlust" gnome-breakout-0.5.3/po/sv.po0000664000175000017500000001564110052645512012776 00000000000000# Svenska meddelanden i Gnome-breakout. # Copyright (C) 2001 Free Software Foundation, Inc. # Bo Rosn , 2001. # msgid "" msgstr "" "Project-Id-Version: Gnome-breakout 0.5.2\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2004-05-19 21:55+1000\n" "PO-Revision-Date: 2001-05-17 14:02+02:00\n" "Last-Translator: Bo Rosen \n" "Language-Team: Swedish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=iso-8859-1\n" "Content-Transfer-Encoding: 8bit\n" #: src/gui.c:33 src/gui-callbacks.c:86 msgid "GNOME Breakout" msgstr "Gnome Breakout" #: src/gui.c:130 msgid "Score: 0" msgstr "Pong: 0" #: src/gui.c:132 msgid "Lives: 0" msgstr "Liv: 0" #: src/gui.c:186 #, c-format msgid "No: %d" msgstr "Nr: %d" #: src/gui.c:191 #, c-format msgid "Name: %s" msgstr "Namn: %s" #: src/gui.c:192 #, c-format msgid "Author: %s" msgstr "Frfattare: %s" #: src/gui.c:193 #, c-format msgid "Levelfile: %s" msgstr "Banfil: %s" #: src/gui.c:195 src/gui.c:404 msgid "Name:" msgstr "Namn" #: src/gui.c:196 src/gui.c:405 msgid "Author:" msgstr "Frfattare" #: src/gui.c:197 msgid "Filename:" msgstr "Filnamn:" #: src/gui.c:211 #, c-format msgid "Score: %d" msgstr "Pong: %d" #: src/gui.c:218 #, c-format msgid "Lives: %d" msgstr "Liv: %d" #. FIXME: Remove this when appropriate #: src/gui.c:236 msgid "_Kill ball" msgstr "_Dda bollen" #: src/gui.c:237 msgid "Kill the current ball if it gets stuck" msgstr "Dda den aktuella bollen om den fastnar" #: src/gui.c:311 msgid "GNOME Breakout: You win!" msgstr "Gnome breakout: Du vann!" #: src/gui.c:314 msgid "GNOME Breakout: You lose!" msgstr "Gnome breakout: Du frlorade!" #: src/gui.c:403 msgid "No:" msgstr "Antal:" #: src/gui.c:406 msgid "Levelfile:" msgstr "Banfil:" #: src/gui-callbacks.c:69 msgid "The classic arcade game Breakout." msgstr "" #: src/gui-callbacks.c:72 msgid "translator credits" msgstr "" #. name #. version #: src/gui-callbacks.c:88 #, fuzzy msgid "Copyright (c) 2000-2003 Michael Pearson" msgstr "Copyright (c) 2000 Michael Pearson" #. FIXME!! #: src/gui-callbacks.c:206 msgid "Help hasn't been implimented yet. So go ahead and write some for me :)" msgstr "Hjlpen r inte skriven n, s varsgod och skriv lite t mig :)" #: src/gui-callbacks.c:257 msgid "GNOME Breakout: Scores" msgstr "Gnome breakout: Hgsta pong" #: src/gui-preferences.c:148 msgid "GNOME Breakout Preferences" msgstr "Gnome breakout: Alternativ" #. Vbox and Tablabel - Constructor #: src/gui-preferences.c:201 msgid "Game" msgstr "Spel" #: src/gui-preferences.c:218 msgid "Levels" msgstr "Banor" #: src/gui-preferences.c:226 msgid "Add" msgstr "Lgg till" #: src/gui-preferences.c:227 msgid "Remove" msgstr "Ta bort" #: src/gui-preferences.c:292 msgid "Difficulty" msgstr "Niv" #: src/gui-preferences.c:294 msgid "Difficulty (next game)" msgstr "Niv p nsta spel" #: src/gui-preferences.c:298 msgid "Easy" msgstr "Ltt" #: src/gui-preferences.c:300 msgid "Medium" msgstr "Medel" #: src/gui-preferences.c:302 msgid "Hard" msgstr "Svrt" #. Automatic Pause Frame - Constructor #: src/gui-preferences.c:346 msgid "Automatic Pause" msgstr "Pausa automatiskt" #: src/gui-preferences.c:348 msgid "When we lose keyboard focus" msgstr "Nr vi frlorar tangentbordsfokus" #: src/gui-preferences.c:349 msgid "When the mouse pointer leaves the play window" msgstr "Nr muspekaren kommer utanfr spelfnstret" #: src/gui-preferences.c:350 msgid "When the preferences dialog is active" msgstr "Nr dialogrutan fr instllingar r ppen" #: src/gui-preferences.c:378 msgid "Hide the pointer" msgstr "Gm muspekaren" #. Bounce Entropy - Constructor #: src/gui-preferences.c:390 msgid "Bounce Entropy (Experimental): " msgstr "Studsentropi (experimentellt): " #: src/gui-preferences.c:467 msgid "Control" msgstr "Kontroll" #. Method Frame and Radio Buttons #: src/gui-preferences.c:475 msgid "Method" msgstr "Metod" #: src/gui-preferences.c:479 msgid "Keyboard" msgstr "Tangentbord" #: src/gui-preferences.c:481 msgid "Mouse" msgstr "Mus" #. Bat speed #: src/gui-preferences.c:501 msgid "Bat speed: " msgstr "Rackethastighet:" #. Keybindings Frame #: src/gui-preferences.c:521 msgid "Keybindings" msgstr "Snabbtangenter" #: src/gui-preferences.c:531 msgid "Left:" msgstr "Vnster:" #: src/gui-preferences.c:548 msgid "Right:" msgstr "Hger:" #: src/gui-preferences.c:565 msgid "Fire One:" msgstr "Knapp ett:" #: src/gui-preferences.c:582 msgid "Fire Two:" msgstr "Knapp tv:" #: src/flags.c:123 msgid "Difficulty in config files is an incorrect value, resetting to defaults" msgstr "" "Nivn i konfigurationsfilerna har felaktigt vrde, tergr till standard" #: src/flags.c:153 msgid "" "Both keyboard control and mouse control are TRUE in user preferences, " "resetting to defaults" msgstr "" "Bde tangentbord och mus r valda som kontroll i instllningarna, tergr " "till standard" #: src/flags.c:158 msgid "" "Neither keyboard control or mouse control are TRUE in user preferences, " "resetting to defaults" msgstr "" "Varken tangentbord eller mus r valt som kontroll, tergr till standard" #: src/flags.c:178 msgid "Bat speed is lower than allowed range, setting to lowest" msgstr "Rackethastigheten r lgre n lgsta tilltna, anvnder lgsta " #: src/flags.c:182 msgid "Bat speed is higher than allowed range, setting to highest" msgstr "Rackethastigheten r hgre n hgsta tilltna, anvnder hgsta" #: src/flags.c:188 msgid "Bounce entropy is lower than allowed range, setting to lowest" msgstr "Studsentropi r lgre n lgst tilltna, anvnder lgsta" #: src/flags.c:192 msgid "Bounce entropy is higher than allowed range, setting to highest" msgstr "Studsentropi r hgre n hgst tilltna, anvnder hgsta" #~ msgid "" #~ "The classic arcade game Breakout. Written for my cat, Marmalade. (Hi, " #~ "Jason! Hi, Matt! Hi, JV! Hi, Joe! Hi, Tom! Hi, Richard!)\n" #~ " \n" #~ "This, if you haven't guessed yet, is a development release. Send " #~ "bugreports and comments to alcaron@senet.com.au, but check to see if they " #~ "haven't already been listed in TODO or BUGS.\n" #~ " \n" #~ "Also, I've noticed a couple of segfaults that seem to happen randomly, " #~ "and I'm having trouble reproducing them. So run this under gdb, and if it " #~ "dies, send me the backtrace." #~ msgstr "" #~ "Det klassiska arkadspelet Breakout, skrivet till min katt, Marmelade.\n" #~ "(Hej, Jason! Hej, Matt! Hej, JV! Hej, Joe! Hej, Tom! Hej, Richard!)\n" #~ "Om du inte hade gissat det redan r detta en utvecklingsversion. Skicka \n" #~ "felrapporter och kommentarer till alcaronet@snt.com.au, men kolla att det " #~ "inte\n" #~ "redan str i TODO eller BUGS.\n" #~ "\n" #~ "Dessutom har lagt mrke till ngra segfaults som tycks upptrda " #~ "slumpmssigt och jag har problem att upprepa dem. S, kr det hr under " #~ "gdb och om det dr, skicka mig en backtrace.>" #~ msgid "" #~ "Levels cannot be added or removed\n" #~ "while the game is running." #~ msgstr "" #~ "Banor kan inte lggas till eller\n" #~ "tas bort medan spelet r igng." gnome-breakout-0.5.3/po/ru.gmo0000664000175000017500000000520510052645512013133 00000000000000!$/,:8$ ][i G7 < FP_zF !&*Q Wajq]w  8@3At\ & 1;TV  < A OH  $     a b j s {  !     Bat speed is higher than allowed range, setting to highestBat speed is lower than allowed range, setting to lowestBat speed: Both keyboard control and mouse control are TRUE in user preferences, resetting to defaultsControlDifficultyDifficulty (next game)Difficulty in config files is an incorrect value, resetting to defaultsEasyFire One:Fire Two:GNOME BreakoutGNOME Breakout PreferencesGNOME Breakout: ScoresGNOME Breakout: You lose!GNOME Breakout: You win!GameHardHelp hasn't been implimented yet. So go ahead and write some for me :)KeybindingsKeyboardKill the current ball if it gets stuckLeft:Lives: %dLives: 0MediumMouseNeither keyboard control or mouse control are TRUE in user preferences, resetting to defaultsRight:Score: %dScore: 0_Kill ballProject-Id-Version: Gnome-Breakout Report-Msgid-Bugs-To: POT-Creation-Date: 2004-05-19 21:55+1000 PO-Revision-Date: 2000-04-04 21:25+04:00 Last-Translator: Valek Filippov Language-Team: Russian MIME-Version: 1.0 Content-Type: text/plain; charset=koi8-r Content-Transfer-Encoding: 8-bit , " , : , . ( )"" - , 1: 2:GNOME Breakout GNOME BreakoutGNOME Breakout: GNOME Breakout: !GNOME Breakout: ! . - :-) gets stuck:: %d: 0 , .:: %d: 0 gnome-breakout-0.5.3/po/tr.gmo0000664000175000017500000000517010052645512013133 00000000000000!$/,:8$ ][i G7 < FP_zF !&*Q Wajq]w  @5;3q j%#5UY    1 Q V >Z      m S Y c l  !     Bat speed is higher than allowed range, setting to highestBat speed is lower than allowed range, setting to lowestBat speed: Both keyboard control and mouse control are TRUE in user preferences, resetting to defaultsControlDifficultyDifficulty (next game)Difficulty in config files is an incorrect value, resetting to defaultsEasyFire One:Fire Two:GNOME BreakoutGNOME Breakout PreferencesGNOME Breakout: ScoresGNOME Breakout: You lose!GNOME Breakout: You win!GameHardHelp hasn't been implimented yet. So go ahead and write some for me :)KeybindingsKeyboardKill the current ball if it gets stuckLeft:Lives: %dLives: 0MediumMouseNeither keyboard control or mouse control are TRUE in user preferences, resetting to defaultsRight:Score: %dScore: 0_Kill ballProject-Id-Version: gnome-breakout 0.4 Report-Msgid-Bugs-To: POT-Creation-Date: 2004-05-19 21:55+1000 PO-Revision-Date: 2000-04-19 23:59+0100 Last-Translator: Fatih Demir Language-Team: Turkish MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-9 Content-Transfer-Encoding: 8bit Vuru hz olaandan yksek, en ykseini ayarlyorumVuru hz olaandan dk, en dn ayarlyorumVurma hz :Klavye ve fare kontrl belirlenmi ; bu akl ii deildir .nayarlar ntanml deerlere geri alyorum .YnetimZorluk derecesiZorluk derecesi ( nmzdeki oyun )Ayar dosyalarndaki zorluk seviyesi ayar yanl, nayarl deerlere geri dnyorum .KolayAtele (1) :Atele (2) :Gnome BreakoutGnome Breakout ayarlarGnome Breakout : Puanlar Gnome Breakout : Sen kaybettin !Gnome Breakout : Sen kazandn !OyunZoru ana kadar yardm yazlmamtr . Yardm edebilirsen , et :)Tu balarKlavyeGeerli topu ldrSol :Hayat : %dHayat : 0VasatFareKlavye yada fare kontrl belirlenmemi ; bu akl ii deildir .nayarlar ntanml deerlere geri alyorum Sa :Puan : %dPuan : 0_Topu ldrgnome-breakout-0.5.3/po/de.gmo0000664000175000017500000000526210052645512013100 00000000000000 +:8 =[I G  &0?ZqF   #*]0  ;`bP` ,6"I]l   #/ #S w } Q       k        Bat speed is higher than allowed range, setting to highestBat speed is lower than allowed range, setting to lowestBat speed: Both keyboard control and mouse control are TRUE in user preferences, resetting to defaultsControlDifficultyDifficulty (next game)Difficulty in config files is an incorrect value, resetting to defaultsEasyFire One:Fire Two:GNOME BreakoutGNOME Breakout PreferencesGNOME Breakout: ScoresGNOME Breakout: You lose!GNOME Breakout: You win!GameHardHelp hasn't been implimented yet. So go ahead and write some for me :)KeybindingsKeyboardLeft:Lives: %dLives: 0MediumMouseNeither keyboard control or mouse control are TRUE in user preferences, resetting to defaultsRight:Score: %dScore: 0_Kill ballProject-Id-Version: PACKAGE VERSION Report-Msgid-Bugs-To: POT-Creation-Date: 2004-05-19 21:55+1000 PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE Last-Translator: FULL NAME Language-Team: LANGUAGE MIME-Version: 1.0 Content-Type: text/plain; charset=CHARSET Content-Transfer-Encoding: ENCODING Schlgergeschwindigkeit in der Konfigurationsdatei ist zu gross. Benutze grsst mglich EinstellungSchlgergeschwindigkeit in der Konfigurationsdatei ist zu klein. Benutze kleinst mglich EinstellungSchlger GeschwindigkeitTastatur- und Mauskontrolle sind TRUE in der Konfigurationsdatei, Benutze Standardeinstellungen.SteuerungSchwierigkeitsgradSchwierigkeitsgrad (nchstes Spiel)Die Schwierigkeitsstufe in der Konfigurationsdatei ist falsch. Benutze Standardeinstellungen.EinfachSchiessen 1:Schiessen 2:GNOME BreakoutGNOME Breakout EinstellungenGNOME Breakout: PunkteGNOME Breakout: Sie haben verloren!GNOME Breakout: Sie haben gewonnen!SpielSchwierigDie Hilfe ist noch nich verfgbar, also sein Sie so nett und schreiben mir eine :)TastenzuweisungenTastaturLinks:Leben: %dLeben: 0MittelMausWeder Tastatur- und noch Mauskontrolle sind TRUE in der Konfigurationsdatei, Benutze Standardeinstellungen.Rechts:Punkte: %dPunkte: 0Ball _zerstrengnome-breakout-0.5.3/po/sv.gmo0000664000175000017500000000746210052645512013144 000000000000006I| :8 <[H?=B JUGl   2KPFU &   ")06<]E -%# ? AJ   > ? A WR  8 8 < E J H]       / H M @S   '   #',H5~ *)! % *")' &#2 (631$%.40,-/ 5!+  AddAuthor:Author: %sAutomatic PauseBat speed is higher than allowed range, setting to highestBat speed is lower than allowed range, setting to lowestBat speed: Both keyboard control and mouse control are TRUE in user preferences, resetting to defaultsBounce Entropy (Experimental): Bounce entropy is higher than allowed range, setting to highestBounce entropy is lower than allowed range, setting to lowestControlDifficultyDifficulty (next game)Difficulty in config files is an incorrect value, resetting to defaultsEasyFilename:Fire One:Fire Two:GNOME BreakoutGNOME Breakout PreferencesGNOME Breakout: ScoresGNOME Breakout: You lose!GNOME Breakout: You win!GameHardHelp hasn't been implimented yet. So go ahead and write some for me :)Hide the pointerKeybindingsKeyboardKill the current ball if it gets stuckLeft:Levelfile:Levelfile: %sLevelsLives: %dLives: 0MediumMethodMouseName:Name: %sNeither keyboard control or mouse control are TRUE in user preferences, resetting to defaultsNo:No: %dRemoveRight:Score: %dScore: 0When the mouse pointer leaves the play windowWhen the preferences dialog is activeWhen we lose keyboard focus_Kill ballProject-Id-Version: Gnome-breakout 0.5.2 Report-Msgid-Bugs-To: POT-Creation-Date: 2004-05-19 21:55+1000 PO-Revision-Date: 2001-05-17 14:02+02:00 Last-Translator: Bo Rosen Language-Team: Swedish MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit Lgg tillFrfattareFrfattare: %sPausa automatisktRackethastigheten r hgre n hgsta tilltna, anvnder hgstaRackethastigheten r lgre n lgsta tilltna, anvnder lgsta Rackethastighet:Bde tangentbord och mus r valda som kontroll i instllningarna, tergr till standardStudsentropi (experimentellt): Studsentropi r hgre n hgst tilltna, anvnder hgstaStudsentropi r lgre n lgst tilltna, anvnder lgstaKontrollNivNiv p nsta spelNivn i konfigurationsfilerna har felaktigt vrde, tergr till standardLttFilnamn:Knapp ett:Knapp tv:Gnome BreakoutGnome breakout: AlternativGnome breakout: Hgsta pongGnome breakout: Du frlorade!Gnome breakout: Du vann!SpelSvrtHjlpen r inte skriven n, s varsgod och skriv lite t mig :)Gm muspekarenSnabbtangenterTangentbordDda den aktuella bollen om den fastnarVnster:Banfil:Banfil: %sBanorLiv: %dLiv: 0MedelMetodMusNamnNamn: %sVarken tangentbord eller mus r valt som kontroll, tergr till standardAntal:Nr: %dTa bortHger:Pong: %dPong: 0Nr muspekaren kommer utanfr spelfnstretNr dialogrutan fr instllingar r ppenNr vi frlorar tangentbordsfokus_Dda bollengnome-breakout-0.5.3/src/0000777000175000017500000000000010052645512012232 500000000000000gnome-breakout-0.5.3/src/Makefile.in0000664000175000017500000002106010052645512014214 00000000000000# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am # Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. SHELL = @SHELL@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ prefix = @prefix@ exec_prefix = @exec_prefix@ bindir = @bindir@ sbindir = @sbindir@ libexecdir = @libexecdir@ datadir = @datadir@ sysconfdir = @sysconfdir@ sharedstatedir = @sharedstatedir@ localstatedir = @localstatedir@ libdir = @libdir@ infodir = @infodir@ mandir = @mandir@ includedir = @includedir@ oldincludedir = /usr/include DESTDIR = pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = .. ACLOCAL = @ACLOCAL@ AUTOCONF = @AUTOCONF@ AUTOMAKE = @AUTOMAKE@ AUTOHEADER = @AUTOHEADER@ INSTALL = @INSTALL@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) INSTALL_DATA = @INSTALL_DATA@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ transform = @program_transform_name@ NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : host_alias = @host_alias@ host_triplet = @host@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CFLAGS = @CFLAGS@ CPPFLAGS = @CPPFLAGS@ DATADIRNAME = @DATADIRNAME@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GNOMEUI_CFLAGS = @GNOMEUI_CFLAGS@ GNOMEUI_LIBS = @GNOMEUI_LIBS@ HAVE_LIB = @HAVE_LIB@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ LDFLAGS = @LDFLAGS@ LIB = @LIB@ LTLIB = @LTLIB@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MKINSTALLDIRS = @MKINSTALLDIRS@ PACKAGE = @PACKAGE@ PKG_CONFIG = @PKG_CONFIG@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ WARN_CXXFLAGS = @WARN_CXXFLAGS@ INCLUDES = -I$(top_srcdir) -I$(includedir) $(GNOMEUI_CFLAGS) -DGNOMELOCALEDIR=\""$(datadir)/locale"\" -DG_LOG_DOMAIN=\"gnome-breakout\" -DPIXMAPDIR=\"$(datadir)/gnome-breakout/pixmaps\" -DLEVELDIR=\"$(datadir)/gnome-breakout/levels\" -DGNOME_DISABLE_DEPRECATED -DGTK_DISABLE_DEPRECATED -DGDK_PIXBUF_DISABLE_DEPRECATED -DG_DISABLE_DEPRECATED -Werror bin_PROGRAMS = gnome-breakout gnome_breakout_SOURCES = anim.c anim.h animloc.h ball.c ball.h bat.c bat.h block.c block.h collision.c collision.h flags.c flags.h game.c game.h gnome-breakout.c breakout.h gui.c gui.h gui-callbacks.c gui-callbacks.h gui-preferences.c gui-preferences.h leveldata.c leveldata.h powerup.c powerup.h util.c util.h gnome_breakout_LDADD = $(GNOMEUI_LIBS) $(INTLLIBS) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_CLEAN_FILES = PROGRAMS = $(bin_PROGRAMS) DEFS = @DEFS@ -I. -I$(srcdir) LIBS = @LIBS@ gnome_breakout_OBJECTS = anim.o ball.o bat.o block.o collision.o \ flags.o game.o gnome-breakout.o gui.o gui-callbacks.o gui-preferences.o \ leveldata.o powerup.o util.o gnome_breakout_DEPENDENCIES = gnome_breakout_LDFLAGS = COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ DIST_COMMON = ChangeLog Makefile.am Makefile.in DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) TAR = tar GZIP_ENV = --best SOURCES = $(gnome_breakout_SOURCES) OBJECTS = $(gnome_breakout_OBJECTS) all: all-redirect .SUFFIXES: .SUFFIXES: .S .c .o .s $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps src/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status cd $(top_builddir) \ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status mostlyclean-binPROGRAMS: clean-binPROGRAMS: -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS) distclean-binPROGRAMS: maintainer-clean-binPROGRAMS: install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) $(mkinstalldirs) $(DESTDIR)$(bindir) @list='$(bin_PROGRAMS)'; for p in $$list; do \ if test -f $$p; then \ echo " $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \ $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \ else :; fi; \ done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) list='$(bin_PROGRAMS)'; for p in $$list; do \ rm -f $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \ done .c.o: $(COMPILE) -c $< .s.o: $(COMPILE) -c $< .S.o: $(COMPILE) -c $< mostlyclean-compile: -rm -f *.o core *.core clean-compile: distclean-compile: -rm -f *.tab.c maintainer-clean-compile: gnome-breakout: $(gnome_breakout_OBJECTS) $(gnome_breakout_DEPENDENCIES) @rm -f gnome-breakout $(LINK) $(gnome_breakout_LDFLAGS) $(gnome_breakout_OBJECTS) $(gnome_breakout_LDADD) $(LIBS) tags: TAGS ID: $(HEADERS) $(SOURCES) $(LISP) list='$(SOURCES) $(HEADERS)'; \ unique=`for i in $$list; do echo $$i; done | \ awk ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ here=`pwd` && cd $(srcdir) \ && mkid -f$$here/ID $$unique $(LISP) TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS)'; \ unique=`for i in $$list; do echo $$i; done | \ awk ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ || (cd $(srcdir) && etags -o $$here/TAGS $(ETAGS_ARGS) $$tags $$unique $(LISP)) mostlyclean-tags: clean-tags: distclean-tags: -rm -f TAGS ID maintainer-clean-tags: distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) subdir = src distdir: $(DISTFILES) @for file in $(DISTFILES); do \ d=$(srcdir); \ if test -d $$d/$$file; then \ cp -pr $$d/$$file $(distdir)/$$file; \ else \ test -f $(distdir)/$$file \ || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ || cp -p $$d/$$file $(distdir)/$$file || :; \ fi; \ done info-am: info: info-am dvi-am: dvi: dvi-am check-am: all-am check: check-am installcheck-am: installcheck: installcheck-am install-exec-am: install-binPROGRAMS install-exec: install-exec-am install-data-am: install-data: install-data-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am install: install-am uninstall-am: uninstall-binPROGRAMS uninstall: uninstall-am all-am: Makefile $(PROGRAMS) all-redirect: all-am install-strip: $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install installdirs: $(mkinstalldirs) $(DESTDIR)$(bindir) mostlyclean-generic: clean-generic: distclean-generic: -rm -f Makefile $(CONFIG_CLEAN_FILES) -rm -f config.cache config.log stamp-h stamp-h[0-9]* maintainer-clean-generic: mostlyclean-am: mostlyclean-binPROGRAMS mostlyclean-compile \ mostlyclean-tags mostlyclean-generic mostlyclean: mostlyclean-am clean-am: clean-binPROGRAMS clean-compile clean-tags clean-generic \ mostlyclean-am clean: clean-am distclean-am: distclean-binPROGRAMS distclean-compile distclean-tags \ distclean-generic clean-am distclean: distclean-am maintainer-clean-am: maintainer-clean-binPROGRAMS \ maintainer-clean-compile maintainer-clean-tags \ maintainer-clean-generic distclean-am @echo "This command is intended for maintainers to use;" @echo "it deletes files that may require special tools to rebuild." maintainer-clean: maintainer-clean-am .PHONY: mostlyclean-binPROGRAMS distclean-binPROGRAMS clean-binPROGRAMS \ maintainer-clean-binPROGRAMS uninstall-binPROGRAMS install-binPROGRAMS \ mostlyclean-compile distclean-compile clean-compile \ maintainer-clean-compile tags mostlyclean-tags distclean-tags \ clean-tags maintainer-clean-tags distdir info-am info dvi-am dvi check \ check-am installcheck-am installcheck install-exec-am install-exec \ install-data-am install-data install-am install uninstall-am uninstall \ all-redirect all-am all installdirs mostlyclean-generic \ distclean-generic clean-generic maintainer-clean-generic clean \ mostlyclean distclean maintainer-clean # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: gnome-breakout-0.5.3/src/ChangeLog0000664000175000017500000001572410052645244013735 000000000000002004-05-19 Michael Pearson * Changed all deprecated GNOME 1 and GTK 1 references to GNOME 2 and GTK 2 references 2003-03-15 Michael Pearson * Changed collision.c constant names from A,B,C,etc to AX1, AX2, etc 2001-12-10 Michael Pearson * Reworked event code. Again. 2001-11-01 Michael Pearson * Moved PauseType and EndGameStatus to breakout.h from game.h * Added event code * Removed unnecessary update_gnome calls 2001-03-05 Michael Pearson * Rewrote a couple of nasty literal constants in the framerate code of game.c * Implemented a temporary workaround to stop the game segfaulting when a nextlevel powerup is retreived. 2001-02-12 Michael Pearson * Added Detlef Reichl's window raising patch. * Rewrote pause code * Removed pointer grabbing 2001-01-29 Michael Pearson * Various focus and pausing fixes * Custom levelfiles * Changed all references of "ozemail" to "senet" 2000-09-27 Michael Pearson * Bounce entropy added * Changed layout of preferences dialog * New block type: explode 2000-04-25 Michael Pearson * Made pointer grabbing optional * Changed the names in leveldat.h to reflect the authors * Added new levels * levels[] is now capped by a NULL, rather than a #define * fire[12]_pressed are nullified by iterate_ball_stuck(), to stop multiple balls being launched at the same time. 2000-04-24 Michael Pearson * gnome-breakout can now grab the mouse pointer, courtesy of Matthias Haller 2000-04-19 Michael Pearson * powerup.c: Implimented various levels of powerup "importance", and thus more "important" powerups appear less often. * breakout.h, ball.c: Moved the old_[xy]1 stuff out of the Ball structure and into iterate_ball_default, where it should be. * block.c: Hitting an invincible block no longer renders a score. I don't want a scoreboard "polluted" because of an unrelated bug. 2000-04-18 Michael Pearson * gui.c, gui-callbacks.c: Changed ENDGAME_MENU to not display a scores window, because it's annoying. * powerup.c: Implimented extra life, double ball, next level, slow and wide bat powerups * anim.c: Fixed a stupid bug in init_animations which was causing init_animations to not be malloc'd correctly. This may also correct some of the segfaults that people have been having. * leveldata.h: Added Marisa Mack's levels. 2000-04-17 Michael Pearson * ball.c, collision.c: Changed interate_ball_default to not try and perform any actions on a ball that doesn't exist. This -may- erase the segfault-on-ball death problem, but I'm not sure. 2000-04-08 Michael Pearson * ball.c: Found that the ball-through-bat bug was caused by the ball registering a collision with the wall, and thus not checking for a collision with the bat. Fixed. * ball.c: Moved the checks for the stuck-in-block bug to AFTER the collision detection. This -should- work. Maybe. * game.c: Implimented Detlef Reichl's gettimeofday() patch to replace clock() for framerate calculation. clock() counts according to how much processor time the program has used, not how much actual time has passed, which is unnaceptable for framerate calculation. 2000-04-06 Michael Pearson * Fixed small i18n issue in gui.c and gui-callbacks.c. Thanks, Valek. * gui-callbacks.c: Changed cb-focus-in to not check for pause_on_ focus_loss flag when unpausing. * gui.c, gui.h: Implimented a level label, thanks to Detlef Reichl. 2000-04-05 Michael Pearson * anim.c animloc.h: Changed init_animations() to use a NULL terminated array rather than cap it with NUM_ANIMS * game.c bat.[ch]: Moved the bat functions to a seperate file * bat.c powerup.c: Implimented the "laser" powerup * powerup.c: Lowered the powerup chance * block.c: Powerups can now be spawned from hitting strong blocks * collision.c: ball_bat_collision(): now "caps" the redirection angle, to avoid horizontal bat hits. 2000-04-04 Michael Pearson * leveldata.h: Added an #e level out of boredom * gui.c, gui-callbacks.c, game.c: Changed gui_end_game to display a scoreboard. * breakout.h, block.c, ball.c: Made Ball remember where it was last, and also destroy a block if it gets stuck inside one. 2000-04-03 Michael Pearson * block.c, collision.c: Standardised Block functions to take a Block * instead of a block_no * flags.c, gui-preferences.c, game.c: Difficulty level now only changes on the next game started * game.c: Implimented explicit (menu) pause. * game.c, breakout.h: Expanded bat_move to mouse_move and keyboard_move. * ball.c, game.c: New ball type: BALL_STUCK * block.c, anim.c: Implimented stronger blocks 2000-03-28 Michael Pearson * block.c: Fixed a silly bug in find_block_from_position() which caused the wrong block to be returned. * block.c: Fixed ANOTHER silly bug which caused the block at 0,0 to not be destroyed. 2000-03-27 Michael Pearson * game.c, block.[ch], collision.c, breakout.h: Implimented a block-array rather than a linked list. Also implimented better hit-side-detection, based on what blocks are next to the hit block. 2000-03-25 Michael Pearson * gui.c, gui-callbacks.c: Standardised the callbacks to take GuiInfo * as their data element, rather than Game *. * collision.c: Messed with ball_wall_collision some more in the never-ending effort to stop the stuck-in-wall bug. * collision.c: Added checks to ball_bat_collision to stop the ball from slipping off of the edge of the bat. Not sure if they work. 2000-03-25 Michael Pearson * game.c: Chagned iterate_game to not perform iteration functions when the next_level is triggered. Should stop the end-of-game segfault. * block.c: Ignores BLOCK_DEAD in next_level_check * gui-callbacks.c, gui.c: Implimented pause_on_focus_loss * game.c, gui-callbacks.c, gui.c: Implimented mouse control 2000-03-24 Michael Pearson * Removed and messed with the checks in ball_wall_collision. 2000-03-23 Michael Pearson * ball.c, breakout.h: Added support for pseudo position in the ball. This will allow for finer direction control, and eliminate the horizontal-ball bug. * ball.c, breakout.h: Added an "airtime" variable in Ball. iterate_balls will increment this, and randomise the direction if it gets too high. * *.[ch]: Implimented preferences support. Too many changes to list here :) * collision.c: Inserted checks in ball_wall_collision to stop the ball from getting 'stuck' inside the wall. * flags.c: Added some control sanity checks gnome-breakout-0.5.3/src/Makefile.am0000664000175000017500000000147610051761433014214 00000000000000 INCLUDES = -I$(top_srcdir) -I$(includedir) $(GNOMEUI_CFLAGS) \ -DGNOMELOCALEDIR=\""$(datadir)/locale"\" \ -DG_LOG_DOMAIN=\"gnome-breakout\" \ -DPIXMAPDIR=\"$(datadir)/gnome-breakout/pixmaps\" \ -DLEVELDIR=\"$(datadir)/gnome-breakout/levels\" \ -DGNOME_DISABLE_DEPRECATED \ -DGTK_DISABLE_DEPRECATED \ -DGDK_PIXBUF_DISABLE_DEPRECATED \ -DG_DISABLE_DEPRECATED \ -Werror bin_PROGRAMS = gnome-breakout gnome_breakout_SOURCES = \ anim.c anim.h animloc.h \ ball.c ball.h \ bat.c bat.h \ block.c block.h \ collision.c collision.h \ flags.c flags.h \ game.c game.h \ gnome-breakout.c breakout.h \ gui.c gui.h \ gui-callbacks.c gui-callbacks.h \ gui-preferences.c gui-preferences.h \ leveldata.c leveldata.h \ powerup.c powerup.h \ util.c util.h gnome_breakout_LDADD = $(GNOMEUI_LIBS) $(INTLLIBS) gnome-breakout-0.5.3/src/anim.c0000664000175000017500000000740510047656253013256 00000000000000/* * Functions to create and manipulate animation structures * * Copyright (c) 2000 Michael Pearson * * This file is licensed under the GNU General Public License. See the file * "COPYING" for more details. */ #include"breakout.h" #include"gui.h" #include"animloc.h" #include"anim.h" /* Database of all the animations */ static Animation *animations; static gint num_anims; /* Internal functions */ static Animation create_new_animation(char *filename); /* Create the animation database. Because this calls functions that call * gdk_imlib_render, it assumes that you've pushed a visual and colormap. This * is currently handled in the init_canvas() function in gui.c */ void init_animations(void) { char *filename; char **animloc; Animation *anims; for(num_anims = 0; animlocations[num_anims]; num_anims++); animations = g_malloc(sizeof(Animation) * num_anims); animloc = animlocations; anims = animations; while(*animloc) { filename = g_strdup_printf("%s/%s", PIXMAPDIR, *animloc); *anims = create_new_animation(filename); g_assert(anims->num_frames); g_assert(anims->pixmaps); g_free(filename); animloc++; anims++; } } static Animation create_new_animation(char *filename) { Animation newanim; char *fullfilename; int i; /* Find the number of frames */ fullfilename = g_strdup_printf("%s.%d.png", filename, 0); for(i = 0; g_file_test(fullfilename, G_FILE_TEST_EXISTS);) { i++; fullfilename = g_strdup_printf("%s.%d.png", filename, i); } if(!i) gb_error("Cannot find animation pixmap %s", fullfilename); newanim.num_frames = i; /* Now add each frame */ newanim.pixmaps = g_malloc(newanim.num_frames * sizeof(GdkPixbuf *)); for(i = 0; i < newanim.num_frames; i++) { fullfilename = g_strdup_printf("%s.%d.png", filename, i); GError *gerror = NULL; newanim.pixmaps[i] = gdk_pixbuf_new_from_file(fullfilename, &gerror); if(!newanim.pixmaps[i]) { gb_error("Cannot open %s: %s", fullfilename, gerror->message); } /* gdk_imlib_render(newanim.pixmaps[i], newanim.pixmaps[i]->rgb_width, newanim.pixmaps[i]->rgb_height); */ } /* Setup the other args */ if(newanim.num_frames == 1) newanim.type = ANIM_STATIC; else newanim.type = ANIM_LOOP; newanim.frame_no = 0; newanim.canvas_item = NULL; return newanim; } /* Get an animation, and use its default type */ Animation get_animation(gint id) { g_assert(!(id >= num_anims) || !(id < 0)); return animations[id]; } /* Get an animation that doesn't, uh, animate */ Animation get_static_animation(gint id) { Animation newanim; g_assert(!(id >= num_anims) || !(id < 0)); newanim = animations[id]; newanim.type = ANIM_STATIC; return newanim; } /* Get an animation that plays once and stops */ Animation get_once_animation(gint id) { Animation newanim; g_assert(!(id >= num_anims) || !(id < 0)); newanim = animations[id]; newanim.type = ANIM_ONCE; return newanim; } /* Get an animation that repeats */ Animation get_loop_animation(gint id) { Animation newanim; g_assert(!(id >= num_anims) || !(id < 0)); newanim = animations[id]; newanim.type = ANIM_LOOP; return newanim; } /* Iterates an animation, and updates the canvas pixmap if necessary */ void iterate_animation(Entity *entity) { if(entity->animation.type == ANIM_STATIC) return; entity->animation.frame_no++; if(entity->animation.frame_no >= entity->animation.num_frames) { if(entity->animation.type == ANIM_ONCE) { entity->animation.type = ANIM_STATIC; entity->animation.frame_no = entity->animation.num_frames - 1; } else if(entity->animation.type == ANIM_LOOP) { entity->animation.frame_no = 0; } else { g_assert_not_reached(); } } update_canvas_animation(entity); } gnome-breakout-0.5.3/src/anim.h0000664000175000017500000000226707675551502013270 00000000000000/* * Functions to create and manipulate animation structures * * Copyright (c) 2000 Michael Pearson * * This file is licensed under the GNU General Public License. See the file * "COPYING" for more details. */ /* Animation IDs. See also animdata.h */ #define ANIM_BLOCK_DEFAULT 0 #define ANIM_BLOCK_STRONG_1 1 #define ANIM_BLOCK_STRONG_1_DIE 2 #define ANIM_BLOCK_STRONG_2 3 #define ANIM_BLOCK_STRONG_2_DIE 4 #define ANIM_BLOCK_STRONG_3 5 #define ANIM_BLOCK_STRONG_3_DIE 6 #define ANIM_BLOCK_INVINCIBLE 7 #define ANIM_BLOCK_DEFAULT_DIE 8 #define ANIM_BALL_DEFAULT 9 #define ANIM_BAT_DEFAULT 10 #define ANIM_POWERUP_SCORE500 11 #define ANIM_BAT_LASER 12 #define ANIM_LASER 13 #define ANIM_POWERUP_LASER 14 #define ANIM_POWERUP_NEWLIFE 15 #define ANIM_POWERUP_NEWBALL 16 #define ANIM_POWERUP_NEXTLEVEL 17 #define ANIM_POWERUP_SLOW 18 #define ANIM_POWERUP_WIDEBAT 19 #define ANIM_BAT_WIDE 20 #define ANIM_BLOCK_EXPLODE 21 #define ANIM_BLOCK_EXPLODE_DIE 22 void init_animations(void); Animation get_animation(gint id); Animation get_static_animation(gint id); Animation get_once_animation(gint id); Animation get_loop_animation(gint id); void iterate_animation(Entity *entity); gnome-breakout-0.5.3/src/animloc.h0000664000175000017500000000343207675551502013761 00000000000000/* * The filenames of the animation pictures. Also see anim.h * * Copyright (c) 2000 Michael Pearson * * This file is licensed under the GNU General Public License. See the file * "COPYING" for more details. */ /* * Every image is in .png format, and is suffixed by .frameno.png * eg, "foo" would have files to the tune of "foo.0.png" up to "foo.99.png". * 'animations' which are only still images should not be named simply * "foo.png", rather "foo.0.png". */ char *animlocations[] = { "block.default", /* ANIM_BLOCK_DEFAULT */ "block.strong.1", /* ANIM_BLOCK_STRONG_1 */ "block.strong.1.die", /* ANIM_BLOCK_STRONG_1_DIE */ "block.strong.2", /* ANIM_BLOCK_STRONG_2 */ "block.strong.2.die", /* ANIM_BLOCK_STRONG_2_DIE */ "block.strong.3", /* ANIM_BLOCK_STRONG_3 */ "block.strong.3.die", /* ANIM_BLOCK_STRONG_3_DIE */ "block.invincible", /* ANIM_BLOCK_INVINCIBLE */ "block.default.die", /* ANIM_BLOCK_DEFAULT_DIE */ "ball.default", /* ANIM_BALL_DEFAULT */ "bat.default", /* ANIM_BAT_DEFAULT */ "powerup.score500", /* ANIM_POWERUP_SCORE500 */ "bat.laser", /* ANIM_BAT_LASER */ "laser", /* ANIM_LASER */ "powerup.laser", /* ANIM_POWERUP_LASER */ "powerup.newlife", /* ANIM_POWERUP_NEWLIFE */ "powerup.newball", /* ANIM_POWERUP_NEWBALL */ "powerup.nextlevel", /* ANIM_POWERUP_NEXTLEVEL */ "powerup.slow", /* ANIM_POWERUP_SLOW */ "powerup.widebat", /* ANIM_POWERUP_WIDEBAT */ "bat.wide", /* ANIM_BAT_WIDE */ "block.explode", /* ANIM_BLOCK_EXPLODE */ "block.explode.die", /* ANIM_BLOCK_EXPLODE_DIE */ NULL }; gnome-breakout-0.5.3/src/ball.c0000664000175000017500000001425707675551502013253 00000000000000/* * Ball handling functions * I'll try not to make too many crap jokes. Heh heh. Ball handling. * * Oh, and thanks to moonlite of oz.org #coders for identifying a bug in * iterate_balls() * * Copyright (c) 2000 Michael Pearson * * This file is licensed under the GNU General Public License. See the file * "COPYING" for more details. */ #include #include #include "breakout.h" #include "gui.h" #include "game.h" #include "anim.h" #include "ball.h" #include "collision.h" #include "block.h" #define PI 3.14159265 #define DEFAULT_DIRECTION PI #define FIRE1_DIRECTION (PI + PI / 4.0) #define FIRE2_DIRECTION (PI - PI / 4.0) #define MAX_AIRTIME 1000 /* Twenty seconds at 50 FPS */ /* Internal Functions */ static void iterate_ball_default(Game *game, Ball *ball); static void iterate_ball_stuck(Game *game, Ball *ball); static void ball_default_die(Game *game, Ball *ball); static GList *remove_ball(GList *balls, Ball *ball); /* Creates a new ball. ATM, we only have one per game, but the Game structure * is designed in such a way to allow multiple balls */ void new_ball_stuck(Game *game) { Ball *ball; gint x, y; ball = g_malloc(sizeof(Ball)); g_assert(game->bat); x = game->bat->geometry.x1 + BAT_WIDTH / 2; y = game->bat->geometry.y1 - BALL_HEIGHT / 2; y--; ball->geometry.x1 = x - BALL_WIDTH / 2; ball->geometry.x2 = ball->geometry.x1 + BALL_WIDTH; ball->geometry.y1 = y - BALL_HEIGHT / 2; ball->geometry.y2 = ball->geometry.y1 + BALL_HEIGHT; ball->pseudo_x1 = ball->geometry.x1; ball->pseudo_y1 = ball->geometry.y1; ball->airtime = 0; ball->animation = get_static_animation(ANIM_BALL_DEFAULT); ball->speed = 0; ball->direction = 0; ball->type = BALL_STUCK; add_to_canvas((Entity *) ball); game->balls = g_list_prepend(game->balls, ball); } /* Destroys a ball. Assumes that the ball has either fallen off of the screen, * or hit some sort of "bad" block or somesuch. Will handle loss of life and * endgame */ void ball_die(Game *game, Ball *ball) { switch(ball->type) { case BALL_STUCK : case BALL_DEFAULT : ball_default_die(game, ball); break; default : g_assert_not_reached(); } } /* Unlike powerup.c, the functions here must actually remove the entity */ static void ball_default_die(Game *game, Ball *ball) { game->balls = remove_ball(game->balls, ball); } static GList *remove_ball(GList *balls, Ball *ball) { balls = g_list_remove(balls, ball); remove_from_canvas((Entity *) ball); g_free(ball); return balls; } /* If the game ends by loss of life, this shouldn't need to be run. */ void destroy_ball_list(GList *balls) { while(balls) balls = remove_ball(balls, (Ball *) balls->data); } /* Make the balls move, and handle collisions and such */ void iterate_balls(Game *game) { GList *balls; Ball *ball; balls = game->balls; while(balls) { ball = (Ball *) balls->data; balls = g_list_next(balls); switch(ball->type) { case BALL_DEFAULT : iterate_ball_default(game, ball); break; case BALL_STUCK : iterate_ball_stuck(game, ball); break; default : g_assert_not_reached(); } } } static void iterate_ball_default(Game *game, Ball *ball) { Block *block; gint old_x1, old_y1; gdouble old_direction; gboolean lost_life = FALSE; old_x1 = ball->geometry.x1; old_y1 = ball->geometry.y1; old_direction = ball->direction; move_ball(ball); /* Check for collision with blocks */ if(!ball_block_collision(game, ball)) { /* If no blocks hit, check for collision with everything else */ if(ball_bat_collision(ball, game->bat)) { ball->airtime = 0; } lost_life = ball_wall_collision(game, ball); } if(lost_life) { ball_die(game, ball); } else { /* Makes sure the ball hasn't stayed in the air to long. If it * has, randomise the direction. This should help prevent the * ball getting 'stuck' between invincible blocks */ if(ball->airtime < MAX_AIRTIME) { ball->airtime++; } else { ball->direction = (PI * 2.0 * rand() / RAND_MAX); ball->airtime = 0; } /* This is a bit of a hack, but it's the best way I can think * of to stop the stuck-in-block bug. */ if(old_x1 == ball->geometry.x1 && old_y1 == ball->geometry.y1 && old_direction == ball->direction) { block = find_block_from_position(game, (Entity *) ball); if(block) { destroy_block(game, block); } else { g_assert_not_reached(); } } } } /* The bat must be moved before the ball, or the stuck ball will appear * flickery. Also, this function will reset fire1_pressed or fire2_pressed, * to stop multiple balls being launched at once */ static void iterate_ball_stuck(Game *game, Ball *ball) { gint bat_center; bat_center = game->bat->geometry.x1 + BAT_WIDTH / 2; ball->geometry.x1 = bat_center - BALL_WIDTH / 2; ball->geometry.x2 = ball->geometry.x1 + BALL_WIDTH; ball->pseudo_x1 = ball->geometry.x1; ball->pseudo_y1 = ball->geometry.y1; update_canvas_position((Entity *) ball); if(game->fire1_pressed) { ball->type = BALL_DEFAULT; ball->speed = game->flags->ball_initial_speed; ball->direction = FIRE1_DIRECTION; ball->airtime = 0; game->fire1_pressed = FALSE; } else if (game->fire2_pressed) { ball->type = BALL_DEFAULT; ball->speed = game->flags->ball_initial_speed; ball->direction = FIRE2_DIRECTION; ball->airtime = 0; game->fire2_pressed = FALSE; } } /* Moves the ball one frame */ void move_ball(Ball *ball) { ball->pseudo_x1 += ball->speed * sin(ball->direction); ball->pseudo_y1 += ball->speed * cos(ball->direction); ball->geometry.x1 = (gint) ball->pseudo_x1; ball->geometry.y1 = (gint) ball->pseudo_y1; ball->geometry.x2 = ball->geometry.x1 + BALL_WIDTH; ball->geometry.y2 = ball->geometry.y1 + BALL_HEIGHT; update_canvas_position((Entity *) ball); } /* Increases the speed of the ball */ void increase_ball_speed(Game *game, Ball *ball) { if(ball->speed < game->flags->ball_max_speed) ball->speed += game->flags->ball_speed_increment; } /* Slows all of the balls down to half their initial speed */ void slow_balls(Game *game) { GList *balls; Ball *ball; for(balls = game->balls; balls; balls = g_list_next(balls)) { ball = (Ball *) balls->data; if(ball->type != BALL_STUCK) { ball->speed = game->flags->ball_initial_speed / 2; } } } gnome-breakout-0.5.3/src/ball.h0000664000175000017500000000071207675551502013247 00000000000000/* * Ball handling functions * * Copyright (c) 2000 Michael Pearson * * This file is licensed under the GNU General Public License. See the file * "COPYING" for more details. */ void new_ball_stuck(Game *game); void ball_die(Game *game, Ball *ball); void destroy_ball_list(GList *balls); void move_ball(Ball *ball); void iterate_balls(Game *game); void increase_ball_speed(Game *game, Ball *ball); void slow_balls(Game *game); gnome-breakout-0.5.3/src/bat.c0000664000175000017500000001633707675551502013110 00000000000000/* * Bat handling functions * * Copyright (c) 2000 Michael Pearson * * This file is licensed under the GNU General Public License. See the file * "COPYING" for more details. */ #include "breakout.h" #include "bat.h" #include "block.h" #include "anim.h" #include "gui.h" #define LASER_SPEED 19 #define LASER_WIDTH 15 #define LASER_HEIGHT 15 /* Internal functions */ static void move_bat(Game *game); static void change_to_laser(Bat *bat); static void change_to_wide(Bat *bat); static void reset_from_laser(Bat *bat); static void reset_from_wide(Bat *bat); static void iterate_bat_laser(Game *game); static void remove_child_laser(Bat *bat, Entity *child); static void destroy_children_laser(Bat *bat); static void move_bat(Game *game) { Bat *bat; gint bat_move; /* Included for brevity */ bat = game->bat; if(game->flags->keyboard_control) { bat_move = game->keyboard_move; if(bat->geometry.x1 + bat_move > 0 && bat->geometry.x2 + bat_move < GAME_WIDTH) { bat->geometry.x1 += bat_move; bat->geometry.x2 += bat_move; } else { if(bat->geometry.x2 + bat_move >= GAME_WIDTH) { bat->geometry.x2 = GAME_WIDTH; bat->geometry.x1 = GAME_WIDTH - bat->width; } else { bat->geometry.x1 = 0; bat->geometry.x2 = bat->width; } } } else if(game->flags->mouse_control) { bat_move = game->mouse_move; if(bat_move < bat->width / 2) bat_move = bat->width /2; else if(bat_move > GAME_WIDTH - bat->width /2) bat_move = GAME_WIDTH - bat->width /2; bat->geometry.x1 = bat_move - bat->width / 2; bat->geometry.x2 = bat->geometry.x1 + bat->width; } update_canvas_position((Entity *) bat); } /* Creates a new bat at the start of a game */ void new_bat(Game *game) { Bat *bat; bat = g_malloc(sizeof(Bat)); g_assert(bat); bat->width = BAT_WIDTH; bat->geometry.y2 = GAME_HEIGHT - BLOCK_WALL_PADDING; bat->geometry.y1 = bat->geometry.y2 - BAT_HEIGHT; bat->geometry.x1 = GAME_WIDTH / 2 - bat->width / 2; bat->geometry.x2 = bat->geometry.x1 + bat->width; g_assert(bat->geometry.x1 > BLOCK_WALL_PADDING); g_assert(bat->geometry.x2 < GAME_WIDTH - BLOCK_WALL_PADDING); bat->animation = get_static_animation(ANIM_BAT_DEFAULT); bat->children = NULL; add_to_canvas((Entity *) bat); bat->type = BAT_DEFAULT; bat->num_lasers = 0; game->bat = bat; } /* Iterates the bat */ void iterate_bat(Game *game) { switch(game->bat->type) { case BAT_WIDE : case BAT_DEFAULT : move_bat(game); break; case BAT_LASER : move_bat(game); iterate_bat_laser(game); break; default : g_assert_not_reached(); } } /* Changes the bat type. Don't use this to change a bat back to DEFAULT, use * reset_bat_type instead */ void change_bat_type(Game *game, BatType type) { /* Special case */ if(game->bat->type == BAT_LASER && type == BAT_LASER) { game->bat->num_lasers_allowed++; return; } if(game->bat->type != BAT_DEFAULT) reset_bat_type(game); switch(type) { case BAT_DEFAULT : g_warning("DEVELOPER: Don't use this! Use reset_bat_type instead!"); reset_bat_type(game); break; case BAT_LASER : change_to_laser(game->bat); break; case BAT_WIDE : change_to_wide(game->bat); break; default : g_assert_not_reached(); } } /* Resets the bat back to BAT_DEFAULT. Handles the destruction of anything * that a non-standard bat type may spawn */ void reset_bat_type(Game *game) { switch(game->bat->type) { case BAT_DEFAULT : break; case BAT_LASER : reset_from_laser(game->bat); break; case BAT_WIDE : reset_from_wide(game->bat); break; default : g_assert_not_reached(); } } /* Destroys the bat, de-allocating its resources and suchlike */ void destroy_bat(Game *game) { reset_bat_type(game); remove_from_canvas((Entity *) game->bat); g_free(game->bat); game->bat = NULL; } static void reset_from_laser(Bat *bat) { destroy_children_laser(bat); bat->num_lasers_allowed = 0; remove_from_canvas((Entity *) bat); bat->animation = get_animation(ANIM_BAT_DEFAULT); add_to_canvas((Entity *) bat); bat->type = BAT_DEFAULT; } static void reset_from_wide(Bat *bat) { bat->width = BAT_WIDTH; bat->geometry.x1 += (BAT_WIDE_WIDTH - BAT_WIDTH) / 2; bat->geometry.x2 = bat->geometry.x1 + bat->width; bat->type = BAT_DEFAULT; remove_from_canvas((Entity *) bat); bat->animation = get_animation(ANIM_BAT_DEFAULT); add_to_canvas((Entity *) bat); } static void change_to_wide(Bat *bat) { bat->width = BAT_WIDE_WIDTH; bat->geometry.x1 -= (BAT_WIDE_WIDTH - BAT_WIDTH) / 2; if(bat->geometry.x1 < 0) bat->geometry.x1 = 0; bat->geometry.x2 = bat->geometry.x1 + bat->width; bat->type = BAT_WIDE; remove_from_canvas((Entity *) bat); bat->animation = get_animation(ANIM_BAT_WIDE); add_to_canvas((Entity *) bat); } static void change_to_laser(Bat *bat) { remove_from_canvas((Entity *) bat); bat->animation = get_animation(ANIM_BAT_LASER); add_to_canvas((Entity *) bat); bat->num_lasers = 0; bat->num_lasers_allowed = 1; bat->type = BAT_LASER; } static void iterate_bat_laser(Game *game) { gboolean kill_laser = FALSE; gint bat_center; Block *block; GList *children; Entity *laser; children = game->bat->children; while(children) { laser = (Entity *) children->data; children = g_list_next(children); laser->geometry.y1 -= LASER_SPEED; laser->geometry.y2 -= LASER_SPEED; if(laser->geometry.y1 < 0) { kill_laser = TRUE; } else if((block = find_block_from_position(game, laser))) { if(block->type != BLOCK_DEAD) { hit_block(game, block); kill_laser = TRUE; } } if(kill_laser) { remove_child_laser(game->bat, laser); } else { update_canvas_position(laser); } } if(game->fire1_pressed && game->bat->num_lasers_allowed > game->bat->num_lasers ) { bat_center = game->bat->geometry.x1 + game->bat->width / 2; laser = g_malloc(sizeof(Entity)); laser->geometry.x1 = bat_center - LASER_WIDTH / 2; laser->geometry.x2 = laser->geometry.x1 + LASER_WIDTH; laser->geometry.y2 = game->bat->geometry.y1; laser->geometry.y1 = laser->geometry.y2 - LASER_HEIGHT; laser->animation = get_animation(ANIM_LASER); add_to_canvas(laser); game->bat->num_lasers++; game->bat->children = g_list_prepend(game->bat->children, laser); } } /* Removes a laser entity from the game */ void remove_child_laser(Bat *bat, Entity *child) { remove_from_canvas(child); bat->num_lasers--; bat->children = g_list_remove(bat->children, child); g_free(child); } /* Destroys a children list of lasers. */ void destroy_children_laser(Bat *bat) { GList *children; Entity *laser; children = bat->children; while(children) { laser = (Entity *) children->data; children = g_list_next(children); g_list_remove(bat->children, laser); remove_from_canvas(laser); g_free(laser); } bat->children = NULL; bat->num_lasers = 0; } gnome-breakout-0.5.3/src/bat.h0000664000175000017500000000056707675551502013113 00000000000000/* * Bat handling functions * * Copyright (c) 2000 Michael Pearson * * This file is licensed under the GNU General Public License. See the file * "COPYING" for more details. */ void iterate_bat(Game *game); void new_bat(Game *game); void change_bat_type(Game *game, BatType type); void reset_bat_type(Game *game); void destroy_bat(Game *game); gnome-breakout-0.5.3/src/block.c0000664000175000017500000003110307675551502013420 00000000000000/* * Functions that handle blocks * * Copyright (c) 2000 Michael Pearson * * This file is licensed under the GNU General Public License. See the file * "COPYING" for more details. */ #include "breakout.h" #include "anim.h" #include "powerup.h" #include "leveldata.h" #include "gui.h" #include "block.h" /* Internal functions */ static void remove_block(Block **blocks, Block *block); static Block *new_block(char type, gint block_no); static void block_default_hit(Game *game, Block *block); static void block_strong_hit(Game *game, Block *block); static void iterate_block(Game *game, Block *block); static void block_explode_hit(Game *game, Block *block); static Block **get_nearby_blocks(Game *game, Block *block); /* * This function takes a levels.h level definition and transforms it into a * block list. */ Level *generate_level(gint level_num) { Level *level; RawLevel *rawlevel; gint i; level = g_malloc(sizeof(Level)); level->blocks_left = 0; rawlevel = leveldata_get(level_num); for(i = 0; i < BLOCKS_TOTAL; i++) { switch(rawlevel->blocks[i]) { case BLOCK_STRONG_1_CODE : case BLOCK_STRONG_2_CODE : case BLOCK_STRONG_3_CODE : case BLOCK_EXPLODE_CODE : case BLOCK_DEFAULT_CODE : level->blocks_left++; /* follow through */ case BLOCK_INVINCIBLE_CODE : level->blocks[i] = new_block(rawlevel->blocks[i], i); break; case BLOCK_NONE_CODE : level->blocks[i] = NULL; break; default : g_assert_not_reached(); } } level->difficulty = rawlevel->difficulty; level->name = g_strdup(rawlevel->name); level->author = g_strdup(rawlevel->author); level->levelfile_title = g_strdup(rawlevel->levelfile_title); return level; } /* Make a new block of type at x/y */ static Block *new_block(char type, gint block_no) { Block *newblock; gint x, y; x = block_no % BLOCKS_X; y = block_no / BLOCKS_X; g_assert(y < BLOCKS_Y); newblock = g_malloc(sizeof(Block)); /* Set the geometry */ newblock->geometry.x1 = BLOCK_WALL_PADDING + BLOCK_WIDTH * x; newblock->geometry.y1 = BLOCK_WALL_PADDING + BLOCK_HEIGHT * y; newblock->geometry.x2 = newblock->geometry.x1 + BLOCK_WIDTH; newblock->geometry.y2 = newblock->geometry.y1 + BLOCK_HEIGHT; g_assert(newblock->geometry.x1 >= BLOCK_WALL_PADDING); g_assert(newblock->geometry.y1 >= BLOCK_WALL_PADDING); g_assert(newblock->geometry.x2 <= GAME_WIDTH - BLOCK_WALL_PADDING); g_assert(newblock->geometry.y2 <= GAME_HEIGHT - BLOCK_WALL_PADDING - BAT_SPACE); /* Set block_no */ newblock->block_no = block_no; /* Set everything else */ switch(type) { case BLOCK_STRONG_1_CODE : newblock->animation = get_static_animation( ANIM_BLOCK_STRONG_1); newblock->type = BLOCK_STRONG_1; break; case BLOCK_STRONG_2_CODE : newblock->animation = get_static_animation( ANIM_BLOCK_STRONG_2); newblock->type = BLOCK_STRONG_2; break; case BLOCK_STRONG_3_CODE : newblock->animation = get_static_animation( ANIM_BLOCK_STRONG_3); newblock->type = BLOCK_STRONG_3; break; case BLOCK_DEFAULT_CODE : newblock->animation = get_static_animation( ANIM_BLOCK_DEFAULT); newblock->type = BLOCK_DEFAULT; break; case BLOCK_INVINCIBLE_CODE : newblock->animation = get_static_animation( ANIM_BLOCK_INVINCIBLE); newblock->type = BLOCK_INVINCIBLE; break; case BLOCK_EXPLODE_CODE : newblock->animation = get_static_animation( ANIM_BLOCK_EXPLODE); newblock->type = BLOCK_EXPLODE; break; default : g_assert_not_reached(); } /* Add it to the gnome-canvas */ add_to_canvas((Entity *) newblock); return newblock; } /* Remove a block from the list */ static void remove_block(Block **blocks, Block *block) { remove_from_canvas((Entity *) block); blocks[block->block_no] = NULL; g_free(block); } /* Hit a block */ void hit_block(Game *game, Block *block) { gint block_no; block_no = block->block_no; switch(block->type) { case BLOCK_STRONG_1 : case BLOCK_STRONG_2 : case BLOCK_STRONG_2_DIE : case BLOCK_STRONG_3 : case BLOCK_STRONG_3_DIE : block_strong_hit(game, block); ADD_SCORE(game, 20); break; case BLOCK_STRONG_1_DIE : case BLOCK_DEFAULT : block_default_hit(game, block); ADD_SCORE(game, 50); game->level->blocks_left--; break; case BLOCK_EXPLODE : block_explode_hit(game, block); ADD_SCORE(game, 100); game->level->blocks_left--; break; case BLOCK_INVINCIBLE : case BLOCK_DEAD : break; default : g_assert_not_reached(); } } /* This is here because hit_block got too big for its boots */ static void block_default_hit(Game *game, Block *block) { /* Make the block "fade out" */ remove_from_canvas((Entity *) block); block->animation = get_once_animation(ANIM_BLOCK_DEFAULT_DIE); block->type = BLOCK_DEAD; add_to_canvas((Entity *) block); /* Spawn a new powerup */ new_powerup(game, block->geometry.x1, block->geometry.y2); } static void block_explode_hit(Game *game, Block *block) { Block **nearby; int i; /* Make the block "fade out" */ remove_from_canvas((Entity *) block); block->animation = get_once_animation(ANIM_BLOCK_EXPLODE_DIE); block->type = BLOCK_DEAD; add_to_canvas((Entity *) block); /* Spawn a new powerup */ new_powerup(game, block->geometry.x1, block->geometry.y2); /* Hit the blocks around the exploder block */ nearby = get_nearby_blocks(game, block); for(i = 0; i < 8; i++) { if(nearby[i]) { hit_block(game, nearby[i]); /* MMM, recursion :) */ } } g_free(nearby); } static void block_strong_hit(Game *game, Block *block) { remove_from_canvas((Entity *) block); new_powerup(game, block->geometry.x1, block->geometry.y2); /* Make the block "fade" into the less strong one */ switch(block->type) { case BLOCK_STRONG_3 : block->animation = get_once_animation (ANIM_BLOCK_STRONG_3_DIE); block->type = BLOCK_STRONG_3_DIE; break; case BLOCK_STRONG_2 : case BLOCK_STRONG_3_DIE : block->animation = get_once_animation (ANIM_BLOCK_STRONG_2_DIE); block->type = BLOCK_STRONG_2_DIE; break; case BLOCK_STRONG_1 : case BLOCK_STRONG_2_DIE : block->animation = get_once_animation (ANIM_BLOCK_STRONG_1_DIE); block->type = BLOCK_STRONG_1_DIE; break; default : g_assert_not_reached(); } add_to_canvas((Entity *) block); } /* De-allocate the blocks, and the level structure */ void destroy_level(Game *game) { int i; for(i = 0; i < BLOCKS_X * BLOCKS_Y; i++) if(game->level->blocks[i]) remove_block(game->level->blocks, game->level->blocks[i]); g_free(game->level->name); g_free(game->level->author); g_free(game->level->levelfile_title); g_free(game->level); game->level = NULL; } /* Check to see if the level is complete */ gboolean check_level_end(Game *game) { return(!(game->level->blocks_left)); } /* Iterate the blocks. Currently, this just animates the dying blocks and * kills the ones which have run out of frames. */ void iterate_blocks(Game *game) { Block **blocks; int i; if(game->level) { blocks = game->level->blocks; for(i = 0; i < BLOCKS_X * BLOCKS_Y; i++) { if(blocks[i]) { iterate_block(game, blocks[i]); } } } } /* Not in iterate_blocks, because it became too deeply nested */ static void iterate_block(Game *game, Block *block) { iterate_animation((Entity *) block); if((block->type == BLOCK_STRONG_1_DIE || block->type == BLOCK_STRONG_2_DIE || block->type == BLOCK_STRONG_3_DIE || block->type == BLOCK_DEAD) && block->animation.type == ANIM_STATIC) { remove_from_canvas((Entity *) block); switch(block->type) { case BLOCK_STRONG_3_DIE : block->type = BLOCK_STRONG_2; block->animation = get_static_animation (ANIM_BLOCK_STRONG_2); break; case BLOCK_STRONG_2_DIE : block->type = BLOCK_STRONG_1; block->animation = get_static_animation (ANIM_BLOCK_STRONG_1); break; case BLOCK_STRONG_1_DIE : block->type = BLOCK_DEFAULT; block->animation = get_static_animation (ANIM_BLOCK_DEFAULT); break; case BLOCK_DEAD : remove_block(game->level->blocks, block); block = NULL; break; default : g_assert_not_reached(); } if(block) add_to_canvas((Entity *) block); } } /* Finds the block that an entity occupies. Will return NULL if * the entity is outside the range of blocks, there is no block there, * or if the block is of type BLOCK_DEAD. Assumes that entity is SMALLER * than a block both horizontally and vertically */ Block *find_block_from_position(Game *game, Entity *entity) { gint return_val = -1; gint x1, x2, y1, y2; gint block_no = -1, i; Block **blocks; if(entity->geometry.x2 > BLOCK_WALL_PADDING && entity->geometry.x1 < GAME_WIDTH - BLOCK_WALL_PADDING && entity->geometry.y2 > BLOCK_WALL_PADDING && entity->geometry.y1 < BLOCK_WALL_PADDING + BLOCKS_Y * BLOCK_HEIGHT) { blocks = game->level->blocks; x1 = entity->geometry.x1 - BLOCK_WALL_PADDING; x2 = entity->geometry.x2 - BLOCK_WALL_PADDING; y1 = entity->geometry.y1 - BLOCK_WALL_PADDING; y2 = entity->geometry.y2 - BLOCK_WALL_PADDING; x1 /= BLOCK_WIDTH; x2 /= BLOCK_WIDTH; y1 /= BLOCK_HEIGHT; y2 /= BLOCK_HEIGHT; g_assert(x1 < BLOCKS_X); if(x2 == BLOCKS_X) x2 = BLOCKS_X - 1; g_assert(y1 < BLOCKS_Y); if(y2 == BLOCKS_Y) y2 = BLOCKS_Y - 1; for(i = 0; i < 4; i++) { switch(i) { case 0 : block_no = x1 + y1 * BLOCKS_X; break; case 1 : block_no = x2 + y1 * BLOCKS_X; break; case 2 : block_no = x1 + y2 * BLOCKS_X; break; case 3 : block_no = x2 + y2 * BLOCKS_X; break; default : g_assert_not_reached(); } if(block_no >= 0 && block_no < BLOCKS_X * BLOCKS_Y) { if(blocks[block_no] && blocks[block_no]->type != BLOCK_DEAD) { return_val = block_no; break; } } } } if(return_val != -1) return game->level->blocks[block_no]; else return NULL; } /* Returns whether the neighbour of 'block_no' on 'side' exists * The if statements rely on the fact that if the first condition fails, the * other conditions will not be evaluated. I'm not sure, but I think that * this is standard for all compilers. */ gboolean block_has_neighbour(Game *game, Block *block, Side side) { gint block_no; Block **blocks; gboolean ret = FALSE; blocks = game->level->blocks; block_no = block->block_no; switch(side) { case SIDE_TOP : if(block_no >= BLOCKS_X && blocks[block_no - BLOCKS_X] && blocks[block_no - BLOCKS_X]->type != BLOCK_DEAD) ret = TRUE; break; case SIDE_LEFT : if(block_no >= 1 && blocks[block_no - 1] && blocks[block_no - 1]->type != BLOCK_DEAD) ret = TRUE; break; case SIDE_RIGHT : if(block_no < (BLOCKS_X * BLOCKS_Y) && block_no % BLOCKS_X != BLOCKS_X - 1 && blocks[block_no + 1] && blocks[block_no + 1]->type != BLOCK_DEAD) ret = TRUE; break; case SIDE_BOTTOM : if(block_no < (BLOCKS_X * (BLOCKS_Y - 1)) && blocks[block_no + BLOCKS_X] && blocks[block_no + BLOCKS_X]->type != BLOCK_DEAD) ret = TRUE; break; default : g_assert_not_reached(); } return ret; } /* Destroys a block. Public function for ball.c:iterate_ball_default */ void destroy_block(Game *game, Block *block) { if(block->type != BLOCK_DEAD && block->type != BLOCK_INVINCIBLE) game->level->blocks_left--; remove_block(game->level->blocks, block); } /* Returns an array of 8 pointers to the blocks surrounding block. If a * pointer is null, then there is no block in that direction. The array * starts at north and goes clockwise */ static Block **get_nearby_blocks(Game *game, Block *block) { Block **blocks; int block_no; Block **ret; blocks = game->level->blocks; ret = g_malloc(sizeof(Block *) * 8); block_no = block->block_no; memset(ret, 0, sizeof(Block *) * 8); /* North */ if(block_no >= BLOCKS_X) { ret[0] = blocks[block_no - BLOCKS_X]; } /* Northeast */ if(block_no >= BLOCKS_X && block_no % BLOCKS_X != (BLOCKS_X - 1)) { ret[1] = blocks[block_no - BLOCKS_X + 1]; } /* East */ if(block_no < (BLOCKS_TOTAL - 1) && block_no % BLOCKS_X != (BLOCKS_X -1)) { ret[2] = blocks[block_no + 1]; } /* Southeast */ if(block_no <= (BLOCKS_TOTAL - 1 - BLOCKS_X) && block_no % BLOCKS_X != (BLOCKS_X - 1)) { ret[3] = blocks[block_no + 1 + BLOCKS_X]; } /* South */ if(block_no < (BLOCKS_TOTAL - BLOCKS_X)) { ret[4] = blocks[block_no + BLOCKS_X]; } /* Southwest */ if(block_no < (BLOCKS_TOTAL - BLOCKS_X) && (block_no % BLOCKS_X)) { ret[5] = blocks[block_no - 1 + BLOCKS_X]; } /* West */ if(block_no && (block_no % BLOCKS_X)) { ret[6] = blocks[block_no - 1]; } /* Northwest */ if(block_no >= BLOCKS_X && (block_no % BLOCKS_X)) { ret[7] = blocks[block_no - BLOCKS_X - 1]; } return ret; } gnome-breakout-0.5.3/src/block.h0000664000175000017500000000110207675551502013421 00000000000000/* * Functions that generate new levels * * Copyright (c) 2000 Michael Pearson * * This file is licensed under the GNU General Public License. See the file * "COPYING" for more details. */ Level *generate_level(gint level_num); void hit_block(Game *game, Block *block); void destroy_level(Game *game); void destroy_block(Game *game, Block *block); gboolean check_level_end(Game *game); void iterate_blocks(Game *game); Block *find_block_from_position(Game *game, Entity *entity); gboolean block_has_neighbour(Game *game, Block *block, Side side); gnome-breakout-0.5.3/src/collision.c0000664000175000017500000002254707675551502014335 00000000000000/* * Collision functions. This has alot of stuff that needs fixing. * * Copyright (c) 2000 Michael Pearson * * This file is licensed under the GNU General Public License. See the file * "COPYING" for more details. */ #include #include #include "breakout.h" #include "ball.h" #include "collision.h" #include "block.h" #include "powerup.h" /* Use these for brevity in check_collision */ #define AX1 (one->geometry.x1) #define AX2 (one->geometry.x2) #define BX1 (two->geometry.x1) #define BX2 (two->geometry.x2) #define AY1 (one->geometry.y1) #define AY2 (one->geometry.y2) #define BY1 (two->geometry.y1) #define BY2 (two->geometry.y2) /* Radians macros */ #define RAD180 3.1415926535 #define RAD360 (RAD180 * 2.0) #define RAD90 (RAD180 / 2.0) #define RAD30 (RAD90 / 3.0) #define RAD270 (RAD180 + RAD90) #define BAT_LOW_CAP (RAD180 - (RAD90 - RAD30)) #define BAT_HIGH_CAP (RAD180 + (RAD90 - RAD30)) /* Internal functions */ static gboolean check_collision(Entity *one, Entity *two); static Side find_hit_side(Ball *ball, Entity *one); static Side find_block_hit_side(Game *game, Block *block, Ball *ball); static void recalculate_ball_trajectory(Game *game, Ball *ball, Side side); static void add_bounce_entropy(Game *game, Ball *ball); /* Checks for a collision between two objects */ static gboolean check_collision(Entity *one, Entity *two) { gboolean xcollision; gboolean ycollision; xcollision = ((AX1 >= BX1 && AX1 <= BX2) || (AX2 >= BX1 && AX2 <= BX2) || (AX1 <= BX1 && AX2 >= BX2)); ycollision = ((AY1 >= BY1 && AY1 <= BY2) || (AY2 >= BY1 && AY2 <= BY2) || (AY1 <= BY1 && AY2 >= BY2)); if(xcollision && ycollision) { return TRUE; } return FALSE; } /* Finds which side of an object has been hit. Assumes that a collision has * actually occured */ static Side find_hit_side(Ball *ball, Entity *one) { gint x1, x2, y1, y2; Side side = SIDE_NONE; /* First, find out where the ball was -before- it hit */ x1 = ball->geometry.x1 - ((gdouble) ball->speed * sin(ball->direction)); x2 = ball->geometry.x2 - ((gdouble) ball->speed * sin(ball->direction)); y1 = ball->geometry.y1 - ((gdouble) ball->speed * cos(ball->direction)); y2 = ball->geometry.y2 - ((gdouble) ball->speed * cos(ball->direction)); /* Now, find out which side was hit based on where the ball was */ if((x1 > AX1 && x1 < AX2) || (x2 > AX1 && x2 < AX2) || (x1 < AX1 && x2 > AX2)) { if(y2 < AY1) side = SIDE_TOP; else if(y1 > AY2) side = SIDE_BOTTOM; else side = SIDE_DIAGONAL; } else if((y1 > AY1 && y1 < AY2) || (y2 > AY1 && y2 < AY2) || (y1 < AY1 && y2 > AY2)) { if(x2 < AX1) side = SIDE_LEFT; else if(x1 > AX2) side = SIDE_RIGHT; else side = SIDE_DIAGONAL; } else { side = SIDE_DIAGONAL; } return side; } /* Changes a balls trajectory depending on which side of an object it hit. */ static void recalculate_ball_trajectory(Game *game, Ball *ball, Side side) { add_bounce_entropy(game, ball); /* Recalculate the trajectory */ switch(side) { case SIDE_RIGHT : ball->direction += (RAD90 - ball->direction) * 2.0; ball->direction += RAD180; break; case SIDE_LEFT : ball->direction += (RAD270 - ball->direction) * 2.0; ball->direction += RAD180; break; case SIDE_BOTTOM : ball->direction += (RAD180 - ball->direction) * 2.0; ball->direction += RAD180; break; case SIDE_TOP : /*if(ball->direction > RAD180) ball->direction -= ball->direction * 2.0; else*/ ball->direction += (RAD360 - ball->direction) * 2.0; ball->direction += RAD180; break; case SIDE_DIAGONAL : ball->direction += RAD180; break; default : g_assert_not_reached(); } /* Make sure the ball hasn't been bounced the wrong way */ while(ball->direction > RAD360) ball->direction -= RAD360; while(ball->direction < 0) ball->direction += RAD360; /* And move it an extra step, so that the ball doesn't appear inside * the block when we refresh */ move_ball(ball); } /* Checks whether the ball hit the block, and then adjusts accordingly. Returns * TRUE if a collision occured */ gboolean ball_block_collision(Game *game, Ball *ball) { Side side; Block *block; gboolean rval = FALSE; block = find_block_from_position(game, (Entity *) ball); if(block) { hit_block(game, block); side = find_hit_side(ball, (Entity *) block); if(side == SIDE_DIAGONAL) side = find_block_hit_side(game, block, ball); increase_ball_speed(game, ball); recalculate_ball_trajectory(game, ball, side); rval = TRUE; } return rval; } /* Checks whether the ball hit the wall, and then adjusts accordingly. Returns * TRUE if the ball has died, not if a collision occurs. */ gboolean ball_wall_collision(Game *game, Ball *ball) { gboolean ball_dead = FALSE; if(ball->geometry.x1 < 0) { if(ball->geometry.y1 < 0) { recalculate_ball_trajectory(game, ball, SIDE_DIAGONAL); } else { recalculate_ball_trajectory(game, ball, SIDE_RIGHT); } } else if(ball->geometry.x2 > GAME_WIDTH) { if(ball->geometry.y1 < 0) { recalculate_ball_trajectory(game, ball, SIDE_DIAGONAL); } else { recalculate_ball_trajectory(game, ball, SIDE_LEFT); } } else if(ball->geometry.y1 < 0) { recalculate_ball_trajectory(game, ball, SIDE_BOTTOM); } else if(ball->geometry.y2 > GAME_HEIGHT) { ball_dead = TRUE; } /* Make sure the ball isn't -still- outside the boundaries */ /*if(check_ball) { if(ball->geometry.x1 < 0) { ball->geometry.x1 = 0; ball->geometry.x2 = BALL_WIDTH; } if(ball->geometry.x2 > GAME_WIDTH) { ball->geometry.x1 = GAME_WIDTH - BALL_WIDTH; ball->geometry.x2 = GAME_WIDTH; } if(ball->geometry.y1 < 0) { ball->geometry.y1 = 0; ball->geometry.y2 = BALL_HEIGHT; } }*/ return ball_dead; } /* Checks whether the bat 'caught' a powerup, and acts accordingly. Returns * TRUE if a collision occured */ gboolean bat_powerup_collision(Game *game, Powerup *powerup) { if(check_collision((Entity *) game->bat, (Entity *) powerup)) { activate_powerup(game, powerup); return TRUE; } return FALSE; } /* Checks whether the ball hit the bat, and then adjusts the ball's trajectory * accordingly. Returns TRUE if a collision occured */ gboolean ball_bat_collision(Ball *ball, Bat *bat) { Side side; gint ballpos, batpos; gdouble ballper, ballrad; if(check_collision((Entity *) ball, (Entity *) bat)) { side = find_hit_side(ball, (Entity *) bat); if(side != SIDE_BOTTOM) { ballpos = ball->geometry.x1 + BALL_WIDTH / 2; batpos = bat->geometry.x1 + bat->width / 2; ballper = (double) (batpos - ballpos) / (bat->width / 2); ballrad = ballper * RAD30 + RAD180; ball->direction += (ballrad - ball->direction) * 2.0; ball->direction += RAD180; while(ball->direction > RAD360) ball->direction -= RAD360; /* Make sure the ball hasn't been redirected at too * low an angle */ if(ball->direction < BAT_LOW_CAP) ball->direction = BAT_LOW_CAP; else if(ball->direction > BAT_HIGH_CAP) ball->direction = BAT_HIGH_CAP; move_ball(ball); } else { /* The ball should never rebound off of the bottom wall * , therefore this should never happen */ g_assert_not_reached(); } return TRUE; } return FALSE; } /* Attempts to determine what side was hit if a standard find_hit_side * returns SIDE_DIAGONAL. The result is based on the neighbours of the block */ static Side find_block_hit_side(Game *game, Block *block, Ball *ball) { gint x1, y1, block_x, block_y, ball_x, ball_y; gboolean ball_is_above, ball_is_left; gboolean above, below, left, right; Side ret = SIDE_DIAGONAL; /* First, find out where the ball was -before- it hit */ x1 = ball->geometry.x1 - ((gdouble) ball->speed * sin(ball->direction)); y1 = ball->geometry.y1 - ((gdouble) ball->speed * cos(ball->direction)); /* Now get an approximation of where the ball is coming from. Instead * of using standard collision detection methods, we'll base it on * the center of each object */ block_x = block->geometry.x1 + BLOCK_WIDTH / 2; block_y = block->geometry.y1 + BLOCK_HEIGHT / 2; ball_x = x1 + BALL_WIDTH / 2; ball_y = y1 + BALL_HEIGHT / 2; if(ball_x < block_x) ball_is_left = TRUE; else ball_is_left = FALSE; if(ball_y < block_y) ball_is_above = TRUE; else ball_is_above = FALSE; /* Find out the neighbours of the block */ above = block_has_neighbour(game, block, SIDE_TOP); below = block_has_neighbour(game, block, SIDE_BOTTOM); left = block_has_neighbour(game, block, SIDE_LEFT); right = block_has_neighbour(game, block, SIDE_RIGHT); if(ball_is_above && ball_is_left) { if(above && !left) ret = SIDE_LEFT; else if(left && !above) ret = SIDE_TOP; else ret = SIDE_DIAGONAL; } else if(ball_is_above && !ball_is_left) { if(above && !right) ret = SIDE_RIGHT; else if(right && !above) ret = SIDE_TOP; else ret = SIDE_DIAGONAL; } else if(!ball_is_above && ball_is_left) { if(below && !left) ret = SIDE_LEFT; else if(left && !below) ret = SIDE_BOTTOM; else ret = SIDE_DIAGONAL; } else if(!ball_is_above && !ball_is_left) { if(below && !right) ret = SIDE_RIGHT; else if(right && !below) ret = SIDE_BOTTOM; else ret = SIDE_DIAGONAL; } else { g_assert_not_reached(); } return ret; } /* Applies the bounce entropy to a ball's trajectory. */ static void add_bounce_entropy(Game *game, Ball *ball) { gdouble diff; diff = (gdouble) game->flags->bounce_entropy / 100; diff *= RAD180; diff *= ((gdouble) rand() / RAND_MAX - 0.5); ball->direction += diff; } gnome-breakout-0.5.3/src/collision.h0000664000175000017500000000065307675551502014334 00000000000000/* * Collision detection * * Copyright (c) 2000 Michael Pearson * * This file is licensed under the GNU General Public License. See the file * "COPYING" for more details. */ gboolean ball_block_collision(Game *game, Ball *ball); gboolean ball_wall_collision(Game *game, Ball *ball); gboolean bat_powerup_collision(Game *game, Powerup *powerup); gboolean ball_bat_collision(Ball *ball, Bat *bat); gnome-breakout-0.5.3/src/flags.c0000664000175000017500000002312310047656072013420 00000000000000/* * Handles loading and storing the flags, and also making decisions * based on the flags * * Copyright (c) 2000 Michael Pearson * * This file is licensed under the GNU General Public License. See the file * "COPYING" for more details. */ #include "breakout.h" #include "flags.h" #include "util.h" /* Configuration Defaults. Be careful here, because compute_flags falls * back to these when something goes wrong. If these values are wrong, * weird things may happen. */ #define DEFAULT_DIFFICULTY DIFFICULTY_MEDIUM #define DEFAULT_MOUSE_CONTROL "true" #define DEFAULT_KEYBOARD_CONTROL "false" #define DEFAULT_BAT_SPEED 15 #define DEFAULT_PAUSE_ON_FOCUS "false" #define DEFAULT_PAUSE_ON_POINTER "true" #define DEFAULT_PAUSE_ON_PREF "true" #define DEFAULT_HIDE_POINTER "true" #define DEFAULT_LEFT_KEY GDK_Left #define DEFAULT_RIGHT_KEY GDK_Right #define DEFAULT_FIRE1_KEY GDK_z #define DEFAULT_FIRE2_KEY GDK_x #define DEFAULT_BOUNCE_ENTROPY 0 #define DEFAULT_LEVEL_FILES (LEVELDIR "/alcaron.gbl;" LEVELDIR "/mdutour.gbl;" LEVELDIR "/mmack.gbl") /* Difficulty modifiers */ #define EASY_SCORE_MODIFIER 0.5 #define EASY_BALL_INITIAL_SPEED 4 #define EASY_BALL_SPEED_INCREMENT 0.10 #define EASY_BALL_MAX_SPEED 8 #define MEDIUM_SCORE_MODIFIER 1.0 #define MEDIUM_BALL_INITIAL_SPEED 7 #define MEDIUM_BALL_SPEED_INCREMENT 0.25 #define MEDIUM_BALL_MAX_SPEED 12 #define HARD_SCORE_MODIFIER 1.5 #define HARD_BALL_INITIAL_SPEED 9 #define HARD_BALL_SPEED_INCREMENT 0.25 #define HARD_BALL_MAX_SPEED 17 /* Internal Functions */ GList *unpack_string_list(gchar *s); gchar *pack_string_list(GList *s); /* Loads the flags, and computes certain difficulty values */ Flags *load_flags(void) { Flags *flags; gchar *tmp; flags = g_malloc(sizeof(Flags)); gnome_config_push_prefix("/" PACKAGE "/"); flags->mouse_control = gnome_config_get_bool( "control/mouse_control=" DEFAULT_MOUSE_CONTROL); flags->keyboard_control = gnome_config_get_bool( "control/keyboard_control=" DEFAULT_KEYBOARD_CONTROL); flags->pause_on_focus = gnome_config_get_bool( "game/pause_on_focus=" DEFAULT_PAUSE_ON_FOCUS); flags->pause_on_pointer = gnome_config_get_bool( "game/pause_on_pointer=" DEFAULT_PAUSE_ON_POINTER); flags->pause_on_pref = gnome_config_get_bool( "game/pause_on_pref=" DEFAULT_PAUSE_ON_PREF); flags->hide_pointer = gnome_config_get_bool( "game/hide_pointer=" DEFAULT_HIDE_POINTER); tmp = g_strdup_printf("game/bounce_entropy=%d", DEFAULT_BOUNCE_ENTROPY); flags->bounce_entropy = gnome_config_get_int(tmp); g_free(tmp); tmp = g_strdup_printf("control/bat_speed=%d", DEFAULT_BAT_SPEED); flags->bat_speed = gnome_config_get_int(tmp); g_free(tmp); tmp = g_strdup_printf("game/difficulty=%d", DEFAULT_DIFFICULTY); flags->next_game_difficulty = gnome_config_get_int(tmp); flags->difficulty = flags->next_game_difficulty; g_free(tmp); tmp = g_strdup_printf("keys/left_key=%d", DEFAULT_LEFT_KEY); flags->left_key = gnome_config_get_int(tmp); g_free(tmp); tmp = g_strdup_printf("keys/right_key=%d", DEFAULT_RIGHT_KEY); flags->right_key = gnome_config_get_int(tmp); g_free(tmp); tmp = g_strdup_printf("keys/fire1_key=%d", DEFAULT_FIRE1_KEY); flags->fire1_key = gnome_config_get_int(tmp); g_free(tmp); tmp = g_strdup_printf("keys/fire2_key=%d", DEFAULT_FIRE2_KEY); flags->fire2_key = gnome_config_get_int(tmp); g_free(tmp); tmp = g_strdup_printf("game/level_files=%s", DEFAULT_LEVEL_FILES); flags->level_files = unpack_string_list(gnome_config_get_string(tmp)); g_free(tmp); gnome_config_pop_prefix(); compute_flags(flags); return flags; } /* Computes the difficulty modifiers of Flags, and makes various config sanity * checks */ void compute_flags(Flags *flags) { gboolean resetcontrol = FALSE; /* Difficulty sanity checks */ if(flags->next_game_difficulty != DIFFICULTY_EASY && flags->next_game_difficulty != DIFFICULTY_MEDIUM && flags->next_game_difficulty != DIFFICULTY_HARD) { gb_warning(_("Difficulty in config files is an incorrect value, resetting to defaults")); flags->next_game_difficulty = DEFAULT_DIFFICULTY; } /* Difficulty computation */ switch(flags->difficulty) { case DIFFICULTY_EASY : flags->score_modifier = EASY_SCORE_MODIFIER; flags->ball_initial_speed = EASY_BALL_INITIAL_SPEED; flags->ball_speed_increment = EASY_BALL_SPEED_INCREMENT; flags->ball_max_speed = EASY_BALL_MAX_SPEED; break; case DIFFICULTY_MEDIUM : flags->score_modifier = MEDIUM_SCORE_MODIFIER; flags->ball_initial_speed = MEDIUM_BALL_INITIAL_SPEED; flags->ball_speed_increment = MEDIUM_BALL_SPEED_INCREMENT; flags->ball_max_speed = MEDIUM_BALL_MAX_SPEED; break; case DIFFICULTY_HARD : flags->score_modifier = HARD_SCORE_MODIFIER; flags->ball_initial_speed = HARD_BALL_INITIAL_SPEED; flags->ball_speed_increment = HARD_BALL_SPEED_INCREMENT; flags->ball_max_speed = HARD_BALL_MAX_SPEED; break; default : g_assert_not_reached(); } /* Control sanity checks */ if(flags->keyboard_control && flags->mouse_control) { gb_warning(_("Both keyboard control and mouse control are TRUE in user preferences, resetting to defaults")); resetcontrol = TRUE; } if(!(flags->keyboard_control || flags->mouse_control)) { gb_warning(_("Neither keyboard control or mouse control are TRUE in user preferences, resetting to defaults")); resetcontrol = TRUE; } if(resetcontrol) { if(!strcmp(DEFAULT_KEYBOARD_CONTROL, "true")) flags->keyboard_control = TRUE; else flags->keyboard_control = FALSE; if(!strcmp(DEFAULT_MOUSE_CONTROL, "true")) flags->mouse_control = TRUE; else flags->keyboard_control = FALSE; /* Check to see if we've messed the defaults */ g_assert(flags->keyboard_control || flags->mouse_control); g_assert(!(flags->keyboard_control && flags->mouse_control)); } /* Bat speed sanity checks */ if(flags->bat_speed < MIN_BATSPEED) { gb_warning(_("Bat speed is lower than allowed range, setting to lowest")); flags->bat_speed = MIN_BATSPEED; } if(flags->bat_speed > MAX_BATSPEED) { gb_warning(_("Bat speed is higher than allowed range, setting to highest")); flags->bat_speed = MAX_BATSPEED; } /* Bounce entropy sanity checks */ if(flags->bounce_entropy < MIN_BOUNCE_ENTROPY) { gb_warning(_("Bounce entropy is lower than allowed range, setting to lowest")); flags->bounce_entropy = MIN_BOUNCE_ENTROPY; } if(flags->bounce_entropy > MAX_BOUNCE_ENTROPY) { gb_warning(_("Bounce entropy is higher than allowed range, setting to highest")); flags->bounce_entropy = MAX_BOUNCE_ENTROPY; } } /* Saves the flags */ void save_flags(Flags *flags) { gchar *tmp; gnome_config_push_prefix("/" PACKAGE "/"); gnome_config_set_int("game/difficulty", flags->next_game_difficulty); gnome_config_set_bool("game/pause_on_focus", flags->pause_on_focus); gnome_config_set_bool("game/pause_on_pointer", flags->pause_on_pointer); gnome_config_set_bool("game/pause_on_pref", flags->pause_on_pref); gnome_config_set_bool("game/hide_pointer", flags->hide_pointer); gnome_config_set_int("game/bounce_entropy", flags->bounce_entropy); gnome_config_set_bool("control/mouse_control", flags->mouse_control); gnome_config_set_bool("control/keyboard_control", flags->keyboard_control); gnome_config_set_int("control/bat_speed", flags->bat_speed); gnome_config_set_int("keys/left_key", flags->left_key); gnome_config_set_int("keys/right_key", flags->right_key); gnome_config_set_int("keys/fire1_key", flags->fire1_key); gnome_config_set_int("keys/fire2_key", flags->fire2_key); tmp = pack_string_list(flags->level_files); gnome_config_set_string("game/level_files", tmp); g_free(tmp); gnome_config_pop_prefix(); gnome_config_sync(); } /* Takes a string, splitting it by the ; character, returning a list of the * split values */ GList *unpack_string_list(gchar *s) { GList *ret = NULL; gchar *s_p, *s_new; if(*s) { while((s_p = (gchar *) strsep(&s, ";"))) { if(*s_p) { s_new = g_strdup(s_p); ret = g_list_prepend(ret, s_new); } } } return ret; } /* Takes a list of strings and generates a big string, seperating each entry * with a ; */ gchar *pack_string_list(GList *l) { GList *l_p; gchar *ret; ret = g_malloc(1024 * sizeof(gchar)); *ret = '\0'; for(l_p = l; l_p; l_p = g_list_next(l_p)) { strncat(ret, (char *) l_p->data, 1024); strncat(ret, ";", 1024); } return ret; } /* Allocs and copies a Flags structure. */ Flags *copy_flags(Flags *flags) { Flags *newflags; GList *curr; newflags = g_malloc(sizeof(Flags)); /* Most values can simply be memcpy'ed.... */ memcpy(newflags, flags, sizeof(Flags)); /* ... except for the LevelFiles list */ newflags->level_files = NULL; for(curr = flags->level_files; curr; curr = g_list_next(curr)) { newflags->level_files = g_list_prepend(newflags->level_files, g_strdup((gchar *) curr->data)); } return newflags; } /* Destroys and frees a Flags structure */ void destroy_flags(Flags *flags) { GList *curr; for(curr = flags->level_files; curr; curr = g_list_next(curr)) { g_free(curr->data); curr->data = NULL; } g_list_free(flags->level_files); g_free(flags); } /* Adds a levelfile to the Flags structure */ void add_flags_levelfile(Flags *flags, gchar *filename) { g_assert(flags && filename); flags->level_files = g_list_prepend(flags->level_files, g_strdup(filename)); } /* Removes a levelfile from the Flags structure. Assumes that it's there in the * first place */ void remove_flags_levelfile(Flags *flags, gchar *filename) { GList *curr; g_assert(flags && filename); for(curr = flags->level_files; curr && strcmp((gchar *) curr->data, filename); curr = g_list_next(curr)); g_assert(curr && curr->data); g_free(curr->data); flags->level_files = g_list_remove(flags->level_files, curr->data); } gnome-breakout-0.5.3/src/flags.h0000664000175000017500000000121607675551502013431 00000000000000/* * Handles loading and storing the flags, and also making decisions * based on the flags * * Copyright (c) 2000 Michael Pearson * * This file is licensed under the GNU General Public License. See the file * "COPYING" for more details. */ Flags *load_flags(void); void save_flags(Flags *flags); void compute_flags(Flags *flags); Flags *copy_flags(Flags *flags); void destroy_flags(Flags *flags); void remove_flags_levelfile(Flags *flags, gchar *filename); void add_flags_levelfile(Flags *flags, gchar *filename); #define MIN_BATSPEED 5 #define MAX_BATSPEED 25 #define MIN_BOUNCE_ENTROPY 0 #define MAX_BOUNCE_ENTROPY 40 gnome-breakout-0.5.3/src/game.c0000664000175000017500000001255107675551502013245 00000000000000/* * Main game iteration, and misc functions * * Copyright (c) 2000 Michael Pearson * * This file is licensed under the GNU General Public License. See the file * "COPYING" for more details. */ #include #include #include "breakout.h" #include "gui.h" #include "game.h" #include "anim.h" #include "block.h" #include "ball.h" #include "bat.h" #include "powerup.h" #include "flags.h" #include "leveldata.h" #define NUM_LIVES 5 /* Internal Variables */ static gboolean left_ispressed = FALSE; static gboolean right_ispressed = FALSE; #define FRAMES_PER_SECOND 50 #define USEC_PER_SEC 1000000 #define USEC_PER_FRAME (USEC_PER_SEC / FRAMES_PER_SECOND) #define NEWLIFESCORE 20000 #define NEXTLEVELSCORE 5000 void iterate_game(Game * game) { struct timeval start_tv, end_tv; struct timezone tz; gint32 diff_t; int stop; while (game->state == STATE_RUNNING) { gettimeofday(&start_tv, &tz); game->mouse_move = get_mouse_x_position(); iterate_bat(game); iterate_balls(game); iterate_powerups(game); iterate_blocks(game); stop = 0; process_events(game); gui_update_game(game); game->fire1_pressed = FALSE; game->fire2_pressed = FALSE; process_gnome_events(); gettimeofday(&end_tv, &tz); diff_t = ((start_tv.tv_sec - end_tv.tv_sec) * USEC_PER_SEC) + (start_tv.tv_usec - end_tv.tv_usec) + USEC_PER_FRAME; if (diff_t > 0) usleep(diff_t); } } /* Makes a new game, and starts it up */ void run_game(Game * game) { g_assert(game->state == STATE_STOPPED); if (!leveldata_num_levels()) { gui_warning("No levels configured!"); return; } game->level = generate_level(0); game->flags->difficulty = game->flags->next_game_difficulty; compute_flags(game->flags); game->state = STATE_RUNNING; game->balls = NULL; new_bat(game); new_ball_stuck(game); game->powerups = NULL; game->score = 0; game->lives = NUM_LIVES; game->level_no = 0; game->fire1_pressed = FALSE; game->fire2_pressed = FALSE; game->mouse_move = 0; game->keyboard_move = 0; gui_begin_game(); iterate_game(game); } /* Mechanism for tracking where a pause came from and whether we should * actually pause or unpause. */ void pause_game(Game * game, PauseType type, gboolean unpause) { if (game->state != STATE_STOPPED) { if (unpause && game->state == STATE_PAUSED) { g_assert(game->pause_state); game->pause_state &= (~type); if (!game->pause_state) { game->state = STATE_RUNNING; iterate_game(game); } } else if (!unpause) { game->pause_state |= type; if (game->state == STATE_RUNNING) { game->state = STATE_PAUSED; } } } else { g_assert(!game->pause_state); } } /* Ends the game and de-allocates memory. */ void end_game(Game * game, EndGameStatus status) { gui_end_game(status); g_assert(game->state != STATE_STOPPED); if (game->state != STATE_STOPPED) { game->state = STATE_STOPPED; destroy_ball_list(game->balls); game->balls = NULL; destroy_powerup_list(game->powerups); game->powerups = NULL; destroy_bat(game); if (game->level) destroy_level(game); game->score = 0; game->lives = 0; game->level_no = 0; game->pause_state = 0; } } /* Destroy the bat/balls */ void lose_life(Game * game) { reset_bat_type(game); game->lives--; destroy_powerup_list(game->powerups); game->powerups = NULL; } /* Set up the player for his next life */ /* Destroys the current level data and loads the next one, then updates the * GUI. */ void next_level(Game * game) { ADD_SCORE(game, NEXTLEVELSCORE); destroy_ball_list(game->balls); game->balls = NULL; destroy_powerup_list(game->powerups); game->powerups = NULL; destroy_level(game); game->level_no++; new_ball_stuck(game); game->level = generate_level(game->level_no); reset_bat_type(game); } /* Key handlers. Called from gui.c */ void key_left_pressed(Game * game) { game->keyboard_move = -(game->flags->bat_speed); left_ispressed = TRUE; } void key_left_released(Game * game) { if (!right_ispressed) { game->keyboard_move = 0; } left_ispressed = FALSE; } void key_right_pressed(Game * game) { game->keyboard_move = game->flags->bat_speed; right_ispressed = TRUE; } void key_right_released(Game * game) { if (!left_ispressed) { game->keyboard_move = 0; } right_ispressed = FALSE; } void key_fire1_pressed(Game * game) { if (game->state == STATE_RUNNING) game->fire1_pressed = TRUE; } void key_fire1_released(Game * game) { return; } void key_fire2_pressed(Game * game) { if (game->state == STATE_RUNNING) game->fire2_pressed = TRUE; return; } void key_fire2_released(Game * game) { return; } void new_life(Game * game) { game->lives++; } /* Processes pending game conditions * * Returns non-zero if the game ended */ int process_events(Game *game) { // Level End if(check_level_end(game) || game->powerup_next_level) { game->powerup_next_level = FALSE; if(game->level_no < leveldata_num_levels() - 1) { next_level(game); } else { end_game(game, ENDGAME_WIN); return 1; } } // Free Life if(game->score > game->last_newlife_score + NEWLIFESCORE * game->flags->score_modifier) { new_life(game); game->last_newlife_score = game->score; } // Lose Life if(!game->balls) { lose_life(game); if(game->lives < 0) { end_game(game, ENDGAME_LOSE); return 1; } else { destroy_ball_list(game->balls); game->balls = NULL; new_ball_stuck(game); } } return 0; } gnome-breakout-0.5.3/src/game.h0000664000175000017500000000165307675551502013253 00000000000000/* * Main game iteration, and misc functions * * Copyright (c) 2000 Michael Pearson * * This file is licensed under the GNU General Public License. See the file * "COPYING" for more details. */ void iterate_game(Game *game); void lose_life(Game *game); void run_game(Game *game); void pause_game(Game *game, PauseType type, gboolean unpause); void end_game(Game *game, EndGameStatus status); void next_level(Game *game); void key_left_pressed(Game *game); void key_left_released(Game *game); void key_right_pressed(Game *game); void key_right_released(Game *game); void key_fire1_pressed(Game *game); void key_fire1_released(Game *game); void key_fire2_pressed(Game *game); void key_fire2_released(Game *game); void mouse_moved(Game *game, int position); void new_life(Game *game); int process_events(Game *game); void destroy_pending_events_list(GList *pending_events); int check_newlife_score(Game *game); gnome-breakout-0.5.3/src/gnome-breakout.c0000664000175000017500000000254510051564702015241 00000000000000#include #include #include "breakout.h" #include "flags.h" #include "anim.h" #include "gui.h" #include "leveldata.h" /* Internal Functions */ static void init_leveldata(Game *game); /* Initialises the game struct, sets up gnome and i18n, sets up the animation * files, and starts the gui */ int main(int argc, char **argv) { Game game; gboolean show_score_warning = FALSE; show_score_warning = (gnome_score_init(PACKAGE) == -1); memset(&game, 0, sizeof(Game)); srand((unsigned int) clock()); bindtextdomain(PACKAGE, GNOMELOCALEDIR); textdomain(PACKAGE); gnome_program_init(PACKAGE, VERSION, LIBGNOMEUI_MODULE, argc, argv, GNOME_PARAM_NONE); gui_init(&game, argc, argv); game.flags = load_flags(); init_leveldata(&game); init_animations(); if(show_score_warning) gb_warning("Failed to initialise gnome_score. Is " PACKAGE " installed setgid to the games group?"); gtk_main(); return 0; } /* Loads the levelfiles into memory that are specified in game->flags, deleting * the ones that won't load */ static void init_leveldata(Game *game) { GList *curr, *next; curr = game->flags->level_files; while(curr) { next = g_list_next(curr); if(!leveldata_add((gchar *) curr->data)) { remove_flags_levelfile(game->flags, curr->data); } curr = next; } } gnome-breakout-0.5.3/src/breakout.h0000664000175000017500000001322607724657273014164 00000000000000/* * gnome-breakout global types and defines * * Copyright (c) 2000 Michael Pearson * * This file is licensed under the GNU General Public License. See the file * "COPYING" for more details. */ #include #include #include /* * Dimensions. */ /* The width of the playing field */ #define GAME_WIDTH (BLOCKS_X * BLOCK_WIDTH + BLOCK_WALL_PADDING * 2) /* The height of the playing field */ #define GAME_HEIGHT (BLOCKS_Y * BLOCK_HEIGHT + BLOCK_WALL_PADDING * 2 + BAT_SPACE) #define BLOCKS_X 10 /* The number of blocks along the X plane */ #define BLOCKS_Y 15 /* The number of blocks along the Y plane */ #define BLOCKS_TOTAL (BLOCKS_X * BLOCKS_Y) #define BLOCK_WALL_PADDING 20 /* The distance between the wall and the blocks */ #define BLOCK_WIDTH 40 /* The width of the blocks */ #define BLOCK_HEIGHT 20 /* The height of the blocks */ #define BAT_SPACE 100 /* The distance between the lowest block and the bottom wall*/ #define BAT_WIDTH 75 /* The width of the bat */ #define BAT_WIDE_WIDTH 100 /* The width of a "wide" bat */ #define BAT_HEIGHT 10 /* The height of the bat */ #define POWERUP_WIDTH 20 /* The width of the powerup */ #define POWERUP_HEIGHT 20 /* The height of the powerup */ #define BALL_WIDTH 10 /* Are we getting the idea yet? */ #define BALL_HEIGHT 10 /* Is this comment necessary? No. It isn't. */ /* * Where the object appears on the screen, and how big it is. Mostly used for * drawing the object and collision detection. x1/y1 is the top left corner, * and x2/y2 is the bottom right corner. */ typedef struct { gint x1; gint y1; gint x2; gint y2; } Geometry; /* * Info about how to draw the object. STATIC type images aren't animated, * ANIM_LOOP images loop their animation, and ANIM_ONCE images iterate their * animation once, and become STATIC. frame_no counts up the number of * remaining frames. pixmaps are the animation frames. */ typedef enum { ANIM_STATIC, ANIM_LOOP, ANIM_ONCE } AnimType; typedef struct { gint frame_no; gint num_frames; GdkPixbuf **pixmaps; GnomeCanvasItem *canvas_item; AnimType type; } Animation; /* * In OO terms, this would loosely be termed a superclass. Most of the object * structures inherit from it. */ typedef struct { Geometry geometry; Animation animation; } Entity; /* * Details about a ball. * direction is in radians. The pseudo values are for handling fine * direction control. Airtime is how many frames the ball has been in the air. */ typedef enum { BALL_DEFAULT, BALL_STUCK } BallType; typedef struct { Geometry geometry; Animation animation; gdouble pseudo_x1; gdouble pseudo_y1; gdouble speed; gdouble direction; gint airtime; BallType type; } Ball; /* * Details about a block. */ typedef enum { BLOCK_DEFAULT, BLOCK_INVINCIBLE, BLOCK_DEAD, BLOCK_STRONG_1, BLOCK_STRONG_2, BLOCK_STRONG_3, BLOCK_STRONG_1_DIE, BLOCK_STRONG_2_DIE, BLOCK_STRONG_3_DIE, BLOCK_EXPLODE } BlockType; typedef struct { Geometry geometry; Animation animation; BlockType type; gint block_no; } Block; /* * Details about a bat. */ typedef enum { BAT_DEFAULT, BAT_LASER, BAT_WIDE } BatType; typedef struct { Geometry geometry; Animation animation; gint width; GList *children; gint num_lasers_allowed; gint num_lasers; BatType type; } Bat; /* * Details about a powerup. */ typedef enum { POWER_SCORE500, POWER_LASER, POWER_NEWLIFE, POWER_NEWBALL, POWER_NEXTLEVEL, POWER_SLOW, POWER_WIDEBAT } PowerupType; typedef struct { Geometry geometry; Animation animation; PowerupType type; } Powerup; /* * Flags and data directly based on user preferences */ typedef enum { DIFFICULTY_EASY = 1, DIFFICULTY_MEDIUM = 0, DIFFICULTY_HARD = 2 } Difficulty; #define ADD_SCORE(game, _score) game->score += _score * game->flags->score_modifier typedef struct { /* User set values */ Difficulty difficulty; Difficulty next_game_difficulty; gboolean mouse_control; gboolean keyboard_control; gint bat_speed; gboolean slippery_bat; gint left_key; gint right_key; gint fire1_key; gint fire2_key; gboolean hide_pointer; gboolean pause_on_focus; gboolean pause_on_pointer; gboolean pause_on_pref; gint bounce_entropy; GList *level_files; /* Computed values */ gdouble score_modifier; gdouble ball_initial_speed; gdouble ball_speed_increment; gdouble ball_max_speed; } Flags; /* * The current level */ typedef struct { Block *blocks[BLOCKS_TOTAL]; gint difficulty; gint number; gchar *name; gchar *author; gchar *levelfile_title; gint blocks_left; } Level; /* * Raw level data, pre block generation. */ typedef struct { gchar blocks[BLOCKS_TOTAL]; gint difficulty; gchar *name; gchar *author; gchar *levelfile_title; } RawLevel; /* * Information about the current game. */ typedef enum { STATE_STOPPED = 0, STATE_RUNNING, STATE_PAUSED } GameState; typedef struct { GameState state; gboolean paused_explicit; gint32 score; gint32 last_newlife_score; gint lives; gint level_no; Flags *flags; /* Entities */ GList *balls; GList *powerups; Bat *bat; Level *level; /* Control Input */ gint keyboard_move; gint mouse_move; gboolean fire1_pressed; gboolean fire2_pressed; /* Pause Levels bitmask */ gint32 pause_state; /* Pending Events */ gboolean powerup_next_level; } Game; typedef enum { SIDE_NONE, SIDE_TOP, SIDE_BOTTOM, SIDE_LEFT, SIDE_RIGHT, SIDE_DIAGONAL } Side; /* * Bitmask for pause states */ typedef enum { PAUSE_MENU = 0x00000001, PAUSE_FOCUS = 0x00000002, PAUSE_POINTER = 0x00000004, PAUSE_PREF = 0x00000008, PAUSE_FORCE = 0xffffffff } PauseType; /* * What triggered the end of the game */ typedef enum { ENDGAME_WIN, ENDGAME_LOSE, ENDGAME_MENU } EndGameStatus; gnome-breakout-0.5.3/src/gui.c0000664000175000017500000003367410050356125013112 00000000000000/* * The GNOME-driven breakout GUI. Yes, it's messy, but it's also my first * ever real GNOME app. * * Copyright (c) 2000 Michael Pearson * * This file is licensed under the GNU General Public License. See the file * "COPYING" for more details. */ #include "breakout.h" #include "gui.h" #include "gui-callbacks.h" #include "game.h" #include "anim.h" /* See gui.h for more info */ static GuiInfo *gui = NULL; /* Internal functions */ static void init_canvas(void); static void init_labels(void); static void init_menus(void); static void init_statusbar(void); /* Initialise the interface. */ void gui_init(Game *game, int argc, char **argv) { /* Initialise the basic app */ gui = g_malloc(sizeof(GuiInfo)); gui->game = game; gui->app = (GnomeApp *) gnome_app_new(PACKAGE, _("GNOME Breakout")); gtk_window_set_policy(GTK_WINDOW (gui->app), FALSE, FALSE, TRUE); g_signal_connect(GTK_OBJECT (gui->app), "delete_event", GTK_SIGNAL_FUNC (cb_sig_exit_game), gui); /* Bind the keypresses */ g_signal_connect(GTK_OBJECT (gui->app), "key_press_event", GTK_SIGNAL_FUNC (cb_keydown), gui); g_signal_connect(GTK_OBJECT (gui->app), "key_release_event", GTK_SIGNAL_FUNC (cb_keyup), gui); /* Pause on focus loss for keyboard control */ g_signal_connect(GTK_OBJECT(gui->app), "focus_in_event", GTK_SIGNAL_FUNC(cb_main_focus_change), gui); g_signal_connect(GTK_OBJECT(gui->app), "focus_out_event", GTK_SIGNAL_FUNC(cb_main_focus_change), gui); /* Main vbox */ gui->vbox = gtk_vbox_new(FALSE, 0); /* Initialise the top statusbar */ init_labels(); /* Initialise the canvas */ gnome_app_set_contents(GNOME_APP (gui->app), gui->vbox); init_canvas(); /* Initialise the statusbar */ gui->appbar = gnome_appbar_new(FALSE, TRUE, GNOME_PREFERENCES_NEVER); gnome_app_set_statusbar(gui->app, gui->appbar); init_statusbar(); /* Initialise the menus */ init_menus(); gtk_widget_show_all(GTK_WIDGET (gui->app)); } static void init_canvas(void) { GdkPixbuf *image; GError *error = NULL; /* Push the imlib colormap and visual, and make the canvas */ /* gtk_widget_push_visual(gdk_imlib_get_visual()); gtk_widget_push_colormap(gdk_imlib_get_colormap()); */ gui->canvas = (GnomeCanvas *) gnome_canvas_new(); /* Set the canvas attributes */ gnome_canvas_set_pixels_per_unit(gui->canvas, 1); gtk_widget_set_usize(GTK_WIDGET(gui->canvas), GAME_WIDTH, GAME_HEIGHT); gnome_canvas_set_scroll_region(gui->canvas, 0, 0, GAME_WIDTH, GAME_HEIGHT); /* Make the canvas background black */ gui->background = gnome_canvas_item_new(gnome_canvas_root(gui->canvas), GNOME_TYPE_CANVAS_RECT, "x1", 0.0, "x2", (double) GAME_WIDTH, "y1", 0.0, "y2", (double) GAME_HEIGHT, "fill_color", "black", NULL); gnome_canvas_item_hide(gui->background); /* Add the title image */ image = gdk_pixbuf_new_from_file(PIXMAPDIR "/title.png", &error); if(!image) gb_error("Cannot find title image " PIXMAPDIR "/title.png: %s", error->message); //gdk_imlib_render(image, image->rgb_width, image->rgb_height); gui->title_image = gnome_canvas_item_new( gnome_canvas_root(gui->canvas), GNOME_TYPE_CANVAS_PIXBUF, "pixbuf", image, "x", 0.0, "y", 0.0, "width", (double) GAME_WIDTH, "height", (double) GAME_HEIGHT, "anchor", GTK_ANCHOR_NORTH_WEST, NULL); gnome_canvas_update_now(gui->canvas); /* Hide pointer and automatic pause */ g_signal_connect(GTK_OBJECT (gui->canvas), "enter-notify-event", GTK_SIGNAL_FUNC (cb_canvas_pointer), gui); g_signal_connect(GTK_OBJECT (gui->canvas), "leave-notify-event", GTK_SIGNAL_FUNC (cb_canvas_pointer), gui); /* Bind the mouse fire events */ g_signal_connect(GTK_OBJECT(gui->canvas), "button_press_event", GTK_SIGNAL_FUNC(cb_canvas_button_press), gui); gtk_box_pack_start(GTK_BOX(gui->vbox), GTK_WIDGET(gui->canvas), FALSE, FALSE, 0); } static void init_statusbar(void) { GtkWidget *vseparator1; gui->score_label = gtk_label_new(_("Score: 0")); gtk_label_set_justify(GTK_LABEL(gui->score_label), GTK_JUSTIFY_LEFT); gui->lives_label = gtk_label_new(_("Lives: 0")); gtk_label_set_justify(GTK_LABEL(gui->lives_label), GTK_JUSTIFY_LEFT); vseparator1 = gtk_vseparator_new(); gtk_widget_set_sensitive(gui->score_label, FALSE); gtk_widget_set_sensitive(gui->lives_label, FALSE); gtk_box_pack_end(GTK_BOX(gui->appbar), gui->score_label, FALSE, FALSE, 5); gtk_box_pack_end(GTK_BOX(gui->appbar), vseparator1, FALSE, FALSE, 0); gtk_box_pack_end(GTK_BOX(gui->appbar), gui->lives_label, FALSE, FALSE, 5); } /* Adds an entity to the gnome canvas */ void add_to_canvas(Entity *entity) { entity->animation.canvas_item = gnome_canvas_item_new( gnome_canvas_root(GNOME_CANVAS(gui->canvas)), GNOME_TYPE_CANVAS_PIXBUF, "pixbuf", entity->animation.pixmaps[entity->animation.frame_no], "x", (double) entity->geometry.x1, "y", (double) entity->geometry.y1, "width", (double) entity->geometry.x2 - entity->geometry.x1, "height", (double) entity->geometry.y2 - entity->geometry.y1, "anchor", GTK_ANCHOR_NORTH_WEST, NULL); } /* Remove an entity from the gnome canvas. Does not assume that the entity * actually has a canvas_item */ void remove_from_canvas(Entity *entity) { if(entity->animation.canvas_item) { gtk_object_destroy(GTK_OBJECT(entity->animation.canvas_item)); entity->animation.canvas_item = NULL; } } /* Process all pending gnome events */ void process_gnome_events(void) { while(gtk_events_pending()) gtk_main_iteration(); } /* Updates normal game-related GUI elements. Should be run at least once * every iteration */ void gui_update_game(Game *game) { char *score, *lives, *level_no, *level_name, *level_levelfile, *level_author; static gint32 oldscore = -1; static gint oldlives = -1, oldlevel = -1; if(oldlevel != game->level_no) { oldlevel = game->level_no; level_no = g_strdup_printf(_("No: %d"), game->level_no + 1); gtk_label_set_text(GTK_LABEL(gui->level_no_label), level_no); g_free(level_no); if(game->level) { level_name = g_strdup_printf(_("Name: %s"), game->level->name); level_author = g_strdup_printf(_("Author: %s"), game->level->author); level_levelfile = g_strdup_printf(_("Levelfile: %s"), game->level->levelfile_title); } else { level_name = g_strdup(_("Name:")); level_author = g_strdup(_("Author:")); level_levelfile = g_strdup(_("Filename:")); } gtk_label_set_text(GTK_LABEL(gui->level_name_label), level_name); gtk_label_set_text(GTK_LABEL(gui->level_author_label), level_author); gtk_label_set_text(GTK_LABEL(gui->level_levelfile_label), level_levelfile); g_free(level_name); g_free(level_author); g_free(level_levelfile); } if(oldscore != game->score) { oldscore = game->score; score = g_strdup_printf(_("Score: %d"), game->score); gtk_label_set_text(GTK_LABEL(gui->score_label), score); g_free(score); } if(oldlives != game->lives) { oldlives = game->lives; lives = g_strdup_printf(_("Lives: %d"), game->lives); gtk_label_set_text(GTK_LABEL(gui->lives_label), lives); g_free(lives); } gnome_canvas_update_now(gui->canvas); return; } /* Assumes that we already have an appbar */ static void init_menus() { GnomeUIInfo game_menu[] = { GNOMEUIINFO_MENU_NEW_GAME_ITEM(cb_new_game, gui), GNOMEUIINFO_MENU_PAUSE_GAME_ITEM(cb_pause_game, gui), GNOMEUIINFO_MENU_END_GAME_ITEM(cb_end_game, gui), GNOMEUIINFO_SEPARATOR, GNOMEUIINFO_MENU_PREFERENCES_ITEM(cb_preferences, gui), /* FIXME: Remove this when appropriate */ GNOMEUIINFO_ITEM_DATA(_("_Kill ball"), _("Kill the current ball if it gets stuck"), cb_kill_ball, gui, NULL), GNOMEUIINFO_MENU_SCORES_ITEM(cb_scores, gui), GNOMEUIINFO_SEPARATOR, GNOMEUIINFO_MENU_EXIT_ITEM(cb_exit_game, gui), GNOMEUIINFO_END }; GnomeUIInfo help_menu[] = { GNOMEUIINFO_ITEM_DATA("_Help", "Help on this application", cb_help, gui, NULL), GNOMEUIINFO_MENU_ABOUT_ITEM(cb_show_about_box, gui), GNOMEUIINFO_END }; GnomeUIInfo menubar[] = { GNOMEUIINFO_MENU_GAME_TREE(game_menu), GNOMEUIINFO_MENU_HELP_TREE(help_menu), GNOMEUIINFO_END }; gnome_app_create_menus(gui->app, menubar); gnome_app_install_menu_hints(gui->app, menubar); gui->menu_new_game = game_menu[0].widget; gui->menu_pause = game_menu[1].widget; gui->menu_end_game = game_menu[2].widget; gtk_widget_set_sensitive(gui->menu_pause, FALSE); gtk_widget_set_sensitive(gui->menu_end_game, FALSE); } /* Updates the position of an item on the canvas. Assumes that the width or * height of the object hasn't changed */ void update_canvas_position(Entity *entity) { if(entity->animation.canvas_item) { gnome_canvas_item_set(GNOME_CANVAS_ITEM(entity->animation.canvas_item), "x", (double) entity->geometry.x1, "y", (double) entity->geometry.y1, NULL); } } /* Updates the current pixmap of an item on the canvas */ void update_canvas_animation(Entity *entity) { g_assert(entity->animation.pixmaps[entity->animation.frame_no]); if(entity->animation.canvas_item) { gnome_canvas_item_set(GNOME_CANVAS_ITEM(entity->animation.canvas_item), "pixbuf", entity->animation.pixmaps[entity->animation.frame_no], NULL); } } /* Tell the gui that the game has ended, and that we should display the title * This must be called by everything that calls game.c:end_game, and it must * be called before calling game.c:end_game */ void gui_end_game(EndGameStatus status) { int pos; char *title = NULL; gnome_canvas_item_hide(gui->background); gnome_canvas_item_show(gui->title_image); gnome_canvas_update_now(gui->canvas); gtk_widget_set_sensitive(gui->score_label, FALSE); gtk_widget_set_sensitive(gui->lives_label, FALSE); gtk_widget_set_sensitive(gui->level_no_label, FALSE); gtk_widget_set_sensitive(gui->level_name_label, FALSE); gtk_widget_set_sensitive(gui->level_author_label, FALSE); gtk_widget_set_sensitive(gui->level_levelfile_label, FALSE); gtk_widget_set_sensitive(gui->menu_pause, FALSE); gtk_widget_set_sensitive(gui->menu_end_game, FALSE); pos = gnome_score_log((gfloat) gui->game->score, NULL, TRUE); switch(status) { case ENDGAME_WIN : title = _("GNOME Breakout: You win!"); break; case ENDGAME_LOSE : title = _("GNOME Breakout: You lose!"); break; case ENDGAME_MENU : break; default : g_assert_not_reached(); } if(title) gnome_scores_display(title, PACKAGE, NULL, pos); } /* Tell the gui that the game has begun, and that we should hide the title */ void gui_begin_game(void) { gnome_canvas_item_hide(gui->title_image); gnome_canvas_item_show(gui->background); gnome_canvas_update_now(gui->canvas); gtk_widget_set_sensitive(gui->score_label, TRUE); gtk_widget_set_sensitive(gui->lives_label, TRUE); gtk_widget_set_sensitive(gui->level_no_label, TRUE); gtk_widget_set_sensitive(gui->level_name_label, TRUE); gtk_widget_set_sensitive(gui->level_author_label, TRUE); gtk_widget_set_sensitive(gui->level_levelfile_label, TRUE); gtk_widget_set_sensitive(gui->menu_pause, TRUE); gtk_widget_set_sensitive(gui->menu_end_game, TRUE); } gint get_mouse_x_position(void) { gint x; gint y; gtk_widget_get_pointer(GTK_WIDGET(gui->app), &x, &y); return x; } /* Displays a warning dialog box and prints the warning to STDERR */ void gui_warning(gchar *format, ...) { GtkWidget *mbox; gchar buffer[1024]; va_list ap; va_start(ap, format); vsnprintf(buffer, 1024, format, ap); va_end(ap); if(gui && gui->app) { mbox = (GtkWidget *) gtk_message_dialog_new( GTK_WINDOW(gui->app), GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_WARNING, GTK_BUTTONS_CLOSE, buffer); gtk_dialog_run(GTK_DIALOG(mbox)); gtk_widget_destroy(mbox); } else { g_warning("Attempted to display previous warning message before GUI initialisation"); } } /* Displays an error dialog box */ void gui_error(gchar *format, ...) { GtkWidget *mbox; gchar buffer[1024]; va_list ap; va_start(ap, format); vsnprintf(buffer, 1024, format, ap); va_end(ap); if(gui && gui->app) { mbox = (GtkWidget *) gtk_message_dialog_new( GTK_WINDOW(gui->app), GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE, buffer); gtk_dialog_run(GTK_DIALOG(mbox)); gtk_widget_destroy(mbox); } else { g_warning("Attempted to display error message \"%s\" before gui activation", buffer); } } /* Sets up the level labels at the top of the screen */ static void init_labels(void) { GtkWidget *vsep1, *vsep2, *hsep1; gui->label_hbox1 = gtk_hbox_new(FALSE, 0); gui->label_hbox2 = gtk_hbox_new(FALSE, 0); gui->level_no_label = gtk_label_new(_("No:")); gui->level_name_label = gtk_label_new(_("Name:")); gui->level_author_label = gtk_label_new(_("Author:")); gui->level_levelfile_label = gtk_label_new(_("Levelfile:")); vsep1 = gtk_vseparator_new(); vsep2 = gtk_vseparator_new(); hsep1 = gtk_hseparator_new(); gtk_label_set_justify(GTK_LABEL(gui->level_no_label), GTK_JUSTIFY_LEFT); gtk_label_set_justify(GTK_LABEL(gui->level_name_label), GTK_JUSTIFY_LEFT); gtk_label_set_justify(GTK_LABEL(gui->level_author_label), GTK_JUSTIFY_LEFT); gtk_label_set_justify(GTK_LABEL(gui->level_levelfile_label), GTK_JUSTIFY_LEFT); gtk_widget_set_sensitive(gui->level_no_label, FALSE); gtk_widget_set_sensitive(gui->level_name_label, FALSE); gtk_widget_set_sensitive(gui->level_levelfile_label, FALSE); gtk_widget_set_sensitive(gui->level_author_label, FALSE); gtk_box_pack_start(GTK_BOX(gui->label_hbox1), gui->level_no_label, TRUE, TRUE, 5); gtk_box_pack_start(GTK_BOX(gui->label_hbox1), vsep1, TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(gui->label_hbox1), gui->level_name_label, TRUE, TRUE, 5); gtk_box_pack_start(GTK_BOX(gui->label_hbox2), gui->level_author_label, TRUE, TRUE, 5); gtk_box_pack_start(GTK_BOX(gui->label_hbox2), vsep2, TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(gui->label_hbox2), gui->level_levelfile_label, TRUE, TRUE, 5); gtk_box_pack_start(GTK_BOX(gui->vbox), gui->label_hbox1, TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(gui->vbox), hsep1, TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(gui->vbox), gui->label_hbox2, TRUE, TRUE, 0); } gnome-breakout-0.5.3/src/gui.h0000664000175000017500000000240510046061603013102 00000000000000/* * The GNOME-driven breakout GUI * * Copyright (c) 2000 Michael Pearson * * This file is licensed under the GNU General Public License. See the file * "COPYING" for more details. */ void gui_init(Game *game, int argc, char **argv); void add_to_canvas(Entity *entity); void remove_from_canvas(Entity *entity); void gui_update_game(Game *game); void process_gnome_events(void); void update_canvas_position(Entity *entity); void update_canvas_animation(Entity *entity); void gui_begin_game(void); void gui_end_game(EndGameStatus status); gint get_mouse_x_position(void); void gui_warning(gchar *format, ...); void gui_error(gchar *format, ...); /* This holds pointers to objects in the currently running GNOME app. It should * only be used in gui.c and gui-callbacks.c */ typedef struct { GnomeApp *app; GnomeCanvas *canvas; GnomeCanvasItem *title_image; GnomeCanvasItem *background; GtkWidget *vbox; GtkWidget *label_hbox1; GtkWidget *label_hbox2; GtkWidget *score_label; GtkWidget *lives_label; GtkWidget *level_no_label; GtkWidget *level_name_label; GtkWidget *level_author_label; GtkWidget *level_levelfile_label; GtkWidget *appbar; GtkWidget *menu_pause; GtkWidget *menu_new_game; GtkWidget *menu_end_game; Game *game; } GuiInfo; gnome-breakout-0.5.3/src/gui-callbacks.c0000664000175000017500000002356210052644624015030 00000000000000/* * Callbacks for events triggered by gui.c. Located here in the interests of * cleanliness. * * Every funciton here should take a GuiInfo * as its data element, unless * otherwise specified. Even if the function does not use it currently, it * should be passed anyway, incase it is used in the future. * * Copyright (c) 2000 Michael Pearson * * This file is licensed under the GNU General Public License. See the file * "COPYING" for more details. */ #include "breakout.h" #include "gui.h" #include "gui-callbacks.h" #include "gui-preferences.h" #include "game.h" #include "ball.h" #include #include #include //#define NEXTLEVEL_KEY 1 /* We need this here because gnome-breakout tends to output alot of nasty * warning messages if we quit without killing off alot of canvas objects */ void cb_exit_game(GtkWidget *widget, gpointer data) { GuiInfo *gui; gui = (GuiInfo *) data; if(gui->game->state != STATE_STOPPED) { end_game(gui->game, ENDGAME_MENU); } gtk_object_destroy(GTK_OBJECT(gui->background)); gtk_object_destroy(GTK_OBJECT(gui->title_image)); gtk_main_quit(); } /* And we need this because the event mechanism is different from the menu * mechanism */ gint cb_sig_exit_game(GtkWidget *widget, GdkEvent *event, gpointer data) { cb_exit_game(NULL, data); return FALSE; } /* Show the about box. I wonder, does the about box dialog free itself? */ void cb_show_about_box(GtkWidget *widget, gpointer data) { static GtkWidget *dlg; GuiInfo *gui; const gchar *authors[] = { "Development:", "Michael Pearson ", "", "Additional Levels:", "Marisa Mack ", "Mathieu Dutour ", "", "Additional Graphics:", "N0mada ", NULL }; const gchar comment[] = N_( "The classic arcade game Breakout." ); const gchar *translator_credits = _("translator credits"); gchar *use_tc = NULL; if(strcmp(translator_credits, "translator credits")) { /* This is a translation, show appropriate credits */ use_tc = (gchar *) translator_credits; } if(dlg) { gdk_window_show(dlg->window); gdk_window_raise(dlg->window); gtk_widget_grab_focus(GTK_WIDGET(dlg)); } else { dlg = gnome_about_new( _("GNOME Breakout"), // name VERSION, // version _("Copyright (c) 2000-2003 Michael Pearson"), // cp _(comment), // comments authors, // authors NULL, // documenters use_tc, // translator credits NULL); // logo gui = (GuiInfo *) data; g_signal_connect(GTK_OBJECT(dlg), "destroy", GTK_SIGNAL_FUNC(cb_null), &dlg); gtk_widget_show(dlg); } } /* Called when the user holds down a key. If it's a key we recognise, pass it * on to the relevant game.c function */ gint cb_keydown(GtkWidget *widget, GdkEventKey *event, gpointer data) { GuiInfo *gui; Game *game; gui = (GuiInfo *) data; game = gui->game; if(game->flags->keyboard_control) { if(event->keyval == game->flags->left_key) { key_left_pressed(game); } else if(event->keyval == game->flags->right_key) { key_right_pressed(game); } else if(event->keyval == game->flags->fire1_key) { key_fire1_pressed(game); } else if(event->keyval == game->flags->fire2_key) { key_fire2_pressed(game); } } return FALSE; } /* Same as above, but for when a key is released */ gint cb_keyup(GtkWidget *widget, GdkEventKey *event, gpointer data) { Game *game; GuiInfo *gui; gui = (GuiInfo *) data; game = gui->game; if(game->flags->keyboard_control) { if(event->keyval == game->flags->left_key) { key_left_released(game); } else if(event->keyval == game->flags->right_key) { key_right_released(game); } else if(event->keyval == game->flags->fire1_key) { key_fire1_released(game); } else if(event->keyval == game->flags->fire2_key) { key_fire2_released(game); } } #ifdef NEXTLEVEL_KEY #warning NEXTLEVEL_KEY cheat is enabled. if(event->keyval == GDK_L && game->state == STATE_RUNNING) game->powerup_next_level = TRUE; #endif return FALSE; } /* Hides the title image, and starts a new game */ void cb_new_game(GtkWidget *widget, gpointer data) { GuiInfo *gui; gui = (GuiInfo *) data; /* Hide the title */ /*gnome_canvas_item_hide(gui->title_image); gnome_canvas_item_show(gui->background); gnome_canvas_update_now(gui->canvas);*/ if(gui->game->state != STATE_STOPPED) { end_game(gui->game, ENDGAME_MENU); } run_game(gui->game); } /* Ends the game and shows the title */ void cb_end_game(GtkWidget *widget, gpointer data) { GuiInfo *gui; gui = (GuiInfo *) data; if(gui->game->state != STATE_STOPPED) { end_game(gui->game, ENDGAME_MENU); } } /* Just calls pause_game. Included for consistency */ void cb_pause_game(GtkWidget *widget, gpointer data) { GuiInfo *gui; gui = (GuiInfo *) data; if(gui->game->pause_state & PAUSE_MENU) { pause_game(gui->game, PAUSE_MENU, 1); } else { pause_game(gui->game, PAUSE_MENU, 0); } } /* Calls make_preferences_box. Again, included for consistency */ void cb_preferences(GtkWidget *widget, gpointer data) { GuiInfo *gui; gui = (GuiInfo *) data; make_preferences_box(gui); } /* For now, just prints a pretty message */ void cb_help(GtkWidget *widget, gpointer data) { GuiInfo *gui; GtkWidget *mbox; gui = (GuiInfo *) data; // FIXME!! mbox = (GtkWidget *) gnome_ok_dialog_parented(_("Help hasn't been implimented yet. So go ahead and write some for me :)"), GTK_WINDOW(gui->app)); gtk_widget_show(mbox); } /* The application has gained or lost focus */ gboolean cb_main_focus_change(GtkWidget *widget, GdkEvent *event, gpointer data) { GuiInfo *gui; GdkEventFocus *fevent; gui = (GuiInfo *) data; fevent = (GdkEventFocus *) event; if(fevent->in) { /* Gained focus */ pause_game(gui->game, PAUSE_FOCUS, 1); } else { /* Lost Focus */ if(gui->game->flags->pause_on_focus) { pause_game(gui->game, PAUSE_FOCUS, 0); } } return FALSE; } gboolean cb_canvas_button_press(GtkWidget *widget, GdkEventButton *event, gpointer data) { GuiInfo *gui; gui = (GuiInfo *) data; if(gui->game->flags->mouse_control) { if(event->button == 1) key_fire1_pressed(gui->game); else if(event->button == 3) key_fire2_pressed(gui->game); } return FALSE; } /* Kills the current ball, if it gets stuck inside a block */ void cb_kill_ball(GtkWidget *widget, gpointer data) { GuiInfo *gui; gui = (GuiInfo *) data; if(gui->game->balls) ball_die(gui->game, (Ball *) gui->game->balls->data); } /* Displays the scores */ void cb_scores(GtkWidget *widget, gpointer data) { gnome_scores_display(_("GNOME Breakout: Scores"), PACKAGE, NULL, 0); } /* The pointer has either entered or left the canvas */ gboolean cb_canvas_pointer(GtkWidget *widget, GdkEvent *event, gpointer data) { GuiInfo *gui; gui = (GuiInfo *) data; if(event->type == GDK_ENTER_NOTIFY && gui->game->state != STATE_STOPPED) { /*if(!gui->game->flags->keyboard_control && !gui->game->flags->pause_on_focus_loss) { cb_grab_focus(GTK_WIDGET(gui->canvas), NULL, NULL); }*/ if(gui->game->flags->hide_pointer) { cb_hide_pointer(GTK_WIDGET(gui->canvas), NULL, NULL); } pause_game(gui->game, PAUSE_POINTER, 1); } else if(event->type == GDK_LEAVE_NOTIFY) { /*if(!gui->game->flags->keyboard_control && !gui->game->flags->pause_on_focus_loss) { cb_ungrab_focus(GTK_WIDGET(gui->canvas), NULL, NULL); }*/ cb_show_pointer(GTK_WIDGET(gui->canvas), NULL, NULL); if(gui->game->flags->pause_on_pointer) { pause_game(gui->game, PAUSE_POINTER, 0); } } return TRUE; } /* Maybe there are GTK+ functions for the following stuff, but I don't know them */ gboolean cb_grab_focus(GtkWidget *widget, GdkEvent *event, gpointer data) { XGrabPointer(GDK_WINDOW_XDISPLAY(GTK_WIDGET(widget)->window), GDK_WINDOW_XWINDOW(GTK_WIDGET(widget)->window), 1, PointerMotionMask, GrabModeAsync, GrabModeAsync, GDK_WINDOW_XWINDOW(GTK_WIDGET(widget)->window), None, CurrentTime); return TRUE; } gboolean cb_ungrab_focus(GtkWidget *widget, GdkEvent *event, gpointer data) { XUngrabPointer(GDK_WINDOW_XDISPLAY(GTK_WIDGET(widget)->window), CurrentTime); return TRUE; } gboolean cb_show_pointer(GtkWidget *widget, GdkEvent *event, gpointer data) { XUndefineCursor(GDK_WINDOW_XDISPLAY(GTK_WIDGET(widget)->window), GDK_WINDOW_XWINDOW(GTK_WIDGET(widget)->window)); return TRUE; } gboolean cb_hide_pointer(GtkWidget *widget, GdkEvent *event, gpointer data) { static Cursor cursor = 0; XColor colour; Pixmap cursorPixmap; colour.pixel = WhitePixel(GDK_WINDOW_XDISPLAY(GTK_WIDGET(widget)->window), DefaultScreen(GDK_WINDOW_XDISPLAY(GTK_WIDGET(widget)->window))); XQueryColor(GDK_WINDOW_XDISPLAY(GTK_WIDGET(widget)->window), DefaultColormap(GDK_WINDOW_XDISPLAY(GTK_WIDGET(widget)->window), DefaultScreen(GDK_WINDOW_XDISPLAY(GTK_WIDGET(widget)->window))), &colour); if(cursor) { XFreeCursor(GDK_WINDOW_XDISPLAY(GTK_WIDGET(widget)->window), cursor); } cursorPixmap = XCreatePixmap(GDK_WINDOW_XDISPLAY(GTK_WIDGET(widget)->window), GDK_WINDOW_XWINDOW(GTK_WIDGET(widget)->window), 1, 1, 1); cursor = XCreatePixmapCursor(GDK_WINDOW_XDISPLAY(GTK_WIDGET(widget)->window), cursorPixmap, cursorPixmap, &colour, &colour, 0, 0); if(cursorPixmap) { XFreePixmap(GDK_WINDOW_XDISPLAY(GTK_WIDGET(widget)->window), cursorPixmap); } XDefineCursor(GDK_WINDOW_XDISPLAY(GTK_WIDGET(widget)->window), GDK_WINDOW_XWINDOW(GTK_WIDGET(widget)->window), cursor); return TRUE; } /* Nulls the variable passed to it */ gboolean cb_null(GtkWidget *w, void **data) { *data = NULL; return TRUE; } gnome-breakout-0.5.3/src/gui-callbacks.h0000664000175000017500000000337307675551502015044 00000000000000/* * Callbacks for events triggered by gui.c. Located here in the interests of * cleanliness. * * Every funciton here should take a GuiInfo * as its data element, unless * otherwise specified. Even if the function does not use it currently, it * should be passed anyway, incase it is used in the future * * Copyright (c) 2000 Michael Pearson * * This file is licensed under the GNU General Public License. See the file * "COPYING" for more details. */ void cb_exit_game(GtkWidget *widget, gpointer data); void cb_show_about_box(GtkWidget *widget, gpointer data); gint cb_sig_exit_game(GtkWidget *widget, GdkEvent *event, gpointer data); gint cb_keydown(GtkWidget *widget, GdkEventKey *event, gpointer data); gint cb_keyup(GtkWidget *widget, GdkEventKey *event, gpointer data); void cb_new_game(GtkWidget *widget, gpointer data); void cb_pause_game(GtkWidget *widget, gpointer data); void cb_end_game(GtkWidget *widget, gpointer data); void cb_kill_ball(GtkWidget *widget, gpointer data); void cb_scores(GtkWidget *widget, gpointer data); void cb_preferences(GtkWidget *widget, gpointer data); void cb_help(GtkWidget *widget, gpointer data); gboolean cb_main_focus_change(GtkWidget *widget, GdkEvent *event, gpointer data); gboolean cb_canvas_button_press(GtkWidget *widget, GdkEventButton *event, gpointer data); gboolean cb_grab_focus(GtkWidget *widget, GdkEvent *event, gpointer data); gboolean cb_ungrab_focus(GtkWidget *widget, GdkEvent *event, gpointer data); gboolean cb_hide_pointer(GtkWidget *widget, GdkEvent *event, gpointer data); gboolean cb_show_pointer(GtkWidget *widget, GdkEvent *event, gpointer data); gboolean cb_canvas_pointer(GtkWidget *widget, GdkEvent *event, gpointer data); gboolean cb_null(GtkWidget *widget, void **data); gnome-breakout-0.5.3/src/gui-preferences.c0000664000175000017500000007125510051761331015406 00000000000000/* * The functions which create and handle the preferences dialog. * This is a damn long file, so I've sectioned it off somewhat with comments. * * Copyright (c) 2000 Michael Pearson * * This file is licensed under the GNU General Public License. See the file * "COPYING" for more details. */ #include "breakout.h" #include "gui.h" #include "gui-preferences.h" #include "game.h" #include "flags.h" #include "leveldata.h" static GtkWidget *dialog = NULL; static gboolean flags_changed = FALSE; static Flags *newflags; /* Internal data structures */ typedef struct { Game *game; GtkWidget *frame; GtkWidget *vbox; GtkListStore *level_list_store; GtkTreeView *level_list_view; GtkWidget *level_list_scrollpane; GtkWidget *level_list_hbox; GtkWidget *button_hbox; GtkWidget *add_button; GtkWidget *remove_button; GtkWidget *fsel; gchar *level_list_selection; GtkTreeIter level_list_iter; } LevelFrame; /* Internal functions */ static void init_preferences_box(GuiInfo *gui, GtkNotebook **window_notebook); static void init_game_page(GuiInfo *gui, GtkNotebook *window_notebook); static void init_control_page(GuiInfo *gui, GtkNotebook *window_notebook); static void populate_level_list(LevelFrame *lf, GList *filenames); static void apply_preferences(GuiInfo *gui); static void set_flags_changed(gboolean status); /* Callbacks */ static void cb_pref_destroy(GtkWidget *widget, gpointer data); static void cb_diff(GtkWidget *widget, gpointer data); static void cb_ctrl_key(GtkWidget *widget, gpointer data); static void cb_ctrl_mouse(GtkWidget *widget, gpointer data); static void cb_bat_speed(GtkWidget *widget, gpointer data); static void cb_bounce_entropy(GtkWidget *widget, gpointer data); static void cb_key_left(GtkWidget *widget, GdkEventKey *event, gpointer data); static void cb_key_right(GtkWidget *widget, GdkEventKey *event, gpointer data); static void cb_key_fire1(GtkWidget *widget, GdkEventKey *event, gpointer data); static void cb_key_fire2(GtkWidget *widget, GdkEventKey *event, gpointer data); static void cb_pref_response(GtkWidget *widget, gint response_id, gpointer data); static void cb_level_list_changed(GtkTreeSelection *selection, gpointer data); static void cb_level_add(GtkWidget *widget, gpointer data); static void cb_level_remove(GtkWidget *widget, gpointer data); static void cb_filesel_ok(GtkWidget *w, gpointer data); static void cb_filesel_cancel(GtkWidget *w, gpointer data); static void cb_checkbox_toggled(GtkWidget *w, gboolean *flag); void make_preferences_box(GuiInfo *gui) { GtkNotebook *window_notebook; /* Don't let the user run two preferences boxes at the same time */ if(dialog) { gdk_window_show( dialog->window ); gdk_window_raise( dialog->window); gtk_widget_grab_focus(GTK_WIDGET(dialog)); return; } if(gui->game->flags->pause_on_pref) { pause_game(gui->game, PAUSE_PREF, 0); } newflags = copy_flags(gui->game->flags); init_preferences_box(gui, &window_notebook); init_game_page(gui, window_notebook); init_control_page(gui, window_notebook); set_flags_changed(FALSE); gtk_widget_show_all(dialog); } static void cb_pref_response(GtkWidget *widget, gint response_id, gpointer data) { GuiInfo *gui; gui = (GuiInfo *) data; if(response_id == GTK_RESPONSE_APPLY && flags_changed) { apply_preferences(gui); } else if(response_id == GTK_RESPONSE_OK) { if(flags_changed) { apply_preferences(gui); } gtk_widget_destroy(widget); } else if(response_id == GTK_RESPONSE_CLOSE) { gtk_widget_destroy(widget); } } /* Apply has been clicked */ static void apply_preferences(GuiInfo *gui) { //GuiInfo *gui; //gui = (GuiInfo *) data; save_flags(newflags); destroy_flags(gui->game->flags); gui->game->flags = newflags; newflags = copy_flags(newflags); set_flags_changed(FALSE); } /* Changed the behaviour of the dialog box depending on whether the flags * have been changed since the last commit */ static void set_flags_changed(gboolean status) { flags_changed = status; gtk_dialog_set_response_sensitive(GTK_DIALOG(dialog), GTK_RESPONSE_APPLY, status); } /* Preferences dialog has been destroyed */ static void cb_pref_destroy(GtkWidget *widget, gpointer data) { GuiInfo *gui; gui = (GuiInfo *) data; dialog = NULL; destroy_flags(newflags); pause_game(gui->game, PAUSE_PREF, 1); } /* * Page generation */ /* Initialise the actual dialog box, but don't add anything */ static void init_preferences_box(GuiInfo *gui, GtkNotebook **window_notebook) { dialog = gtk_dialog_new_with_buttons( _("GNOME Breakout Preferences"), GTK_WINDOW(gui->app), 0, GTK_STOCK_APPLY, GTK_RESPONSE_APPLY, GTK_STOCK_CLOSE, GTK_RESPONSE_CLOSE, GTK_STOCK_OK, GTK_RESPONSE_OK, NULL); g_signal_connect(GTK_OBJECT(dialog), "destroy", G_CALLBACK(cb_pref_destroy), gui); g_signal_connect(GTK_OBJECT(dialog), "response", G_CALLBACK(cb_pref_response), gui); *window_notebook = GTK_NOTEBOOK(gtk_notebook_new()); gtk_container_add (GTK_CONTAINER (GTK_DIALOG(dialog)->vbox), GTK_WIDGET(*window_notebook)); } /* Initialise the "game" section of the preferences box */ void init_game_page(GuiInfo *gui, GtkNotebook *window_notebook) { GtkWidget *gametablabel; GtkWidget *gamehbox; GtkWidget *gamevbox1; GtkWidget *gamevbox2; GtkWidget *bounce_entropy_label; GtkWidget *bounce_entropy_hbox; GtkObject *bounce_entropy_adjustment; GtkWidget *bounce_entropy_sbutton; GtkWidget *hide_pointer_check; GtkWidget *pause_frame; GtkWidget *pause_vbox; GtkWidget *pause_on_pointer_check; GtkWidget *pause_on_focus_check; GtkWidget *pause_on_pref_check; static LevelFrame lf; GList *levelfiles; GtkWidget *difficulty_frame; GtkWidget *difficulty_vbox; GtkWidget *difficulty_easy_radio; GtkWidget *difficulty_medium_radio; GtkWidget *difficulty_hard_radio; GtkTreeSelection *level_list_selection; GtkCellRenderer *renderer; GtkTreeViewColumn *column; /* Reset levelframe */ memset(&lf, 0, sizeof(lf)); /* Vbox and Tablabel - Constructor */ gametablabel = gtk_label_new(_("Game")); gamehbox = gtk_hbox_new(FALSE, GNOME_PAD); gamevbox1 = gtk_vbox_new(FALSE, GNOME_PAD); gamevbox2 = gtk_vbox_new(FALSE, GNOME_PAD); /* Vbox and Tablabel - Packing */ gtk_box_pack_start(GTK_BOX(gamehbox), gamevbox1, TRUE, TRUE, GNOME_PAD); gtk_box_pack_start(GTK_BOX(gamehbox), gamevbox2, TRUE, TRUE, GNOME_PAD); /* Vbox and Tablabel - Show */ gtk_widget_show(gametablabel); gtk_widget_show(gamehbox); gtk_widget_show(gamevbox1); gtk_widget_show(gamevbox2); /* Level Frame - Constructor */ lf.game = gui->game; lf.frame = gtk_frame_new(_("Levels")); lf.vbox = gtk_vbox_new(FALSE, 0); lf.level_list_store = gtk_list_store_new(1, G_TYPE_STRING); lf.level_list_view = GTK_TREE_VIEW(gtk_tree_view_new_with_model( GTK_TREE_MODEL(lf.level_list_store))); //lf.warning_label = gtk_label_new(_("Levels cannot be added or removed\nwhile the game is running.")); lf.button_hbox = gtk_hbox_new(TRUE, 0); lf.level_list_hbox = gtk_hbox_new(TRUE, 0); lf.add_button = gtk_button_new_with_label(_("Add")); lf.remove_button = gtk_button_new_with_label(_("Remove")); lf.game = gui->game; lf.level_list_scrollpane = gtk_scrolled_window_new(NULL, NULL); lf.level_list_selection = NULL; renderer = gtk_cell_renderer_text_new (); column = gtk_tree_view_column_new_with_attributes ("", renderer, "text", 0, NULL); gtk_tree_view_append_column(lf.level_list_view, column); /* Level Frame - Settings */ level_list_selection = gtk_tree_view_get_selection(lf.level_list_view); gtk_tree_selection_set_mode(level_list_selection, GTK_SELECTION_SINGLE); gtk_frame_set_shadow_type(GTK_FRAME(lf.frame), GTK_SHADOW_ETCHED_IN); //gtk_clist_set_shadow_type(GTK_CLIST(lf.clist), GTK_SHADOW_ETCHED_IN); //gtk_clist_set_column_width(GTK_CLIST(lf.clist), 0, 200); levelfiles = leveldata_titlelist(); populate_level_list(&lf, levelfiles); g_list_free(levelfiles); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (lf.level_list_scrollpane), GTK_POLICY_NEVER, GTK_POLICY_ALWAYS); gtk_tree_view_set_headers_visible(lf.level_list_view, FALSE); /* Level Frame - Signals */ g_signal_connect(G_OBJECT(level_list_selection), "changed", G_CALLBACK(cb_level_list_changed), (gpointer) &lf); /* g_signal_connect_object(GTK_OBJECT(lf.add_button), "clicked", GTK_SIGNAL_FUNC(cb_level_add), (gpointer) &lf, 0); g_signal_connect_object(GTK_OBJECT(lf.remove_button), "clicked", GTK_SIGNAL_FUNC(cb_level_remove), (gpointer) &lf, 0); */ g_signal_connect(GTK_OBJECT(lf.add_button), "clicked", GTK_SIGNAL_FUNC(cb_level_add), (gpointer) &lf); g_signal_connect(GTK_OBJECT(lf.remove_button), "clicked", GTK_SIGNAL_FUNC(cb_level_remove), (gpointer) &lf); /* Level Frame - Sensitivity */ if(gui->game->state != STATE_STOPPED) { gtk_widget_set_sensitive(GTK_WIDGET(lf.add_button), FALSE); gtk_widget_set_sensitive(GTK_WIDGET(lf.level_list_view), FALSE); gtk_widget_set_sensitive(GTK_WIDGET(lf.level_list_scrollpane), FALSE); } gtk_widget_set_sensitive(GTK_WIDGET(lf.remove_button), FALSE); /* Level Frame - Packing */ gtk_box_pack_start(GTK_BOX(gamevbox1), lf.frame, TRUE, TRUE, GNOME_PAD); gtk_container_add(GTK_CONTAINER(lf.frame), lf.vbox); //gtk_box_pack_start_defaults(GTK_BOX(lf.vbox), lf.warning_label); gtk_box_pack_start(GTK_BOX(lf.vbox), lf.level_list_hbox, TRUE, TRUE, GNOME_PAD); gtk_box_pack_start(GTK_BOX(lf.vbox), lf.button_hbox, FALSE, FALSE, GNOME_PAD); gtk_container_add(GTK_CONTAINER(lf.level_list_scrollpane), GTK_WIDGET(lf.level_list_view)); gtk_box_pack_start(GTK_BOX(lf.level_list_hbox), lf.level_list_scrollpane, TRUE, TRUE, GNOME_PAD); gtk_box_pack_start(GTK_BOX(lf.button_hbox), lf.add_button, TRUE, TRUE, GNOME_PAD); gtk_box_pack_start(GTK_BOX(lf.button_hbox), lf.remove_button, TRUE, TRUE, GNOME_PAD); /* Level Frame - Show */ gtk_widget_show(lf.frame); gtk_widget_show(lf.vbox); gtk_widget_show(GTK_WIDGET(lf.level_list_view)); //gtk_widget_show(lf.warning_label); gtk_widget_show(lf.button_hbox); gtk_widget_show(lf.level_list_hbox); gtk_widget_show(lf.level_list_scrollpane); gtk_widget_show(lf.add_button); gtk_widget_show(lf.remove_button); /* Difficulty frame and radio buttons - Constructor */ if(gui->game->state == STATE_STOPPED) difficulty_frame = gtk_frame_new(_("Difficulty")); else difficulty_frame = gtk_frame_new(_("Difficulty (next game)")); difficulty_vbox = gtk_vbox_new(FALSE, 0); difficulty_easy_radio = gtk_radio_button_new_with_label(NULL, _("Easy")); difficulty_medium_radio = gtk_radio_button_new_with_label_from_widget( GTK_RADIO_BUTTON(difficulty_easy_radio), _("Medium")); difficulty_hard_radio = gtk_radio_button_new_with_label_from_widget( GTK_RADIO_BUTTON(difficulty_easy_radio), _("Hard")); /* Difficulty frame and radio buttons - Settings/Defaults */ gtk_frame_set_shadow_type(GTK_FRAME(difficulty_frame), GTK_SHADOW_ETCHED_IN); switch(newflags->next_game_difficulty) { case DIFFICULTY_EASY : gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(difficulty_easy_radio), TRUE); break; case DIFFICULTY_MEDIUM : gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(difficulty_medium_radio), TRUE); break; case DIFFICULTY_HARD : gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(difficulty_hard_radio), TRUE); break; default : g_assert_not_reached(); } /* Difficulty frame and radio buttons - Signals */ g_signal_connect(GTK_OBJECT(difficulty_easy_radio), "toggled", GTK_SIGNAL_FUNC(cb_diff), (gpointer) DIFFICULTY_EASY); g_signal_connect(GTK_OBJECT(difficulty_medium_radio), "toggled", GTK_SIGNAL_FUNC(cb_diff), (gpointer) DIFFICULTY_MEDIUM); g_signal_connect(GTK_OBJECT(difficulty_hard_radio), "toggled", GTK_SIGNAL_FUNC(cb_diff), (gpointer) DIFFICULTY_HARD); /* Difficulty frame and radio buttons - Packing */ gtk_box_pack_start_defaults(GTK_BOX(difficulty_vbox), difficulty_easy_radio); gtk_box_pack_start_defaults(GTK_BOX(difficulty_vbox), difficulty_medium_radio); gtk_box_pack_start_defaults(GTK_BOX(difficulty_vbox), difficulty_hard_radio); gtk_container_add(GTK_CONTAINER(difficulty_frame), difficulty_vbox); gtk_box_pack_start(GTK_BOX(gamevbox2), difficulty_frame, TRUE, TRUE, GNOME_PAD); /* Difficulty frame and radio buttons - Show */ gtk_widget_show(difficulty_frame); gtk_widget_show(difficulty_vbox); gtk_widget_show(difficulty_easy_radio); gtk_widget_show(difficulty_medium_radio); gtk_widget_show(difficulty_hard_radio); /* Automatic Pause Frame - Constructor */ pause_frame = gtk_frame_new(_("Automatic Pause")); pause_vbox = gtk_vbox_new(FALSE, 0); pause_on_focus_check = gtk_check_button_new_with_label(_("When we lose keyboard focus")); pause_on_pointer_check = gtk_check_button_new_with_label(_("When the mouse pointer leaves the play window")); pause_on_pref_check = gtk_check_button_new_with_label(_("When the preferences dialog is active")); /* Automatic Pause Frame - Settings */ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(pause_on_focus_check), newflags->pause_on_focus); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(pause_on_pref_check), newflags->pause_on_pref); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(pause_on_pointer_check), newflags->pause_on_pointer); /* Automatic Pause Frame - Signals */ g_signal_connect(GTK_OBJECT(pause_on_focus_check), "toggled", GTK_SIGNAL_FUNC(cb_checkbox_toggled), &newflags->pause_on_focus); g_signal_connect(GTK_OBJECT(pause_on_pointer_check), "toggled", GTK_SIGNAL_FUNC(cb_checkbox_toggled), &newflags->pause_on_pointer); g_signal_connect(GTK_OBJECT(pause_on_pref_check), "toggled", GTK_SIGNAL_FUNC(cb_checkbox_toggled), &newflags->pause_on_pref); /* Automatic Pause Frame - Packing */ gtk_box_pack_start_defaults(GTK_BOX(pause_vbox), pause_on_focus_check); gtk_box_pack_start_defaults(GTK_BOX(pause_vbox), pause_on_pointer_check); gtk_box_pack_start_defaults(GTK_BOX(pause_vbox), pause_on_pref_check); gtk_container_add(GTK_CONTAINER(pause_frame), pause_vbox); gtk_box_pack_start(GTK_BOX(gamevbox2), pause_frame, TRUE, FALSE, GNOME_PAD); /* Automatic Pause Frame - Show */ gtk_widget_show(pause_frame); gtk_widget_show(pause_vbox); gtk_widget_show(pause_on_pointer_check); gtk_widget_show(pause_on_focus_check); gtk_widget_show(pause_on_pref_check); /* Hide pointer */ hide_pointer_check = gtk_check_button_new_with_label( _("Hide the pointer")); gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON(hide_pointer_check), newflags->hide_pointer); gtk_box_pack_start(GTK_BOX(gamevbox2), hide_pointer_check, TRUE, FALSE, GNOME_PAD); gtk_widget_show(hide_pointer_check); g_signal_connect(GTK_OBJECT(hide_pointer_check), "toggled", GTK_SIGNAL_FUNC(cb_checkbox_toggled), &newflags->hide_pointer); /* Bounce Entropy - Constructor */ bounce_entropy_label = gtk_label_new(_("Bounce Entropy (Experimental): ")); bounce_entropy_hbox = gtk_hbox_new(FALSE, GNOME_PAD); bounce_entropy_adjustment = gtk_adjustment_new((gfloat) newflags->bounce_entropy, (gfloat) MIN_BOUNCE_ENTROPY, (gfloat) MAX_BOUNCE_ENTROPY, 1.0, 5.0, 1.0); bounce_entropy_sbutton = gtk_spin_button_new( GTK_ADJUSTMENT(bounce_entropy_adjustment), 1.0, 0); /* Bounce Entropy - Settings */ gtk_spin_button_set_digits(GTK_SPIN_BUTTON(bounce_entropy_sbutton), 0); gtk_spin_button_set_wrap(GTK_SPIN_BUTTON(bounce_entropy_sbutton), FALSE); gtk_spin_button_set_numeric(GTK_SPIN_BUTTON(bounce_entropy_sbutton), TRUE); /* Bounce Entropy - Signals */ g_signal_connect(GTK_OBJECT(bounce_entropy_adjustment), "value_changed", GTK_SIGNAL_FUNC(cb_bounce_entropy), bounce_entropy_sbutton); /* Bounce Entropy - Packing */ gtk_box_pack_start_defaults(GTK_BOX(bounce_entropy_hbox), bounce_entropy_label); gtk_box_pack_start_defaults(GTK_BOX(bounce_entropy_hbox), bounce_entropy_sbutton); gtk_box_pack_start(GTK_BOX(gamevbox2), bounce_entropy_hbox, TRUE, FALSE, GNOME_PAD); /* Bounce Entropy - Show */ gtk_widget_show(bounce_entropy_label); gtk_widget_show(bounce_entropy_hbox); gtk_widget_show(bounce_entropy_sbutton); /* Add the game vbox to the dialog */ gtk_notebook_append_page(GTK_NOTEBOOK(window_notebook), gamehbox, gametablabel); } static void init_control_page(GuiInfo *gui, GtkNotebook *window_notebook) { GtkWidget *controlhbox; GtkWidget *controlvbox1; GtkWidget *controlvbox2; GtkWidget *controltablabel; GtkWidget *bat_speed_label; GtkWidget *bat_speed_hbox; GtkObject *bat_speed_adjustment; GtkWidget *bat_speed_sbutton; GtkWidget *method_frame; GtkWidget *method_vbox; GtkWidget *method_mouse_radio; GtkWidget *method_keyboard_radio; GtkWidget *keyb_frame; GtkWidget *keyb_vbox; GtkWidget *keyb_left_hbox; GtkWidget *keyb_left_label; GtkWidget *keyb_left_entry; GtkWidget *keyb_right_hbox; GtkWidget *keyb_right_label; GtkWidget *keyb_right_entry; GtkWidget *keyb_fire1_hbox; GtkWidget *keyb_fire1_label; GtkWidget *keyb_fire1_entry; GtkWidget *keyb_fire2_hbox; GtkWidget *keyb_fire2_label; GtkWidget *keyb_fire2_entry; /* Init the vbox */ controlhbox = gtk_hbox_new(TRUE, GNOME_PAD); controlvbox1 = gtk_vbox_new(TRUE, GNOME_PAD); controlvbox2 = gtk_vbox_new(TRUE, GNOME_PAD); controltablabel = gtk_label_new(_("Control")); gtk_box_pack_start(GTK_BOX(controlhbox), controlvbox1, TRUE, TRUE, GNOME_PAD); gtk_box_pack_start(GTK_BOX(controlhbox), controlvbox2, TRUE, TRUE, GNOME_PAD); gtk_widget_show(controlhbox); gtk_widget_show(controlvbox1); gtk_widget_show(controlvbox2); /* Method Frame and Radio Buttons */ method_frame = gtk_frame_new(_("Method")); gtk_frame_set_shadow_type(GTK_FRAME(method_frame), GTK_SHADOW_ETCHED_IN); method_vbox = gtk_vbox_new(FALSE, 0); gtk_container_add(GTK_CONTAINER(method_frame), method_vbox); method_keyboard_radio = gtk_radio_button_new_with_label(NULL, _("Keyboard")); method_mouse_radio = gtk_radio_button_new_with_label_from_widget( GTK_RADIO_BUTTON(method_keyboard_radio), _("Mouse")); gtk_box_pack_start_defaults(GTK_BOX(method_vbox), method_keyboard_radio); gtk_box_pack_start_defaults(GTK_BOX(method_vbox), method_mouse_radio); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(method_mouse_radio), newflags->mouse_control); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(method_keyboard_radio), newflags->keyboard_control); gtk_box_pack_start(GTK_BOX(controlvbox1), method_frame, TRUE, TRUE, GNOME_PAD); gtk_widget_show(method_frame); gtk_widget_show(method_vbox); gtk_widget_show(method_keyboard_radio); gtk_widget_show(method_mouse_radio); g_signal_connect(GTK_OBJECT(method_keyboard_radio), "toggled", GTK_SIGNAL_FUNC(cb_ctrl_key), NULL); g_signal_connect(GTK_OBJECT(method_mouse_radio), "toggled", GTK_SIGNAL_FUNC(cb_ctrl_mouse), NULL); /* Bat speed */ bat_speed_label = gtk_label_new(_("Bat speed: ")); bat_speed_hbox = gtk_hbox_new(FALSE, GNOME_PAD); bat_speed_adjustment = gtk_adjustment_new((gfloat) newflags->bat_speed, (gfloat) MIN_BATSPEED, (gfloat) MAX_BATSPEED, 1.0, 5.0, 1.0); bat_speed_sbutton = gtk_spin_button_new( GTK_ADJUSTMENT(bat_speed_adjustment), 1.0, 0); gtk_spin_button_set_digits(GTK_SPIN_BUTTON(bat_speed_sbutton), 0); gtk_spin_button_set_wrap(GTK_SPIN_BUTTON(bat_speed_sbutton), FALSE); gtk_spin_button_set_numeric(GTK_SPIN_BUTTON(bat_speed_sbutton), TRUE); gtk_box_pack_start_defaults(GTK_BOX(bat_speed_hbox), bat_speed_label); gtk_box_pack_start_defaults(GTK_BOX(bat_speed_hbox), bat_speed_sbutton); gtk_box_pack_start(GTK_BOX(controlvbox1), bat_speed_hbox, TRUE, FALSE, GNOME_PAD); gtk_widget_show(bat_speed_label); gtk_widget_show(bat_speed_hbox); gtk_widget_show(bat_speed_sbutton); g_signal_connect(GTK_OBJECT(bat_speed_adjustment), "value_changed", GTK_SIGNAL_FUNC(cb_bat_speed), bat_speed_sbutton); /* Keybindings Frame */ keyb_frame = gtk_frame_new(_("Keybindings")); gtk_frame_set_shadow_type(GTK_FRAME(keyb_frame), GTK_SHADOW_ETCHED_IN); keyb_vbox = gtk_vbox_new(TRUE, GNOME_PAD); gtk_container_add(GTK_CONTAINER(keyb_frame), keyb_vbox); gtk_box_pack_start(GTK_BOX(controlvbox2), keyb_frame, TRUE, TRUE, GNOME_PAD); gtk_widget_show(keyb_vbox); gtk_widget_show(keyb_frame); /* KB: Left */ keyb_left_hbox = gtk_hbox_new(FALSE, GNOME_PAD); keyb_left_label = gtk_label_new(_("Left:")); gtk_misc_set_alignment(GTK_MISC(keyb_left_label), 0.0, 0.5); keyb_left_entry = gtk_entry_new(); gtk_entry_set_editable(GTK_ENTRY(keyb_left_entry), FALSE); gtk_entry_set_text(GTK_ENTRY(keyb_left_entry), gdk_keyval_name(newflags->left_key)); gtk_box_pack_start_defaults(GTK_BOX(keyb_left_hbox), keyb_left_label); gtk_box_pack_start_defaults(GTK_BOX(keyb_left_hbox), keyb_left_entry); gtk_box_pack_start(GTK_BOX(keyb_vbox), keyb_left_hbox, TRUE, TRUE, GNOME_PAD); gtk_widget_show(keyb_left_label); gtk_widget_show(keyb_left_entry); gtk_widget_show(keyb_left_hbox); g_signal_connect(GTK_OBJECT(keyb_left_entry), "key_press_event", GTK_SIGNAL_FUNC(cb_key_left), NULL); /* KB: Right */ keyb_right_hbox = gtk_hbox_new(FALSE, GNOME_PAD); keyb_right_label = gtk_label_new(_("Right:")); gtk_misc_set_alignment(GTK_MISC(keyb_right_label), 0.0, 0.5); keyb_right_entry = gtk_entry_new(); gtk_entry_set_editable(GTK_ENTRY(keyb_right_entry), FALSE); gtk_entry_set_text(GTK_ENTRY(keyb_right_entry), gdk_keyval_name(newflags->right_key)); gtk_box_pack_start_defaults(GTK_BOX(keyb_right_hbox), keyb_right_label); gtk_box_pack_start_defaults(GTK_BOX(keyb_right_hbox), keyb_right_entry); gtk_box_pack_start(GTK_BOX(keyb_vbox), keyb_right_hbox, TRUE, TRUE, GNOME_PAD); gtk_widget_show(keyb_right_label); gtk_widget_show(keyb_right_entry); gtk_widget_show(keyb_right_hbox); g_signal_connect(GTK_OBJECT(keyb_right_entry), "key_press_event", GTK_SIGNAL_FUNC(cb_key_right), NULL); /* KB: Fire1 */ keyb_fire1_hbox = gtk_hbox_new(FALSE, GNOME_PAD); keyb_fire1_label = gtk_label_new(_("Fire One:")); gtk_misc_set_alignment(GTK_MISC(keyb_fire1_label), 0.0, 0.5); keyb_fire1_entry = gtk_entry_new(); gtk_entry_set_editable(GTK_ENTRY(keyb_fire1_entry), FALSE); gtk_entry_set_text(GTK_ENTRY(keyb_fire1_entry), gdk_keyval_name(newflags->fire1_key)); gtk_box_pack_start_defaults(GTK_BOX(keyb_fire1_hbox), keyb_fire1_label); gtk_box_pack_start_defaults(GTK_BOX(keyb_fire1_hbox), keyb_fire1_entry); gtk_box_pack_start(GTK_BOX(keyb_vbox), keyb_fire1_hbox, TRUE, TRUE, GNOME_PAD); gtk_widget_show(keyb_fire1_label); gtk_widget_show(keyb_fire1_entry); gtk_widget_show(keyb_fire1_hbox); g_signal_connect(GTK_OBJECT(keyb_fire1_entry), "key_press_event", GTK_SIGNAL_FUNC(cb_key_fire1), NULL); /* KB: Fire2 */ keyb_fire2_hbox = gtk_hbox_new(FALSE, GNOME_PAD); keyb_fire2_label = gtk_label_new(_("Fire Two:")); gtk_misc_set_alignment(GTK_MISC(keyb_fire2_label), 0.0, 0.5); keyb_fire2_entry = gtk_entry_new(); gtk_entry_set_editable(GTK_ENTRY(keyb_fire2_entry), FALSE); gtk_entry_set_text(GTK_ENTRY(keyb_fire2_entry), gdk_keyval_name(newflags->fire2_key)); gtk_box_pack_start_defaults(GTK_BOX(keyb_fire2_hbox), keyb_fire2_label); gtk_box_pack_start_defaults(GTK_BOX(keyb_fire2_hbox), keyb_fire2_entry); gtk_box_pack_start(GTK_BOX(keyb_vbox), keyb_fire2_hbox, TRUE, TRUE, GNOME_PAD); gtk_widget_show(keyb_fire2_label); gtk_widget_show(keyb_fire2_entry); gtk_widget_show(keyb_fire2_hbox); g_signal_connect(GTK_OBJECT(keyb_fire2_entry), "key_press_event", GTK_SIGNAL_FUNC(cb_key_fire2), NULL); /* Add it to the dialog */ gtk_notebook_append_page(GTK_NOTEBOOK(window_notebook), controlhbox, controltablabel); } /* * Keybinding callbacks */ static void cb_key_left(GtkWidget *widget, GdkEventKey *event, gpointer data) { if(!dialog) return; gtk_entry_set_text(GTK_ENTRY(widget), gdk_keyval_name(event->keyval)); newflags->left_key = event->keyval; set_flags_changed(TRUE); } static void cb_key_right(GtkWidget *widget, GdkEventKey *event, gpointer data) { if(!dialog) return; gtk_entry_set_text(GTK_ENTRY(widget), gdk_keyval_name(event->keyval)); newflags->right_key = event->keyval; set_flags_changed(TRUE); } static void cb_key_fire1(GtkWidget *widget, GdkEventKey *event, gpointer data) { if(!dialog) return; gtk_entry_set_text(GTK_ENTRY(widget), gdk_keyval_name(event->keyval)); newflags->fire1_key = event->keyval; set_flags_changed(TRUE); } static void cb_key_fire2(GtkWidget *widget, GdkEventKey *event, gpointer data) { if(!dialog) return; gtk_entry_set_text(GTK_ENTRY(widget), gdk_keyval_name(event->keyval)); newflags->fire2_key = event->keyval; set_flags_changed(TRUE); } /* * Difficulty callbacks */ static void cb_diff(GtkWidget *widget, gpointer data) { newflags->next_game_difficulty = (Difficulty) data; set_flags_changed(TRUE); } /* * Method callbacks */ static void cb_ctrl_key(GtkWidget *widget, gpointer data) { newflags->mouse_control = FALSE; newflags->keyboard_control = TRUE; set_flags_changed(TRUE); } static void cb_ctrl_mouse(GtkWidget *widget, gpointer data) { newflags->mouse_control = TRUE; newflags->keyboard_control = FALSE; set_flags_changed(TRUE); } /* * Other option callbacks */ static void cb_checkbox_toggled(GtkWidget *w, gboolean *flag) { *flag = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w)); set_flags_changed(TRUE); } static void cb_bat_speed(GtkWidget *widget, gpointer data) { newflags->bat_speed = gtk_spin_button_get_value_as_int( GTK_SPIN_BUTTON(data)); set_flags_changed(TRUE); } static void cb_bounce_entropy(GtkWidget *widget, gpointer data) { newflags->bounce_entropy = gtk_spin_button_get_value_as_int( GTK_SPIN_BUTTON(data)); set_flags_changed(TRUE); } static void populate_level_list(LevelFrame *lf, GList *filenames) { GList *curr; gchar *data; for(curr = filenames; curr; curr = g_list_next(curr)) { data = (gchar *) curr->data; gtk_list_store_append(lf->level_list_store, &(lf->level_list_iter)); gtk_list_store_set(lf->level_list_store, &(lf->level_list_iter), 0, data, -1); } } static void cb_level_list_changed(GtkTreeSelection *selection, gpointer data) { LevelFrame *lf = (LevelFrame *) data; GtkTreeModel *model; if(gtk_tree_selection_get_selected(selection, &model, &(lf->level_list_iter))) { if(lf->game->state == STATE_STOPPED) { gtk_widget_set_sensitive(GTK_WIDGET(lf->remove_button), TRUE); } if (lf->level_list_selection) { g_free(lf->level_list_selection); lf->level_list_selection = NULL; } gtk_tree_model_get(model, &(lf->level_list_iter), 0, &(lf->level_list_selection), -1); } else { gtk_widget_set_sensitive(GTK_WIDGET(lf->remove_button), FALSE); lf->level_list_selection = NULL; } } static void cb_level_add(GtkWidget *widget, gpointer data) { LevelFrame *lf = (LevelFrame *) data; if(lf->game->state == STATE_STOPPED) { lf->fsel = gtk_file_selection_new ("Add Levelfile"); /* Connect Signals */ g_signal_connect(GTK_OBJECT(lf->fsel), "destroy", (GtkSignalFunc) cb_filesel_cancel, data); g_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION (lf->fsel)->cancel_button), "clicked", (GtkSignalFunc) cb_filesel_cancel, data); g_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION (lf->fsel)->ok_button), "clicked", (GtkSignalFunc) cb_filesel_ok, data); /* Set defaults */ gtk_file_selection_set_filename(GTK_FILE_SELECTION(lf->fsel), "*.gbl"); /* Show the selector */ gtk_widget_show(lf->fsel); } else { gui_warning("Cannot add or remove levels while the game is running"); } set_flags_changed(TRUE); } static void cb_level_remove(GtkWidget *widget, gpointer data) { LevelFrame *lf = (LevelFrame *) data; gchar *text; gchar *filename; if(lf->game->state == STATE_STOPPED) { g_assert(lf->level_list_selection); filename = leveldata_remove(lf->level_list_selection); remove_flags_levelfile(newflags, filename); g_free(filename); gtk_list_store_remove(lf->level_list_store, &(lf->level_list_iter)); g_free(lf->level_list_selection); lf->level_list_selection = NULL; } else { gui_warning("Cannot add or remove levels while the game is running"); } set_flags_changed(TRUE); } static void cb_filesel_ok(GtkWidget *w, gpointer data) { LevelFrame *lf = (LevelFrame *) data; gchar *filename; gchar *title; filename = (gchar *) gtk_file_selection_get_filename (GTK_FILE_SELECTION (lf->fsel)); if(lf->game->state == STATE_STOPPED) { if((title = leveldata_add(filename))) { gtk_list_store_append(lf->level_list_store, &(lf->level_list_iter)); gtk_list_store_set(lf->level_list_store, &(lf->level_list_iter), 0, title, -1); add_flags_levelfile(newflags, filename); } } else { gui_warning("Cannot add or remove levels while the game is running"); } gtk_widget_destroy(GTK_WIDGET(lf->fsel)); lf->fsel = NULL; set_flags_changed(TRUE); } static void cb_filesel_cancel(GtkWidget *w, gpointer data) { LevelFrame *lf = (LevelFrame *) data; gtk_widget_destroy(GTK_WIDGET(lf->fsel)); lf->fsel = NULL; } gnome-breakout-0.5.3/src/gui-preferences.h0000664000175000017500000000043707675551502015424 00000000000000/* * The functions which create and handle the preferences dialog * * Copyright (c) 2000 Michael Pearson * * This file is licensed under the GNU General Public License. See the file * "COPYING" for more details. */ void make_preferences_box(GuiInfo *gui); gnome-breakout-0.5.3/src/leveldata.c0000664000175000017500000004350507675551502014300 00000000000000/* * Functions for loading and parsing custom level files. leveldata.c keeps an * internal repository of levels, and which levels belong to which files. * Levels should not be added or removed while the game is running. * * Copyright (c) 2000 Michael Pearson * * This file is license under the GNU General Public License. See the file * "COPYING" for more details */ #include "breakout.h" #include "gui.h" #include "leveldata.h" #include #include /* Internal Contants */ #define DEFAULT_NAME "No Name" #define DEFAULT_AUTHOR "No Author" #define DEFAULT_DIFFICULTY 0 #define VALID_STRING "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz[];',./!@#$^&*()-=_+`~1234567890 " #define VALID_INT "1234567890" #define VALID_WHITESPACE " \n\t" /* Internal Data Structures */ typedef struct { gchar *filename; gchar *title; GList *levels; /* Contains RawLevel structures */ } LevelFile; /* Internal Functions */ static void regenerate_level_list(void); static void add_level_to_levels_list(RawLevel *level); static void free_levelfile(LevelFile *levelfile); static void free_rawlevel(RawLevel *level); static RawLevel *read_level(FILE *fp, gchar *default_name, gchar *default_author, gint default_difficulty, gchar *filename, gint *lineno); static RawLevel *new_rawlevel(gchar **blocks, gint difficulty, gchar *name, gchar *author, gchar *levelfile_title); static LevelFile *new_levelfile(gchar *filename, gchar *title); static LevelFile *load_levelfile(gchar *filename); static LevelFile *read_levelfile(FILE *fp, gchar *filename); static gchar *read_levelblocks(FILE *fp, gchar *filename, gint *lineno); static gchar *sep_string(gchar *line, gchar *tag, gchar *filename, gint lineno); static gint sep_uint(gchar *line, gchar *tag, gchar *filename, gint lineno); static void crop_by_whitespace(gchar *string); static LevelFile *find_levelfile(gchar *filename, gchar *title); static gchar *sep_by_tag(gchar *line, gchar *tag, gchar *filename, gint lineno); static gboolean check_valid_chars(gchar *string, gchar *valid, gchar *filename, gint lineno); static gint verify_raw_data(gint *data, size_t n, gint max); /* Internal Variables */ static GList *levelfiles = NULL; /* Contains LevelFile structures */ static GList *levels = NULL; /* Contains RawLevel structures */ static gint num_levels = 0; /* Functions */ /* Public function for adding a levelfile to leveldata.c's internal structures. * Returns the levelfile's title on success, NULL otherwise. * This function, and functions that it calls will issue GUI warnings */ gchar *leveldata_add(char *filename) { LevelFile *levelfile; /* See if we already have this file */ if(find_levelfile(filename, NULL)) { gui_warning(_("Attempt to add a levelfile that we already have: %s"), filename); return FALSE; } levelfile = load_levelfile(filename); /* If the load succeded, add it to the levelfile list and regenerate * the levels list */ if(levelfile) { levelfiles = g_list_prepend(levelfiles, levelfile); regenerate_level_list(); return levelfile->title; } else { return NULL; } } /* Removes a levelfile from leveldata.c's internal structures. Returns the * filename of the removed levelfile, so that it can be removed from the flags * levelfile list. The filename should be freed by you. */ gchar * leveldata_remove(gchar *title) { LevelFile *levelfile; gchar *filename = NULL; levelfile = find_levelfile(NULL, title); if(levelfile) { filename = g_strdup(levelfile->filename); free_levelfile(levelfile); levelfiles = g_list_remove(levelfiles, levelfile); regenerate_level_list(); } else { g_assert_not_reached(); } return filename; } /* Returns the number of levels that we have in our repository */ gint leveldata_num_levels(void) { return num_levels; } /* Frees and regenerates the sequential level list from the levelfiles list. * Also updates num_levels with the number of levels that we have */ static void regenerate_level_list(void) { GList *currlf, *currl; LevelFile *levelfile; if(levels) { g_list_free(levels); levels = NULL; } num_levels = 0; for(currlf = levelfiles; currlf; currlf = g_list_next(currlf)) { levelfile = (LevelFile *) currlf->data; for(currl = levelfile->levels; currl; currl = g_list_next(currl)) { add_level_to_levels_list((RawLevel *) currl->data); num_levels++; } } } /* Adds a RawLevel to the levels list. The levels list is sorted by precedence * of difficulty, then alphabetically by level name */ static void add_level_to_levels_list(RawLevel *level) { GList *curr; RawLevel *currl; gint stop = 0; gint i; for(i = 0, curr = levels; curr && !stop; curr = g_list_next(curr)) { currl = (RawLevel *) curr->data; if(currl->difficulty == level->difficulty) { if(strcmp(currl->name, level->name) >= 0) { stop = 1; } } else if(currl->difficulty > level->difficulty) { stop = 1; } if(!stop) { i++; } } levels = g_list_insert(levels, level, i); } /* Deallocates a levelfile structure, also destroying its children levels */ static void free_levelfile(LevelFile *levelfile) { GList *curr; if(levelfile->filename) g_free(levelfile->filename); if(levelfile->title) g_free(levelfile->title); if(levelfile->levels) { for(curr = levelfile->levels; curr; curr = g_list_next(curr)) { free_rawlevel((RawLevel *) curr->data); } g_list_free(levelfile->levels); } g_free(levelfile); } /* Deallocates a rawlevel structure */ static void free_rawlevel(RawLevel *level) { if(level->name) g_free(level->name); if(level->author) g_free(level->author); if(level->levelfile_title) g_free(level->levelfile_title); g_free(level); } /* Generates a new levelfile structure. Duplicates and assigns filename/title * if provided */ static LevelFile *new_levelfile(gchar *filename, gchar *title) { LevelFile *new; new = g_malloc(sizeof(LevelFile)); new->levels = NULL; if(filename) new->filename = g_strdup(filename); else new->filename = NULL; if(title) new->filename = g_strdup(title); else new->title = NULL; return new; } /* Generates a new rawlevel structure. Duplicates and assigns fields if they * are provided */ static RawLevel *new_rawlevel(gchar **blocks, gint difficulty, gchar *name, gchar *author, gchar *levelfile_title) { RawLevel *new; new = g_malloc(sizeof(RawLevel)); memset(new, 0, sizeof(RawLevel)); if(blocks) memcpy(new->blocks, blocks, sizeof(gchar) * BLOCKS_TOTAL); if(difficulty) new->difficulty = difficulty; if(name) new->name = g_strdup(name); if(author) new->author = g_strdup(author); if(levelfile_title) new->levelfile_title = g_strdup(levelfile_title); return new; } /* Attempts to load a levelfile. Returns 0 on failure */ static LevelFile *load_levelfile(gchar *filename) { FILE *fp; LevelFile *ret; fp = fopen(filename, "r"); if(!fp) { gui_warning(_("Cannot open levelfile %s, discarding: %s"), filename, strerror(errno)); return 0; } ret = read_levelfile(fp, filename); fclose(fp); return ret; } /* Reads an already opened levelfile. Returns 0 on an error */ static LevelFile *read_levelfile(FILE *fp, gchar *filename) { LevelFile *ret; GList *curr; gint lineno = 0 , ret_zero = FALSE; RawLevel *level; gchar buffer[1024]; gchar *default_author = NULL; gchar *default_name = NULL; gint default_difficulty = -1; ret = new_levelfile(filename, NULL); while(!ret_zero && fgets(buffer, 1024, fp)) { lineno++; crop_by_whitespace(buffer); if(!*buffer || *buffer == '#') { continue; } ret_zero = FALSE; if(!strncmp(buffer, "GLOBAL_AUTHOR", strlen("GLOBAL_AUTHOR"))) { default_author = sep_string(buffer, "GLOBAL_AUTHOR", filename, lineno); if(!default_author) { ret_zero = TRUE; } } else if (!strncmp(buffer, "GLOBAL_NAME", strlen("GLOBAL_NAME"))) { default_name = sep_string(buffer, "GLOBAL_NAME", filename, lineno); if(!default_name) { ret_zero = TRUE; } } else if (!strncmp(buffer, "GLOBAL_DIFFICULTY", strlen("GLOBAL_DIFFICULTY"))) { default_difficulty = sep_uint(buffer, "GLOBAL_DIFFICULTY", filename, lineno); if(default_difficulty == -1) { ret_zero = TRUE; } } else if (!strcmp(buffer, "BEGIN_LEVEL")) { level = read_level(fp, default_name, default_author, default_difficulty, filename, &lineno); if(level) { ret->levels = g_list_prepend(ret->levels, level); } else { ret_zero = TRUE; } } else if (!strncmp(buffer, "TITLE ", strlen("TITLE "))) { if(ret->title) { g_free(ret->title); } ret->title = sep_string(buffer, "TITLE", filename, lineno); if(!ret->title) { ret_zero = TRUE; } } else { gui_warning(_("Unrecognized or incorrectly positioned directive '%s' on line %d of %s"), buffer, lineno, filename); ret_zero = TRUE; } } /* Check any weird IO errors */ if(!ret_zero && !feof(fp)) { gui_warning(_("Error while parsing %s: %s"), filename, strerror(errno)); ret_zero = TRUE; } if(!ret_zero) { /* Syntax tests passed */ /* Check that we have a title */ if(!ret_zero && !ret->title) ret->title = g_strdup(filename); /* Set the "title" entry in each rawlevel */ for(curr = ret->levels; curr; curr = g_list_next(curr)) { level = (RawLevel *) curr->data; level->levelfile_title = g_strdup(ret->title); } } else { /* Syntax tests failed */ /* Free the junk */ free_levelfile(ret); ret = 0; } /* Cleanup our defaults*/ if(default_name) { g_free(default_name); } if(default_author) { g_free(default_author); } return ret; } /* Reads a level section of a levelfile, until it hits an "END_LEVEL". Returns * the RawLevel on success, NULL otherwise */ static RawLevel *read_level(FILE *fp, gchar *default_name, gchar *default_author, gint default_difficulty, gchar *filename, gint *lineno) { RawLevel *ret; char buffer[1024]; gchar *blocks; gint ret_zero = FALSE, end_level = 0; ret = new_rawlevel(NULL, -1, NULL, NULL, NULL); while(!ret_zero && !end_level && fgets(buffer, 1024, fp)) { ret_zero = FALSE; crop_by_whitespace(buffer); (*lineno)++; if(!*buffer || *buffer == '#') { continue; } if(!strcmp(buffer, "END_LEVEL")) { end_level = 1; } else if (!strcmp(buffer, "BEGIN_DATA")) { blocks = read_levelblocks(fp, filename, lineno); if(blocks) { memcpy(ret->blocks, blocks, sizeof(gchar) * BLOCKS_TOTAL); } else { ret_zero = TRUE; } } else if(!strncmp(buffer, "AUTHOR", strlen("AUTHOR"))) { ret->author = sep_string(buffer, "AUTHOR", filename, *lineno); if(!ret->author) { ret_zero = TRUE; } } else if(!strncmp(buffer, "NAME", strlen("NAME"))) { ret->name = sep_string(buffer, "NAME", filename, *lineno); if(!ret->name) { ret_zero = TRUE; } } else if(!strncmp(buffer, "DIFFICULTY", strlen("DIFFICULTY"))) { ret->difficulty = sep_uint(buffer, "DIFFICULTY", filename, *lineno); if(ret->difficulty == -1) { ret_zero = TRUE; } } else { gui_warning(_("Unrecognized or incorrectly positioned directive '%s' on line %d of %s"), buffer, *lineno, filename); ret_zero = TRUE; } } if(!ret_zero && !end_level) { if(feof(fp)) { gui_warning(_("Unexpected EOF while parsing level in %s"), filename); } else { gui_warning(_("Error while parsing %s: %s"), filename, strerror(errno)); } ret_zero = TRUE; } /* Assign defaults if necessary */ if(ret_zero) { free_rawlevel(ret); ret = 0; } else { if(ret->difficulty == -1) { if(default_difficulty == -1) { ret->difficulty = DEFAULT_DIFFICULTY; } else { ret->difficulty = default_difficulty; } } if(!ret->name) { if(!default_name) { ret->name = g_strdup(DEFAULT_NAME); } else { ret->name = g_strdup(default_name); } } if(!ret->author) { if(!default_author) { ret->author = g_strdup(DEFAULT_AUTHOR); } else { ret->author = g_strdup(default_author); } } } return ret; } /* Reads the leveldata section of a level in a levelfile until it hits the * END_DATA tag. Returns blocks on success, NULL otherwise */ static gchar *read_levelblocks(FILE *fp, gchar *filename, gint *lineno) { static gchar ret[BLOCKS_TOTAL]; gint r[BLOCKS_X]; gchar buffer[1024]; gint i, ret_zero = FALSE, end_data = 0, got_records, ii, bad_block; for(i = 0; !ret_zero && !end_data && fgets(buffer, 1024, fp); i += BLOCKS_X) { (*lineno)++; crop_by_whitespace(buffer); if(!*buffer || *buffer == '#') { continue; } if(!strcmp(buffer, "END_DATA")) { end_data = 1; } else if(i >= BLOCKS_TOTAL) { gui_warning(_("Too many blocks in line %d of %s"), *lineno, filename); ret_zero = TRUE; } else { /* FIXME: Hardcoded to BLOCKS_X == 10 */ got_records = sscanf(buffer, "%d,%d,%d,%d,%d,%d,%d,%d,%d,%d", &r[0], &r[1], &r[2], &r[3], &r[4], &r[5], &r[6], &r[7], &r[8], &r[9]); if(!got_records) { gui_warning(_("Syntax error reading level data in line %d of %s"), *lineno, filename); ret_zero = TRUE; } else if(got_records != BLOCKS_X) { gui_warning(_("Expected %d values, got %s at line %d of %s"), got_records, BLOCKS_X, *lineno, filename); ret_zero = TRUE; } else if((bad_block = verify_raw_data(r, 10, MAX_BLOCK_CODE))) { gui_warning(_("Block %d (%d) of line %d of %s is higher than %d"), bad_block, (int) r[bad_block - 1], *lineno, filename, MAX_BLOCK_CODE); ret_zero = TRUE; } else { for(ii = 0; ii < BLOCKS_X; ii++) { ret[i + ii] = (gchar) r[ii]; } } } } if(!ret_zero && !end_data && (feof(fp) || ferror(fp))) { if(feof(fp)) { gui_warning(_("Unexpected EOF while reading level data in file %s"), filename); } else { gui_warning(_("Error while reading %s: %s"), filename, strerror(errno)); } ret_zero = TRUE; } if(!ret_zero) { g_assert(end_data); } if(i < BLOCKS_TOTAL) { gui_warning(_("Not enough blocks in level data at line %d of %s"), *lineno, filename); ret_zero = TRUE; } if(ret_zero) { return 0; } else { return ret; } } /* Takes an input line and seperates the supplied tag from the value following * it. Does checking for valid characters. On success, returns the string, * else NULL */ static gchar *sep_string(gchar *line, gchar *tag, gchar *filename, gint lineno) { gchar *buffer, *value; /* So we can mess with the line without damaging the original contents */ buffer = g_strdup(line); value = sep_by_tag(buffer, tag, filename, lineno); if(value) { if(check_valid_chars(value, VALID_STRING, filename, lineno)) { value = g_strdup(value); } else { value = FALSE; } } else { value = FALSE; } g_free(buffer); return value; } /* Seperates a value from the supplied tag, showing an error if no value is * given. Returns the value on success, NULL on failure. Also crops * surrounding whitespace from the value*/ static gchar *sep_by_tag(gchar *line, gchar *tag, gchar *filename, gint lineno) { gint tag_len; gchar *ret; tag_len = strlen(tag); ret = line + tag_len; crop_by_whitespace(ret); if(!*ret) { gui_warning(_("Line %d of %s contains the tag '%s' without a value"), lineno, filename, tag); return FALSE; } else { return ret; } } /* Checks the validity of a string against a set of allowed characters, * showing an error if the check fails. Returns non-NULL if the test passes. */ static gboolean check_valid_chars(gchar *string, gchar *valid, gchar *filename, gint lineno) { if(strspn(string, valid) != strlen(string)) { gui_warning(_("Line %d of %s contains the value '%s', which contains illegal characters. Legal characters are: '%s'"), lineno, filename, string, valid); return FALSE; } else { return TRUE; } } /* Takes an input line and seperates the supplied tag from the value following * it. Does checking for valid characters. Unlike sep_string, the value in * this case must be an unsigned integer. Returns the integer on success, -1 * otherwise */ static gint sep_uint(gchar *line, gchar *tag, gchar *filename, gint lineno) { gchar *buffer, *value; gint ret; /* So we can mess with the line without damaging the original contents */ buffer = g_strdup(line); value = sep_by_tag(buffer, tag, filename, lineno); if(value) { if(check_valid_chars(value, VALID_INT, filename, lineno)) { ret = atoi(value); } else { ret = -1; } } else { ret = -1; } g_free(buffer); return ret; } /* Crops the leading and ending whitespace of a string. Modifies the original * string rather than allocating a new one. * * This isn't obfuscated, just efficient ;) */ static void crop_by_whitespace(gchar *string) { gchar *a, *b; for(b = string; *b; b++); for(; b > string && strchr(VALID_WHITESPACE, *(b - 1)); b--); *b = '\0'; /* Move the beginning */ for(b = string; *b && strchr(VALID_WHITESPACE, *b); b++); for(a = string; *b; *a++ = *b++); *a = '\0'; } /* Attempts to find a levelfile matching filename and/or title in the * internal levelfile list. Returns the levelfile on success, NULL otherwise */ static LevelFile *find_levelfile(gchar *filename, gchar *title) { GList *curr; LevelFile *currlf = NULL; LevelFile *ret = NULL; for(curr = levelfiles; curr && !ret; curr = g_list_next(curr)) { currlf = (LevelFile *) curr->data; if((!filename || !strcmp(currlf->filename, filename)) && (!title || !strcmp(currlf->title, title))) { ret = currlf; } } return ret; } /* Checks that numbers starting from data to n are below or equal to max, * returning n+1 if the test fails, zero otherwise */ static gint verify_raw_data(gint *data, size_t n, gint max) { int i; for(i = 0; i < n; i++) { if(data[i] > max) return i + 1; } return 0; } /* Returns a rawlevel */ RawLevel *leveldata_get(gint level_num) { GList *curr; gint i; g_assert(level_num < num_levels); for(i = 0, curr = levels; i < level_num && curr; i++, curr = g_list_next(curr)); g_assert(curr); return (RawLevel *) curr->data; } /* Builds a GList of the titles that we have, and returns it. The list is * freeable, but the strings are not */ GList *leveldata_titlelist(void) { GList *ret = NULL; GList *curr; for(curr = levelfiles; curr; curr = g_list_next(curr)) { ret = g_list_prepend(ret, ((LevelFile *) curr->data)->title); } return ret; } gnome-breakout-0.5.3/src/leveldata.h0000664000175000017500000000121707675551502014277 00000000000000/* * Functions for loading and parsing custom level files. * * Copyright (c) 2000 Michael Pearson * * This file is license under the GNU General Public License. See the file * "COPYING" for more details */ #define BLOCK_NONE_CODE 0 #define BLOCK_DEFAULT_CODE 1 #define BLOCK_INVINCIBLE_CODE 2 #define BLOCK_STRONG_1_CODE 3 #define BLOCK_STRONG_2_CODE 4 #define BLOCK_STRONG_3_CODE 5 #define BLOCK_EXPLODE_CODE 6 #define MAX_BLOCK_CODE 6 gchar *leveldata_add(char *filename); gchar *leveldata_remove(char *title); RawLevel *leveldata_get(gint level_num); GList *leveldata_titlelist(void); gint leveldata_num_levels(void); gnome-breakout-0.5.3/src/powerup.c0000664000175000017500000001133610051563613014021 00000000000000/* * Powerup handling * * Copyright (c) 2000 Michael Pearson * * This file is licensed under the GNU General Public License. See the file * "COPYING" for more details. */ #include #include "breakout.h" #include "gui.h" #include "anim.h" #include "game.h" #include "ball.h" #include "bat.h" #include "collision.h" #include "powerup.h" #define POWERUP_SPEED 2 /* Note that it's better to have a low chance of a powerup appearing and * powerful powerups, rather than a high chance and weak powerups. This is * mainly because powerups cause slowdown :) */ #define POWERUP_CHANCE 20.0 /* The chance that a powerup will occur. Works like a D20 roll in AD&D. If * the roll is higher than the probability, a powerup of that probability will * occur */ #define PROBABILITY_CAP 20.0 #define LOW_PROBABILITY 16 #define MEDIUM_PROBABILITY 9 #define HIGH_PROBABILITY 0 static PowerupType low_probability[] = { POWER_NEXTLEVEL, POWER_NEWLIFE, -1 }; static PowerupType medium_probability[] = { POWER_SLOW, POWER_WIDEBAT, POWER_NEWBALL, -1 }; static PowerupType high_probability[] = { POWER_SCORE500, POWER_LASER, -1 }; /* Internal functions */ static GList *remove_powerup(GList *powerups, Powerup *powerup); static void move_powerup(Powerup *powerup); /* Checks to see whether to create a powerup, and if so, creates one */ void new_powerup(Game *game, int x, int y) { Powerup *powerup; gint rand_result; gint num_powerups; PowerupType *p_section = NULL; if((POWERUP_CHANCE * rand()/RAND_MAX) > 1.0) return; powerup = g_malloc(sizeof(Powerup)); g_assert(powerup); powerup->geometry.x1 = x; powerup->geometry.y1 = y; powerup->geometry.x2 = x + POWERUP_WIDTH; powerup->geometry.y2 = y + POWERUP_HEIGHT; rand_result = (int) (PROBABILITY_CAP * rand() / RAND_MAX); if(rand_result >= LOW_PROBABILITY) p_section = low_probability; else if(rand_result >= MEDIUM_PROBABILITY) p_section = medium_probability; else if(rand_result >= HIGH_PROBABILITY) p_section = high_probability; else g_assert_not_reached(); for(num_powerups = 0; p_section[num_powerups] != -1; num_powerups++); rand_result = (int) ((double) num_powerups * rand() / RAND_MAX); powerup->type = p_section[rand_result]; switch(powerup->type) { case POWER_SCORE500 : powerup->animation = get_static_animation (ANIM_POWERUP_SCORE500); break; case POWER_LASER : powerup->animation = get_static_animation (ANIM_POWERUP_LASER); break; case POWER_NEWLIFE : powerup->animation = get_static_animation (ANIM_POWERUP_NEWLIFE); break; case POWER_NEWBALL : powerup->animation = get_static_animation (ANIM_POWERUP_NEWBALL); break; case POWER_NEXTLEVEL : powerup->animation = get_static_animation (ANIM_POWERUP_NEXTLEVEL); break; case POWER_SLOW : powerup->animation = get_static_animation (ANIM_POWERUP_SLOW); break; case POWER_WIDEBAT : powerup->animation = get_static_animation (ANIM_POWERUP_WIDEBAT); break; default : g_assert_not_reached(); } add_to_canvas((Entity *) powerup); game->powerups = g_list_prepend(game->powerups, powerup); } /* Adtivates a powerup, and removes it */ void activate_powerup(Game *game, Powerup *powerup) { switch(powerup->type) { case POWER_SCORE500 : ADD_SCORE(game, 500); break; case POWER_LASER : change_bat_type(game, BAT_LASER); break; case POWER_NEWLIFE : new_life(game); break; case POWER_NEWBALL : new_ball_stuck(game); break; case POWER_NEXTLEVEL : game->powerup_next_level = TRUE; break; case POWER_SLOW : slow_balls(game); break; case POWER_WIDEBAT : change_bat_type(game, BAT_WIDE); break; default : g_assert_not_reached(); } if(powerup) game->powerups = remove_powerup(game->powerups, powerup); } static GList *remove_powerup(GList *powerups, Powerup *powerup) { powerups = g_list_remove(powerups, powerup); remove_from_canvas((Entity *) powerup); g_free(powerup); return powerups; } /* De-allocate a list of powerups */ void destroy_powerup_list(GList *powerups) { while(powerups) powerups = remove_powerup(powerups, (Powerup *) powerups->data); } /* Make the powerups move, and see if the bat caught them */ void iterate_powerups(Game *game) { GList *powerups; Powerup *powerup; powerups = game->powerups; while(powerups) { powerup = (Powerup *) powerups->data; powerups = g_list_next(powerups); move_powerup(powerup); if(!bat_powerup_collision(game, powerup)) if(powerup->geometry.y2 > GAME_HEIGHT) game->powerups = remove_powerup(game->powerups, powerup); } } static void move_powerup(Powerup *powerup) { powerup->geometry.y1 += POWERUP_SPEED; powerup->geometry.y2 += POWERUP_SPEED; update_canvas_position((Entity *)powerup); } gnome-breakout-0.5.3/src/powerup.h0000664000175000017500000000057210046267762014040 00000000000000/* * Powerup handling * * Copyright (c) 2000 Michael Pearson * * This file is licensed under the GNU General Public License. See the file * "COPYING" for more details. */ void new_powerup(Game *game, int x, int y); void activate_powerup(Game *game, Powerup *powerup); void destroy_powerup_list(GList *powerups); void iterate_powerups(Game *game); gnome-breakout-0.5.3/src/util.c0000664000175000017500000000150510050001664013262 00000000000000/* * Utility functions * * Copyright (c) 2004 Michael Pearson * * This file is licensed under the GNU General Public License. See the file * "COPYING" for more details. * * $Id: $ */ #include "breakout.h" #include "gui.h" void gb_error(gchar *format, ...) { va_list ap; gchar *message; gchar *message_exit; va_start(ap, format); message = g_strdup_vprintf(format, ap); va_end(ap); message_exit = g_strdup_printf("%s\n\nProgram will now exit.", message); fprintf(stderr, "ERROR: %s\n", message); gui_error(message_exit); g_free(message); g_free(message_exit); //g_error(message); exit(1); } void gb_warning(gchar *format, ...) { gchar *message; va_list ap; va_start(ap, format); message = g_strdup_vprintf(format, ap); va_end(ap); g_warning(message); g_free(message); } gnome-breakout-0.5.3/src/util.h0000664000175000017500000000044610046267735013314 00000000000000/* * Utility functions * * Copyright (c) 2004 Michael Pearson * * This file is licensed under the GNU General Public License. See the file * "COPYING" for more details. * * $Id: $ */ void gb_error(gchar *format, ...); void gb_warning(gchar *format, ...); gnome-breakout-0.5.3/pixmaps/0000777000175000017500000000000010052645513013125 500000000000000gnome-breakout-0.5.3/pixmaps/Makefile.in0000664000175000017500000002106610052645513015115 00000000000000# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am # Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. SHELL = @SHELL@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ prefix = @prefix@ exec_prefix = @exec_prefix@ bindir = @bindir@ sbindir = @sbindir@ libexecdir = @libexecdir@ datadir = @datadir@ sysconfdir = @sysconfdir@ sharedstatedir = @sharedstatedir@ localstatedir = @localstatedir@ libdir = @libdir@ infodir = @infodir@ mandir = @mandir@ includedir = @includedir@ oldincludedir = /usr/include DESTDIR = pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = .. ACLOCAL = @ACLOCAL@ AUTOCONF = @AUTOCONF@ AUTOMAKE = @AUTOMAKE@ AUTOHEADER = @AUTOHEADER@ INSTALL = @INSTALL@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) INSTALL_DATA = @INSTALL_DATA@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ transform = @program_transform_name@ NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : host_alias = @host_alias@ host_triplet = @host@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CFLAGS = @CFLAGS@ CPPFLAGS = @CPPFLAGS@ DATADIRNAME = @DATADIRNAME@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GNOMEUI_CFLAGS = @GNOMEUI_CFLAGS@ GNOMEUI_LIBS = @GNOMEUI_LIBS@ HAVE_LIB = @HAVE_LIB@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ LDFLAGS = @LDFLAGS@ LIB = @LIB@ LTLIB = @LTLIB@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MKINSTALLDIRS = @MKINSTALLDIRS@ PACKAGE = @PACKAGE@ PKG_CONFIG = @PKG_CONFIG@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ WARN_CXXFLAGS = @WARN_CXXFLAGS@ EXTRA_DIST = ball.default.0.png bat.default.0.png block.default.0.png block.default.die.0.png block.default.die.1.png block.default.die.2.png block.default.die.3.png block.default.die.4.png block.default.die.5.png block.default.die.6.png block.default.die.7.png block.default.die.8.png block.default.die.9.png block.default.die.10.png block.default.die.11.png block.default.die.12.png block.default.die.13.png block.invincible.0.png powerup.score500.0.png title.png block.strong.1.0.png block.strong.2.0.png block.strong.3.0.png block.strong.1.die.0.png block.strong.1.die.1.png block.strong.1.die.2.png block.strong.1.die.3.png block.strong.1.die.4.png block.strong.1.die.5.png block.strong.1.die.6.png block.strong.2.die.0.png block.strong.2.die.1.png block.strong.2.die.2.png block.strong.2.die.3.png block.strong.2.die.4.png block.strong.2.die.5.png block.strong.2.die.6.png block.strong.3.die.0.png block.strong.3.die.1.png block.strong.3.die.2.png block.strong.3.die.3.png block.strong.3.die.4.png block.strong.3.die.5.png block.strong.3.die.6.png block.explode.0.png block.explode.die.0.png block.explode.die.1.png block.explode.die.2.png block.explode.die.3.png block.explode.die.4.png block.explode.die.5.png block.explode.die.6.png block.explode.die.7.png bat.laser.0.png laser.0.png powerup.laser.0.png powerup.newlife.0.png powerup.newball.0.png powerup.nextlevel.0.png powerup.slow.0.png powerup.widebat.0.png bat.wide.0.png pixmapdir = $(datadir)/gnome-breakout/pixmaps pixmap_DATA = ball.default.0.png bat.default.0.png block.default.0.png block.default.die.0.png block.default.die.1.png block.default.die.2.png block.default.die.3.png block.default.die.4.png block.default.die.5.png block.default.die.6.png block.default.die.7.png block.default.die.8.png block.default.die.9.png block.default.die.10.png block.default.die.11.png block.default.die.12.png block.default.die.13.png block.invincible.0.png powerup.score500.0.png title.png block.strong.1.0.png block.strong.2.0.png block.strong.3.0.png block.strong.1.die.0.png block.strong.1.die.1.png block.strong.1.die.2.png block.strong.1.die.3.png block.strong.1.die.4.png block.strong.1.die.5.png block.strong.1.die.6.png block.strong.3.die.0.png block.strong.2.die.0.png block.strong.2.die.0.png block.strong.2.die.1.png block.strong.2.die.2.png block.strong.2.die.3.png block.strong.2.die.4.png block.strong.2.die.5.png block.strong.2.die.6.png block.strong.3.die.0.png block.strong.3.die.1.png block.strong.3.die.2.png block.strong.3.die.3.png block.strong.3.die.4.png block.strong.3.die.5.png block.strong.3.die.6.png block.explode.0.png block.explode.die.0.png block.explode.die.1.png block.explode.die.2.png block.explode.die.3.png block.explode.die.4.png block.explode.die.5.png block.explode.die.6.png block.explode.die.7.png bat.laser.0.png laser.0.png powerup.laser.0.png bat.laser.0.png laser.0.png powerup.laser.0.png bat.laser.0.png laser.0.png powerup.laser.0.png powerup.newlife.0.png powerup.newball.0.png powerup.nextlevel.0.png powerup.slow.0.png powerup.widebat.0.png bat.wide.0.png mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_CLEAN_FILES = DATA = $(pixmap_DATA) DIST_COMMON = Makefile.am Makefile.in DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) TAR = tar GZIP_ENV = --best all: all-redirect .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps pixmaps/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status cd $(top_builddir) \ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status install-pixmapDATA: $(pixmap_DATA) @$(NORMAL_INSTALL) $(mkinstalldirs) $(DESTDIR)$(pixmapdir) @list='$(pixmap_DATA)'; for p in $$list; do \ if test -f $(srcdir)/$$p; then \ echo " $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(pixmapdir)/$$p"; \ $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(pixmapdir)/$$p; \ else if test -f $$p; then \ echo " $(INSTALL_DATA) $$p $(DESTDIR)$(pixmapdir)/$$p"; \ $(INSTALL_DATA) $$p $(DESTDIR)$(pixmapdir)/$$p; \ fi; fi; \ done uninstall-pixmapDATA: @$(NORMAL_UNINSTALL) list='$(pixmap_DATA)'; for p in $$list; do \ rm -f $(DESTDIR)$(pixmapdir)/$$p; \ done tags: TAGS TAGS: distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) subdir = pixmaps distdir: $(DISTFILES) @for file in $(DISTFILES); do \ d=$(srcdir); \ if test -d $$d/$$file; then \ cp -pr $$d/$$file $(distdir)/$$file; \ else \ test -f $(distdir)/$$file \ || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ || cp -p $$d/$$file $(distdir)/$$file || :; \ fi; \ done info-am: info: info-am dvi-am: dvi: dvi-am check-am: all-am check: check-am installcheck-am: installcheck: installcheck-am install-exec-am: install-exec: install-exec-am install-data-am: install-pixmapDATA install-data: install-data-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am install: install-am uninstall-am: uninstall-pixmapDATA uninstall: uninstall-am all-am: Makefile $(DATA) all-redirect: all-am install-strip: $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install installdirs: $(mkinstalldirs) $(DESTDIR)$(pixmapdir) mostlyclean-generic: clean-generic: distclean-generic: -rm -f Makefile $(CONFIG_CLEAN_FILES) -rm -f config.cache config.log stamp-h stamp-h[0-9]* maintainer-clean-generic: mostlyclean-am: mostlyclean-generic mostlyclean: mostlyclean-am clean-am: clean-generic mostlyclean-am clean: clean-am distclean-am: distclean-generic clean-am distclean: distclean-am maintainer-clean-am: maintainer-clean-generic distclean-am @echo "This command is intended for maintainers to use;" @echo "it deletes files that may require special tools to rebuild." maintainer-clean: maintainer-clean-am .PHONY: uninstall-pixmapDATA install-pixmapDATA tags distdir info-am \ info dvi-am dvi check check-am installcheck-am installcheck \ install-exec-am install-exec install-data-am install-data install-am \ install uninstall-am uninstall all-redirect all-am all installdirs \ mostlyclean-generic distclean-generic clean-generic \ maintainer-clean-generic clean mostlyclean distclean maintainer-clean # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: gnome-breakout-0.5.3/pixmaps/Makefile.am0000664000175000017500000000627507675551502015124 00000000000000EXTRA_DIST = ball.default.0.png bat.default.0.png block.default.0.png \ block.default.die.0.png block.default.die.1.png \ block.default.die.2.png block.default.die.3.png \ block.default.die.4.png block.default.die.5.png \ block.default.die.6.png block.default.die.7.png \ block.default.die.8.png block.default.die.9.png \ block.default.die.10.png block.default.die.11.png \ block.default.die.12.png block.default.die.13.png \ block.invincible.0.png powerup.score500.0.png \ title.png block.strong.1.0.png block.strong.2.0.png \ block.strong.3.0.png block.strong.1.die.0.png \ block.strong.1.die.1.png block.strong.1.die.2.png \ block.strong.1.die.3.png block.strong.1.die.4.png \ block.strong.1.die.5.png block.strong.1.die.6.png \ block.strong.2.die.0.png \ block.strong.2.die.1.png block.strong.2.die.2.png \ block.strong.2.die.3.png block.strong.2.die.4.png \ block.strong.2.die.5.png block.strong.2.die.6.png \ block.strong.3.die.0.png \ block.strong.3.die.1.png block.strong.3.die.2.png \ block.strong.3.die.3.png block.strong.3.die.4.png \ block.strong.3.die.5.png block.strong.3.die.6.png \ block.explode.0.png block.explode.die.0.png \ block.explode.die.1.png block.explode.die.2.png \ block.explode.die.3.png block.explode.die.4.png \ block.explode.die.5.png block.explode.die.6.png \ block.explode.die.7.png \ bat.laser.0.png laser.0.png powerup.laser.0.png \ powerup.newlife.0.png powerup.newball.0.png \ powerup.nextlevel.0.png powerup.slow.0.png \ powerup.widebat.0.png bat.wide.0.png pixmapdir = $(datadir)/gnome-breakout/pixmaps pixmap_DATA = ball.default.0.png bat.default.0.png block.default.0.png \ block.default.die.0.png block.default.die.1.png \ block.default.die.2.png block.default.die.3.png \ block.default.die.4.png block.default.die.5.png \ block.default.die.6.png block.default.die.7.png \ block.default.die.8.png block.default.die.9.png \ block.default.die.10.png block.default.die.11.png \ block.default.die.12.png block.default.die.13.png \ block.invincible.0.png powerup.score500.0.png \ title.png block.strong.1.0.png block.strong.2.0.png \ block.strong.3.0.png block.strong.1.die.0.png \ block.strong.1.die.1.png block.strong.1.die.2.png \ block.strong.1.die.3.png block.strong.1.die.4.png \ block.strong.1.die.5.png block.strong.1.die.6.png \ block.strong.3.die.0.png block.strong.2.die.0.png \ block.strong.2.die.0.png \ block.strong.2.die.1.png block.strong.2.die.2.png \ block.strong.2.die.3.png block.strong.2.die.4.png \ block.strong.2.die.5.png block.strong.2.die.6.png \ block.strong.3.die.0.png \ block.strong.3.die.1.png block.strong.3.die.2.png \ block.strong.3.die.3.png block.strong.3.die.4.png \ block.strong.3.die.5.png block.strong.3.die.6.png \ block.explode.0.png block.explode.die.0.png \ block.explode.die.1.png block.explode.die.2.png \ block.explode.die.3.png block.explode.die.4.png \ block.explode.die.5.png block.explode.die.6.png \ block.explode.die.7.png \ bat.laser.0.png laser.0.png powerup.laser.0.png \ bat.laser.0.png laser.0.png powerup.laser.0.png \ bat.laser.0.png laser.0.png powerup.laser.0.png \ powerup.newlife.0.png powerup.newball.0.png \ powerup.nextlevel.0.png powerup.slow.0.png \ powerup.widebat.0.png bat.wide.0.png gnome-breakout-0.5.3/pixmaps/ball.default.0.png0000664000175000017500000000057307675551502016264 00000000000000PNG  IHDR 2ϽgAMA a2IDATx=m0@_bH80,Ўĉ#!A$`P8K'R}Oᩔ:m6O zެoqm[k1߻=X,>9EQ "4Ms߲,rCQeIQcZ"ssR㈈pq$4Mx<3=moa @Bx6M351FDmZJS]]סb&a:^{V)8Ϸ<'D{zrts#rHZ@ԩ|*wVZSaE-IENDB`gnome-breakout-0.5.3/pixmaps/block.default.die.0.png0000664000175000017500000000117507675551502017203 00000000000000PNG  IHDR(ȘgAMA aPLTE†|B$Ļ nd8$zNDHidGh T7$*tW.4( DWvz  *$ <L,x7|`zplU\?,  ٶ$4:CL;D{}C  hIDATxR@6r A,]./og_%Sn;6z$r{ԩ|(7@QQI,;IENDB`gnome-breakout-0.5.3/pixmaps/block.default.die.1.png0000664000175000017500000000115107675551502017176 00000000000000PNG  IHDR(ȘgAMA aPLTE†|B$Ļ nd8$zNDHidGh T7$*tW.4( DWvz  *$ <L,x7|`zplU\?,  ٶ$4:CL;D{}C  TIDATxkS@6r"0eЂ69*:z?0\9y I/oon!d̝8JntqϮ_ݶPqF $1e?& 94i&FQxB,,V0chˆAc:[%ELG F]U(M AWWIY%aQ;wNcSÄp,*B‹vU`V:s_ L۶:C I٤T!]w~YYcNxyr i)KWT>@Ye~Aؿ<IENDB`gnome-breakout-0.5.3/pixmaps/block.default.die.2.png0000664000175000017500000000112407675551502017177 00000000000000PNG  IHDR(ȘgAMA aPLTE†|B$Ļ nd8$zNDHidGh T7$*tW.4( DWvz  *$ <L,x7|`zplU\?,  ٶ$4:CL;D{}C  ?IDATx[o@vK\D.ڂ]HzI3SKtqSۛ)M:#̲ `}x,AQ@K1Ɖl;*`q΋ME?dc]J1D ۖp0lA~خ(v1D]Us_S uěE7yd*LU HXׂC>=,|#GχaGːZYTS79K8zrWp2]B.xUWpBR?e{c+(-j$7x"IENDB`gnome-breakout-0.5.3/pixmaps/block.default.die.3.png0000664000175000017500000000106207675551502017201 00000000000000PNG  IHDR(ȘgAMA aPLTE†|B$Ļ nd8$zNDHidGh T7$*tW.4( DWvz  *$ <L,x7|`zplU\?,  ٶ$4:CL;D{}C  IDATxkO0,1,-DqlL26oBʓ){=I/\lt<,44&IO N\$%z|`f,= BԲ #|x QD0Ʊl;: !*;8b0`mɎaAv4 (.*oh+C(QvaLWJLUZæA0i/,ծɦ+o hWWi@yeNKsWpRw/FIENDB`gnome-breakout-0.5.3/pixmaps/block.default.die.4.png0000664000175000017500000000103507675551502017202 00000000000000PNG  IHDR(ȘgAMA aPLTE†|B$Ļ nd8$zNDHidGh T7$*tW.4( DWvz  *$ <L,x7|`zplU\?,  ٶ$4:CL;D{}C  IDATx]O0묘u0 mL2E$9oИ˯R}_vbo񸁠9 CW ~p,[ߢ!X4 îsskX걆 a"0Ʃ|?&R*R#c!0(v}NQ1ưc̫p^i 'śM7eh`2\iܖU*0-ayֻsQlMB~q=Kz(5IENDB`gnome-breakout-0.5.3/pixmaps/block.default.die.5.png0000664000175000017500000000102607675551502017203 00000000000000PNG  IHDR(ȘgAMA aPLTE†|B$Ļ nd8$zNDHidGh T7$*tW.4( DWvz  *$ <L,x7|`zplU\?,  ٶ$4:CL;D{}C  IDATxR0E5hIB*XP0 8թW4(u_&3sϻ` 8?+y euaME/\eky+S&yM(!W5%t c8ݦ RZ몒򱎢h8ɓb8T],Q2 pl. 1)-)Rŏ47*^h)ðY_Ў="ögDOCQluu|ۧ =sV$IENDB`gnome-breakout-0.5.3/pixmaps/block.default.die.6.png0000664000175000017500000000102107675551502017177 00000000000000PNG  IHDR(ȘgAMA aPLTE†|B$Ļ nd8$zNDHidGh T7$*tW.4( DWvz  *$ <L,x7|`zplU\?,  ٶ$4:CL;D{}C  IDATxr0EoPD!&ҙW}iڂ{,rf޹'~]wm񸤠y`@Aق?Rj>Dw@H3!8֜(*%U-#Ⱦ<c_ױSRn4MGpx%O/.31XE)D`ZGF]*R݆:FItHr7"wUJ2laHydNj^|Y]g` =|etIENDB`gnome-breakout-0.5.3/pixmaps/block.default.die.7.png0000664000175000017500000000101107675551502017177 00000000000000PNG  IHDR(ȘgAMA aPLTE†|B$Ļ nd8$zNDHidGh T7$*tW.4( DWvz  *$ <L,x7|`zplU\?,  ٶ$4:CL;D{}C  IDATxN@EJ )}P"510_&YYgg/^o< zp 6~ `eY6=G/%tuQd} ⦔$t9ڪ˜2IuԻxz)tXHE=XWhLa9*/k]v[G\5.{rX^9ao'[l0=XM x܂t=g05:/ %J ׯف{8$EE=8ZՋ<L4x{ I°Rݖ 8զfs c7 U琅a چ ,K0T$[w:t(?u)xE{ >B`DQIENDB`gnome-breakout-0.5.3/pixmaps/block.default.die.9.png0000664000175000017500000000075707675551502017221 00000000000000PNG  IHDR(ȘgAMA aPLTE†|B$Ļ nd8$zNDHidGh T7$*tW.4( DWvz  *$ <L,x7|`zplU\?,  ٶ$4:CL;D{}C  IDATx @EW$=eiʹ.jW , ,k6X.paуZX0mwd@fۅFgc*6 CT$Og `LQ%uOˇmN=ItRŤ2 A:%EbG6ls«yqsZ}֦}O movgIENDB`gnome-breakout-0.5.3/pixmaps/block.default.die.13.png0000664000175000017500000000052307675551502017263 00000000000000PNG  IHDR(ȘgAMA aPLTE†|B$Ļ nd8$zNDHidGh T7$*tW.4( DWvz  *$ <L,x7|`zplU\?,  ٶ$4:CL;D{}C  >IDATxc``0U+} )A5y.CC,jELL$(4Ԣ )pɄIENDB`gnome-breakout-0.5.3/pixmaps/block.invincible.0.png0000664000175000017500000000073107675551502017136 00000000000000PNG  IHDR(ȘgAMA aKPLTEŲ333@@@{{{aaa[[[)))TTT...lll+_ 9IDATxQb0U굜tIQ-pg0Rʴ$ "x@4Hq>"VgGDȎw=; BP'-';\-=NB?^缱]$7^ X(Wrn,Q-FP'UK 4;\N.NYN,qCJme@,fGkX'@iinO 62R+>JxKJN] _n3iWX'rJ%>)r"p @\QrQD*NH\{aR(OX8s.J SwVwf BP(~l9IENDB`gnome-breakout-0.5.3/pixmaps/title.png0000664000175000017500000005007007675551502014707 00000000000000PNG  IHDRegAMA a IDATx{%U}[wwO{F̴!4 Fc<mB"F!Qsx1%yM财 1A{x(rE{AaYwZkժUZvծ֫DK;\'N~J~tr2`G9a "0B?䘂!E#Zꕏoz "!#D!#Kj\(Z5H*Pm Tθ%58B dID¨1 S,K**Xy6aySO,w PDI$"MF,Y,EB%c"hT0Qq@UɑII$'%"J(fy9R[9wQA$J">:~T6b$]Ɖ" mIIF8 zp"m5NTԥ" m@H#$dI`5=jcR* +"-%rRM$4Pz軑U*"9QEI0QHjâfJBv1ꍌpP$%@F[%%EYa"=4DӒP1QRoU|-]ǣ4,"9QEߒzfy"2KbF93^(QGW?K,Q*I(Qato'Ȋǒꏇz")}%Ȓ"9daE'?( $sX2?zô*.Ɨ~jB֒@e1+[[:œUZM3dSJEȋ+SHolcP]iҷ?O~Wy12g ПCwEɳ"S\,' lJd%AM ZƇJ9pJ"!{Hb9k{$n?$̐ZY#Tmy]1bK**'NN?"J,&}KFc)3䣓yscĒYAeiQ#v@ңV ̃[KN$,/3Se 9YcvԻ$ 4r6ErĒJ!(r\{2YHEϏkgKɓ@2˒@w@BwbK@ 4F ?35qMg,i{dP ̄EI&K_sWdբHNY- zgBlBKFЏ'JvP* ʏr :NH*z֍ QqSE^W$4gJ#pES2?rnI"MQVK@L#̏ CUĒ@7$]8٦g*W>,"Ax G^?Lu, pPX9y|G-YYEjS)KQ${h.1 S?rX9L, zŅ "ϳ[LcV6FےVe$PDi9ھ6f;j!KFBZbKLlq)6פPՋ-9z"5jZ("!əa%ixL?#)Ȓ[YLyÇ8!`I"@rK22.QL#԰^-JCa*,ؚu "]L@ gYYRq"M0XY7½H.T/BA$U(%ӇRP\xR}DcYR A VIE+8 HYR%@t3z-$?z Jc-'99W)9>%KA=̿%+9/H4<(tI"FFIz;pTQ#iM((}WU|V E#l,iDS&!]2AђzAf4 Ei#g R'Oˢ(a$A=h0ϫ`mKKSP% IUBD1LCdfiZ! z6Y2&dan(U ѓem] ("s5xH&d8"GcI`5iR,~{.Cj8dL3pSRK< o8%5E+s?jcܧI+T\3ۙfh0+/"0EŔ%!ND"G EjE"H&WAGBcʒvTa.c(@YKBہl"}Xo#(q\&F?{G¸%ɞ!g)%Rd" "9[ݏ̼V)r )sǩ[ؚUξ$=S(R)fF*}5we=/jF(Ĕ%sB晘 :zI~&ԑ T9cĒ7<YtT!ED, QEyw 1&1+?դܟ},m3V9cВIIX"dRr*{I1ҟç@9ԛ:Bx%3TMj%,RKRhuɄKEcޚ)ɏzДL|ֶDY83MDͲ )9ȬX2(p~F45;}*յY $=_4LKxn%sB[$(EMJ#Kz#cFH!QaA~4Y25"M *%D'[K&SaUSYz%Dݫ@enqSσ2+[k[mɖ5:]ꄝ0qP}HN#Ju?ԑ-9Wn2eu1@rLzʶ6܎<|>3yȒ@61-[E1ƨ5\D)` ȘXdr(E#74 KFE|*hI("-Zr#g$fr82D!Eύ;bQCi'׆)R%@DE:jDƣ j~?48%) gKJ*BMFY6CeIWI#JK+-IKrXRS_EJRd!,~Ԡ49AK%)Ke'1+lQ9G=%K&D׎TgXOZ*QRs҉"]VhЏ:eʒBBms$u|sh:#Y|#J6i9

7-,nM9Pg!䇘L!E|N&- 1Ei*n\AQdBı$Dt pDłL"S)$XQg<&8FC4)2!XQK|VN Ef)2+- i̡(2$@mB%II0"mYrY% BLžHHckv ?:uLH.reJɝH"Ih"9E)C{GC=6R!Ӓ`j #)O11*$??(ɏ9)2M 1RSU$ ÈoIJ1 ݆%CTQ׏9ꡁahQu#͝bER3idI!e1/S#/G[$9*T%$TV W$1C*ү-F3 ,^:A4OL?͢!ޥ $Jp\sHt,F,w aH,1m_W!Qȑ}"9'ޔ@|RЏYzK>cJ#[2e`Ehe@Dbmu!=D&J$B.hz}=Q- ,0z/j.oڬVv RKbcu3-TNTKBt[Y-PGPyz ߋÃ}숕L:l6k敏oۢ-غuÉKkOBV ,al,%cElڰMiU$d%2@ ;("Jƺ.вcâo"l[妨J7"f$['9b^- h ۳F&('_ Ärdhs ep<8!=7PC]fO[n%qtfpZƃAoU[C%bZγʗ]x䳟KbFau5SIX6ʤQPKRE فaQvlz#z!L0 D1@Ddl`E1}7P矾v6v{01v, Pqpհ-h<B7?K/?ذ+};vEmz\FFSM-n7?Gt]E/a5 `1{Ue놵QtA.Bgu%08bI\5eC ZKWS*(yKh (]/`lX\]ƜAʺtzǘ=}Ѩ cǰv:tpmm`|:.J6lP^^gq)rsK~f |crTXcw4ے6J/Y%=\X :r-r-\{hAR:xH>y2RżD{ ۈ ^ch30XRt%]lC. :.T\vhꍈp5DbӅ.b*{h9r?ZYّ(O~L 1p7<꘶k \D\Г5S z_/ P7@FMO8u+@K6jXqׁZM>o6^u$eshQؘ֯OВ%߿wwMl6Ѳa\Vޢl_l1@`bYi9`@aqqN{oׅު2g5& ` tNPn*gņMHYygbMЏ(%kDq6,:z|x4>ۏK6 \v{]u@݁1p\jy0ħXV⢤ 6#CȆ#/۶|{^Mml4xDYOg=}buN?uD3! :7%tkv;[/3YuG:n\Й-m(U>E],c TRfh+$RwI"J'$eL[m{0< Aޫ#J `x/QQ#jl%m݂vжcЩbͲTV +a7Bj:8Rh RWqQ~+kVFZ"J? FF/hnA{(t,3l5 Cp$A%ѵ]\vu"[cph`IǍQegyFALxհ~+ 7YQ6mހs/Ͷ5@1 nY4y[okm7rQv:qvfAl| ,hNK&&h/acc̶]oIQX^ON~𪫮?>\rQqli7~lpQ3PcX6A5(ee.\"6:cc ۈX k-;>l9m8P% Up`b$f2dﺂb%VI(?𺍸RHO`7tg>v3ov_oymcKla.v":=võNgЙc-r6Z Zb܏kpiF9>,+`V6J7Vw_O{  d נVc5o<~5|vp6@a܆6\lÃbEpҁ.p,.;`JW&_ΠĢ\eemkTo8Eh0dA<)8 ˠ!'6AgNxf> IDATh]=~5f ;2n_gFnc߈ҩYP8ՙv洂z'Xᆧ{FE\QG+]޶3F zMƲyDI  "7ԻKaņ5ƋÃܺ#/3dxkˮy٘( zQ0V7R; oJ:4} ՋbAq"sOà˘4֒*QB9ll@}e+hڵ_Y;zOї(.4P:'4%~ዱ:ֿ$X).טlVǑ~t.t\9c6\l8h;+Ãז` D& ~.Ug 6<QZ >~Rv9ϫA-ȼ;z4dС;zJ#! j"69."(yV!!^6 MApɶx8fے-axm;`/a:R2hͦM8'W*i6pU% %`aQ.u?rVSOt0PT~gN?Mvϝ݆;:}8~A-9vقN=v2 ưfc8VSMV1mm̫Zn^jm?fe.æxm40Zf'IcG8%8 (sIKAbŖGkS]Fno928Ei&FhB ~oQ h+'Faݕ&(yJݰ8Fy쥳oZ\7zQ45u䓭qE~6NNvSj&>§F>iַl]^\\9SA`vB! `a ^an.ⲳ2?k ̩3ֵ\HS/44%eUp!@?/5ٷ%5Zx;x700Ԍ(sF)@5XO8cjjjjjjvvv߾}~O{yw#/~s~K[o=/J:uw%]zSXw]\\7jB_r=}wUk_ ÉK𘟟S29p@r+uׅ ұ^oa].ygΠŦYۛOԑn >p[_8*}z'W3H4(-5TJy.tlG3d@pvV;g޽333sss^!3i6P ݳ-nq߮]3oxk9sI\n{n}x{ltD_ţ3a0[.,j*s[ΰ-ot|/;Flkm cȀ[[ש3G%I5kΠQ{YJ, (jDQe9[0ciKr`_UQ;wN=y9Qw6^uRKz={Uss SL/(8p`U[-dvӓݟ4Acլ࢖ᬌ=j8A6z..;|tLm&ׂ, |&uosQ+ro8PI."<7χDiУo6?([333]kZ+xÆ7޸/Aoq߆ bOcr=g, _'f8kGm'̸ W!(WF) Wc9<hkL r./돣 |W2cLF}sm|{k t{=%\b/:~j{) "lHs Gbx4\vúavt\ϒN`0CRv_v<6J>J|0TE[s]k%p7+=9^ :aCWAXhT4yO%+ g5iVmSg?^"{L·}]{'~_^cvÝ# :g~Oߚ:q/o Ć|c߂n߰ͻ~-3tǻ{~o̮#XXX]Ltk|@i/l]S;0C󟝿[Y€s1{C `$cτ;y3=}޽{Ɵ,ǟܿ؟ä陀?;ooI?ce$Erv͡C~Љ=|8_qEo^Μ;뼼|^3so[ږ >;o8~mW\Xo}˷/eo}w=8O?+?sjM7 iK{]XXcl]VySǛ>1# 8= {;׼7/t13RU\Iyl'7{79g%?;7ljـH([fg_5$Z=\K-/g6n [6\k;]|ٵ+.z i +*<;oFtqM3)îOڙ# % Vfffۿ}öø _u'hU=㪵8|*Kܹ_CNpd߮}n:pඡ :run DeͲmԙg2C,Qy/׎vضoon7ޅĺv{ћ-9==8sjݷUeZm'={~wD0ow.M"H1g[ Qzr^ F^^6|*;]؉X.zy/ZEx߈/Ӕww?/_1+|]:ʩ Г{=|sp贅 M"t`,06sϞ@!  3\Gq8ᢗVY_'|m()ﭚ>x%O{ڪʯ}3f뮬t^r%^/RqϞ=6\l8q Fl5?/^ߜ;O]X皚:h<vi*MCnOsUKi x&CZM~?~,Cv[mk;殝dO<4/z}9,8bжnQu,ht}*}a{iGY5;~O仇E.p|O__ɡBI7Ñ@ asvvV>K y+ =zqk]aG | 9T0 WGm[# I$~Ba)<]SLX/aQ,7N [=Q9+ɸKEz8䙻dq-?a?+Њؽ!Ti2L: ffFG\&0|)8}CCp*1Vlj2E1ēj!߿Z N<]3׾ebC& @}d|q=&<ݪAmt+k5)sWBt델uORq=O:Q~o>nB_=m;^Cs!+YlS,GGB#F|ᮠ 5HT+fƍSg1Lq$L|}k+S^>Wzl߾NZ-`lmj`Y3~ſ4Kz#oS/sMWY*)43vMӨ?oO;+O7s]|}C1ۊ,. 6Pi*R._UɵvV#:L B-]IL''Q%)kA |Q?g~lTO^'>o_3v}ufaόsK612?s܆m<{}f,YErB`tepÒk)aSO"fC+$\Q ~{,q"Y+HV1:uKjl,ǂf՞[O KOy˒:|g?-Ɏ Lw<3^YXXuxV|KrG)?YVl4me,e2Ě%I> ܠavۡVhX58}1RHU} <;6v6x?L333~qƢRo鎹I,qa౟m_Rzjn965cY::s(+Kd׎Tm[]cGd~ O=,oI>fhzz:p:A c>Ӱiz^ wWRDiAe!_q=}X5pzHDt0a߷n^b\|";ZW,hI4G%;uKA^axkVHn%N23((ŏT[ff|Qv۩ XX°Q3瞅`QfJ^bT8LI7 [4 ܀u*6C<,_A6u"TD'nyi2(w (e;J*?*45Frfhx-;!Ի΂7l9s7Y_&l1 {bq@_ uȟ#p(˯>;JCnh %I{#82_z;|LXh~E5[ȸ2l(I'S |Ӻu `7N[4f◞;^Kysn~꿇?1f=|Q1qYԞ{/:[¥kvMΛx4/ ؟OF-!]B+];Ou|'(f=~stk'o077'3{>5e2)cvzo>xcoSZJ24vC=rw{Esq(?r;69?d1J֡C?w=wܙ]y܍χ9Tޏi( FCVr|\Vv/\f=e׽_̲m5cxxxfU]gk Gھs ?#Z|⾃W,SwN0= uSQNa6 |7 n'ܛ">f-4^K 4KV'0>i8'TP!ͥIwxLK+{%Е,G ;exAb6Y25ցgҩӀp'z+rxˤ]8c'ơ;@LfJA '*Ҡ8ۏ8.%Nʤ OiQ=U ޗfidVt  xT=aبax|KRD! $%C1B]&W(&seo)q$A(9d9e,(p+DZG@qBFN,ـy=K l(&]qb6$)"1?P@fɹn9mEhIOz.K(0L4X[`u0Yd1)~9 h<;mzSU3THђG>]bFFM⍦$QFCOdlZ5)T@ےiG P!6uK"3,BXdJ( q9M.ד>D>o,K;q?a7ɤ-ـOc-#OqJ'%Ȧl#T0NВqш%e'.'LcfA3B&r(wGQjAx,k" *P!B(`@hų⢾)2T"*!d łz!KLNPZ\ kM&o>%H`>b.,})Ԛq#gjmGJC>ʪ UH y\6N=,eǷRF=0II=V?.-,T#̟GI!(Obܦ}ג7zecںLPuggҊ2ш<`ɕo=\' \9He n&ѲIDATΣS(hJI#>18~$dɨ~U]PJQVj[}29Ĥ0<*%!L/CEҟ#&!jD2*],rES((I! EꕩjRtMŌ)Hc%Y2?d!Pؕ9 F-?$JRd~0kaPweՍi G}lnWdY]WfVHYᏗ )J{H̳$]LT`4ԙ\r䯏}}lLX(%!A~U &ZD#~-gB 4j܌fmR9ȑR|n'p=VI1zBDCr"q=ֆp?i'V4FpiQJ8_PErLpnʒ:Y2? _ #9zxm[K;R˿W_\)B[ b)ޙOC[M#F^o6VjH( gϡSaDᇻ9RHHF:ň+3y-_NyΩa8%Pd&WL]MEQ n$5WPDZ X\DM&?.-)e=0[`tJȣ0eEp}$k(R0s9P$ȏEa$lJLeDaOֵH"6DV!K&tɂoL8/79$J}GEb$]aW8s^A$] GU<{rFHM&'- $L- (0X7'0~?rQ QSs?kuSAEz!Q]YR{Si 7,!iV5 _BPiQc%.#$q%lPM!:sC*($@9A(& CDPM!Ro  zQ`(&@7AԛK Q(&@9Q>(1 EA3 B B B.R\z)IENDB`gnome-breakout-0.5.3/pixmaps/block.strong.1.0.png0000664000175000017500000000124307675551502016466 00000000000000PNG  IHDR(ȘgAMA aPLTEdvzT>B4$ wndZUwLfB|6:نW8G,ypD̈́B2ðp6$h`VF,ѳ$'ǣ$$y\ AAIDATxmv0VnbUU- ߪ3Iz;w29!DN:3Lv^~0|xǓt!m<(#sqjdB7E-0/^zZ-k *v0 1$=Ok3iyQ~ a'RIf^mێiWU  p !c$?PXF !l3A"'3 8"Nn *ݝqI 8V0U#p u.l OVw#.NH-S(.`}OnpPEYwS/x^?x2 F> |sgyQe@U 2 B[.=;U4O $ >L=@LEv%/2%pIDATxmv0VnbUU- ߪ3Iz;w29!DN:3Lv^~0|xǓt!m<(#sqjdB7E-0/^zZ-k *v0 1$=Ok3iyQ~ a'RIf^mێiWU  p !c$?PXF !l3A"'3 8"Nn *ݝqI 8V0U#p u.l OVw#.NH-S(.`}OnpPEYwS/x^?x2 FB4$ |o\RwGf|6:?~daѯ\ymآonm_oΥT-IENDB`gnome-breakout-0.5.3/pixmaps/block.strong.1.die.1.png0000664000175000017500000000134507675551502017232 00000000000000PNG  IHDR(ȘgAMA aPLTEŒҔԲҌֲ„ڜ::<쾺ڔª֜Ɣڼ΄^Z\ҴRNLnjl溄ּ޶ʮތ Ƅ„֌ƌ΄֤֔P IDATx]s0ē(2B "UG"ۗxכqq;}˃1>^/c6\6?z}$Z:nۭqR_X}ڝCǭ-e6yTAh =/{Ϙj+UU#yN_ZA BM˲dRԠώ#H5@BeS2F)iUn>P9JrD'6MS<(8oF29ݍe"r (b [pX, ETc'abw|2a#j(gzt+-!XtH $q: C܋ a|Ŗiv)<EEo73E#(SX~t1 C"^SU8`7 &WU uV͎}IENDB`gnome-breakout-0.5.3/pixmaps/block.strong.1.die.2.png0000664000175000017500000000123207675551502017226 00000000000000PNG  IHDR(ȘgAMA aPLTEVRT vvt$CRIDATxMk0Ec%axYȽb3Aށ:n?rQ!/S75Ixz|>)JL*]{ykv#o,1EW$^s`-ð ݲW6qpY,N0ZQgGSdm؟$M1p}c[{(u[@ҹeڑRLJĀ[vCDgV#) hӀG= ~Vгㄗ݄b: GMj cP>N MgbHX9~ruq$;v O8 dwƍ?NսeIENDB`gnome-breakout-0.5.3/pixmaps/block.strong.1.die.3.png0000664000175000017500000000024707675551502017234 00000000000000PNG  IHDR(ȘgAMA aPLTEqpqs==IDATxӱ 'NdH|} 0Bb3]ݝT0'M<'}>Gay %ڈIENDB`gnome-breakout-0.5.3/pixmaps/block.strong.1.die.4.png0000664000175000017500000000124607675551502017235 00000000000000PNG  IHDR(ȘgAMA aPLTEVVTvvt ZYIDATxe}084:"47 K ր|ogg7qeϽZ5D6O~l?w[tbVj][qguB̔ywcJrdيÛ>P]Gj[$9{971 ѩm[ O,1M3+ \Iuj,JaM (#Ԗ ުYΏDT\sk-CI\`HPsn8h IǑ3Bu/0RD > @JԚ k2q널蓹}i@\nCyN' _*$L8KLLm_W|KlGUX|Ml ܷaq_!.{ H3{B2Rc7IENDB`gnome-breakout-0.5.3/pixmaps/block.strong.1.die.5.png0000664000175000017500000000133607675551502017236 00000000000000PNG  IHDR(ȘgAMA aPLTE¼‚ꢔ悄➔ڶҖ::<·ւĖ^Z\RNTnjl⎌⾼ޖ΂ނƼ  چxIDATxUk0Z6rQvKme%^@7aB!o4+*ͷsj~?^}}qzȨj\U6ߝWcE0`dcl`7@XH 69ۑ8{'1M!+,nUMX,Z;~ ^i SXM۶z!H)L&rG 88$c!&C n`ur"B0HS`d2ㄥdeXg a u;*]Pk R7-Ç.f'ԠAABiD<G0A Ԇ]=SWsںWj%oT=oNmu*2Sd6O/Z ;IENDB`gnome-breakout-0.5.3/pixmaps/block.strong.1.die.6.png0000664000175000017500000000134607675551502017240 00000000000000PNG  IHDR(ȘgAMA aPLTEƒBDbT´>DҢ*&,j\RL^>Dv\lfD>D>D|rT664Y\v>DNDiqNT>DĚztR>DJD^\x>D>DB>DҚrFDFL..,~d^T>D>D>Drtn\fBD~BDƼjL1IDATxMV0Fcţril]P" mIkt (8 /SG2s?^^"Λs3͔Iֻ~\۶B))4ɮx!:!lH)7LhWx4M"iҔsz/dG?qǮYVK)wc, K|ql;Hyw3ӔC1,>(AUB.E!G1lSb=o@IFݜ8h 2<'Va!FS5\qD'8+O-W5yD%AANjg  v?>ܹ c]w[nXL|z]ﮌL'2,z %I/ xG+k!9ihHRNW2T܅8MH HQ2uGgnsO)[R:T6o=3:aބ Ns;A+w|nm!mz AT2x4v/fZ}z>G}F7<G0cW`O)q~qϊ;cSPƈl|G_Q\IENDB`gnome-breakout-0.5.3/pixmaps/block.strong.2.die.1.png0000664000175000017500000000140307675551502017226 00000000000000PNG  IHDR(ȘgAMA aPLTE ƌ̲֌슮ּ̺FB<􎺌ܞ֤Όfb\ԲZZTrrlĢެŒ ʜڜڔҔ̞ڤԺH1!GIDATxMn0E@q!JHhD&ݥ`wL[/GgZc/G~ :iXnݾ#LӹH\y͜_.} aXiA+{z^.ީPI>n%{v0 uBVB$ C:iJm␰()A4Z{v>l1c|SbnVMq 8qT#a(# I2Y4,EjBzb4q >#QPUqӄi' @Lφ2E8뺰HN'f12%YDh*Og67i*"iLbkm:O$Dw.,\e:} m ΐM~][&h!8tfp%ҍRZc*bp 1YxD'Jk5,(+]XE =lSۺI9M°WƃMCk _Wp "k`!`,D$ϳ5k$$ȁ,9a C11pMt!Za![)"MH4FF8kE9v8*ǶvM ^چ?r-@l̾ll{;HW޶:8>xv-&s_B" G|_C~-n&xk[vAkbр`*q8״Z9 O #k&mٟ_JK:(ͤIENDB`gnome-breakout-0.5.3/pixmaps/block.strong.2.die.3.png0000664000175000017500000000024707675551502017235 00000000000000PNG  IHDR(ȘgAMA aPLTEqpqs==IDATxӱ 'NdH|} 0Bb3]ݝT0'M<'}>Gay %ڈIENDB`gnome-breakout-0.5.3/pixmaps/block.strong.2.die.4.png0000664000175000017500000000123207675551502017231 00000000000000PNG  IHDR(ȘgAMA aPLTEVRT vvt$CRIDATxMk0Ec%axYȽb3Aށ:n?rQ!/S75Ixz|>)JL*]{ykv#o,1EW$^s`-ð ݲW6qpY,N0ZQgGSdm؟$M1p}c[{(u[@ҹeڑRLJĀ[vCDgV#) hӀG= ~Vгㄗ݄b: GMj cP>N MgbHX9~ruq$;v O8 dwƍ?NսeIENDB`gnome-breakout-0.5.3/pixmaps/block.strong.2.die.5.png0000664000175000017500000000134507675551502017237 00000000000000PNG  IHDR(ȘgAMA aPLTEŒҔԲҌֲ„ڜ::<쾺ڔª֜Ɣڼ΄^Z\ҴRNLnjl溄ּ޶ʮތ Ƅ„֌ƌ΄֤֔P IDATx]s0ē(2B "UG"ۗxכqq;}˃1>^/c6\6?z}$Z:nۭqR_X}ڝCǭ-e6yTAh =/{Ϙj+UU#yN_ZA BM˲dRԠώ#H5@BeS2F)iUn>P9JrD'6MS<(8oF29ݍe"r (b [pX, ETc'abw|2a#j(gzt+-!XtH $q: C܋ a|Ŗiv)<EEo73E#(SX~t1 C"^SU8`7 &WU uV͎}IENDB`gnome-breakout-0.5.3/pixmaps/block.strong.2.die.6.png0000664000175000017500000000136107675551502017236 00000000000000PNG  IHDR(ȘgAMA aPLTED\l̶TNJ?~daѯ\ymآonm_oΥT-IENDB`gnome-breakout-0.5.3/pixmaps/block.strong.3.die.0.png0000664000175000017500000000135607675551502017235 00000000000000PNG  IHDR(ȘgAMA aPLTERF>̦n>JL>>j|>riZ&*$RBZf>~rVf~N>B<>>FBr264^R>ft>R\>Z̮nFv>*.,ZJ>NԆQIDATxMv0E"J_0TVp_D/瑵מƐ[b&|㟷/O>׿bTHck|Y@˅axVVzY]#SeaQnVr>I( :!DcΏi*MN$ԞV*a, !:хIZcIKk`,AFgٍ:x$00>P0D|{8vC5y pU謰 ĭ&&ܡ-gYVwSZIx(Be|APLaD֍>[M!͟a뚌o$NX7ۙ'סiQI3c9uXeN$XhB|8;T(x>pقJwpM~{>=mx/b۫Èsw8;a"3)_aMՂȻ 4XIENDB`gnome-breakout-0.5.3/pixmaps/block.strong.3.die.1.png0000664000175000017500000000135407675551502017234 00000000000000PNG  IHDR(ȘgAMA aPLTE܂NRL䂒̞jnl::DR^"C88{elwjȢ>.zl̲xޔzOD H*Rm_z9ˠn`BJ B\7Zzl_cu >B*0XE\۶Q!4]G j'Ӏ a8YTvdp2EMq56 J xMh ,obi1ew5C.¿9pkBtYrc#V64gΎ跴זQ"a63vr\~ ڀ"tl+5:}NCEC5opa'?bl]IENDB`gnome-breakout-0.5.3/pixmaps/block.strong.3.die.2.png0000664000175000017500000000131507675551502017232 00000000000000PNG  IHDR(ȘgAMA aPLTERVT  vvtjwIDATxU[w0SnE,H`vN 33ΒϽ z]%sW!>0l`ќ?s1 *֕;p5l&M<g/9)6 _162 dvJ[#0 Q/OsNIbgj ڞO3_`R6R'5xR)#myyQ<[l DVU%%r'vc.@ gI0cQ #gM@Xc>k]Q9RLeHIGX x,S*MH\{kѹԴ +@Pdž-!ic)Ja#ʔW?[ sQ±-b g7a }?~؅E5k렄am\_ 5BU>gҋ+) ZZRKSIENDB`gnome-breakout-0.5.3/pixmaps/block.strong.3.die.3.png0000664000175000017500000000024707675551502017236 00000000000000PNG  IHDR(ȘgAMA aPLTEqpqs==IDATxӱ 'NdH|} 0Bb3]ݝT0'M<'}>Gay %ڈIENDB`gnome-breakout-0.5.3/pixmaps/block.strong.3.die.4.png0000664000175000017500000000131007675551502017227 00000000000000PNG  IHDR(ȘgAMA aPLTE ^^\~~||0IDATxEn0`hSBi/w&O3B|'7R8:} m ΐM~][&h!8tfp%ҍRZc*bp 1YxD'Jk5,(+]XE =lSۺI9M°WƃMCk _Wp "k`!`,D$ϳ5k$$ȁ,9a C11pMt!Za![)"MH4FF8kE9v8*ǶvM ^چ?r-@l̾ll{;HW޶:8>xv-&s_B" G|_C~-n&xk[vAkbр`*q8״Z9 O #k&mٟ_JK:(ͤIENDB`gnome-breakout-0.5.3/pixmaps/block.strong.3.die.5.png0000664000175000017500000000140307675551502017233 00000000000000PNG  IHDR(ȘgAMA aPLTE ƌ̲֌슮ּ̺FB<􎺌ܞ֤Όfb\ԲZZTrrlĢެŒ ʜڜڔҔ̞ڤԺH1!GIDATxMn0E@q!JHhD&ݥ`wL[/GgZc/G~ :iXnݾ#LӹH\y͜_.} aXiA+{z^.ީPI>n%{v0 uBVB$ C:iJm␰()A4Z{v>l1c|SbnVMq 8qT#a(# I2Y4,EjBzb4q >#QPUqӄi' @Lφ2E8뺰HN'f12%YDh*Og67i*"iLbkm:O$Dw.,\e>ܹ c]w[nXL|z]ﮌL'2,z %I/ xG+k!9ihHRNW2T܅8MH HQ2uGgnsO)[R:T6o=3:aބ Ns;A+w|nm!mz AT2x4v/fZ}z>G}F7<G0cW`O)q~qϊ;cSPƈl|G_Q\IENDB`gnome-breakout-0.5.3/pixmaps/block.explode.0.png0000664000175000017500000000131207675551502016450 00000000000000PNG  IHDR(ȘgAMA aPLTEndĻv{}lU\?CL4:$*       xh†|T7;D WHzND,C zp7itWdGL,B$(D.OJ <48$|`*$$z ]IDATxUR0HR*ѵ&wXof3aLvãx|a}0$cKR˲lKo4rA,nB#wNlҲcи&CQ .e a8%#V~Oq"2sKv xe^?/b&ZmMݠӅ*-DKi2lLV`a*8u'V;]ðѰDjx!hU?H]7Z7]1tØU~®` !^/UJE..:[]c:k*x(N}@cc [vVvG=@>\(,k, ezH ]oθp8Tä3>J Ũfٯmp&si<_J{F-wBswP&s!ܕr:.6 Q?ʐPX6JI >$NWLd_HF, Dn`#T 8[uNp7 B+KZIENDB`gnome-breakout-0.5.3/pixmaps/block.explode.die.1.png0000664000175000017500000000131207675551502017211 00000000000000PNG  IHDR(ȘgAMA aPLTEndĻv{}lU\?CL4:$*       xh†|T7;D WHzND,C zp7itWdGL,B$(D.OJ <48$|`*$$z ]IDATxUR0HR*ѵ&wXof3aLvãx|a}0$cKR˲lKo4rA,nB#wNlҲcи&CQ .e a8%#V~Oq"2sKv xe^?/b&ZmMݠӅ*-DKi2lLV`a*8u'V;]ðѰDjx!hU?H]7Z7]1tØU~®` !^/UJE..:[]c:k*x(N}@cc [vVvG=@>\(,k, ezH ]oθp8Tä3>J Ũfٯmp&si<_J{F-wBswP&s!ܕr:.6 Q?ʐPX6JI >$NWLd_HF, Dn`#T 8[uNp7 B+KZIENDB`gnome-breakout-0.5.3/pixmaps/block.explode.die.3.png0000664000175000017500000000131207675551502017213 00000000000000PNG  IHDR(ȘgAMA aPLTEndĻv{}lU\?CL4:$*       xh†|T7;D WHzND,C zp7itWdGL,B$(D.OJ <48$|`*$$z ]IDATxUR0HR*ѵ&wXof3aLvãx|a}0$cKR˲lKo4rA,nB#wNlҲcи&CQ .e a8%#V~Oq"2sKv xe^?/b&ZmMݠӅ*-DKi2lLV`a*8u'V;]ðѰDjx!hU?H]7Z7]1tØU~®` !^/UJE..:[]c:k*x(N}@cc [vVvG=@>\(,k, ezH ]oθp8Tä3>J Ũfٯmp&si<_J{F-wBswP&s!ܕr:.6 Q?ʐPX6JI >$NWLd_HF, Dn`#T 8[uNp7 B+KZIENDB`gnome-breakout-0.5.3/pixmaps/block.explode.die.5.png0000664000175000017500000000131207675551502017215 00000000000000PNG  IHDR(ȘgAMA aPLTEndĻv{}lU\?CL4:$*       xh†|T7;D WHzND,C zp7itWdGL,B$(D.OJ <48$|`*$$z ]IDATxUR0HR*ѵ&wXof3aLvãx|a}0$cKR˲lKo4rA,nB#wNlҲcи&CQ .e a8%#V~Oq"2sKv xe^?/b&ZmMݠӅ*-DKi2lLV`a*8u'V;]ðѰDjx!hU?H]7Z7]1tØU~®` !^/UJE..:[]c:k*x(N}@cc [vVvG=@>\(,k, ezH ]oθp8Tä3>J Ũfٯmp&si<_J{F-wBswP&s!ܕr:.6 Q?ʐPX6JI >$NWLd_HF, Dn`#T 8[uNp7 B+KZIENDB`gnome-breakout-0.5.3/pixmaps/block.explode.die.7.png0000664000175000017500000000131207675551502017217 00000000000000PNG  IHDR(ȘgAMA aPLTEndĻv{}lU\?CL4:$*       xh†|T7;D WHzND,C zp7itWdGL,B$(D.OJ <48$|`*$$z ]IDATxUR0HR*ѵ&wXof3aLvãx|a}0$cKR˲lKo4rA,nB#wNlҲcи&CQ .e a8%#V~Oq"2sKv xe^?/b&ZmMݠӅ*-DKi2lLV`a*8u'V;]ðѰDjx!hU?H]7Z7]1tØU~®` !^/UJ9a(`,s@9U\ oEQ<[ЖVf@j*4%\Ǧ(,"p!ƀyxȀ1MUQrn0^i(1dhϼr }2e}+]QIU=}1᩠} zjZ7gV{%Ƣ@eaɵ^? fl6cmz]9Ntm{%,չ9[jYϩ[I,=8SIENDB`gnome-breakout-0.5.3/pixmaps/laser.0.png0000664000175000017500000000036207675551502015031 00000000000000PNG  IHDR;֕JgAMA aIDATxӻmA A{wpEjCչ EJ֑C'nqC4I;-QE$,-{LjyERō=%jȖud=|ř1Yӳ¿1/@MopRQjwQGIM7&5YE{@IENDB`gnome-breakout-0.5.3/pixmaps/powerup.laser.0.png0000664000175000017500000000031407675551502016526 00000000000000PNG  IHDR gAMA aIDATxc` .?C "[f RDŽM5>CپcacfcAQBr`Q,Ȝ=~2g```8|2<Kf7}IENDB`gnome-breakout-0.5.3/pixmaps/powerup.newlife.0.png0000664000175000017500000000071407675551502017055 00000000000000PNG  IHDR gAMA aIDATx_0?)'.C%,-v;\KJ۴ieg}y$$=3|<R]a4 ιZ> FSQ^__ߌ1(!ZKUU,v ˲}<ϧ{lvX׿ p?zʟNO9o,kZQIENDB`gnome-breakout-0.5.3/pixmaps/powerup.newball.0.png0000664000175000017500000000102707675551502017046 00000000000000PNG  IHDR gAMA aIDATxA@SU@ I6.]c\e!xa0 WY =JJԤL%f{pZGA}^.?6͂R:Z3R!dv1p:)`0|{4n;s]w8<σ8meB1h4R:c,x˲^ u*H)$ u]4M t:^;Wqkq:m֡Y'+4M9G$x<} $,_1 1mymZkp{wymۦ-˲8Ki^e 꺾?{Y4MDz,PJQ58NȲ Bض;;o?!MӠ,KE<1OwS16 Zk( DFt<@E sޫf~9LZx~3*ߡ:IENDB`gnome-breakout-0.5.3/pixmaps/powerup.nextlevel.0.png0000664000175000017500000000043507675551502017432 00000000000000PNG  IHDR gAMA aIDATx @w HV`V`6`6`4`6`V`V`x@HXvad~+4X}AS`A#F5J0\v&\ h/0A970喡CQ%9VۛkCCσhcz}t,#|_TJT*F)H)<0 ?N21t8x(e gpThKhZbI["ZЖ>uY+|FVDl#WEL0w)[*\_&yF|~} a>_v:5I(r<=f A( {NLb=@TƐ|ߨ% e<NKiJe z\l;i^nAkIENDB`gnome-breakout-0.5.3/pixmaps/bat.wide.0.png0000664000175000017500000000113107675551502015413 00000000000000PNG  IHDRd B~gAMA abKGD pHYs  d_tIME21IDATxAn@7Y2 aog3w[@߉+H6 ƈR`Lg`*U RҘx eӯ@K qPV`zݿtEJB%%x7g ^sߟm޺4)& NOT /o[uIggi/U]ڔJxԼ` [EBɪM Ph4z9U`9IF#nSW.IENDB`gnome-breakout-0.5.3/levels/0000777000175000017500000000000010052645513012736 500000000000000gnome-breakout-0.5.3/levels/Makefile.in0000664000175000017500000001317110052645513014724 00000000000000# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am # Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. SHELL = @SHELL@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ prefix = @prefix@ exec_prefix = @exec_prefix@ bindir = @bindir@ sbindir = @sbindir@ libexecdir = @libexecdir@ datadir = @datadir@ sysconfdir = @sysconfdir@ sharedstatedir = @sharedstatedir@ localstatedir = @localstatedir@ libdir = @libdir@ infodir = @infodir@ mandir = @mandir@ includedir = @includedir@ oldincludedir = /usr/include DESTDIR = pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = .. ACLOCAL = @ACLOCAL@ AUTOCONF = @AUTOCONF@ AUTOMAKE = @AUTOMAKE@ AUTOHEADER = @AUTOHEADER@ INSTALL = @INSTALL@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) INSTALL_DATA = @INSTALL_DATA@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ transform = @program_transform_name@ NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : host_alias = @host_alias@ host_triplet = @host@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CFLAGS = @CFLAGS@ CPPFLAGS = @CPPFLAGS@ DATADIRNAME = @DATADIRNAME@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GNOMEUI_CFLAGS = @GNOMEUI_CFLAGS@ GNOMEUI_LIBS = @GNOMEUI_LIBS@ HAVE_LIB = @HAVE_LIB@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ LDFLAGS = @LDFLAGS@ LIB = @LIB@ LTLIB = @LTLIB@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MKINSTALLDIRS = @MKINSTALLDIRS@ PACKAGE = @PACKAGE@ PKG_CONFIG = @PKG_CONFIG@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ WARN_CXXFLAGS = @WARN_CXXFLAGS@ EXTRA_DIST = alcaron.gbl mdutour.gbl mmack.gbl leveldir = $(datadir)/gnome-breakout/levels level_DATA = alcaron.gbl mdutour.gbl mmack.gbl mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_CLEAN_FILES = DATA = $(level_DATA) DIST_COMMON = Makefile.am Makefile.in DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) TAR = tar GZIP_ENV = --best all: all-redirect .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps levels/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status cd $(top_builddir) \ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status install-levelDATA: $(level_DATA) @$(NORMAL_INSTALL) $(mkinstalldirs) $(DESTDIR)$(leveldir) @list='$(level_DATA)'; for p in $$list; do \ if test -f $(srcdir)/$$p; then \ echo " $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(leveldir)/$$p"; \ $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(leveldir)/$$p; \ else if test -f $$p; then \ echo " $(INSTALL_DATA) $$p $(DESTDIR)$(leveldir)/$$p"; \ $(INSTALL_DATA) $$p $(DESTDIR)$(leveldir)/$$p; \ fi; fi; \ done uninstall-levelDATA: @$(NORMAL_UNINSTALL) list='$(level_DATA)'; for p in $$list; do \ rm -f $(DESTDIR)$(leveldir)/$$p; \ done tags: TAGS TAGS: distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) subdir = levels distdir: $(DISTFILES) @for file in $(DISTFILES); do \ d=$(srcdir); \ if test -d $$d/$$file; then \ cp -pr $$d/$$file $(distdir)/$$file; \ else \ test -f $(distdir)/$$file \ || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ || cp -p $$d/$$file $(distdir)/$$file || :; \ fi; \ done info-am: info: info-am dvi-am: dvi: dvi-am check-am: all-am check: check-am installcheck-am: installcheck: installcheck-am install-exec-am: install-exec: install-exec-am install-data-am: install-levelDATA install-data: install-data-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am install: install-am uninstall-am: uninstall-levelDATA uninstall: uninstall-am all-am: Makefile $(DATA) all-redirect: all-am install-strip: $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install installdirs: $(mkinstalldirs) $(DESTDIR)$(leveldir) mostlyclean-generic: clean-generic: distclean-generic: -rm -f Makefile $(CONFIG_CLEAN_FILES) -rm -f config.cache config.log stamp-h stamp-h[0-9]* maintainer-clean-generic: mostlyclean-am: mostlyclean-generic mostlyclean: mostlyclean-am clean-am: clean-generic mostlyclean-am clean: clean-am distclean-am: distclean-generic clean-am distclean: distclean-am maintainer-clean-am: maintainer-clean-generic distclean-am @echo "This command is intended for maintainers to use;" @echo "it deletes files that may require special tools to rebuild." maintainer-clean: maintainer-clean-am .PHONY: uninstall-levelDATA install-levelDATA tags distdir info-am info \ dvi-am dvi check check-am installcheck-am installcheck install-exec-am \ install-exec install-data-am install-data install-am install \ uninstall-am uninstall all-redirect all-am all installdirs \ mostlyclean-generic distclean-generic clean-generic \ maintainer-clean-generic clean mostlyclean distclean maintainer-clean # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: gnome-breakout-0.5.3/levels/Makefile.am0000664000175000017500000000023607675551502014724 00000000000000EXTRA_DIST = \ alcaron.gbl \ mdutour.gbl \ mmack.gbl leveldir = $(datadir)/gnome-breakout/levels level_DATA = \ alcaron.gbl \ mdutour.gbl \ mmack.gbl gnome-breakout-0.5.3/levels/alcaron.gbl0000664000175000017500000000467307675551502015006 00000000000000############ # Defaults # ############ GLOBAL_AUTHOR Michael Pearson GLOBAL_DIFFICULTY 1 GLOBAL_NAME Default Levels TITLE Michael's Levels ################################################### # Michael Pearson's Levels (alcaron@senet.com.au) # ################################################### BEGIN_LEVEL NAME MP-1 DIFFICULTY 1 BEGIN_DATA 0,0,0,0,0,0,0,0,0,0 0,1,6,1,1,1,1,1,1,0 0,1,1,1,1,1,1,1,1,0 0,3,3,3,3,3,3,3,3,0 0,1,1,1,1,1,1,1,1,0 0,4,4,4,4,4,4,4,4,0 0,6,1,6,1,6,1,6,1,0 0,3,3,3,3,3,3,3,3,0 0,1,1,1,1,1,1,1,1,0 0,1,6,1,6,1,6,1,6,0 0,0,0,0,0,0,0,0,0,0 0,0,0,0,0,0,0,0,0,0 0,0,0,0,0,0,0,0,0,0 0,0,0,0,0,0,0,0,0,0 0,0,0,0,0,0,0,0,0,0 END_DATA END_LEVEL BEGIN_LEVEL NAME MP-2 DIFFICULTY 2 BEGIN_DATA 0,0,0,0,0,0,0,0,0,0 0,4,1,3,1,1,1,4,1,0 0,3,5,4,1,1,3,1,4,0 0,1,4,4,3,1,1,1,1,0 0,4,4,5,3,4,1,3,1,0 0,1,4,1,4,3,1,1,1,0 0,5,3,1,1,4,3,1,5,0 0,1,1,3,4,1,4,1,3,0 0,1,5,4,1,3,1,5,1,0 0,1,3,1,5,4,1,3,1,0 0,0,0,0,0,0,0,0,0,0 0,0,0,0,0,0,0,0,0,0 0,0,0,0,0,0,0,0,0,0 0,0,0,0,0,0,0,0,0,0 0,0,0,0,0,0,0,0,0,0 END_DATA END_LEVEL BEGIN_LEVEL NAME MP-3 DIFFICULTY 3 BEGIN_DATA 0,0,0,0,0,0,0,0,0,0 0,1,0,0,1,0,0,1,0,1 1,0,1,1,0,1,1,0,1,1 1,0,1,1,0,1,1,0,1,1 1,2,1,1,2,1,1,2,1,1 1,0,1,1,0,1,1,0,1,1 1,0,1,1,0,1,1,0,1,0 0,1,0,0,1,0,0,1,0,1 0,0,0,0,0,0,0,0,0,0 5,5,5,5,5,5,5,5,5,5 0,0,0,0,0,0,0,0,0,0 0,0,0,0,0,0,0,0,0,0 0,0,0,0,0,0,0,0,0,0 0,0,0,0,0,0,0,0,0,0 0,0,0,0,0,0,0,0,0,0 END_DATA END_LEVEL BEGIN_LEVEL NAME MP-4 DIFFICULTY 4 BEGIN_DATA 0,0,0,2,2,2,2,0,0,0 0,4,4,4,4,4,4,4,4,0 0,0,0,0,0,0,0,0,0,0 0,3,3,3,3,3,3,3,3,0 0,0,0,0,0,0,0,0,0,0 0,5,5,5,5,5,5,5,5,0 0,2,2,0,0,0,0,2,2,0 0,1,1,1,1,1,1,1,1,0 0,1,1,1,1,1,1,1,1,0 0,1,1,1,1,1,1,1,1,0 0,0,0,0,0,0,0,0,0,0 0,0,0,0,0,0,0,0,0,0 0,0,0,0,0,0,0,0,0,0 0,0,0,0,0,0,0,0,0,0 0,0,0,0,0,0,0,0,0,0 END_DATA END_LEVEL BEGIN_LEVEL NAME MP-5 DIFFICULTY 5 BEGIN_DATA 1,1,1,1,2,2,1,1,1,1 1,1,1,1,2,2,1,1,1,1 1,1,1,1,2,2,1,1,1,1 1,1,1,1,2,2,1,1,1,1 1,5,4,3,2,2,3,4,5,1 1,3,4,5,2,2,5,4,3,1 1,1,1,1,2,2,1,1,1,1 1,1,1,1,2,2,1,1,1,1 1,1,1,1,2,2,1,1,1,1 0,0,0,0,0,0,0,0,0,0 0,0,0,0,0,0,0,0,0,0 0,0,0,0,0,0,0,0,0,0 0,0,0,0,0,0,0,0,0,0 0,0,0,0,0,0,0,0,0,0 0,0,0,0,0,0,0,0,0,0 END_DATA END_LEVEL BEGIN_LEVEL NAME MP-6 DIFFICULTY 6 BEGIN_DATA 0,0,0,0,0,0,0,0,0,0 0,3,0,3,0,0,4,4,4,4 0,3,0,3,0,0,4,0,0,0 3,3,3,3,3,0,4,0,0,0 0,3,0,3,0,0,4,0,0,0 0,3,0,3,0,0,4,4,4,0 3,3,3,3,3,0,4,0,0,0 0,3,0,3,0,0,4,0,0,0 0,3,0,3,0,0,4,4,4,4 0,0,0,0,0,0,0,0,0,0 1,3,4,5,1,3,4,5,1,3 4,5,1,3,4,5,1,3,4,5 0,0,0,0,0,0,0,0,0,0 0,0,0,0,0,0,0,0,0,0 0,0,0,0,0,0,0,0,0,0 END_DATA END_LEVEL gnome-breakout-0.5.3/levels/mdutour.gbl0000664000175000017500000000467207675551502015065 00000000000000############ # Defaults # ############ GLOBAL_AUTHOR Mathiue Dutour GLOBAL_DIFFICULTY 1 GLOBAL_NAME Default Levels TITLE Mathiue's Levels ################################################### # Mathiue Dutour's Levels (dutour@clipper.ens.fr) # ################################################### BEGIN_LEVEL NAME MD-1 DIFFICULTY 1 BEGIN_DATA 5,0,5,0,5,5,0,5,0,5 5,0,5,0,5,5,0,5,0,5 5,0,5,0,5,5,0,5,0,5 5,0,5,0,5,5,0,5,0,5 5,0,5,0,5,5,0,5,0,5 5,0,5,0,5,5,0,5,0,5 5,0,5,0,5,5,0,5,0,5 5,0,5,0,5,5,0,5,0,5 5,0,5,0,5,5,0,5,0,5 5,0,5,0,5,5,0,5,0,5 5,0,5,0,5,5,0,5,0,5 5,0,5,0,5,5,0,5,0,5 0,0,0,0,0,0,0,0,0,0 0,0,0,0,0,0,0,0,0,0 0,0,0,0,0,0,0,0,0,0 END_DATA END_LEVEL BEGIN_LEVEL NAME MD-2 DIFFICULTY 2 BEGIN_DATA 0,0,0,0,0,0,0,0,0,0 0,4,1,3,1,1,1,4,1,0 0,3,5,4,1,1,3,1,4,0 0,1,4,4,3,1,1,1,1,0 0,4,4,5,3,4,1,3,1,0 0,1,4,1,4,3,1,1,1,0 0,5,5,5,5,5,5,5,5,5 0,0,0,0,0,0,0,0,0,0 5,5,5,5,5,5,5,5,5,0 0,0,0,0,0,0,0,0,0,0 0,5,5,5,5,5,5,5,5,5 0,0,0,0,0,0,0,0,0,0 0,0,0,0,0,0,0,0,0,0 0,0,0,0,0,0,0,0,0,0 0,0,0,0,0,0,0,0,0,0 END_DATA END_LEVEL BEGIN_LEVEL NAME MD-3 DIFFICULTY 3 BEGIN_DATA 0,0,0,0,0,0,0,0,0,0 5,0,0,0,0,0,0,0,0,5 5,4,0,0,0,0,0,0,4,5 5,4,3,0,0,0,0,3,4,5 5,4,3,1,0,0,1,3,4,5 5,4,3,1,0,0,1,3,4,5 5,4,3,1,0,0,1,3,4,5 5,4,3,1,0,0,1,3,4,5 5,4,3,1,1,1,1,3,4,5 5,4,3,3,3,3,3,3,4,5 5,4,4,4,4,4,4,4,4,5 5,5,5,5,5,5,5,5,5,5 0,0,0,0,0,0,0,0,0,0 0,0,0,0,0,0,0,0,0,0 0,0,0,0,0,0,0,0,0,0 END_DATA END_LEVEL BEGIN_LEVEL NAME MD-4 DIFFICULTY 4 BEGIN_DATA 1,1,1,1,1,1,1,1,1,1 0,0,0,0,0,0,0,0,0,0 0,1,0,0,0,0,0,0,0,0 0,0,0,0,0,0,0,0,5,0 0,1,0,0,0,4,0,0,0,0 0,0,0,0,0,0,0,0,5,0 0,0,0,0,0,0,0,0,0,0 0,0,0,0,0,2,0,0,0,0 0,0,0,0,0,0,0,0,0,0 0,0,0,0,1,0,0,0,0,0 0,0,3,0,0,4,0,0,0,0 0,0,0,0,0,0,0,0,0,0 0,0,2,0,0,0,0,2,0,0 0,0,0,0,0,0,0,0,0,0 1,1,1,0,0,0,0,1,1,1 END_DATA END_LEVEL BEGIN_LEVEL NAME MD-5 DIFFICULTY 5 BEGIN_DATA 1,0,0,0,0,0,0,1,1,1 0,0,0,0,0,0,0,1,1,1 3,0,0,0,0,0,0,1,1,1 0,3,0,0,0,0,0,0,0,0 3,0,3,0,0,0,0,0,0,0 0,3,0,3,0,0,0,0,0,0 3,0,3,0,3,0,0,0,0,0 0,3,0,3,0,3,0,0,0,0 3,0,3,0,3,0,3,0,0,0 0,3,0,3,0,3,0,3,0,0 3,0,3,0,3,0,3,0,3,0 5,5,5,5,5,5,5,5,5,1 0,0,0,0,0,0,0,0,0,0 0,0,0,0,0,0,0,0,0,0 0,0,0,0,0,0,0,0,0,0 END_DATA END_LEVEL BEGIN_LEVEL NAME MD-6 DIFFICULTY 6 BEGIN_DATA 0,0,0,0,0,0,0,0,0,0 1,1,1,1,1,1,1,1,1,1 1,1,1,1,1,1,1,1,1,1 1,2,1,2,1,1,2,1,2,1 1,1,1,1,1,1,1,1,1,1 1,1,1,1,1,1,1,1,1,1 1,2,1,2,1,1,2,1,2,1 1,1,1,1,1,1,1,1,1,1 1,1,1,1,1,1,1,1,1,1 1,2,1,2,1,1,2,1,2,1 1,1,1,1,1,1,1,1,1,1 1,1,1,1,1,1,1,1,1,1 0,0,0,0,0,0,0,0,0,0 0,0,0,0,0,0,0,0,0,0 0,0,0,0,0,0,0,0,0,0 END_DATA END_LEVEL gnome-breakout-0.5.3/levels/mmack.gbl0000664000175000017500000000465407675551502014456 00000000000000############ # Defaults # ############ GLOBAL_AUTHOR Marisa Mack GLOBAL_DIFFICULTY 1 TITLE Marisa Mack's Levels GLOBAL_NAME Default Levels ############################################## # Marisa Mack's Levels (marisa@teleport.com) # ############################################## BEGIN_LEVEL NAME MM-1 DIFFICULTY 1 BEGIN_DATA 0,0,0,0,0,0,0,0,0,0 0,0,2,0,0,0,0,2,0,0 0,0,4,0,4,3,0,4,0,0 0,0,3,0,3,4,0,3,0,0 0,0,4,0,4,3,0,4,0,0 0,0,3,0,3,4,0,3,0,0 0,0,4,0,4,3,0,4,0,0 0,0,3,0,3,4,0,3,0,0 0,0,4,0,4,3,0,4,0,0 0,0,2,0,0,0,0,2,0,0 0,0,0,0,0,0,0,0,0,0 0,0,0,0,0,0,0,0,0,0 1,1,1,1,1,1,1,1,1,1 0,0,0,0,0,0,0,0,0,0 0,0,0,0,0,0,0,0,0,0 END_DATA END_LEVEL BEGIN_LEVEL NAME MM-2 DIFFICULTY 2 BEGIN_DATA 0,0,0,0,0,0,0,0,0,0 0,0,0,0,0,0,0,0,0,0 0,0,1,5,1,5,1,5,0,0 0,2,5,1,5,1,5,1,2,0 0,0,1,5,1,5,1,5,0,0 0,0,5,1,5,1,5,1,0,0 0,0,1,5,1,5,1,5,0,0 0,0,5,1,5,1,5,1,0,0 0,0,1,5,1,5,1,5,0,0 0,2,5,1,5,1,5,1,2,0 0,0,1,5,1,5,1,5,0,0 0,0,0,0,0,0,0,0,0,0 0,0,0,0,0,0,0,0,0,0 0,0,0,0,0,0,0,0,0,0 0,0,0,0,0,0,0,0,0,0 END_DATA END_LEVEL BEGIN_LEVEL NAME MM-3 DIFFICULTY 3 BEGIN_DATA 0,0,0,0,0,0,0,0,0,0 0,0,0,0,0,0,0,0,0,0 0,4,4,4,4,4,4,4,4,0 0,4,1,0,1,0,1,0,4,0 0,4,0,1,0,1,0,1,4,0 0,4,1,0,1,0,1,0,4,0 0,4,0,1,0,1,0,1,4,0 0,4,1,0,1,0,1,0,4,0 0,4,4,4,4,4,4,4,4,0 0,0,0,0,0,0,0,0,0,0 0,0,0,0,0,0,0,0,0,0 1,1,2,2,0,0,2,2,1,1 0,0,0,0,0,0,0,0,0,0 0,0,0,0,0,0,0,0,0,0 0,0,0,0,0,0,0,0,0,0 END_DATA END_LEVEL BEGIN_LEVEL NAME MM-4 DIFFICULTY 4 BEGIN_DATA 2,2,2,2,2,2,2,2,2,2 2,0,0,0,0,0,0,0,0,2 2,0,0,0,2,2,0,0,0,2 2,0,0,0,2,2,0,0,0,2 2,0,0,0,2,2,0,0,0,2 2,1,0,0,2,2,0,0,0,2 2,2,2,0,2,2,2,2,0,2 2,2,2,2,2,2,0,0,0,2 2,2,2,2,2,2,0,0,0,2 2,2,2,2,2,2,0,0,0,2 2,2,2,2,2,0,0,0,0,2 2,2,2,2,2,0,0,0,0,2 2,2,2,2,2,0,2,2,2,2 0,0,0,0,0,0,0,0,0,0 0,0,0,0,0,0,0,0,0,0 END_DATA END_LEVEL BEGIN_LEVEL NAME MM-5 DIFFICULTY 5 BEGIN_DATA 2,2,2,2,2,2,2,2,2,2 2,0,0,0,3,1,0,0,0,2 2,0,0,0,1,3,0,0,0,2 2,0,0,0,3,1,0,0,0,2 2,0,0,0,1,3,0,0,0,2 2,0,0,0,3,1,0,0,0,2 2,5,5,5,1,3,5,5,5,2 2,0,0,0,3,1,0,0,0,2 2,0,0,0,1,3,0,0,0,2 2,0,0,0,3,1,0,0,0,2 2,0,0,0,1,3,0,0,0,2 2,0,0,0,3,1,0,0,0,2 2,2,2,0,1,3,0,2,2,2 0,0,0,0,0,0,0,0,0,0 0,0,0,0,0,0,0,0,0,0 END_DATA END_LEVEL BEGIN_LEVEL NAME MM-6 DIFFICULTY 6 BEGIN_DATA 2,2,0,0,0,0,0,0,2,2 1,1,0,0,0,0,0,0,1,1 3,3,0,0,0,0,0,0,3,3 1,1,0,0,2,2,0,0,1,1 0,3,3,0,0,0,0,3,3,0 0,0,1,1,0,0,1,1,0,0 0,0,0,3,3,3,3,0,0,0 2,2,0,0,1,1,0,0,2,2 0,0,0,3,3,3,3,0,0,0 0,0,1,1,0,0,1,1,0,0 0,3,3,0,0,0,0,3,3,0 1,1,0,0,2,2,0,0,1,1 3,3,0,0,0,0,0,0,3,3 1,1,0,0,0,0,0,0,1,1 2,2,0,0,0,0,0,0,2,2 END_DATA END_LEVEL