[vox-tech] Environment variables in make
Jeff Newmiller
jdnewmil at dcn.davis.ca.us
Fri Oct 6 18:49:30 PDT 2006
Richard Harke wrote:
> On Thu October 5 2006 20:42, Jeff Newmiller wrote:
>
>>Richard Harke wrote:
>>
>>>I am trying to modify a makefile to have a few lines
>>>which are conditional on being on ia64. I found a
>>>variable in my environment HOSTTYPE=ia64
>>>that I thought I could use. In the makefile I have
>>>ifeq ($(HOSTTYPE),ia64) but HOSTTYPE doesn't seem to
>>>be defined unless I define in the makefile. (which defeats
>>>the purpose) If I issue the command as
>>>HOSTTYPE=ia64 make
>>>that works but again it doesn't really do what I want.
>>>According the to docs at www.gnu.org/software/make/manual,
>>>all the environment variables are read in when make starts up
>>>and are used unless they are overridden in the makefile.
>>>
>>>Can anybody clarify this for me?
>>
>>When you run make, you are starting a new process. Environment
>>variables are only copied to new processes if they are marked
>>for export. So... instead of typing HOSTTYPE=ia54, type
>>export HOSTTYPE=ia64, or follow HOSTTYPE=ia64 with
>>export HOSTTYPE before running make.
>
>
> You are quite right. But what I am really looking for is a test
> I can put in the makefile that doesn't require exporting
> an environment variable. The problem is when an unknown
> person downloads the zip file and wants to build it. This is not my project,
> I am just porting to ia64. Also doesn't use autoconf/automake
> or this wouldn't be a problem.
I am not sure what the problem is. Exports are local in the sense that
they only affect the current process (shell) and its descendants.
If you define them in a shell script, the user's commandline
environment isn't even affected.
> Hey, I just realized I can use $(shell uname -m) Hurray!
Sounds appropriate.
--
---------------------------------------------------------------------------
Jeff Newmiller The ..... ..... Go Live...
DCN:<jdnewmil at dcn.davis.ca.us> Basics: ##.#. ##.#. Live Go...
Live: OO#.. Dead: OO#.. Playing
Research Engineer (Solar/Batteries O.O#. #.O#. with
/Software/Embedded Controllers) .OO#. .OO#. rocks...1k
---------------------------------------------------------------------------
More information about the vox-tech
mailing list