I've been going through the compilation process of SLASH'EM for almost a week and I finally have my binaries, on which I have supported tty, SDL/GL, and X11, but I am unable to run them for this reason: Mac OS X is a jerk about starting graphical programs from the command line, or at least SDL programs, and no keyboard input is detected by SLASH'EM, and also because I have no idea how to specify using X11 instead. I got the idea from reading various documents that this could be achieved through a command line option, but I have failed to actually find one that works.
So pretty much if anyone knows about setting this up, that would be pretty cool!
And as a minor side note, whenever I recompile and it cleans out the old slashemdir contents, it fails to put in the png files necessary for the SDL/GL version so I have to copy them from glhack. Is that my fault or a bug?
Guys! It's working!
I don't know if anyone is interested, but I will tell you how I did it anyway. Getting it to build is pretty simple: change Gl/gl.h to OpenGL/gl.h in include/wingl.h, add -framework OpenGL to WINGLLIB in the Makefile, and I had to comment out the declaration of tparm in win/tty/termcap.c. And after that basically following the unix build instructions. This got me a bunch of memory errors and no keyboard input. From minor SDL programming experience on OS X I knew that there were some magic files called SDLMain.m and SDLMain.h that set up a basic SDL cocoa app so I decided to add those to the build. Now, I don't know much about the structure of the code or how to write well formed Makefiles or anything, and this whole thing seemed like a pretty ugly hack to me, but what I did was I added SDLMain.m/h to win/gl/ and added SDLMain.m to WINGLSRC and SDLMain.o to WINGLOBJ and then down near the rules for building the gl_*.o files I added this rule:
$(CC) $(CFLAGS) $(SDLGL_CFLAGS) -c ../win/gl/SDLMain.m
After that you have to go to sys/unix/unixmain.c and change the declaration of main to SDL_main, which is then called after SDLMain.c sets up a standard cocoa/SDL app. Then you build it and it works just fine.
Also, in the Makefile in the top level you have to add CNF_SHARE_GLND to CNF_SHARE_DAT and then add CNF_SHARE_DAT to SHARE_DAT in order to get the graphics files included in the build.
Also, I know this was pretty vague and I probably forgot something, so if anyone wants the source, email me!
Lastly, I still can't find the right options to use a different windowing system or set the tiles to anything except for 32x32, so if anyone knows about that, I'd like to hear.
Thanks for looking into this. I've not yet been able to duplicate your success. One question I have: the Makefile includes a call 'sdl-config --cflags'. I don't have a copy of the program sdl-config on my system, and without it the SDL/GL code won't compile. Do you have a copy, or did you just edit the Makefile?
I wasn't sure how to fix that the easy way, so I downloaded the SDL source and built it unix-style, which puts everything in the place that SLASH'EM expects them to be. It's actually not bad, the SDL Makefile has everything it needs to work on OS X so it's just a make; make install affair.
Log in to post a comment.