Can't compile nightly build on OSX

When I try to compile the nightly build of jinput on OSX (from March 25, 2005) jinput-1.1.0-b04-src.tar.gz, I get this compile error. Is there any updated source code (cvs HEAD shows the same problem) that actually compiles?

Andrew

compile:
[javac] Compiling 7 source files to /Users/abegel/Developer/jinput/plugins/OSX/classes
[javac] /Users/abegel/Developer/jinput/plugins/OSX/src/java/net/java/games/input/OSXMouse.java:167: cannot resolve symbol
[javac] symbol : class ButtonID
[javac] location: class net.java.games.input.OSXMouse.ButtonImpl
[javac] public ButtonImpl(ButtonID id, InputControllerElement element)
[javac] ^
[javac] /Users/abegel/Developer/jinput/plugins/OSX/src/java/net/java/games/input/OSXMouse.java:202: cannot resolve symbol
[javac] symbol : class AbstractAxis
[javac] location: class net.java.games.input.OSXMouse.BallAxis
[javac] class BallAxis extends AbstractAxis
[javac] ^
[javac] /Users/abegel/Developer/jinput/plugins/OSX/src/java/net/java/games/input/OSXMouse.java:211: cannot resolve symbol
[javac] symbol : class Identifier
[javac] location: class net.java.games.input.OSXMouse.BallAxis
[javac] public BallAxis(Identifier id, InputControllerElement element)
[javac] ^
[javac] /Users/abegel/Developer/jinput/plugins/OSX/src/java/net/java/games/input/OSXKeyboard.java:225: cannot resolve symbol
[javac] symbol : class KeyID
[javac] location: class net.java.games.input.OSXKeyboard
[javac] KeyID id = (KeyID)key.getIdentifier();
[javac] ^
[javac] /Users/abegel/Developer/jinput/plugins/OSX/src/java/net/java/games/input/OSXKeyboard.java:225: cannot resolve symbol
[javac] symbol : class KeyID
[javac] location: class net.java.games.input.OSXKeyboard
[javac] KeyID id = (KeyID)key.getIdentifier();
[javac] ^
[javac] /Users/abegel/Developer/jinput/plugins/OSX/src/java/net/java/games/input/OSXMouse.java:108: package Axis does not exist
[javac] x = new BallAxis( Axis.Identifier.X, element );
[javac] ^
[javac] /Users/abegel/Developer/jinput/plugins/OSX/src/java/net/java/games/input/OSXMouse.java:113: package Axis does not exist
[javac] y = new BallAxis( Axis.Identifier.Y, element );
[javac] ^
[javac] /Users/abegel/Developer/jinput/plugins/OSX/src/java/net/java/games/input/OSXMouse.java:118: package Axis does not exist
[javac] wheel = new BallAxis( Axis.Identifier.SLIDER, element );
[javac] ^
[javac] /Users/abegel/Developer/jinput/plugins/OSX/src/java/net/java/games/input/OSXMouse.java:140: cannot resolve symbol
[javac] symbol : variable ButtonID
[javac] location: class net.java.games.input.OSXMouse.ButtonsImpl
[javac] left = new ButtonImpl( ButtonID.LEFT, element );
[javac] ^
[javac] /Users/abegel/Developer/jinput/plugins/OSX/src/java/net/java/games/input/OSXMouse.java:144: cannot resolve symbol
[javac] symbol : variable ButtonID
[javac] location: class net.java.games.input.OSXMouse.ButtonsImpl
[javac] right = new ButtonImpl( ButtonID.RIGHT, element );
[javac] ^
[javac] /Users/abegel/Developer/jinput/plugins/OSX/src/java/net/java/games/input/OSXMouse.java:148: cannot resolve symbol
[javac] symbol : variable ButtonID
[javac] location: class net.java.games.input.OSXMouse.ButtonsImpl
[javac] middle = new ButtonImpl( ButtonID.MIDDLE, element );
[javac] ^
[javac] 11 errors

BUILD FAILED
file:/Users/abegel/Developer/jinput/plugins/OSX/build.xml:15: Compile failed; see the compiler error output for details.

On a quick galcen it loosk to me like you are trying to build the plug-in without the JInput master source available. Try making sure JInput.jar is on your compile class path.

Sorry, here’s the full build log for both jutils, then jinput. The jinput.jar file is created. The ant script copied it to jinput/plugins/DX8/lib. That seems like the wrong place for an OSX build, no?

Andrew

[Brisket:~/Developer/jutils] abegel% ant
Buildfile: build.xml

init:

compile:

jar:
[copy] Copying 1 file to /Users/abegel/Developer/jinput/coreAPI/lib
[copy] Copying 1 file to /Users/abegel/Developer/jinput/plugins/DX8/lib

all:
[echo] Application built. Hello ${hello}!

BUILD SUCCESSFUL
Total time: 1 second
[Brisket:~/Developer/jutils] abegel% cd …
[Brisket:~/Developer] abegel% cd jinput/
[Brisket:~/Developer/jinput] abegel% ant
Buildfile: build.xml

init:

core:

init:

compile:
[javac] Compiling 17 source files to /Users/abegel/Developer/jinput/coreAPI/classes

jar:
[jar] Building jar: /Users/abegel/Developer/jinput/coreAPI/bin/jinput.jar
[copy] Copying 1 file to /Users/abegel/Developer/jinput/plugins/DX8/lib

all:
[echo] JInput has been built and jinput.jar is located in the bin directory.

windows_plugin:

linux_plugin:

OSX_plugin:

init:
[mkdir] Created dir: /Users/abegel/Developer/jinput/plugins/OSX/classes
[mkdir] Created dir: /Users/abegel/Developer/jinput/plugins/OSX/dist

compile:
[javac] Compiling 7 source files to /Users/abegel/Developer/jinput/plugins/OSX/classes
[javac] /Users/abegel/Developer/jinput/plugins/OSX/src/java/net/java/games/input/OSXMouse.java:167: cannot resolve symbol
[javac] symbol : class ButtonID
[javac] location: class net.java.games.input.OSXMouse.ButtonImpl
[javac] public ButtonImpl(ButtonID id, InputControllerElement element)
[javac] ^
[javac] /Users/abegel/Developer/jinput/plugins/OSX/src/java/net/java/games/input/OSXMouse.java:202: cannot resolve symbol
[javac] symbol : class AbstractAxis
[javac] location: class net.java.games.input.OSXMouse.BallAxis
[javac] class BallAxis extends AbstractAxis
[javac] ^
[javac] /Users/abegel/Developer/jinput/plugins/OSX/src/java/net/java/games/input/OSXMouse.java:211: cannot resolve symbol
[javac] symbol : class Identifier
[javac] location: class net.java.games.input.OSXMouse.BallAxis
[javac] public BallAxis(Identifier id, InputControllerElement element)
[javac] ^
[javac] /Users/abegel/Developer/jinput/plugins/OSX/src/java/net/java/games/input/OSXKeyboard.java:225: cannot resolve symbol
[javac] symbol : class KeyID
[javac] location: class net.java.games.input.OSXKeyboard
[javac] KeyID id = (KeyID)key.getIdentifier();
[javac] ^
[javac] /Users/abegel/Developer/jinput/plugins/OSX/src/java/net/java/games/input/OSXKeyboard.java:225: cannot resolve symbol
[javac] symbol : class KeyID
[javac] location: class net.java.games.input.OSXKeyboard
[javac] KeyID id = (KeyID)key.getIdentifier();
[javac] ^
[javac] /Users/abegel/Developer/jinput/plugins/OSX/src/java/net/java/games/input/OSXMouse.java:108: package Axis does not exist
[javac] x = new BallAxis( Axis.Identifier.X, element );
[javac] ^
[javac] /Users/abegel/Developer/jinput/plugins/OSX/src/java/net/java/games/input/OSXMouse.java:113: package Axis does not exist
[javac] y = new BallAxis( Axis.Identifier.Y, element );
[javac] ^
[javac] /Users/abegel/Developer/jinput/plugins/OSX/src/java/net/java/games/input/OSXMouse.java:118: package Axis does not exist
[javac] wheel = new BallAxis( Axis.Identifier.SLIDER, element );
[javac] ^
[javac] /Users/abegel/Developer/jinput/plugins/OSX/src/java/net/java/games/input/OSXMouse.java:140: cannot resolve symbol
[javac] symbol : variable ButtonID
[javac] location: class net.java.games.input.OSXMouse.ButtonsImpl
[javac] left = new ButtonImpl( ButtonID.LEFT, element );
[javac] ^
[javac] /Users/abegel/Developer/jinput/plugins/OSX/src/java/net/java/games/input/OSXMouse.java:144: cannot resolve symbol
[javac] symbol : variable ButtonID
[javac] location: class net.java.games.input.OSXMouse.ButtonsImpl
[javac] right = new ButtonImpl( ButtonID.RIGHT, element );
[javac] ^
[javac] /Users/abegel/Developer/jinput/plugins/OSX/src/java/net/java/games/input/OSXMouse.java:148: cannot resolve symbol
[javac] symbol : variable ButtonID
[javac] location: class net.java.games.input.OSXMouse.ButtonsImpl
[javac] middle = new ButtonImpl( ButtonID.MIDDLE, element );
[javac] ^
[javac] 11 errors

BUILD FAILED
file:/Users/abegel/Developer/jinput/plugins/OSX/build.xml:15: Compile failed; see the compiler error output for details.

Total time: 4 seconds

yeah the ant build shouldnt be putting anuything in the DX8 directory when building on OSX.

Im not sure what happened. it worked when I first wrote it and the guys first added the OSX stuff. Soudsn liek somehow its gotten a bad put back or something.

I’ll be attempting a Linux build soon msyelf so we’ll see how that works…

I get the same thing. Also I notice in the OS X plugin build.xml file has references to HIDWrapper.jar and libjinput.jnilib but I can’t find them in the release binaries or in CVS.

Anyone know where I can find these?

libjinput.lib should be whats built from the C code as part of building the OSX plug-in. Thats the native side that talks to the OS.

HIDWrapper.jar sounds like part of the Java side.

Unfrotunately I dont have a mac in the lab right now so I can’t try a build myself. Whose name is in the mac plug in file comments? Was it SWp
who wrote those?

Edit: I stopped and though abotu thsi for a moment. you ARE using ant to build it, yes? If not then I can imagien yould have all sorts of build order problems as its a multi-step build procedure.

JK

W4ell, it build perfectly now udner Linux and JDK1.5

You might want to lo k at that and see if there are any differences that there shouldnt be betwnne the linux build and the mac build in the build.xml

Well, it builds perfectly now udner Linux and JDK1.5

You might want to look at that and see if there are any differences that there shouldnt be between the linux build and the mac build in the build.xml

ALso Update ytour snapshot ebause there was an issue in Jutils with a sytnax chnage they made in jdk1.5 release :confused: I fixed it.

Ok, I looked through the Linux and Win32 native code and compared it to the OS X code. There is no ButtonID anywhere. Instead ButtonID should be changed to Component.Identifier.Button

That’s not it, BallAxis and OSXKeyboard have similiar problems referencing objects that no longer exist.

After about a hour of fixing unresolved symbols to use inner-inner classes of Component…it compiled.

It also works now. Tests recognized my keyboard, trackpad buttons, trackpad, USB mouse buttons and USB mouse ball.

I’m happy to send anyone the code and could also send a CVS patch.

I’d also maintain/test the OS X version on a continuing basis if asked.

[quote]Was it SWp who wrote those?
[/quote]
Gregory Pierce did the OS X port. I haven’t contributed much of anything… though I had started work on getting some game pads going on OS X. I’ve never had enough time to fully digest the architecture of JInput to do a proper job though.

Wow, congrats and thnak you. I wodner is this was due to another of the 1.5 sytnax changes :confused:

Endolf really is the project leader at this point but I thin kit would be GREAT to have an OSX volunteer!

As SWp remidned me, Greg Pierce did the original port but I assume hes now on to other things.

Thankls for the brain tickler.

Anmd Id be lying if I said I balmed you much. MIke Martak, a hell of a guy by the way, did the original JInput design which i inherited. o be honest I’ve always foudn his architecture a bit… compelx. Its not how I would have done it but I haven’t stepped up to re-write it so I really can’t complain :wink:

Just wanted to report that Chris Cooper’s MacOSX patch did the trick and everything compiles now on OSX 10.3.9.

[quote]Just wanted to report that Chris Cooper’s MacOSX patch did the trick and everything compiles now on OSX 10.3.9.
[/quote]
Great! Thanks guys for steppign and doing the fixing and testing on this!