Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for DESTDIR variable #14

Merged
merged 2 commits into from
Apr 24, 2016
Merged

Add support for DESTDIR variable #14

merged 2 commits into from
Apr 24, 2016

Conversation

akien-mga
Copy link
Contributor

This allows (among others) packagers to install the files in a temporary
folder to generate a RPM or DEB file. The DESTDIR variable is a well
established convention for this.

This commit also adds the possibility to override the installation PREFIX,
BIN_DIR and DATA_DIR (as some distros would prefer /usr/games for the binary
and /usr/share/games/tbftss for the data).

This commit also makes the default DATA_DIR /usr/local/share/tbftss, if you prefer to keep /opt/tbftss for this purpose I could change it back.

This allows (among others) packagers to install the files in a temporary
folder to generate a RPM or DEB file. The DESTDIR variable is a well
established convention for this.

This commit also adds the possibility to override the installation PREFIX,
BIN_DIR and DATA_DIR (as some distros would prefer /usr/games for the binary
and /usr/share/games/tbftss for the data).
@stephenjsweeney stephenjsweeney merged commit d635247 into stephenjsweeney:master Apr 24, 2016
@stephenjsweeney
Copy link
Owner

I had to revert this, as when I ran make install on my system, it broke (directories were incorrectly created, and the copy failed). I then had to manually delete the erroneous structure.

This line:

install -d $(INST_ICON_DIR)/{16x16,32x32,64x64,128x128}/apps

literally created a directory called:

{16x16,32x32,64x64,128x128}

Other parts of the installation also failed, as my system (Mint) does not appear to make much use of /usr/local

@akien-mga
Copy link
Contributor Author

That's weird... What shell does not support the {variant1,variant2} syntax?

/usr/local is part of the FHS, but it's normal that it's not widely used as it's specific for user-installed applications, such as your game. The /usr prefix on the other hand is reserved for system-installed applications, i.e. what gets installed via the package manager.

What other parts of the installation failed?

@akien-mga
Copy link
Contributor Author

Or maybe install -d does not support multiple arguments contrarily to mkdir -p. It's strange because I'm pretty sure I've tried the new makefile myself to generate an RPM package, I'll have a closer look.

@akien-mga
Copy link
Contributor Author

akien-mga commented Apr 25, 2016

I tested again locally, with Mageia 6 using BASH as shell interpreter, and it works just fine, after the install I get, using those instructions:

make
make install
   /usr/local/bin/tbftss
   /usr/local/share/applications/tbftss.desktop
   /usr/local/share/icons/hicolor/128x128/apps/tbftss.png
   /usr/local/share/icons/hicolor/16x16/apps/tbftss.png
   /usr/local/share/icons/hicolor/32x32/apps/tbftss.png
   /usr/local/share/icons/hicolor/64x64/apps/tbftss.png
   /usr/local/share/locale/de/LC_MESSAGES/tbftss.mo
   /usr/local/share/tbftss/data/app/config.json
   /usr/local/share/tbftss/data/battle/bullets.json
   /usr/local/share/tbftss/data/battle/items.json
   /usr/local/share/tbftss/data/capitalShips/csnCorvette01.json
   /usr/local/share/tbftss/data/capitalShips/csnCorvette02.json
   /usr/local/share/tbftss/data/capitalShips/infCorvette01.json
   /usr/local/share/tbftss/data/capitalShips/infCorvette02.json
   /usr/local/share/tbftss/data/capitalShips/unfCorvette01.json
   /usr/local/share/tbftss/data/capitalShips/unfCorvette02.json
   /usr/local/share/tbftss/data/challenges/01.json
   /usr/local/share/tbftss/data/challenges/02.json
   /usr/local/share/tbftss/data/challenges/03.json
   /usr/local/share/tbftss/data/challenges/04.json
   /usr/local/share/tbftss/data/challenges/05.json
   /usr/local/share/tbftss/data/challenges/06.json
   /usr/local/share/tbftss/data/challenges/07.json
   /usr/local/share/tbftss/data/challenges/08.json
   /usr/local/share/tbftss/data/challenges/09.json
   /usr/local/share/tbftss/data/challenges/10.json
   /usr/local/share/tbftss/data/challenges/11.json
   /usr/local/share/tbftss/data/challenges/12.json
   /usr/local/share/tbftss/data/challenges/13.json
   /usr/local/share/tbftss/data/challenges/14.json
   /usr/local/share/tbftss/data/craft/civilian.json
   /usr/local/share/tbftss/data/craft/infTug.json
   /usr/local/share/tbftss/data/craft/munitionsTransport.json
   /usr/local/share/tbftss/data/craft/shuttle.json
   /usr/local/share/tbftss/data/craft/supplyShip.json
   /usr/local/share/tbftss/data/craft/tug.json
   /usr/local/share/tbftss/data/fighters/ataf.json
   /usr/local/share/tbftss/data/fighters/blizzard.json
   /usr/local/share/tbftss/data/fighters/cannonDart.json
   /usr/local/share/tbftss/data/fighters/dart.json
   /usr/local/share/tbftss/data/fighters/firefly.json
   /usr/local/share/tbftss/data/fighters/hammerhead.json
   /usr/local/share/tbftss/data/fighters/hyenaA.json
   /usr/local/share/tbftss/data/fighters/hyenaB.json
   /usr/local/share/tbftss/data/fighters/jackal.json
   /usr/local/share/tbftss/data/fighters/khepri.json
   /usr/local/share/tbftss/data/fighters/kingfisher.json
   /usr/local/share/tbftss/data/fighters/leopard.json
   /usr/local/share/tbftss/data/fighters/lynx.json
   /usr/local/share/tbftss/data/fighters/mantis.json
   /usr/local/share/tbftss/data/fighters/missileDart.json
   /usr/local/share/tbftss/data/fighters/nymph.json
   /usr/local/share/tbftss/data/fighters/ray.json
   /usr/local/share/tbftss/data/fighters/razor.json
   /usr/local/share/tbftss/data/fighters/rocketDart.json
   /usr/local/share/tbftss/data/fighters/rook.json
   /usr/local/share/tbftss/data/fighters/scarab.json
   /usr/local/share/tbftss/data/fighters/shale.json
   /usr/local/share/tbftss/data/fighters/simpleDart.json
   /usr/local/share/tbftss/data/fighters/sk31.json
   /usr/local/share/tbftss/data/fighters/sk34.json
   /usr/local/share/tbftss/data/fighters/sphinx.json
   /usr/local/share/tbftss/data/fighters/staticDart.json
   /usr/local/share/tbftss/data/fighters/swarmer.json
   /usr/local/share/tbftss/data/fighters/taf.json
   /usr/local/share/tbftss/data/fighters/thunderhead.json
   /usr/local/share/tbftss/data/fighters/unarmedDart.json
   /usr/local/share/tbftss/data/fonts/Roboto-Medium.ttf
   /usr/local/share/tbftss/data/galaxy/starSystems.json
   /usr/local/share/tbftss/data/missions/alba/01 - patrol #1.json
   /usr/local/share/tbftss/data/missions/alba/02 - patrol #2.json
   /usr/local/share/tbftss/data/missions/alba/03 - patrol #3.json
   /usr/local/share/tbftss/data/missions/alba/04 - alba defence #1.json
   /usr/local/share/tbftss/data/missions/antomis/01 - antomis defence #1.json
   /usr/local/share/tbftss/data/missions/antomis/02 - antomis offence #2.json
   /usr/local/share/tbftss/data/missions/aster/01 - return to aster #1.json
   /usr/local/share/tbftss/data/missions/aster/02 - return to aster #2.json
   /usr/local/share/tbftss/data/missions/aster/03 - return to aster #3.json
   /usr/local/share/tbftss/data/missions/clarke/01 - clarke defence #1.json
   /usr/local/share/tbftss/data/missions/clarke/02 - clarke defence #2.json
   /usr/local/share/tbftss/data/missions/clarke/03 - clarke defence #3.json
   /usr/local/share/tbftss/data/missions/clarke/04 - clarke defence #4.json
   /usr/local/share/tbftss/data/missions/clarke/05 - clarke defence #5.json
   /usr/local/share/tbftss/data/missions/clarke/06 - clarke defence #6.json
   /usr/local/share/tbftss/data/missions/coyote/01 - coyote assault #1.json
   /usr/local/share/tbftss/data/missions/coyote/02 - coyote assault #2.json
   /usr/local/share/tbftss/data/missions/coyote/03 - coyote assault #3.json
   /usr/local/share/tbftss/data/missions/donesta/01 - donesta defence #1.json
   /usr/local/share/tbftss/data/missions/donesta/02 - donesta offence #1.json
   /usr/local/share/tbftss/data/missions/granada/01 - suspect packages #1.json
   /usr/local/share/tbftss/data/missions/granada/02 - suspect packages #2.json
   /usr/local/share/tbftss/data/missions/granada/03 - suspect packages #3.json
   /usr/local/share/tbftss/data/missions/granada/04 - pirate smash.json
   /usr/local/share/tbftss/data/missions/iliad/01 - iliad defence #1.json
   /usr/local/share/tbftss/data/missions/iliad/02 - iliad defence #2.json
   /usr/local/share/tbftss/data/missions/iliad/03 - iliad defence #3.json
   /usr/local/share/tbftss/data/missions/iliad/04 - iliad defence #4.json
   /usr/local/share/tbftss/data/missions/iliad/05 - iliad defence #5.json
   /usr/local/share/tbftss/data/missions/india/01 - india defence #1.json
   /usr/local/share/tbftss/data/missions/india/02 - india defence #2.json
   /usr/local/share/tbftss/data/missions/mace/01 - rebel assault #1.json
   /usr/local/share/tbftss/data/missions/rothan/01 - rothan defence #1.json
   /usr/local/share/tbftss/data/missions/rothan/02 - rothan defence #2.json
   /usr/local/share/tbftss/data/missions/rothan/03 - rothan defence #3.json
   /usr/local/share/tbftss/data/missions/rothan/04 - rothan offence #1.json
   /usr/local/share/tbftss/data/missions/sol/01 - free flight.json
   /usr/local/share/tbftss/data/missions/sol/02 - weapons.json
   /usr/local/share/tbftss/data/missions/sol/03 - moving target.json
   /usr/local/share/tbftss/data/missions/sol/04 - armed target.json
   /usr/local/share/tbftss/data/missions/sol/05 - ecm.json
   /usr/local/share/tbftss/data/missions/sol/06 - mag.json
   /usr/local/share/tbftss/data/missions/sol/07 - wingmates.json
   /usr/local/share/tbftss/data/missions/sol/08 - final.json
   /usr/local/share/tbftss/data/missions/temper/01 - pirate uprising #1.json
   /usr/local/share/tbftss/data/missions/temper/02 - pirate uprising #2.json
   /usr/local/share/tbftss/data/missions/temper/03 - pirate uprising #3.json
   /usr/local/share/tbftss/data/missions/temper/04 - pirate uprising #4.json
   /usr/local/share/tbftss/data/missions/temper/05 - pirate uprising #5.json
   /usr/local/share/tbftss/data/missions/trilliack/01 - trilliack defence #1.json
   /usr/local/share/tbftss/data/missions/trilliack/02 - trilliack defence #2.json
   /usr/local/share/tbftss/data/missions/warro/01 - evacuation #1.json
   /usr/local/share/tbftss/data/missions/warro/02 - evacuation #2.json
   /usr/local/share/tbftss/data/missions/warro/03 - evacuation #3.json
   /usr/local/share/tbftss/data/missions/warro/04 - evacuation #4.json
   /usr/local/share/tbftss/data/missions/warro/05 - evacuation #5.json
   /usr/local/share/tbftss/data/trophies/trophies.json
   /usr/local/share/tbftss/data/turrets/plasmaTurret.json
   /usr/local/share/tbftss/data/turrets/rapidPlasmaTurret.json
   /usr/local/share/tbftss/data/turrets/rocketTurret.json
   /usr/local/share/tbftss/data/widgets/battleLost.json
   /usr/local/share/tbftss/data/widgets/battleWon.json
   /usr/local/share/tbftss/data/widgets/challenges.json
   /usr/local/share/tbftss/data/widgets/controls.json
   /usr/local/share/tbftss/data/widgets/galacticMap.json
   /usr/local/share/tbftss/data/widgets/inBattle.json
   /usr/local/share/tbftss/data/widgets/modal.json
   /usr/local/share/tbftss/data/widgets/options.json
   /usr/local/share/tbftss/data/widgets/starSystem.json
   /usr/local/share/tbftss/data/widgets/startBattle.json
   /usr/local/share/tbftss/data/widgets/stats.json
   /usr/local/share/tbftss/data/widgets/title.json
   /usr/local/share/tbftss/gfx/backgrounds/background01.jpg
   /usr/local/share/tbftss/gfx/backgrounds/background02.jpg
   /usr/local/share/tbftss/gfx/backgrounds/background03.jpg
   /usr/local/share/tbftss/gfx/backgrounds/background04.jpg
   /usr/local/share/tbftss/gfx/backgrounds/background05.jpg
   /usr/local/share/tbftss/gfx/backgrounds/background06.jpg
   /usr/local/share/tbftss/gfx/battle/challengeComplete.png
   /usr/local/share/tbftss/gfx/battle/challengeFailed.png
   /usr/local/share/tbftss/gfx/battle/challengeInProgress.png
   /usr/local/share/tbftss/gfx/battle/challengeStart.png
   /usr/local/share/tbftss/gfx/battle/missionComplete.png
   /usr/local/share/tbftss/gfx/battle/missionFailed.png
   /usr/local/share/tbftss/gfx/battle/missionInProgress.png
   /usr/local/share/tbftss/gfx/battle/missionStart.png
   /usr/local/share/tbftss/gfx/battle/timeUp.png
   /usr/local/share/tbftss/gfx/bullets/laser.png
   /usr/local/share/tbftss/gfx/bullets/magBolt.png
   /usr/local/share/tbftss/gfx/bullets/missile.png
   /usr/local/share/tbftss/gfx/bullets/particleBolt.png
   /usr/local/share/tbftss/gfx/bullets/plasmaBolt.png
   /usr/local/share/tbftss/gfx/cannons/plasmaTurret.png
   /usr/local/share/tbftss/gfx/cannons/rocketTurret.png
   /usr/local/share/tbftss/gfx/cannons/singlePlasmaTurret.png
   /usr/local/share/tbftss/gfx/capitalShips/common/cannon01.png
   /usr/local/share/tbftss/gfx/capitalShips/csnCorvette01/body.png
   /usr/local/share/tbftss/gfx/capitalShips/csnCorvette01/component1.png
   /usr/local/share/tbftss/gfx/capitalShips/csnCorvette01/component2.png
   /usr/local/share/tbftss/gfx/capitalShips/csnCorvette01/component3.png
   /usr/local/share/tbftss/gfx/capitalShips/csnCorvette01/core.png
   /usr/local/share/tbftss/gfx/capitalShips/csnCorvette01/engine1.png
   /usr/local/share/tbftss/gfx/capitalShips/csnCorvette02/body.png
   /usr/local/share/tbftss/gfx/capitalShips/csnCorvette02/component1.png
   /usr/local/share/tbftss/gfx/capitalShips/csnCorvette02/component2.png
   /usr/local/share/tbftss/gfx/capitalShips/csnCorvette02/component3.png
   /usr/local/share/tbftss/gfx/capitalShips/csnCorvette02/component4.png
   /usr/local/share/tbftss/gfx/capitalShips/csnCorvette02/component5.png
   /usr/local/share/tbftss/gfx/capitalShips/csnCorvette02/core.png
   /usr/local/share/tbftss/gfx/capitalShips/csnCorvette02/engine1.png
   /usr/local/share/tbftss/gfx/capitalShips/csnCorvette02/engine2.png
   /usr/local/share/tbftss/gfx/capitalShips/infCorvette01/body.png
   /usr/local/share/tbftss/gfx/capitalShips/infCorvette01/component1.png
   /usr/local/share/tbftss/gfx/capitalShips/infCorvette01/component2.png
   /usr/local/share/tbftss/gfx/capitalShips/infCorvette01/component3.png
   /usr/local/share/tbftss/gfx/capitalShips/infCorvette01/component4.png
   /usr/local/share/tbftss/gfx/capitalShips/infCorvette01/component5.png
   /usr/local/share/tbftss/gfx/capitalShips/infCorvette01/component6.png
   /usr/local/share/tbftss/gfx/capitalShips/infCorvette01/engine1.png
   /usr/local/share/tbftss/gfx/capitalShips/infCorvette01/engine2.png
   /usr/local/share/tbftss/gfx/capitalShips/infCorvette02/body.png
   /usr/local/share/tbftss/gfx/capitalShips/infCorvette02/component1.png
   /usr/local/share/tbftss/gfx/capitalShips/infCorvette02/component2.png
   /usr/local/share/tbftss/gfx/capitalShips/infCorvette02/component3.png
   /usr/local/share/tbftss/gfx/capitalShips/infCorvette02/component4.png
   /usr/local/share/tbftss/gfx/capitalShips/infCorvette02/core.png
   /usr/local/share/tbftss/gfx/capitalShips/infCorvette02/engine1.png
   /usr/local/share/tbftss/gfx/capitalShips/infCorvette02/engine2.png
   /usr/local/share/tbftss/gfx/capitalShips/infCorvette02/engine3.png
   /usr/local/share/tbftss/gfx/capitalShips/infCorvette02/engine4.png
   /usr/local/share/tbftss/gfx/capitalShips/unfCorvette01/body.png
   /usr/local/share/tbftss/gfx/capitalShips/unfCorvette01/component1.png
   /usr/local/share/tbftss/gfx/capitalShips/unfCorvette01/component2.png
   /usr/local/share/tbftss/gfx/capitalShips/unfCorvette01/component3.png
   /usr/local/share/tbftss/gfx/capitalShips/unfCorvette01/component4.png
   /usr/local/share/tbftss/gfx/capitalShips/unfCorvette01/component5.png
   /usr/local/share/tbftss/gfx/capitalShips/unfCorvette01/component6.png
   /usr/local/share/tbftss/gfx/capitalShips/unfCorvette01/core.png
   /usr/local/share/tbftss/gfx/capitalShips/unfCorvette01/engine1.png
   /usr/local/share/tbftss/gfx/capitalShips/unfCorvette01/engine2.png
   /usr/local/share/tbftss/gfx/capitalShips/unfCorvette02/body.png
   /usr/local/share/tbftss/gfx/capitalShips/unfCorvette02/component1.png
   /usr/local/share/tbftss/gfx/capitalShips/unfCorvette02/component2.png
   /usr/local/share/tbftss/gfx/capitalShips/unfCorvette02/component3.png
   /usr/local/share/tbftss/gfx/capitalShips/unfCorvette02/engine1.png
   /usr/local/share/tbftss/gfx/capitalShips/unfCorvette02/engine2.png
   /usr/local/share/tbftss/gfx/challenges/challengeIcon.png
   /usr/local/share/tbftss/gfx/challenges/challengeIconHighlight.png
   /usr/local/share/tbftss/gfx/craft/civilian01.png
   /usr/local/share/tbftss/gfx/craft/civilian02.png
   /usr/local/share/tbftss/gfx/craft/infTug.png
   /usr/local/share/tbftss/gfx/craft/munitionsTransport.png
   /usr/local/share/tbftss/gfx/craft/shuttle.png
   /usr/local/share/tbftss/gfx/craft/supplyShip.png
   /usr/local/share/tbftss/gfx/craft/tug.png
   /usr/local/share/tbftss/gfx/debris/debris1.png
   /usr/local/share/tbftss/gfx/debris/debris2.png
   /usr/local/share/tbftss/gfx/debris/debris3.png
   /usr/local/share/tbftss/gfx/debris/debris4.png
   /usr/local/share/tbftss/gfx/debris/debris5.png
   /usr/local/share/tbftss/gfx/debris/debris6.png
   /usr/local/share/tbftss/gfx/effects/explosion.png
   /usr/local/share/tbftss/gfx/effects/halo.png
   /usr/local/share/tbftss/gfx/effects/shieldHit.png
   /usr/local/share/tbftss/gfx/entities/jumpgate.png
   /usr/local/share/tbftss/gfx/entities/jumpgateNode.png
   /usr/local/share/tbftss/gfx/entities/mine.png
   /usr/local/share/tbftss/gfx/entities/mineWarning.png
   /usr/local/share/tbftss/gfx/entities/portal.png
   /usr/local/share/tbftss/gfx/entities/shadowMine.png
   /usr/local/share/tbftss/gfx/entities/waypoint.png
   /usr/local/share/tbftss/gfx/fighters/ataf.png
   /usr/local/share/tbftss/gfx/fighters/blizzard.png
   /usr/local/share/tbftss/gfx/fighters/dart01.png
   /usr/local/share/tbftss/gfx/fighters/dart02.png
   /usr/local/share/tbftss/gfx/fighters/dart03.png
   /usr/local/share/tbftss/gfx/fighters/dart04.png
   /usr/local/share/tbftss/gfx/fighters/dart05.png
   /usr/local/share/tbftss/gfx/fighters/dart06.png
   /usr/local/share/tbftss/gfx/fighters/dart07.png
   /usr/local/share/tbftss/gfx/fighters/firefly.png
   /usr/local/share/tbftss/gfx/fighters/hammerhead.png
   /usr/local/share/tbftss/gfx/fighters/hyena.png
   /usr/local/share/tbftss/gfx/fighters/jackal.png
   /usr/local/share/tbftss/gfx/fighters/khepri.png
   /usr/local/share/tbftss/gfx/fighters/kingfisher.png
   /usr/local/share/tbftss/gfx/fighters/leopard.png
   /usr/local/share/tbftss/gfx/fighters/lynx.png
   /usr/local/share/tbftss/gfx/fighters/mantis.png
   /usr/local/share/tbftss/gfx/fighters/nymph.png
   /usr/local/share/tbftss/gfx/fighters/ray.png
   /usr/local/share/tbftss/gfx/fighters/razor.png
   /usr/local/share/tbftss/gfx/fighters/rook.png
   /usr/local/share/tbftss/gfx/fighters/scarab.png
   /usr/local/share/tbftss/gfx/fighters/shale.png
   /usr/local/share/tbftss/gfx/fighters/sk31.png
   /usr/local/share/tbftss/gfx/fighters/sk34.png
   /usr/local/share/tbftss/gfx/fighters/sphinx.png
   /usr/local/share/tbftss/gfx/fighters/swarmer.png
   /usr/local/share/tbftss/gfx/fighters/taf.png
   /usr/local/share/tbftss/gfx/fighters/thunderhead.png
   /usr/local/share/tbftss/gfx/galaxy/arrow.png
   /usr/local/share/tbftss/gfx/galaxy/starSystem.png
   /usr/local/share/tbftss/gfx/hud/armour.png
   /usr/local/share/tbftss/gfx/hud/boost.png
   /usr/local/share/tbftss/gfx/hud/clock.png
   /usr/local/share/tbftss/gfx/hud/ecm.png
   /usr/local/share/tbftss/gfx/hud/nextGun.png
   /usr/local/share/tbftss/gfx/hud/objectives.png
   /usr/local/share/tbftss/gfx/hud/radar.png
   /usr/local/share/tbftss/gfx/hud/radarWarning.png
   /usr/local/share/tbftss/gfx/hud/shield.png
   /usr/local/share/tbftss/gfx/hud/smallFighter.png
   /usr/local/share/tbftss/gfx/hud/targetCircle.png
   /usr/local/share/tbftss/gfx/hud/targetPointer.png
   /usr/local/share/tbftss/gfx/input/mousePointer.png
   /usr/local/share/tbftss/gfx/items/crate.png
   /usr/local/share/tbftss/gfx/items/smallCrate.png
   /usr/local/share/tbftss/gfx/planets/adelaide.png
   /usr/local/share/tbftss/gfx/planets/al-Elfia.png
   /usr/local/share/tbftss/gfx/planets/arlos.png
   /usr/local/share/tbftss/gfx/planets/bluePlanet.png
   /usr/local/share/tbftss/gfx/planets/diso.png
   /usr/local/share/tbftss/gfx/planets/earth.png
   /usr/local/share/tbftss/gfx/planets/henninger.png
   /usr/local/share/tbftss/gfx/planets/hyanik.png
   /usr/local/share/tbftss/gfx/planets/kaiser.png
   /usr/local/share/tbftss/gfx/planets/kethlan.png
   /usr/local/share/tbftss/gfx/planets/mythos.png
   /usr/local/share/tbftss/gfx/planets/oracleIX.png
   /usr/local/share/tbftss/gfx/planets/peri.png
   /usr/local/share/tbftss/gfx/planets/sky.png
   /usr/local/share/tbftss/gfx/planets/spirit.png
   /usr/local/share/tbftss/gfx/planets/star.png
   /usr/local/share/tbftss/gfx/planets/tigibel.png
   /usr/local/share/tbftss/gfx/planets/tilli.png
   /usr/local/share/tbftss/gfx/planets/torelli.png
   /usr/local/share/tbftss/gfx/planets/xalan.png
   /usr/local/share/tbftss/gfx/title/logo.png
   /usr/local/share/tbftss/gfx/title/pandoran.png
   /usr/local/share/tbftss/gfx/trophies/bronze.png
   /usr/local/share/tbftss/gfx/trophies/gold.png
   /usr/local/share/tbftss/gfx/trophies/platinum.png
   /usr/local/share/tbftss/gfx/trophies/silver.png
   /usr/local/share/tbftss/gfx/widgets/optionsLeft.png
   /usr/local/share/tbftss/gfx/widgets/optionsRight.png
   /usr/local/share/tbftss/manual/background02.jpg
   /usr/local/share/tbftss/manual/capitalShips.png
   /usr/local/share/tbftss/manual/challenges.png
   /usr/local/share/tbftss/manual/controls.png
   /usr/local/share/tbftss/manual/galaxy.png
   /usr/local/share/tbftss/manual/index.html
   /usr/local/share/tbftss/manual/jquery-2.1.3.min.js
   /usr/local/share/tbftss/manual/logo.png
   /usr/local/share/tbftss/manual/mission1.png
   /usr/local/share/tbftss/manual/mission2.png
   /usr/local/share/tbftss/manual/pandoran.png
   /usr/local/share/tbftss/manual/starSystem.png
   /usr/local/share/tbftss/manual/title.png
   /usr/local/share/tbftss/music/battle/Battle in the winter.mp3
   /usr/local/share/tbftss/music/battle/DST-RailJet-LongSeamlessLoop.ogg
   /usr/local/share/tbftss/music/battle/InnerCore_Low.ogg
   /usr/local/share/tbftss/music/battle/Showdown.mp3
   /usr/local/share/tbftss/music/battle/Tactical Pursuit.mp3
   /usr/local/share/tbftss/music/battle/battleThemeA.mp3
   /usr/local/share/tbftss/music/battle/determination.mp3
   /usr/local/share/tbftss/music/battle/heroism.ogg
   /usr/local/share/tbftss/music/battle/track-1.mp3
   /usr/local/share/tbftss/music/battle/track-3.mp3
   /usr/local/share/tbftss/music/battle/track-4.mp3
   /usr/local/share/tbftss/music/main/Pressure.ogg
   /usr/local/share/tbftss/music/main/Rise of spirit.ogg
   /usr/local/share/tbftss/music/main/covert_operations.mp3
   /usr/local/share/tbftss/sound/000000_large_explosion.ogg
   /usr/local/share/tbftss/sound/146725__fins__laser.ogg
   /usr/local/share/tbftss/sound/162265__qubodup__explosive.ogg
   /usr/local/share/tbftss/sound/172591__timbre__zapitydooda.ogg
   /usr/local/share/tbftss/sound/172870__escortmarius__carbidexplosion.ogg
   /usr/local/share/tbftss/sound/178064__jorickhoofd__slam-door-shut.ogg
   /usr/local/share/tbftss/sound/18380__inferno__hvrl.ogg
   /usr/local/share/tbftss/sound/18382__inferno__hvylas.ogg
   /usr/local/share/tbftss/sound/207322__animationisaac__short-explosion.ogg
   /usr/local/share/tbftss/sound/242856__plasterbrain__nuclear-alarm.ogg
   /usr/local/share/tbftss/sound/249300__suntemple__access-denied.ogg
   /usr/local/share/tbftss/sound/251431__onlytheghosts__fusion-gun-flash0-by-onlytheghosts.ogg
   /usr/local/share/tbftss/sound/254071__tb0y298__firework-explosion.ogg
   /usr/local/share/tbftss/sound/254174__kwahmah-02__s.ogg
   /usr/local/share/tbftss/sound/257786__xtrgamr__mouse-click.ogg
   /usr/local/share/tbftss/sound/263621__jamesabdulrahman__permission-to-panic.ogg
   /usr/local/share/tbftss/sound/268344__julien-matthey__jm-noiz-laser-01.ogg
   /usr/local/share/tbftss/sound/275151__bird-man__gun-shot.ogg
   /usr/local/share/tbftss/sound/276912__pauldihor__transform.ogg
   /usr/local/share/tbftss/sound/278142__ricemaster__effect-notify.ogg
   /usr/local/share/tbftss/sound/320181__dland__hint.ogg
   /usr/local/share/tbftss/sound/321104__nsstudios__blip2.ogg
   /usr/local/share/tbftss/sound/321906__bruce965__walkie-talkie-roger-beep.ogg
   /usr/local/share/tbftss/sound/322603__clippysounds__glass-break.ogg
   /usr/local/share/tbftss/sound/329359__bassoonrckr__reed-guillotine.ogg
   /usr/local/share/tbftss/sound/39030__wildweasel__d1clsstf.ogg
   /usr/local/share/tbftss/sound/42106__marcuslee__laser-wrath-4.ogg
   /usr/local/share/tbftss/sound/47252__nthompson__bad-explosion.ogg
   /usr/local/share/tbftss/sound/49678__ejfortin__energy-short-sword-7.ogg
   /usr/local/share/tbftss/sound/56246__q-k__latch-04.ogg
   /usr/local/share/tbftss/sound/65787__iwilldstroyu__laserrocket.ogg
   /usr/local/share/tbftss/sound/77087__supraliminal__laser-short.ogg
   /usr/local/share/tbftss/sound/88275__s-dij__gbc-reload-06.ogg

If the only problematic line is install -d $(INST_ICON_DIR)/{16x16,32x32,64x64,128x128}/apps, it can easily be split in 4 lines...

install -d $(INST_ICON_DIR)/16x16/apps
install -d $(INST_ICON_DIR)/32x32/apps
install -d $(INST_ICON_DIR)/64x64/apps
install -d $(INST_ICON_DIR)/128x128/apps

Or even a for loop, but given that {,} doesn't work it's maybe best to KISS :)

@akien-mga
Copy link
Contributor Author

akien-mga commented Apr 25, 2016

And here's what I get as the output of my RPM, using those build instructions:

make DATA_DIR=/usr/share/games/tbftss
make install DESTDIR=%{buildroot} PREFIX=/usr BIN_DIR=/usr/games DATA_DIR=/usr/share/games/tbftss
/usr/games/tbftss
/usr/share/applications/tbftss.desktop
/usr/share/doc/tbftss
/usr/share/doc/tbftss/README.md
/usr/share/doc/tbftss/README_DEV.md
/usr/share/games/tbftss
/usr/share/games/tbftss/data/*
/usr/share/games/tbftss/gfx/*
/usr/share/games/tbftss/manual/*
/usr/share/games/tbftss/music/*
/usr/share/games/tbftss/sound/*
/usr/share/icons/hicolor/128x128/apps/tbftss.png
/usr/share/icons/hicolor/16x16/apps/tbftss.png
/usr/share/icons/hicolor/32x32/apps/tbftss.png
/usr/share/icons/hicolor/64x64/apps/tbftss.png
/usr/share/locale/de/LC_MESSAGES/tbftss.mo

And the package works fine.

@stephenjsweeney
Copy link
Owner

Okay, cool. It might be worth me having this as a separate makefile, as the layout is quite different from my Mint install; the locations go against what is configured for me system - I have nothing in /usr/games or /usr/local/share.

If you were to call it makefile.packaging (or something like that) that would be the best bet. I can easily maintain them both.

@akien-mga
Copy link
Contributor Author

Well you can also set the default values that you like best. All values are defined with ?=, which means they can be overridden.

The current default values are /usr/bin for the binary and /usr/local/share/tbftss for the data.
I could just change the values in my version of the makefile to:

PREFIX ?= /usr
DATA_DIR ?= /opt/tbftss
BIN_DIR ?= $(PREFIX)/bin
LOCALE_DIR = $(PREFIX)/share/locale
ICON_DIR = $(PREFIX)/share/icons/hicolor
DESKTOP_DIR = $(PREFIX)/share/applications

and it would behave just like it used to.

Also I'd split the problematic install -d $(INST_ICON_DIR)/{16x16,32x32,64x64,128x128}/apps into 4 calls to workaround the issue you were having.

So basically it would all behave like it used to, but would be more flexible so that packagers can do what they need without having to patch the makefile.

@akien-mga
Copy link
Contributor Author

Could you try this branch and see if it behaves properly for you? https://github.com/akien-mga/tbftss/tree/pr-packaging

stephenjsweeney added a commit that referenced this pull request Apr 26, 2016
@stephenjsweeney
Copy link
Owner

Excellent. Just save it a go and it all works fine. Thanks for the updating it.

@stephenjsweeney
Copy link
Owner

(this has been committed to the develop branch, not master right now)

@akien-mga
Copy link
Contributor Author

Awesome, thanks :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants