Skip to content
Cecil edited this page Oct 31, 2015 · 1 revision

From your command line do rake -T which lists all the tasks the Rakefile knows about. Some of them seem simple like rake build and rake clean But rake install and rake package -- what do those do? What about those osx:setup and linux:setup and msw:setup

The rake files have a target. the system to build Shoes for and it doesn't have to be same system your running. That said, only Linux with a whole lot lot of hand holding can build for other architectures. OSX could but no one has bothered to try. Still, that cross compile capability permeates everything in the rake files and even the resulting Shoes will behave slightly differently for certain commands. Subtle but strong.

If you don't set a target then the rake files default to a target that is the same as the 'host' platform. That is called a Loose Shoes. It's the default if you don't set a target. If you happen to be running Linux then Loose Shoes is a very small file libshoes.so and not much else. LOOSE Shoes doesn't live in a sandbox. It uses whatever ruby and gems set it was built with or can find. It's deeply tied to your system and only your system. It will never work on another box. Only yours. You can install it on your system but you can't package it. It's also a bit smaller on OSX. You probably could distribute it but Shoes won't let you package a LOOSE Shoes. For Windows, it's not that different from TIGHT Shoes but it can't be distrubuted

Tight Shoes lives in a sandbox. It can be sent to others. It can be packaged. The only gems it has are the one included with Shoes (hpricot and sqlite3) It's tight.

So that's where the targets come from. Targets are Tight Shoes builds. If you want to build Shoes on OSX and ship it for OSX, you need a target. Same in Linux. Does that explain the linux:setup and osx:setup and msw:setup tasks and sub tasks.

Once you set an explicit (tight shoes distributable) target with xxx:setup:yyyy then you can use rake clean and rake build just like you would for a Loose shoes build

Clone this wiki locally