The -d is meant to parallel what happens for -d with javac. However this gets complicated because we allow binary weaving where the inputs are .class files (and also we allow source files to be compiled when they are not in a directory structure mirroring their package definition... but let's not go there).
Having the current directory as the output location is the default behaviour (part of what '-d .' means), but building the package structure is not. I have no good answer as to why. I also see that something like ajc ..\A.java behaves differently to javac ..\A.java - in that the former case puts the output in your current dir and javac puts it alongside A.java. However, we are more complex than javac because we allow .class files as input and produce new .class files. In the case of 'ajc -inpath X' I wouldn't want us to take as input the .class files from X and overwrite them in X with the woven version (at least that's what I'd assume). Personally I always use -d for specifying where files go (when using both javac and ajc) and never rely on where i am in the filesystem. This was all setup in the dim and distant past before I was working on it, we can revisit it if you like but it wouldn't be top priority... cheers, Andy. 2008/8/6 David Mohr <[EMAIL PROTECTED]> > Ah, that's what I missed! Thanks a lot for the hint Andy, it's working fine > now. > > Can I ask why '-d .' is not the default behavior? Also the Development > Guide I think is not very clear about what -d does. I read over the > options before, but since it was already placing the class files in > the current directory, I did not try to specify that explicitly. > > ~David > > On Wed, Aug 6, 2008 at 1:01 PM, Andy Clement <[EMAIL PROTECTED]> > wrote: > > Add -d to specify a destination? > > > > -d . > > > > Andy. > > > > 2008/8/6 David Mohr <[EMAIL PROTECTED]> > >> > >> Hi, > >> I might be overlooking something in the docs, but ajc behaves funny > >> when I try to binary weave a whole package structure. Let's say I have > >> a layout like: > >> > >> ---snip--- > >> aspects/ > >> InstrumentFoo.aj > >> InstrumentFoo.class > >> prog1/ > >> com/ > >> foo/ > >> a/ > >> X.class > >> b/ > >> Y.class > >> prog1.aj/ > >> ---snap--- > >> > >> If I'm in prog1.aj/ and execute something like "ajc -aspectpath > >> ../aspects -classpath ../prog1 -inpath ../prog1", I end up with both > >> X.class and Y.class in prog1.aj/, without the whole package directory > >> structure that is present in prog1. Why are the directories not > >> created? And what is the right way to binary weave a whole java > >> program? > >> > >> Thanks, > >> ~David > >> _______________________________________________ > >> aspectj-users mailing list > >> [email protected] > >> https://dev.eclipse.org/mailman/listinfo/aspectj-users > > > > > > _______________________________________________ > > aspectj-users mailing list > > [email protected] > > https://dev.eclipse.org/mailman/listinfo/aspectj-users > > > > > _______________________________________________ > aspectj-users mailing list > [email protected] > https://dev.eclipse.org/mailman/listinfo/aspectj-users >
_______________________________________________ aspectj-users mailing list [email protected] https://dev.eclipse.org/mailman/listinfo/aspectj-users
