Re: eu3.2 on puppy 3.01 on qemu #2
- Posted by Matt Lewis <matthewwalkerlewis at gm?il.co?> Dec 26, 2007
- 592 views
CChris wrote: > > Matt Lewis wrote: > > > > It doesn't say what happens if EUDIR isn't set. We need to change some > > combination of the behavior (should be assume a default for EUDIR?) or > > the documentation and the error message. > > > > Matt > > The installer does set EUDIR and EUINC. An issue I reported months ago is > that it does so repeatedly when successive versions are (re)installed. The > INNO script may not have the ability to detect whether the new path is > redundant or not. As a result, EUDIR not being set is to be expected only > from old versions which do not know about .conf files anyway. Unless the > behaviour under Linux is different, of course. I'm not familiar with INNO at all, so I'm not really sure how we'll want to change it. Nevertheless, if you look in main.e, you'll find this code:
eudir = getenv("EUDIR") if atom(eudir) then if ELINUX then -- should check search PATH for euphoria/bin ? eudir = getenv("HOME") if atom(eudir) then eudir = "euphoria" else eudir = eudir & "/euphoria" end if else eudir = "\\EUPHORIA" end if else
...and then in pathopen.e (where env is either "EUINC" or "EUDIR"):
inc_path = getenv(env) if compare(inc_path,{})!=1 then -- nothing to do, just fail return -1 end if
So we're treating it inconsistently. The error message uses the global variable 'eudir,' set in main.e. Currently, in linux, you're required to manually set up the environment variables. You will still be able to do this, although config files will override any environment variables (all platforms). My plan is to have the .deb package create a system-wide conf file (and I think we would want to do a similar thing with the INNO installer). Matt