samackay@watcgl.waterloo.edu (Stephen MacKay) (02/20/91)
I am a member of the development team of the Harmony realtime operating system. Part of that work is porting our development to various environments, including A/UX 2.0. I found 2 apparent bugs last week while putting the finishing touches on our tools. The first is serious for us, the second is not, but they both have painful workarounds. 1) 'make' include files The 'include' facility of make is documented, in part, as: "If the string 'include' or 'Include' appears as the first seven characters of a line ... 'make' assumes that the rest of the line is the name of a description file, which is read by the current invocation of 'make', after macro substitution." Unfortunately, macro substitution does not occur. I have a line much like the following in my makefile: include ${StdScriptsDir}/makeinc where ${StdScriptsDir} is an environment variable that gives the name of a directory where many common script files are kept. I have tried several workarounds (such as defining a real make macro called ${StdScriptsDir} instead of an environment variable) but the only 2 things that seem to work are using a full pathname (absolute or relative), which is completely unacceptable, or replicating the contents of ${StdScriptsDir}/makeinc in every one of a couple dozen makefiles, which is a maintenance nightmare. 2) 'chsh' to Bourne or login problem? I normally run with the C shell (/bin/csh), but I needed to test some scripts with the Bourne (/bin/sh) and Korn (/bin/ksh) shells. While I had no trouble at all changing to the Korn shell and back to the C shell using the 'chsh' command. I was not able to set my login shell to be the Bourne shell. The chsh command changed my entry in the /etc/passwd file correctly for the Korn and C shells but when I tried to set Bourne, the "shell" field was left blank. That may be correct behavior because the Bourne shell is supposed to be the default, but when I tried to login with that field blank I got a strange result. My .profile file was run as if I had a Bourne shell but when it finished it left me sitting in a C shell - my .login file was NOT run (as it would have been if I had set my shell to be the C shell). Su can cheat and change the /etc/passwd entry to "/bin/sh" by manually editing /etc/passwd. Then logging into a Bourne shell works correctly. Comments, fixes, promises from Apple, etc. on either of these 2 problems? ...Stephen MacKay Software Engineering Lab, Inst. for Information Technology National Research Council of Canada mackay@iit.nrc.ca