On Thu, 2006-10-05 at 20:42 -0700, 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.
To correct this just slightly: if it's not exported, it's not actually an environment variable, just a shell variable. "env | grep VARNAME" is sometimes useful for determining whether a shell variable is exported or not. -- Micah J. Cowan Programmer, musician, typesetting enthusiast, gamer... http://micah.cowan.name/ _______________________________________________ vox-tech mailing list [email protected] http://lists.lugod.org/mailman/listinfo/vox-tech
