User-Agent: Mozilla/5.0 (X11; U; SunOS sun4u; en-US; rv:1.5b) Gecko/20030809 Mozilla Firebird/0.6.1+ Build Identifier: Mozilla/5.0 (X11; U; SunOS sun4u; en-US; rv:1.5b) Gecko/20030809 Mozilla Firebird/0.6.1+ With my Solaris 2.6-environment, I can not set environment variables like MOZ_PHOENIX=1 MOZ_THUNDERBIRD=1 in my .mozconfig file. I put the following lines in .mozconfig: export MOZ_THUNDERBIRD=1 mk_add_options MOZ_THUNDERBIRD=1 the following happens [leineweb@theoden] make -f client.mk build mozilla/build/autoconf/mozconfig2client-mk: MOZ_THUNDERBIRD=1: is not an identifier make make: Entering directory `/home-local/leineweb/tmp/thunderbird/mozilla' .... I think, it is caused by /bin/sh (which is given as interpreting shell in mozconfig2client-mk) not being a bash. In contrast to it, my regular shell is: [leineweb@theoden] echo $BASH_VERSION 2.05.0(1)-release So, I have to set the environment varibles outside the .mozconfig which is slightly annoying, as I compile the different versions of mozilla (SeaMonkey, Firebird, Thunderbird) Reproducible: Always Steps to Reproduce:
See http://mozilla.org/build/unix-details.html#s3 the first item in the "The following software should be installed" list.
I have read the given page and although I tried with setting the environment variable SHELL, the given error message remains. It remains with the following different commands: make SHELL=ksh -f client.mk build SHELL=ksh make -f clientk.mk build (substitute ksh with /usr/bin/ksh gives the error message, too) export SHELL=ksh ( or /usr/bin/ksh) make -f clientk.mk build Example: [leineweb@theoden] make SHELL=ksh -f client.mk build mozilla/build/autoconf/mozconfig2client-mk: MOZ_THUNDERBIRD=1: is not an identifier cd /home-local/leineweb/tmp/thunderbird/mozilla ./configure ./configure: MOZ_THUNDERBIRD=1: is not an identifier *** Fix above errors and then restart with "make -f client.mk build" make: *** [/home-local/leineweb/tmp/thunderbird/mozilla/Makefile] Error 1 for your information: make is GNU Make version 3.79.1 the offending scripts (configure, mozconfig2client, perhaps some more) are not called within an instance of the shell given in the SHELL variable, but only use the /bin/sh given in their bang-line (when called from within the makefiles)
> export MOZ_THUNDERBIRD=1 try this: MOZ_THUNDERBIRD=1 export MOZ_THUNDERBIRD
Do not use 'export'. Just setting 'MOZ_THUNDERBIRD=1' should suffice.
If 'export' shall not be used, there should be no examples on mozilla.org for .mozconfig-files, where it is used. Example: http://www.mozilla.org/projects/thunderbird/build.html
It's not that 'export' cannot be used. It's just not 'required' to be used. The mozconfig file is basically a shell script so what is allowed in the file is really dependent upon your shell (/bin/sh). Scott, can you remove the bash-isms from the thunderbird build instructions?
Chris, will things still build correctly for windows and other platforms without that item? Note: The Firebird build instructions also use export MOZ_PHOENIX in their build instructions. See: http://lxr.mozilla.org/mozilla/source/browser/README.html We'll need them to remove this line too.
I do not know of any platform which requires the 'export' directive to expose that variable to configure. We've been using the 'VAR=1' method on the various ports tinderboxes for years.