Compiling zdoom

Discuss anything ZDoom-related that doesn't fall into one of the other categories.
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
Posts: 49252
Joined: Sat Jul 19, 2003 10:19 am
Location: Germany

Post by Graf Zahl »

SDL for Windows is garbage because it amputates the keyboard. No more international support and other limitations because fullscreen mode forces exclusive DirectInput handling for the keyboard with a hard coded English mapping - bad, very bad! One thing I like about ZDoom is that the console uses the system's keyboard settings, not English everywhere. With SDL you'd lose that like in any other Doom port.

It is painfully obvious that SDL comes from Unix/Linux.
User avatar
randi
Site Admin
Posts: 7749
Joined: Wed Jul 09, 2003 10:30 pm
Contact:

Post by randi »

Building with MinGW:
  1. Install MinGW.
  2. Install the latest version of w32api.
  3. Install the minimal DirectX 8 headers from Allegro.
  4. Download the Platform SDK from Microsoft so you can grab dbghelp.h -or- use the version of i_crash.cpp in the repository. W32api still doesn't come with dbghelp.h.
  5. Unzip the ZDoom source somewhere.
  6. Edit the Makefile and set FMODDIR to the directory where you installed FMOD.
  7. From a command line (not MSYS), CD to the directory where you unzipped the ZDoom source.
  8. Type "mingw32-make" and watch it go.
  9. If you are lucky, you now have a zdoomgcc.exe. If you are unlucky, you will run into command line length limits when it comes time to link. If that happens, you can try using MSYS instead.
Graf Zahl wrote:One thing I like about ZDoom is that the console uses the system's keyboard settings, not English everywhere.
And that was a very deliberate decision on my part, since I use Dvorak.
Last edited by randi on Fri Jul 21, 2006 4:36 pm, edited 2 times in total.
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
Posts: 49252
Joined: Sat Jul 19, 2003 10:19 am
Location: Germany

Post by Graf Zahl »

Ugh... You really can work with that? :?
User avatar
randi
Site Admin
Posts: 7749
Joined: Wed Jul 09, 2003 10:30 pm
Contact:

Post by randi »

But of course. It took a little time to get used to, but no longer than it took to learn Qwerty. And I find it much easier on my wrists when I'm typing for a while.
User avatar
Jim
Posts: 535
Joined: Mon Aug 11, 2003 10:56 am

Post by Jim »

Graf Zahl wrote:SDL for Windows is garbage because it amputates the keyboard. No more international support and other limitations because fullscreen mode forces exclusive DirectInput handling for the keyboard with a hard coded English mapping - bad, very bad! One thing I like about ZDoom is that the console uses the system's keyboard settings, not English everywhere. With SDL you'd lose that like in any other Doom port.

It is painfully obvious that SDL comes from Unix/Linux.
I don't think the same can be said for the in-development SDL 1.3. It only seems to build completely in Windows at the moment. :shock: You can build it without video, last I checked. That will, of course, be fixed before it's released, but they just brushed me off when I pointed this out.
User avatar
Hirogen2
Posts: 2033
Joined: Sat Jul 19, 2003 6:15 am
Operating System Version (Optional): Tumbleweed x64
Graphics Processor: Intel with Vulkan/Metal Support
Location: Central Germany
Contact:

Post by Hirogen2 »

randy wrote:[*]From a command line (not MSYS), CD to the directory where you unzipped the ZDoom source.
Hm, why not msys? After all, it's just a bash in an rxvt.
User avatar
Necromage
Posts: 484
Joined: Thu Feb 10, 2005 3:13 pm
Location: NJ
Contact:

Post by Necromage »

randy wrote:Building with MinGW:
  1. Install MinGW.
  2. Install the latest version of w32api.
  3. Install the minimal DirectX 8 headers from Allegro.
  4. Download the Platform SDK from Microsoft so you can grab dbghelp.h -or- use the version of i_crash.cpp in the repository. W32api still doesn't come with dbghelp.h.
  5. Unzip the ZDoom source somewhere.
  6. Edit the Makefile and set FMODDIR to the directory where you installed FMOD.
  7. From a command line (not MSYS), CD to the directory where you unzipped the ZDoom source.
  8. Type "mingw32-make" and watch it go.
  9. If you are lucky, you now have a zdoomgcc.exe. If you are unlucky, you will run into command line length limits when it comes time to link. If that happens, you can try using MSYS instead.
Okay, I followed steps 1-6 (i didn't do 2 because while doing step one it automattically installed win32api-3.7 and when i looked at stuff advailiable on the site linked in step 2 it only had versions up to 3.6). Now my problem is that I don't quite understand 7 and 8. Now, I know that CD is the change directory command in dos but I don't understand how I am supposed to do this in the windows command line.
User avatar
Krillancello
Posts: 309
Joined: Sat Nov 27, 2004 12:39 am
Location: Teh Intarwebivurs

Post by Krillancello »

Necromage wrote:
randy wrote:Building with MinGW:
  1. Install MinGW.
  2. Install the latest version of w32api.
  3. Install the minimal DirectX 8 headers from Allegro.
  4. Download the Platform SDK from Microsoft so you can grab dbghelp.h -or- use the version of i_crash.cpp in the repository. W32api still doesn't come with dbghelp.h.
  5. Unzip the ZDoom source somewhere.
  6. Edit the Makefile and set FMODDIR to the directory where you installed FMOD.
  7. From a command line (not MSYS), CD to the directory where you unzipped the ZDoom source.
  8. Type "mingw32-make" and watch it go.
  9. If you are lucky, you now have a zdoomgcc.exe. If you are unlucky, you will run into command line length limits when it comes time to link. If that happens, you can try using MSYS instead.
Okay, I followed steps 1-6 (i didn't do 2 because while doing step one it automattically installed win32api-3.7 and when i looked at stuff advailiable on the site linked in step 2 it only had versions up to 3.6). Now my problem is that I don't quite understand 7 and 8. Now, I know that CD is the change directory command in dos but I don't understand how I am supposed to do this in the windows command line.
Layman's Step 7: Start > Run; type "cmd" and press [Enter]; type "cd" and the directory you unzipped the ZD sources to, separated by a space (e.g. "cd C:\ZDoom\source")
User avatar
Necromage
Posts: 484
Joined: Thu Feb 10, 2005 3:13 pm
Location: NJ
Contact:

Post by Necromage »

Okay, I got that (luckly I figured out that it was actually "command" that you had to put in and not "cmd") and so now I am in the directory and I type "mingw32-make" and I get a "bad command or file name" error. So just to make sure, I get the source off the svn so the directory I think I should be in is in \trunk, which has all the makefiles and the vc solution files.
User avatar
Necromage
Posts: 484
Joined: Thu Feb 10, 2005 3:13 pm
Location: NJ
Contact:

Post by Necromage »

I figured it out, I needed the whole path name for mingw32-make but instead of compiling I got these errors:

Code: Select all

ccdv-posix.c:5:22: sys/wait.h: no such file in directory
ccdv-posix.c: In function 'slurpProgress':
ccdv-posix.c:95: error: 'fd_set' undeclared (first use in this function)
ccdv-posix.c:95: error: (Each undelcared identifier is reported only once
ccdv-posix.c:95: error: for each function it appears in.)
ccdv-posix.c:95: error: syntax error before "ss"
ccdv-posix.c:110: error: 'ss2' undeclared (fisrt use in this fucntion)
ccdv-posix.c:128: error: 'ss' undeclared (first use in this function)
ccdv-posix.c: In function 'main':
ccdv-posix.c:415: warning: passing arg 2 of 'execvp' from incompatible pointer type
User avatar
randi
Site Admin
Posts: 7749
Joined: Wed Jul 09, 2003 10:30 pm
Contact:

Post by randi »

Meh. The Makefiles can't automatically detect you're using Windows when you only have Windows 98, so it tries to build the Linux version instead. Type this before making:

Code: Select all

set OS2=Windows_NT
User avatar
Krillancello
Posts: 309
Joined: Sat Nov 27, 2004 12:39 am
Location: Teh Intarwebivurs

Post by Krillancello »

Necromage wrote:Okay, I got that (luckly I figured out that it was actually "command" that you had to put in and not "cmd") and so now I am in the directory and I type "mingw32-make" and I get a "bad command or file name" error. So just to make sure, I get the source off the svn so the directory I think I should be in is in \trunk, which has all the makefiles and the vc solution files.
Both "command" and "cmd" work... depending on the system. It's been a very long time since I used Win98, but the newer NT-based systems (2k, XP & 2k3), I believe, have both available. :P
User avatar
Necromage
Posts: 484
Joined: Thu Feb 10, 2005 3:13 pm
Location: NJ
Contact:

Post by Necromage »

randy wrote:Meh. The Makefiles can't automatically detect you're using Windows when you only have Windows 98, so it tries to build the Linux version instead. Type this before making:

Code: Select all

set OS2=Windows_NT
I wasn't a totaly sure on what you meant by this so I tried a number of different things. First I tried putting it in the command line but that didn't work. Then I tried putting it directly into the makefile and that didn't work and so I removed the 'set' and still nothing. So then I put "OS=WINDOS_NT" and all that did was get me as far as lemon with an error of some large negative number. So, I am not sure what to do now.
User avatar
Jim
Posts: 535
Joined: Mon Aug 11, 2003 10:56 am

Post by Jim »

It's a typo. He meant to enter

Code: Select all

set OS=Windows_NT
at the command line before you enter make.
User avatar
Necromage
Posts: 484
Joined: Thu Feb 10, 2005 3:13 pm
Location: NJ
Contact:

Post by Necromage »

I tried that before and it didn't work but I tried it agian and it still didn't work. Here is what I got:

Code: Select all

C:/MINGW/BIN/MINGW3~6.EXE -C tools/lemon
MINGW3~6.EXE[1]: Entering directory 'C:/Doom/zdoom source/zdoom/trunk/tools/lemon'
ccdv: CreatProcess: The operation completed successfully.

gcc -D_WIN32 -Os -Wall -Wno-implicit -fomit-frame-pointer -c -o -lemon.o -lemon.c
MINGW3~6.EXE[1]: *** [lemon.o] Error: -1073695936
MINGW3~6.EXE[1]: Leaving directory 'C:/Doom/zdoom source/zdoom/trunk/tools/lemon'
C:\MINGW\BIN\MINGW3~2.EXE: *** [basetools] Error 2
 
Post Reply

Return to “General”