Automatisk kompilering av Store-programmer på alle plattformer ============================================================== Petter Reinholdtsen , 1999-07-27 IT-avdelingen bruker et system kalt 'build-all' hentet fra NTNU for dette. Når det virker går kompilering mye raskere enn før. Når det ikke virker gjøres kompilering som før. Kopi av NTNUs buildinfo filer ligger i store-applikasjon build-all/ntnu-buildinfo/ For å autokompilere for flere arkitekturer lager du et /bin/sh script 'buildinfo' i applikasjonskatalogen på master, parallelt med fila 'registration', for å sette endel variabler. Deretter kjører du 'build-all'. Hvis alt gikk bra, har du etter en stund kompilert opp applikasjonen for alle plattformer. Sjekk out.* for å se hvordan det går med bygging av applikasjonen. Når kompileringen er ferdig på alle plattformer (siste linje i out.* er "...done"), så kjøres chkapp og register på vanlig måte. Eksempelfil for GNU configure programmer: appname=zsh version=3.1.5 buildtype=GNU Eksempelfil for Perl5 moduler: appname=Net-Netmask.pm version=1.6 buildtype=pm Følgende variabler kan settes: appname Navn på applikasjonen som skal genereres, dvs katalognavnet i Master Store. Må settes, ingen default. version Versjon på applikasjonen som skal genereres. Må settes, ingen default. buildtype Hvordan kompilering av applikasjonen skal gjøres. Må settes, ingen default. Følgende er støttet: X xmkmf og make GNU GNU Autoconf oppsett pm Perl5 module, dvs applikasjon med 'Makefile.PL' make ???. Forutsetter at konfigurering allerede er gjort. prefix Kan være blank. Default er '/store'. confstring Kan være blank. Parameter til configure for buildtype GNU. Default er '--prefix=$prefix'. confcmd Kan være blank, da brukes confstring eller standard for buildtype GNU ('./configure $confstring'). maketargets Kan være blank. Parameter til make. Default er intet parameter. installtargets Kan være blank. Parameter til make for a installere applikasjonen. Default for X er 'install install.man', for alle andre 'install' linkdownfirst linkupafter Kan være blank. Liste over applikasjoner som linkes henholdsvis ned og opp fra linktreet før og etter installasjon. Space-separert liste. postpostinstcmds Kan være blank. Kommando som kjøres etter postinst på maskinen er installasjonen ble gjennomført. linkupthis Liste over applikasjoner som skal linkes opp før kompilering. Formatet er 'app versjon store', og flere applikasjoner skilles med skråstrek(/). Eksempel: linkupthis='glib 1.2.2/gtk 1.2.2' rsh Kan være blank. Hvilken kommando som brukes for å kjøre kommandoer på andre maskiner. Default er 'ssh -x'. nice Kan være blank. Nive-nivå for 'configure'- og 'make'-kommendoene. Default er 'nice -15' timeout Kan være blank. Timeout-verdi for postinst. Default er 25. Tilgjengelige shell-variabler i confcmd og postpostinstcmds: SARCH Store-arkitektur PMA Perl5 arkitekturnavn (for pm buildtype) Buildall-systemet består av følgende filer: /store/bin/build-all Oppstart-scriptet som kjøres fra master-dir for applikasjonen /store/etc/internal/buildsubs Skriptet som gjør jobben /store/etc/internal/etc/pm-a-by-a Mapping mellom store-arkitektur og Perl5 arkitekturnavn $HOME/etc/buildhosts Liste over hvilke maskiner de forskjellige arkitekturene kompileres på. $HOME/etc/master.conf Informasjon om master-store. $appdir/buildinfo Informasjon om applikasjonen som skal kompileres