Hi Paul, I am sorry, perhaps I was a little vague in my description - I'll 
fill you in on some more detail but thanks a bunch for replying, I still 
beleive it is a make error, unless I'm totally clueless but look at this first:

[contents of the dir]
C:\src\DEVELO~1\adserver\CUSTOM~1>dir
  Volume in drive C has no label.
  Volume Serial Number is 5CBA-6369

  Directory of C:\src\DEVELO~1\adserver\CUSTOM~1

02/07/2001  03:08p      <DIR>          .
02/07/2001  03:08p      <DIR>          ..
02/06/2001  06:51p              10,846 AdCampaignAds.java
02/06/2001  06:51p               8,347 AdCampaigns.java
02/06/2001  06:51p               7,583 AdClients.java
02/06/2001  06:51p              10,619 AdDist.java
02/06/2001  06:51p              41,806 adstats.java
02/06/2001  10:06p               6,334 adstatszone.properties
02/06/2001  06:51p               7,096 AdUsers.java
02/07/2001  03:08p                 605 makefile
                8 File(s)         93,236 bytes
                2 Dir(s)   2,456,240,128 bytes free

C:\src\DEVELO~1\adserver\CUSTOM~1>

[contents of makefile]
C:\src\DEVELO~1\adserver\CUSTOM~1>type makefile
JSUFFIXES = .class .java

.SUFFIXES: $(JSUFFIXES) $(SUFFIXES)

.DONE:@echo ALLCLASSES is $(ALLCLASSES)

.FAILED:@echo ALLCLASSES is $(ALLCLASSES)

#       Java language section.

JAVAC = javac

CLASSPATH = c:\apps\JSDK2.0\lib\jsdk.jar;c:\apps\javalibs\md5.jar

JFLAGS=-classpath $(CLASSPATH) -deprecation -g

COMPILE.java=$(JAVAC) $(JFLAGS)

.java.class:
         $(COMPILE.java) $<

ALLSOURCES=AdUsers.java\
AdCampaigns.java\
AdCampaignAds.java\
AdDist.java\
AdClients.java\
adstats.java


ALLCLASSES=$(ALLSOURCES:%java=%class)

all: $(ALLCLASSES)
         @echo making all \'$(ALLCLASSES)\'

C:\src\DEVELO~1\adserver\CUSTOM~1>

[make results]
C:\src\DEVELO~1\adserver\CUSTOM~1>make
javac -classpath c:\apps\JSDK2.0\lib\jsdk.jar;c:\apps\javalibs\md5.jar 
-deprecat
ion -g AdUsers.java
Usage: javac <options> <source files>

where <options> includes:
   -g                     Generate all debugging info
   -g:none                Generate no debugging info
   -g:{lines,vars,source} Generate only some debugging info
   -O                     Optimize; may hinder debugging or enlarge class files
   -nowarn                Generate no warnings
   -verbose               Output messages about what the compiler is doing
   -deprecation           Output source locations where deprecated APIs are 
used
   -classpath <path>      Specify where to find user class files
   -sourcepath <path>     Specify where to find input source files
   -bootclasspath <path>  Override location of bootstrap class files
   -extdirs <dirs>        Override location of installed extensions
   -d <directory>         Specify where to place generated class files
   -encoding <encoding>   Specify character encoding used by source files
   -target <release>      Generate class files for specific VM version
make.exe: *** [AdUsers.class] Error 2

C:\src\DEVELO~1\adserver\CUSTOM~1>

Now, the same script on unix (solaris 2.6) where classpath jars/classes are 
delimited with a colon (:) rather than a semicolon as in 
Win2k/dos/winwhatever, it runs a-ok, with as many classpath jars as you 
want it to.  On Win2k, here, I get this dumb error, and I'm at a loss - am 
I not DENOTING the lame ';' (semicolon) properly or does make break when it 
sees it, that is, it thinks its something else, like end of a dependency or 
some such rule?

When I run the IDENTICAL command by hand on the command prompt as you see 
above (it's broken up because of the window size 80x25, otherwise the javac 
line is one line when I run it from command prompt) it COMPILES a-ok, which 
I forgot to mention in my previous email.

So, you dont think this is some bug? What am I missing? I was so frustrated 
yesterday you have no idea... :/.  Please help.

Thanks again, and I hope I was more clear this time.

Martin


At 12:34 AM 2/7/2001 -0500, Paul D. Smith wrote:
>%% Martin Naskovski <[EMAIL PROTECTED]> writes:
>
>   mn> CLASSPATH = c:\apps\JSDK2.0\lib\jsdk.jar;c:\apps\javalibs\MD5.jar
>
>   mn> JFLAGS=-classpath $(CLASSPATH) -deprecation -g
>
>   mn> COMPILE.java=$(JAVAC) $(JFLAGS)
>
>   mn> .java.class:
>   mn>   @echo ----------------- $(HOSTNAME) javac $< -----------------------
>   mn>   $(COMPILE.java) $<
>
>   mn> When I run make, it fails to interpret the semi-colong that
>   mn> separates MD5.jar and jsdk.jar as a literal, and it thinks it's
>   mn> some dependency or some other command and it fails to compile my
>   mn> .java file properly. How do I get 'make' to treat the semi-colon
>   mn> as a literal and not as some implicit rule? I looked all over the
>   mn> documentation, and maybe I missed it- or maybe this is a bug.
>
>You didn't provide any information on the error you got, but I'll bet
>it's not a make error.
>
>Make doesn't treat semicolons as special in any way in the places you've
>used it above (the value of a variable or in the command script).
>
>Make simply sends the text of the command you tell it to run to the
>shell it's using, and waits to see what the result is.  It doesn't
>interpret or process the command in any way, except to expand make
>variable references.
>
>--
>-------------------------------------------------------------------------------
>  Paul D. Smith <[EMAIL PROTECTED]>          Find some GNU make tips at:
>  http://www.gnu.org                      http://www.paulandlesley.org/gmake/
>  "Please remain calm...I may be mad, but I am a professional." --Mad 
> Scientist


_______________________________________________
Bug-make mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-make

Reply via email to