|
From: | Jagadish Prasad |
Subject: | sh.exe and make |
Date: | Wed, 24 Apr 2002 16:57:00 -0700 |
Hello All,
I have a rule
depends := $(foreach dir, $(DIRLIST), $(wildcard $(dir)/*.java))
foo.jar: $(depends)
$(JAVAC) $(JAVAOPTS) -d $(CLASSESROOT) $?
$(CD) $(CLASSESROOT) $(JAR) cf $(JARROOT)/$@ $(FOO_PKG)
The list for files in $(depends) is quite huge, so when it comes to the compile line some files get truncated.
Eg. $(depends) := foo.java foo1.java ....lots of files... foobar.java foobar1.java foobar2.java
The output during compilation would be
javac -classpath SOME_JAR_FILES -d /vobs/oss_bin/build/classes foo.java foo1.java ....lots of files... foobar.java
So if you notice foobar1.java and foobar2.java are never listed and the compilation fails. I feel this is due to the limitation of the bourne shell sh.exe on NT. I am wondering if there are any shells out there in the public domain that i can use which can take care of this problem.
There is a workaround to run find *.java > filelist and compile using $(JAVAC) -d $(CLASSESROOT) @filelist. I do not want to take this approach, since we use clearmake and a successive build in another view would always rebuild due to sibling objects unable to be winked in.
I tried cygwin shell. But it requires the Drive letter part of it. One cannot simply cd to /vobs/oss_bin/build in a cygwin shell it says cant lstat or something like that. if i cd one directory at a time it seems to be working. I cannot seem to use the absolute path. Tried even cygwin bash.
I am looking for something as simple as the mkstookit shell. Where if you cd to a drive Eg G:. you can navigate to any directory by using absolute path /vobs/oss_bin/build/classes as opposed to //G/vobs/oss_bin/build which gives lstat error in cygwin.
Any help in pointing to a shell that will meet my requirement or any suggestions to handle this in a different way will be appreciated.
Thanks
-Jagdish
[Prev in Thread] | Current Thread | [Next in Thread] |