2013-08-24 11 views
5

Ich habe eine Variable in configure.ac erklärt:Automake-: Variable nicht auf Solaris erweitert

MY_VERSION="0:0:0" 
AC_SUBST(MY_VERSION) 
AC_MSG_NOTICE([$MY_VERSION]) 

Der Wert der Variablen ausgedruckt wird korrekt während configure Phase.

In Makefile.am gibt es folgende Zeile:

libmylib_la_LDFLAGS = -version-info @[email protected] 

In der Linkerbefehlszeile es richtig "-Version-info 0: 0: 0" erweitert auf allen Systemen außer Solaris. Auf Solaris (SunOS 5.10 Generic_141414-10 sun4u sparc SUNW, Sun-Blade-100) bekomme ich "-version-info" ohne Versionsnummer.

Irgendeine Idee, was schief gelaufen sein könnte?

+1

, welche Version von Autoconf ist im Solaris-System? – Maquefel

+0

Wie wird die Solaris-Version erstellt? Bauen Sie den Tarball für Solaris auf einem anderen Host auf, wird er auf Solaris selbst gebaut? – ldav1s

+1

Ich würde zuerst sicherstellen, dass das configure-Skript diese Variable wirklich richtig setzt. Ein einfacher Weg, dies zu tun, ist "set + x" und "set -x" um den Code in "configure" zu hacken. Dann würde ich den generierten config.status untersuchen, um zu sehen, ob die Einstellung dort korrekt ist. Manchmal stolpert autoconf über einen Herstellerfehler in sed oder awk oder etwas ... –

Antwort

1

(ein bisschen wie ein Schuss im Dunkeln hier, aber ...)

Meine Vermutung wäre, dass entweder meine oder VERSION auf Solaris definiert erhalten welchem ​​Grund auch immer. Versuchen Sie usign

AC_SUBST([MY_VERSION]) 

stattdessen, auf diese Weise sagen Sie M4, dies explizit zu definieren.

Auch als Igor sagte, verwenden $(MY_VERSION) (obwohl es dazu nicht verwandt ist.)