Page 1 of 1

Compiling GZdoom in Windows

Posted: Mon Jan 21, 2008 4:47
by Snake Doomer
Whenever I try to compile the GZdoom source code, I get the following error message:

mingw32-make --C tools/lemon -f Makefile
mingw32-make[1]: Entering directory 'C:/GZdoom source/tools/lemon'
mingw32-make[1]: Makefile: No such file or directory.
mingw32-make[1]: *** No rule to make target 'Makefile'. Stop.
mingw32-make[1]: Leaving directory 'C:/GZdoom source/tools/lemon'
mingw32-make: *** [basetools] Error 2.

Can anybody help me? My OS is Windows and my compiler is MinGW.

Posted: Tue Jan 22, 2008 17:37
by Enjay
Me too:

Code: Select all

C:\mingw\gzdoom>mingw32-make
mingw32-make -C tools/lemon -f Makefile
mingw32-make[1]: Entering directory `C:/mingw/gzdoom/tools/lemon'
mingw32-make[1]: Makefile: No such file or directory
mingw32-make[1]: *** No rule to make target `Makefile'.  Stop.
mingw32-make[1]: Leaving directory `C:/mingw/gzdoom/tools/lemon'
mingw32-make: *** [basetools] Error 2
:(

Posted: Tue Jan 22, 2008 17:56
by Enjay
OK, maybe a bit of progress, but I'm guessing here now. I looked in the lemon directory and found makefile.mgw but no makefile with no extension. So, clutching at straws, I copied the mgw file and removed its extension. Now I get this.

Code: Select all

Compiling stream_decoder.c:                                           [ERROR]
gcc -D__MINW32__ -DWIN32 -DNDEBUG -D_LIB -DFLAC__CPU_IA32 -DFLAC_HAS_NASM -DFLAC
__SSE_OS -DFLAC__USE_3DNOW -DFLAC__NO_DLL -I. -O2 -Wall -Wno-unused-function -fo
mit-frame-pointer -c -o stream_decoder.o stream_decoder.c
  In file included from stream_decoder.c:57:
  share/alloc.h:41:5: #error
  In file included from stream_decoder.c:57:
  share/alloc.h: In function `safe_malloc_mul_2op_':
  share/alloc.h:120: error: `SIZE_T_MAX' undeclared (first use in this function
  )
  share/alloc.h:120: error: (Each undeclared identifier is reported only once
  share/alloc.h:120: error: for each function it appears in.)
  share/alloc.h: In function `safe_malloc_mul_3op_':
  share/alloc.h:130: error: `SIZE_T_MAX' undeclared (first use in this function
  )
  share/alloc.h: In function `safe_malloc_mul2add_':
  share/alloc.h:143: error: `SIZE_T_MAX' undeclared (first use in this function
  )
  share/alloc.h: In function `safe_realloc_mul_2op_':
  share/alloc.h:196: error: `SIZE_T_MAX' undeclared (first use in this function
  )
mingw32-make[1]: *** [stream_decoder.o] Error 1
mingw32-make[1]: Leaving directory `C:/mingw/gzdoom/flac'
mingw32-make: *** [basetools] Error 2
AAAAAAAAARRRRRRRRRRRRRRGGGGGGGGGGGGG!!!!!


Ahem! So, yeah, I think that's really got me because what it is saying simply doesn't make any sense to me. :(

I've looked in the file alloc.h, the FLAC directory is quite different to the version of Zdoom that I compiled, and found this:

Code: Select all

#ifndef SIZE_MAX
# ifndef SIZE_T_MAX
#  ifdef _MSC_VER
#   define SIZE_T_MAX UINT_MAX
#  else
#   error
#  endif
# endif
# define SIZE_MAX SIZE_T_MAX
#endif
Unfortunately I don't know enough about it but that looks to me like it's "declaring SIZE_T_MAX" so, yup, stuck.

Anyone got any clues? Or did I mess things up earlier with the makefile renaming?

I feel like I'm fumbling around in the dark, just like the maze in that Egyptian themed WAD I played yesterday (Tomb of Omhotep). :?

Posted: Tue Jan 22, 2008 20:48
by Enjay
From a thread for quite an old version of Zdoom (r578)

http://forum.zdoom.org/viewtopic.php?f= ... 97#p310197
Lemonzest wrote:yeah i need to install GCC 4.2.1 again, only went back to 3.4.5 because of odamex problems. but thanks for the hint :)

edit: just installed gcc 4.2.1 from mingw site, and still need the line added to limits.h ah well it builds :)

in alloc.h in the FLAC project, there's this which i think is defining SIZE_T_MAX for ms vc and mabe it needs something for gcc?

#ifndef SIZE_MAX
# ifndef SIZE_T_MAX
# ifdef _MSC_VER
# define SIZE_T_MAX UINT_MAX
# else
# error
# endif
# endif
# define SIZE_MAX SIZE_T_MAX
#endif
Unfortunately, that's where the thread ends. I don't seem to have a limits.h file anywhere to add the line lemonzest suggested (#define SIZE_T_MAX UINT_MAX /* max value for a size_t */) so I tried adding it to alloc.h and things seem to be moving a bit further. Now I get:

Code: Select all

mingw32-make[1]: *** No rule to make target `releaseobj/decorations.o', needed by `zdoomgcc.exe'.  Stop.
mingw32-make[1]: Leaving directory `C:/mingw/gzdoom'
mingw32-make: *** [game] Error 2
And that really does have me stumped. :(

Posted: Wed Jan 23, 2008 0:20
by Enjay
Nope, I've tried a few more things but I'm really stuck. :( This seems to be as far as I can get.

Has anyone managed to compile GZdoom with MinGW? Is it supposed to compile with MinGW? Any one got any clues?

I really don't want to have to download well over a gigabyte of stuff from MS if this can be made to work. In fact, the MS downloads are just too big for me to consider really. :(

Posted: Wed Jan 23, 2008 4:28
by Snake Doomer
Quite a perplexing problem we seem to have here.

Posted: Thu Jan 24, 2008 2:01
by MP2E
Hmm, Well I'm using the latest GCC and everything. After renaming the makefile in Tools/Lemon, I've encountered this error:

Code: Select all

make[1]: Leaving directory `c:/GZDoom-Source/tools/re2c'
c:/MinGW/bin/make -C wadsrc -f Makefile
make[1]: Entering directory `c:/GZDoom-Source/wadsrc'
../tools/makewad/makewad -make wadmake zdoom.lst
process_begin: CreateProcess(NULL, ../tools/makewad/makewad -make wadmake zdoom.lst, ...) failed.
make (e=2): The system cannot find the file specified.
make[1]: *** [wadmake] Error 2
make[1]: Leaving directory `c:/GZDoom-Source/wadsrc'
make: *** [basetools] Error 2
To be honest I think the makefile was made a little hastily. We're probably going to have to just figure this one out and give the changes to the makefile to Graf.

EDIT: I Just searched for Zdoom.1st and can't seem to find it... Graf, was this file renamed?

Posted: Thu Jan 24, 2008 2:21
by Enjay
MP2E wrote:EDIT: I Just searched for Zdoom.1st and can't seem to find it... Graf, was this file renamed?
That's an L not a 1. I have a file called zdoom.lst in my source directory.

Posted: Thu Feb 07, 2008 5:39
by Snake Doomer
At last! Progress!

Under the "tools/lemon" directory in the GZdoom source code, there is a "Makefile" MINGW file. Rename it to be just a plain file. Then, when you compile it with MINGW, it manages to spit a .pk3 file out at you. I'm not sure if it makes a .exe file because I have not located one yet.