Build system issues
Open
Nobody has claimed this yet.
- Dominant language
- Makefile
- Stars
- 18
- Forks
- 11
- PR merge metrics
- No merged PRs in 30d
Description
While building the Debian package for the latest release, I came across a few issues:
makegeneratessrc/opensfx.sfo, butmake cleandoes not clean it.- The tarball contains an
opensfx.obsfile, but runningmakeregenerates this file (becauseopensfx.catis not present, which is generated and the obs depends on the cat, so the obs is regenerated). Is this intentional? This is somewhat problematic, since the build now (potentially) modifies a file from the tarball, andmake cleanthen removes it, which means thatmake && make cleanleave the build dir in a different state. make checkdoes no longer work. The Makefile part that handles this seems to usegrfidand expectopensfx.grfto exist, which is not the case.Makefile.configdoes specifyMD5_SRC_FILENAME(pointing to the obs file), but that file contains more than just an md5 file, so I'm not exactly sure how this is intended. The old makefile system would ship anopensfx-0.2.3.md5in the tarball, and then just generate md5sums of the relevant files (only the .cat file I think) and compare those with the shipped file. What is the intention here?- The repo still contains
scripts/Makefile.{bundles,def,common}, but these seem unused? make bundleno longer seems to work to install the bundle into$(DIR_NAME)as before (and as documented). Weirdly enough it just says "make: Nothing to be done for 'bundle'", but I can't actually find a rule forbundle(perhaps some wildcard rule or something). This rule was previously used by the Debian package to install individual files into/usr/share/games/openttd/baseset/opensfx(rather than a tarball), since there is not much point in merging files into a tarball inside a Debian package (though I'm now switching to usingmake installinstead, which also installs separate files).make installgenerates a tarball, but does not actually use it (instead, it installs separate files, which is what I'm using now). I think it could just depend on$(DIR_NAME)rather than$(DIR_NAME).tar.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading Makefile and Makefile.config, then run make, make clean, make check, make bundle, and make install in a Debian-package build. Review scripts/Makefile.bundles, scripts/Makefile.def, and scripts/Makefile.common for related rules. Done means the targets have intentional, documented behavior, clean restores the expected tree, and packaging works as described.
Written by the indexing model from the issue text.
Assessment
- Domain
- build-system
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100