Hello, I am developing applications in Ada and I use make for my
compilation. As part of my build process, I generate an Ada file
(version.adb) that contains the build date and the release version.
I was able to do so using previous version of make (3.77) that came with the
compiler (GNAT). Recently, I have upgraded the GNAT compiler which now uses
make version 3.79 but things no longer work. I am using Windows 2000 and
bash.
Do you have a work around?
Thanks
Francois Pomerleau
Here is a typical Makefile that creates a version.adb file.
<> <>
Here is the error message I get when I run make 3.79:
bash$ make version.adb
echo "package body version is" > version.adb
package: -c: line 2: syntax error: unexpected end of file
make: *** [version.adb] Error 2
bash$ make -d version.adb
GNU Make version 3.79.1, by Richard Stallman and Roland McGrath.
Built for mingw32
Copyright (C) 1988, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 2000
Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
Report bugs to <[EMAIL PROTECTED]>.
find_and_set_shell path search set default_shell = c:/bin/sh.exe
Reading makefiles...
Reading makefile `Makefile'...
Updating makefiles
Considering target file `Makefile'.
Looking for an implicit rule for `Makefile'.
Trying pattern rule with stem `Makefile'.
Trying implicit prerequisite `Makefile.o'.
...
Finished prerequisites of target file `Makefile'.
No need to remake target `Makefile'.
Updating goal targets
Considering target file `version.adb'.
File `version.adb' does not exist.
Finished prerequisites of target file `version.adb'.
Must remake target `version.adb'.
echo "package body version is" > version.adb
CreateProcess(c:\bin\sh.exe,c:/bin/sh.exe -c "echo \"package body version
is\" > version.adb",...)
Putting child 0x003ffc38 (version.adb) PID 8982568 on the chain.
Live child 0x003ffc38 (version.adb) PID 8982568
package: -c: line 2: syntax error: unexpected end of file
Reaping losing child 0x003ffc38 PID 8982568
make: *** [version.adb] Error 2
Removing child 0x003ffc38 PID 8982568 from chain.
bash$
If I use make 3.76, everything is fine:
bash$ /public/make -d version.adb
GNU Make version 3.77, by Richard Stallman and Roland McGrath.
Copyright (C) 1988, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98
Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
Report bugs to <[EMAIL PROTECTED]>.
...
Finished dependencies of target file `Makefile'.
No need to remake target `Makefile'.
Updating goal targets
Considering target file `version.adb'.
File `version.adb' does not exist.
Finished dependencies of target file `version.adb'.
Must remake target `version.adb'.
Creating temporary batch file
C:\DOCUME~1\fpomerle\LOCALS~1\Temp\make17882.sh
echo "package body version is" > version.adb
Putting child 0x02a4ff50 PID 44439168 on the chain.
Live child 0x02a4ff50 PID 44439168
Reaping winning child 0x02a4ff50 PID 44439168
Cleaning up temporary batch file
C:\DOCUME~1\fpomerle\LOCALS~1\Temp\make17882.sh
Creating temporary batch file
C:\DOCUME~1\fpomerle\LOCALS~1\Temp\make17883.sh
echo " built_date : constant string := \"`date`\";" >> version.adb
Live child 0x02a4ff50 PID 44439168
Reaping winning child 0x02a4ff50 PID 44439168
Cleaning up temporary batch file
C:\DOCUME~1\fpomerle\LOCALS~1\Temp\make17883.sh
Creating temporary batch file
C:\DOCUME~1\fpomerle\LOCALS~1\Temp\make17884.sh
echo " function get_build_date return string is" >> version.adb
Live child 0x02a4ff50 PID 44439168
Reaping winning child 0x02a4ff50 PID 44439168
Cleaning up temporary batch file
C:\DOCUME~1\fpomerle\LOCALS~1\Temp\make17884.sh
Creating temporary batch file
C:\DOCUME~1\fpomerle\LOCALS~1\Temp\make17885.sh
echo " begin" >> version.adb
Live child 0x02a4ff50 PID 44439168
Reaping winning child 0x02a4ff50 PID 44439168
Cleaning up temporary batch file
C:\DOCUME~1\fpomerle\LOCALS~1\Temp\make17885.sh
Creating temporary batch file
C:\DOCUME~1\fpomerle\LOCALS~1\Temp\make17886.sh
echo " return built_date;" >> version.adb
Live child 0x02a4ff50 PID 44439168
Reaping winning child 0x02a4ff50 PID 44439168
Cleaning up temporary batch file
C:\DOCUME~1\fpomerle\LOCALS~1\Temp\make17886.sh
Creating temporary batch file
C:\DOCUME~1\fpomerle\LOCALS~1\Temp\make17887.sh
echo " end get_build_date;" >> version.adb
Live child 0x02a4ff50 PID 44439168
Reaping winning child 0x02a4ff50 PID 44439168
Cleaning up temporary batch file
C:\DOCUME~1\fpomerle\LOCALS~1\Temp\make17887.sh
Creating