Jam

Linux.fista
Siirry navigaatioon Siirry hakuun
Perforce Jam
Tekijä(t) Christopher Seiwald
Kehittäjä(t) Perforce Software (Alkuperäinen), myöhemmin avoimen lähdekoodin kehittäjät (esim. FT-Jam, Boost.Build)
Ensijulkaisu 1990-luvun alku
Vakaa versio 2.5 (Viimeinen virallinen Perforce-julkaisu)  / 2014
Kehitysversio Aktiivinen kehitys jatkuu forkeissa (esim. Boost.Build, FT-Jam)
Ohjelmoitu C
Käyttöliittymä Komentorivi (CLI)
Tyyppi Rakennusautomaatiotyökalu
Lisenssi BSD-lisenssi
Kotisivu perforce.com/jam/jam.html
Lähdekoodi github.com/FT-Jam/ft-jam

Perforce Jam on alun perin Perforce Softwaren kehittämä alustariippumaton rakennusautomaatiotyökalu (build tool). Se suunniteltiin korvaamaan perinteinen make-työkalu tarjoamalla sisäänrakennetun tuen eri käyttöjärjestelmille ja välttämällä erillisten konfiguraatiotyökalujen (kuten Autotoolsin) tarpeen.

Jam käyttää riippuvuuksien määrittelyyn omia Jamfiles-tiedostoja, jotka hyödyntävät yksinkertaista makrokieltä rakennuslogiikan kuvaamiseen.

Kehityksen tila

[muokkaa]

Alkuperäinen Perforce Jam -projekti on pitkälti pysähtynyt. Suurin osa aktiivisesta kehityksestä ja käytöstä tapahtuu nykyään sen avoimen lähdekoodin johdannaisissa (forkeissa), joista merkittävimmät ovat:

  • Boost.Build (BJam): Laajalti käytetty C++-kirjasto Boostin rakennusjärjestelmänä.
  • FT-Jam: Ylläpidetty versio, jota käytetään muun muassa FreeType-projektissa.

Käyttö

[muokkaa]

Jam-työkalun käyttö keskittyy riippuvuuksien määrittelyyn ja suorittamiseen tehokkaasti. Toisin kuin make, joka usein nojautuu ulkoisiin skripteihin alustan konfiguroimiseksi, Jam pyrkii hoitamaan siirrettävyyden sisäisesti

Jamfiles

[muokkaa]

Projektin rakennussäännöt määritellään Jamfiles-tiedostoihin (vastaa Makefiliä). Jamfiles-kieli on suunniteltu erityisesti rakennusprosessin kuvaamiseen, eikä se ole yleiskäyttöinen ohjelmointikieli.

Rakenne

[muokkaa]

Jam-pohjaisessa rakennusprosessissa komento suoritetaan yleensä muodossa:

jam [targets] [options]

Esimerkiksi kääntäminen onnistuu usein vain ajamalla jam projektin juurihakemistossa, jolloin se lukee Jamfile:n ja kääntää oletuskohteet.

Katso myös

[muokkaa]