Ben J
Ben J

Reputation: 1387

How do I access a user defined variable as defined at the top of a Makefile.am file?

Specifically, I want to do something along the following lines. For a Makefile.am script that defines how a library file should be built, I want to be able to access a common library name throughout. For example, assuming I want the name of the library to be called 'name', I might start with the following variable:

LIBNAME = name

Then I might have something like this:

lib_LTLIBRARIES = lib$(LIBNAME).la

But then automake starts to complain when I want to do something like the following:

lib$(LIBNAME)_la_SOURCES = file1.cpp file2.cpp
lib$(LIBNAME)_la_LIBADD = ...

Is anything like this possible using some other syntax so that I don't have to multiply repeat the name of the library?

Cheers,

Ben.

Upvotes: 3

Views: 1195

Answers (2)

ptomato
ptomato

Reputation: 57890

You can do it if you define your variable at configure time instead of in the Makefile itself.

For example, in configure.ac:

LIBNAME=name
AC_SUBST(LIBNAME)

Then you can access it in Makefile.am like this:

lib_LTLIBRARIES = lib@[email protected]

Upvotes: 4

ldav1s
ldav1s

Reputation: 16305

Then I might have something like this:

LIBNAME = name
lib_LTLIBRARIES = lib$(LIBNAME).la
lib$(LIBNAME)_la_SOURCES = file1.cpp file2.cpp
lib$(LIBNAME)_la_LIBADD = ...

IFAIK, this will not work with automake. I don't think it's possible to do it using some other syntax, either.

Upvotes: 0

Related Questions