2013-01-08 4 views
5

Sto utilizzando Autotools per il mio pacchetto C++. Il mio pacchetto ha un singolo binario, chiamato "myprog" per esempio. Ho scritto uno script bash, "test.bash", che contiene un test funzionale. Questo script ha 4 passaggi: (1) creare file di input, (2) generare file di output previsti, (3) avviare "myprog" nei file di input, (4) confrontare gli output di "prog" con gli output previsti.Utilizzare "make check" per avviare lo script di bash per i test che utilizzano il programma binario

Nel passaggio 3, "test.bash" deve conoscere il percorso di "myprog". Se lancio "test.bash" autonomamente, posso dare il percorso a "myprog" come opzione sulla riga di comando. Ma cosa posso fare quando uso make check o make distcheck?

Sto leggendo il manual of Autotools/Automake. Immagino che ci sia un modo usando le variabili impostate da configure, ma non vedo come usarle, quindi qualsiasi soluzione è molto gradita!

risposta

5

È possibile utilizzare la variabile TESTS in Makefile.am e impostare la variabile AM_TESTS_ENVIRONMENT per passare opzioni o impostare una variabile di ambiente per gli script di bash. È descritto nella pagina this, nel solito stile casuale dei manuali degli autotools.

Dal myprog può essere costruito al di fuori della struttura di origine, è possibile impostare una variabile per $(top_builddir)/relative/path per l'uso nello script, oppure utilizzare il comando pwd per la directory in cui viene eseguito lo script.

+1

Ho infine utilizzato $ (abs_top_builddir), grazie. Vedi maggiori dettagli sulla mailing list di Automake: http://lists.gnu.org/archive/html/automake/2013-01/msg00029.html – tflutre

Problemi correlati