l i n u x - u s e r s - g r o u p - o f - d a v i s
Next Meeting:
July 7: Social gathering
Next Installfest:
Latest News:
Jun. 14: June LUGOD meeting cancelled
Page last updated:
2006 Oct 09 12:03

The following is an archive of a post made to our 'vox-tech mailing list' by one of its subscribers.

Report this post as spam:

(Enter your email address)
Re: [vox-tech] Environment variables in make
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [vox-tech] Environment variables in make

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@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
vox-tech mailing list

LUGOD Group on LinkedIn
Sign up for LUGOD event announcements
Your email address:
LUGOD Group on Facebook
'Like' LUGOD on Facebook:

Hosting provided by:
Sunset Systems
Sunset Systems offers preconfigured Linux systems, remote system administration and custom software development.

LUGOD: Linux Users' Group of Davis
PO Box 2082, Davis, CA 95617
Contact Us

LUGOD is a 501(c)7 non-profit organization
based in Davis, California
and serving the Sacramento area.
"Linux" is a trademark of Linus Torvalds.

Sponsored in part by:
Appahost Applications
For a significant contribution towards our projector, and a generous donation to allow us to continue meeting at the Davis Library.