aboutsummaryrefslogtreecommitdiff
path: root/Buildscr (follow)
Commit message (Collapse)AuthorAge
* Don't initialise GTK in --screenshot mode.Simon Tatham2018-11-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | I had this idea today and immediately wondered why I'd never had it before! To generate the puzzle screenshots used on the website and as program icons, we run the GTK front end with the --screenshot option, which sets up GTK, insists on connecting to an X server (or other display), draws the state of a puzzle on a Cairo surface, writes that surface out to a .png file, and exits. But there's no reason we actually need the GTK setup during that process, especially because the surface we do the drawing on is our _own_ surface, not even one provided to us by GTK. We could just set up a Cairo surface by itself, draw on it, and save it to a file. Calling gtk_init is not only pointless, but actively inconvenient, because it means the build script depends on having an X server available for the sole purpose of making gtk_init not complain. So now I've simplified things, by adding a 'headless' flag in new_window and the frontend structure, which suppresses all uses of actual GTK, leaving only the Cairo surface setup and enough supporting stuff (like colours) to generate the puzzle image. One awkward build dependency removed. This means that --screenshot no longer works in GTK 2, which I don't care about, because it only needs to run on _one_ platform.
* Parallelise the build script.Simon Tatham2018-06-01
| | | | | Using the new feature I added to bob where it defines the variable 'nproc' to give you a sensible value to use with make -j.
* Buildscr: make long parts of the build conditionalisable.Simon Tatham2018-04-28
| | | | | | | | | | | | | | | If I want to rebuild just the Javascript puzzles (for example) in circumstances where I don't expect to need a great many edit-compile-link cycles, it's easier to get bob to do it for me than to remember how to set up the development tools on my path. But it takes ages to run the whole build script if I also have to wait for the Windows, Mac and Java puzzles to be built, not to mention the initial Unix build that runs for no purpose other than generating the icon images. So now I can run the build with various time-consuming parts conditioned out, for development purposes. Of course, the default is still to build absolutely everything.
* Mark the 32-bit Windows build as runnable on XP.Simon Tatham2017-11-29
| | | | | By the same method I do it in PuTTY: manually set the Windows subsystem version id to an earlier one than the default.
* Reinstate 32-bit Windows builds of Puzzles.Simon Tatham2017-11-26
| | | | | I've built a set of 32-bit binaries, a 32-bit zip file and a 32-bit MSI, all delivered into a 'w32' output directory.
* Make the code base clean under -Wwrite-strings.Simon Tatham2017-10-01
| | | | | I've also added that warning option and -Werror to the build script, so that I'll find out if I break this property in future.
* Build test HTML wrapper pages for the Javascript puzzles.Simon Tatham2017-09-20
| | | | | | | | This should make it less annoying for me to do local testing of the JS output of a build, before I push a change. There's a new build.out/jstest directory containing .html files suitable for loading in a local browser, which refer to the JS files via an appropriate relative path to the existing build.out/js directory.
* Switch the Windows builds over to clang-cl.Simon Tatham2017-08-24
| | | | | | | | | | | This also switches them to being 64-bit, which I think is probably acceptable in this modern age, especially for such a non-essential piece of software. If anyone complains I can always reinstate a parallel 32-bit build. To support the switch to 64-bit, this commit also changes the default install directory in the MSI to 'Program Files' rather than 'Program Files (x86)'.
* Discontinue the Inno Setup Puzzles installer.Simon Tatham2017-08-24
| | | | | | I'm getting rid of these installers in general, and also I'm about to switch the Windows builds over to my new-look non-Windows non-Wine system, which can't run the Inno Setup builder anyway.
* Switch to using Halibut's new direct .CHM generation.Simon Tatham2017-05-13
| | | | | This allows me to remove HTML Help Workshop completely from my build dependencies, and good riddance!
* Switch chiark URLs to https.Simon Tatham2017-05-07
|
* Update build script for Inno Setup 5.5.9.Simon Tatham2016-04-09
| | | | | | | Between 5.5.6 and 5.5.9 the default output file name changed. To defend against that potentially happening again, I'm now explicitly specifying the output file name in the .iss source file (or rather, in winiss.pl, which constructs it).
* Add a .htaccess redirection for the new .msi file.Simon Tatham2016-03-11
| | | | Ahem. Left this out of yesterday's commit.
* Use WiX to generate an MSI-based Puzzles installer.Simon Tatham2016-03-10
| | | | | | | | | | | | | I've reused most of the install script I wrote for PuTTY recently, minus the selectable-features dialog, and plus some preliminary Mason templating to automatically build the right set of puzzle binaries into the installer. Stable GUIDs are autogenerated by the same technique I use in PuTTY's Visual Studio project file generation: hash a fixed pile of randomly generated bits (that is, randomly generated _once_ and used forever) with each filename or other identifier and use those as your random number source.
* Update Buildscr to use the new 'with' mechanism.Simon Tatham2016-03-01
|
* Code-sign the Windows puzzle binaries and installer.Simon Tatham2015-12-12
| | | | | | | Where facilities exist, that is. Like the approach I took with PuTTY yesterday, Buildscr will now run a code-signing script over the binary if you specify one in the bob config, and otherwise should fall back to just leaving that step out.
* Convert Buildscr to use the new "do/win" mechanism.Simon Tatham2015-11-17
|
* Couple of fixes to the new web-page mechanism.Simon Tatham2015-01-13
| | | | | I missed some spaces in the autogenerated <span>s, and I generated the web page components including unfinished puzzles by mistake.
* Script to autogenerate pieces of the web page.Simon Tatham2015-01-13
| | | | | | This should simplify the process of adding a new puzzle, by automating the part where I have to manually edit index.html separately from the main build step.
* Add OS X metadata to make Puzzles.app searchable in Spotlight.Simon Tatham2015-01-09
| | | | | | | Thanks to Stephen Norman for most of the work, particularly working out what all the metadata had to be in the first place. This patch is mostly his work, and all I've done is fiddle with the plumbing that gets the right version number into the right places.
* Remove the MD5-based manifest file system.Simon Tatham2014-09-24
| | | | | | | | | | | | A long time ago, it seemed like a good idea to arrange that binaries of my puzzles would automatically cease to identify themselves as a particular upstream version number if any changes were made to the source code, so that if someone made a local tweak and distributed the result then I wouldn't get blamed for the results. Since then I've decided the whole idea is more trouble than it's worth, so I'm retiring it completely. [originally from svn r10264]
* Remove dependencies on Subversion.Simon Tatham2014-09-24
| | | | | | | | | | | | | | | | I'm going through all my projects and reworking them to avoid depending on the monotonic integer-valued source control revision identifier provided by Subversion, so I can migrate everything to git without my builds and versioning breaking. Puzzles's version number is now of the form YYYYMMDD.vvvvvv, where vvvvvv is some string of source control information (currently still the SVN-style "rNNNNN", but free to change in future). The date provides monotonicity between my official automated builds, and the second component is the one I'll be most interested in when people send bug reports. [originally from svn r10263]
* Reinstate the Mac OS build step.Simon Tatham2014-03-30
| | | | | | Now I've got a working Mac, I can build it again. [originally from svn r10167]
* Support building via autoconf and automake. mkfiles.pl now outputs aSimon Tatham2013-06-30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Makefile.am, and there's a new mkauto.sh which builds a corresponding configure script. The old makefile has been renamed from 'Makefile' to 'Makefile.gtk', indicating that the intended new _default_ approach is to use the autoconf world. Makefile.gtk is provided as an emergency fallback in case anything fails with the new stuff that used to work with it. The new configure script does not support the same $(BINPREFIX) system as the old Makefile did. However, as I understand it, it should be possible to configure using --program-prefix="sgt-" (for example) and then the binaries should all be renamed appropriately at install time. The Makefile.am is quite painful. The Puzzles codebase relies heavily on compiling individual object files multiple times with different the cpp flags per build deliverable (program or library) and not per source file. Solution: anything built with non-default compile options has to go in its own little library. But that doesn't work either in the general case, because as soon as you have more than one such library linked into an application, Unix ld semantics bite you if the objects in the libraries both refer to each other. So I ended up building all those little libraries but not _using_ them - instead the link commands for the programs needing those objects refer to the objects directly, under the silly names that automake gives them. (That's less fragile than it sounds, because it does _document_ the names of the intermediate object files. But still, yuck.) [originally from svn r9886]
* Adjust the build script to turn the NestedVM build into a delegation,Simon Tatham2013-06-27
| | | | | | | so that not every machine on which I want to run the full Puzzles build will have to have a local NestedVM installation. [originally from svn r9882]
* Rename wingames.lst to gamedesc.txt, and add a couple of extra fieldsSimon Tatham2013-06-08
| | | | | | | | | to it giving each game's "internal" name (as seen in the source file, .R etc) and also a brief description of the game. The idea of the latter is that it should be usable as a comment field in .desktop files and similar. [originally from svn r9858]
* New front end! To complement the webification of my puzzles via JavaSimon Tatham2013-03-30
| | | | | | | | applets, here's an alternative webification in Javascript, using Emscripten in asm.js mode (so that as browsers incorporate asm.js optimisation, the game generation should run really fast). [originally from svn r9781]
* Introduce a mechanism in this source tree for building the containerSimon Tatham2013-03-30
| | | | | | | | | | | | | | | | | | | | web pages for the Java applets. Previously, those have all been maintained by hand in my website's svn area, which is a bit silly. Now we have a file per puzzle in the 'html' subdirectory which contains the puzzle's name, one or two attributes, and the instructions snippet to go below the puzzle applet; and then there's a Perl script that builds all the real web pages out of that by adding in the parts common across all files: the header, footer, and middle fragment with the <applet> tag and resizing bits and pieces. One piece _not_ checked in here is the footer text specific to my hosting at chiark, which I think does still belong in the www area. So Buildscr doesn't actually build the web pages; it just delivers the bits and pieces by which my nightly snapshot script will be able to run the program that _does_ build them, passing that footer as an extra argument. [originally from svn r9780]
* Comment the Mac build out of Buildscr, since I no longer have aSimon Tatham2012-04-03
| | | | | | working Mac and hence can't build it any more. [originally from svn r9442]
* Introduce a mechanism in Buildscr for optionally building some of theSimon Tatham2011-01-06
| | | | | | | | | | | (more finished) puzzles in 'unfinished', as Java applets only. (The rationale being: puzzles in 'unfinished' can be played locally by people who go to the extra effort of downloading and building the source, but to play them in Java is particularly inconvenient unless I build the Java version myself. I just won't link it from the front page.) [originally from svn r9073]
* Add execute permission to the .exe files inside the zip file.Simon Tatham2009-08-28
| | | | [originally from svn r8634]
* Add a build version designation to the NestedVM build, after JacobSimon Tatham2008-07-05
| | | | | | | pointed out that Help > About in the Java applets on my website currently reports "Unidentified build". [originally from svn r8105]
* Build the Java versions of the puzzles automatically as part of theSimon Tatham2008-06-27
| | | | | | | build process. Also update the new-puzzle checklist to make sure I set up and test the Java applet for any new game I add. [originally from svn r8096]
* Hmm. Telling xvfb to default to a TrueColor visual did help, in thatSimon Tatham2008-03-20
| | | | | | | | | | it got rid of the bogus backgrounds on all the text; but on the other hand it mysteriously caused all the images to become black and white! Serves me right for testing with Bridges which was B&W to start with. Instead, we'll just tell xvfb to use a 24-bit display and let it sort out the visuals for itself; that seems to work better. [originally from svn r7932]
* I _think_, after some fairly random experimentation, that this oughtSimon Tatham2008-03-20
| | | | | | to fix the weird blacked-out text in the xvfb-built screenshots. [originally from svn r7931]
* I still haven't managed to get the WinCE port building via bob, butSimon Tatham2007-05-06
| | | | | | I should at least check in what I've got. [originally from svn r7542]
* Oops. Having built the installer, we need a redirect for it inSimon Tatham2007-02-25
| | | | | | .htaccess. [originally from svn r7324]
* Build an installer for Puzzles.Simon Tatham2007-02-24
| | | | [originally from svn r7319]
* Now we have the new `module' command, use it.Simon Tatham2007-02-05
| | | | [originally from svn r7224]
* Reinstate the icons in the Windows binaries.Simon Tatham2007-02-04
| | | | [originally from svn r7217]
* Forgot to tag the Mac and Windows binaries with the revision number.Simon Tatham2007-02-04
| | | | [originally from svn r7215]
* Looking for puzzles*.tar.gz in the right directory is liable to makeSimon Tatham2007-02-04
| | | | | | the .htaccess build work better :-) [originally from svn r7214]
* Build script for Puzzles using bob. I've also added a piece of extraSimon Tatham2007-02-04
infrastructure to the mkfiles.pl framework for the convenience of the build script: it generates `wingames.lst', a list of the Windows binaries which are ship-worthy games as opposed to nullgame or command-line auxiliary programs. [originally from svn r7206]