Create an account


Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[SOLVED] NetRadiant compile Windows 7

#1
Hy guys, I tried many times to compile NetRadiant on Windows 7 but with no luck. Today I started again with A LOT of patience but, again, no compilation succeded.
Here all my steps in detail so maybe other users that tried this adventure can share their opinions
Note: I used these instructions

1)
Downloaded MinGW with MSys integrated from here

2)
Downloaded NetRadiant source from here and NetRadiant dipendencies from here

3)
Installed MinGw on C:\MinGW and launched MSys. From /home/username/netradiant I issued the command:
Code:
make MAKEFILE_CONF=mingw-Makefile.conf

Make will not find AR(binutils),RANLIB(binutils) and pkg-config (PKGCONFIG).
Go to C:\MinGW\msys\1.0\etc, duplicate fstab.sample to fstab [without extension], open it and edit it like this:
Code:
#Win32_Path        Mount_Point
C:\MinGW        /mingw
#c:/ActiveState/perl    /perl
Now if you re-compile make command will find AR e RANLIB but not PKGCONFIG.

To permit make to find PKGCONFIG I used this guide on StackOverflow, so:
4)
Download pkg-config_0.26-1_win32.zip from here, extract the file bin/pkg-config.exe to C:\MinGW\bin.
Download the file gettext-runtime_0.18.1.1-2_win32.zip from here and extract the file bin/intl.dll to C:\MinGW\bin
Download glib_2.28.8-1_win32.zip from here and extract bin/libglib-2.0-0.dll to C:\MinGW\bin
Re make and now make will go smooth through the dependencies check

5)
It will hang here(I just copied the only portion of code that console buffer stored):
Code:
WINOLEAUTAPI VarDecFromDate(DATE,DECIMAL*);
                                         ^
c:\mingw\include\oleauto.h:624:28: error: unknown type name 'OLECHAR'
WINOLEAUTAPI VarDecFromStr(OLECHAR*,LCID,ULONG,DECIMAL*);
                            ^
c:\mingw\include\oleauto.h:624:48: error: unknown type name 'DECIMAL'
WINOLEAUTAPI VarDecFromStr(OLECHAR*,LCID,ULONG,DECIMAL*);
                                                ^
c:\mingw\include\oleauto.h:625:49: error: expected ')' before '*' token
WINOLEAUTAPI VarDecFromBool(VARIANT_BOOL,DECIMAL*);
                                                 ^
c:\mingw\include\oleauto.h:626:39: error: unknown type name 'DECIMAL'
WINOLEAUTAPI VarDecFromI1(signed char,DECIMAL*);
                                       ^
c:\mingw\include\oleauto.h:627:35: error: unknown type name 'DECIMAL'
WINOLEAUTAPI VarDecFromUI2(USHORT,DECIMAL*);
                                   ^
c:\mingw\include\oleauto.h:628:34: error: unknown type name 'DECIMAL'
WINOLEAUTAPI VarDecFromUI4(ULONG,DECIMAL*);
                                  ^
c:\mingw\include\oleauto.h:629:36: error: unknown type name 'DECIMAL'
WINOLEAUTAPI VarDecFromUI8(ULONG64,DECIMAL*);
                                    ^
c:\mingw\include\oleauto.h:630:37: error: expected ')' before '*' token
WINOLEAUTAPI VarDecFromCy(CY,DECIMAL*);
                                     ^
c:\mingw\include\oleauto.h:631:45: error: unknown type name 'DECIMAL'
WINOLEAUTAPI VarDecFromDisp(IDispatch*,LCID,DECIMAL*);
                                             ^
c:\mingw\include\oleauto.h:633:1: error: unknown type name 'DECIMAL'
WINOLEAUTAPI VarDecNeg(const DECIMAL*,DECIMAL*);
^
c:\mingw\include\oleauto.h:633:39: error: unknown type name 'DECIMAL'
WINOLEAUTAPI VarDecNeg(const DECIMAL*,DECIMAL*);
                                       ^
c:\mingw\include\oleauto.h:637:1: error: unknown type name 'DECIMAL'
WINOLEAUTAPI VarDecAbs(const DECIMAL*,DECIMAL*);
^
c:\mingw\include\oleauto.h:637:39: error: unknown type name 'DECIMAL'
WINOLEAUTAPI VarDecAbs(const DECIMAL*,DECIMAL*);
                                       ^
c:\mingw\include\oleauto.h:638:1: error: unknown type name 'DECIMAL'
WINOLEAUTAPI VarDecAdd(const DECIMAL*,const DECIMAL*,DECIMAL*);
^
c:\mingw\include\oleauto.h:638:1: error: unknown type name 'DECIMAL'
c:\mingw\include\oleauto.h:638:54: error: unknown type name 'DECIMAL'
WINOLEAUTAPI VarDecAdd(const DECIMAL*,const DECIMAL*,DECIMAL*);
                                                      ^
c:\mingw\include\oleauto.h:639:1: error: unknown type name 'DECIMAL'
WINOLEAUTAPI VarDecCmp(const DECIMAL*,const DECIMAL*);
^
c:\mingw\include\oleauto.h:639:1: error: unknown type name 'DECIMAL'
c:\mingw\include\oleauto.h:640:1: error: unknown type name 'DECIMAL'
WINOLEAUTAPI VarDecCmpR8(const DECIMAL*,DOUBLE);
^
c:\mingw\include\oleauto.h:640:41: error: unknown type name 'DOUBLE'
WINOLEAUTAPI VarDecCmpR8(const DECIMAL*,DOUBLE);
                                         ^
c:\mingw\include\oleauto.h:641:1: error: unknown type name 'DECIMAL'
WINOLEAUTAPI VarDecDiv(const DECIMAL*,const DECIMAL*,DECIMAL*);
^
c:\mingw\include\oleauto.h:641:1: error: unknown type name 'DECIMAL'
c:\mingw\include\oleauto.h:641:54: error: unknown type name 'DECIMAL'
WINOLEAUTAPI VarDecDiv(const DECIMAL*,const DECIMAL*,DECIMAL*);
                                                      ^
c:\mingw\include\oleauto.h:642:1: error: unknown type name 'DECIMAL'
WINOLEAUTAPI VarDecFix(const DECIMAL*,DECIMAL*);
^
c:\mingw\include\oleauto.h:642:39: error: unknown type name 'DECIMAL'
WINOLEAUTAPI VarDecFix(const DECIMAL*,DECIMAL*);
                                       ^
c:\mingw\include\oleauto.h:643:1: error: unknown type name 'DECIMAL'
WINOLEAUTAPI VarDecInt(const DECIMAL*,DECIMAL*);
^
c:\mingw\include\oleauto.h:643:39: error: unknown type name 'DECIMAL'
WINOLEAUTAPI VarDecInt(const DECIMAL*,DECIMAL*);
                                       ^
c:\mingw\include\oleauto.h:644:1: error: unknown type name 'DECIMAL'
WINOLEAUTAPI VarDecMul(const DECIMAL*,const DECIMAL*,DECIMAL*);
^
c:\mingw\include\oleauto.h:644:1: error: unknown type name 'DECIMAL'
c:\mingw\include\oleauto.h:644:54: error: unknown type name 'DECIMAL'
WINOLEAUTAPI VarDecMul(const DECIMAL*,const DECIMAL*,DECIMAL*);
                                                      ^
c:\mingw\include\oleauto.h:645:1: error: unknown type name 'DECIMAL'
WINOLEAUTAPI VarDecRound(const DECIMAL*,int,DECIMAL*);
^
c:\mingw\include\oleauto.h:645:45: error: unknown type name 'DECIMAL'
WINOLEAUTAPI VarDecRound(const DECIMAL*,int,DECIMAL*);
                                             ^
c:\mingw\include\oleauto.h:646:1: error: unknown type name 'DECIMAL'
WINOLEAUTAPI VarDecSub(const DECIMAL*,const DECIMAL*,DECIMAL*);
^
c:\mingw\include\oleauto.h:646:1: error: unknown type name 'DECIMAL'
c:\mingw\include\oleauto.h:646:54: error: unknown type name 'DECIMAL'
WINOLEAUTAPI VarDecSub(const DECIMAL*,const DECIMAL*,DECIMAL*);
                                                      ^
c:\mingw\include\oleauto.h:647:32: error: expected declaration specifiers or '..
.' before 'CY'
WINOLEAUTAPI VarCyAbs(const CY,CY*);
                                ^
c:\mingw\include\oleauto.h:648:38: error: redefinition of parameter 'CY'
WINOLEAUTAPI VarCyAdd(const CY,const CY,CY*);
                                      ^
c:\mingw\include\oleauto.h:648:29: note: previous definition of 'CY' was here
WINOLEAUTAPI VarCyAdd(const CY,const CY,CY*);
                             ^
c:\mingw\include\oleauto.h:648:41: error: expected declaration specifiers or '..
.' before 'CY'
WINOLEAUTAPI VarCyAdd(const CY,const CY,CY*);
                                         ^
c:\mingw\include\oleauto.h:649:38: error: redefinition of parameter 'CY'
WINOLEAUTAPI VarCyCmp(const CY,const CY);
                                      ^
c:\mingw\include\oleauto.h:649:29: note: previous definition of 'CY' was here
WINOLEAUTAPI VarCyCmp(const CY,const CY);
                             ^
c:\mingw\include\oleauto.h:650:34: error: unknown type name 'DOUBLE'
WINOLEAUTAPI VarCyCmpR8(const CY,DOUBLE);
                                  ^
c:\mingw\include\oleauto.h:651:32: error: expected declaration specifiers or '..
.' before 'CY'
WINOLEAUTAPI VarCyFix(const CY,CY*);
                                ^
c:\mingw\include\oleauto.h:652:32: error: expected declaration specifiers or '..
.' before 'CY'
WINOLEAUTAPI VarCyInt(const CY,CY*);
                                ^
c:\mingw\include\oleauto.h:653:32: error: expected declaration specifiers or '..
.' before 'CY'
WINOLEAUTAPI VarCyMul(const CY,CY,CY*);
                                ^
c:\mingw\include\oleauto.h:653:35: error: expected declaration specifiers or '..
.' before 'CY'
WINOLEAUTAPI VarCyMul(const CY,CY,CY*);
                                   ^
c:\mingw\include\oleauto.h:654:39: error: expected declaration specifiers or '..
.' before 'CY'
WINOLEAUTAPI VarCyMulI4(const CY,LONG,CY*);
                                       ^
c:\mingw\include\oleauto.h:655:41: error: expected declaration specifiers or '..
.' before 'CY'
WINOLEAUTAPI VarCyMulI8(const CY,LONG64,CY*);
                                         ^
c:\mingw\include\oleauto.h:656:32: error: expected declaration specifiers or '..
.' before 'CY'
WINOLEAUTAPI VarCyNeg(const CY,CY*);
                                ^
c:\mingw\include\oleauto.h:657:38: error: expected declaration specifiers or '..
.' before 'CY'
WINOLEAUTAPI VarCyRound(const CY,INT,CY*);
                                      ^
c:\mingw\include\oleauto.h:658:38: error: redefinition of parameter 'CY'
WINOLEAUTAPI VarCySub(const CY,const CY,CY*);
                                      ^
c:\mingw\include\oleauto.h:658:29: note: previous definition of 'CY' was here
WINOLEAUTAPI VarCySub(const CY,const CY,CY*);
                             ^
c:\mingw\include\oleauto.h:658:41: error: expected declaration specifiers or '..
.' before 'CY'
WINOLEAUTAPI VarCySub(const CY,const CY,CY*);
                                         ^
c:\mingw\include\oleauto.h:679:35: error: expected ')' before 'LCID'
WINOLEAUTAPI VarBstrCmp(BSTR,BSTR,LCID,ULONG);
                                   ^
c:\mingw\include\oleauto.h:680:39: error: expected ')' before '*' token
WINOLEAUTAPI VarBstrCat(BSTR,BSTR,BSTR*);
                                       ^
In file included from c:\mingw\include\ole2.h:52:0,
                 from c:\mingw\include\windows.h:101,
                 from c:\mingw\include\rpc.h:27,
                 from c:\mingw\include\wtypes.h:29,
                 from tools/quake3/common/vfs.h:40,
                 from tools/quake3/common/imagelib.c:27:
c:\mingw\include\oleidl.h:123:46: error: unknown type name 'LPOLESTR'
  STDMETHOD(ParseDisplayName)(THIS_ IBindCtx*,LPOLESTR,ULONG*,IMoniker**) PURE;
                                              ^
c:\mingw\include\oleidl.h:141:46: error: unknown type name 'LPOLESTR'
  STDMETHOD(ParseDisplayName)(THIS_ IBindCtx*,LPOLESTR,ULONG*,IMoniker**) PURE;
                                              ^
c:\mingw\include\oleidl.h:154:46: error: unknown type name 'LPOLESTR'
  STDMETHOD(ParseDisplayName)(THIS_ IBindCtx*,LPOLESTR,ULONG*,IMoniker**) PURE;
                                              ^
c:\mingw\include\oleidl.h:157:29: error: unknown type name 'LPOLESTR'
  STDMETHOD(GetObject)(THIS_ LPOLESTR,DWORD,IBindCtx*,REFIID,void**) PURE;
                             ^
c:\mingw\include\oleidl.h:158:36: error: unknown type name 'LPOLESTR'
  STDMETHOD(GetObjectStorage)(THIS_ LPOLESTR,IBindCtx*,REFIID,void**) PURE;
                                    ^
c:\mingw\include\oleidl.h:159:29: error: unknown type name 'LPOLESTR'
  STDMETHOD(IsRunning)(THIS_ LPOLESTR) PURE;
                             ^
c:\mingw\include\oleidl.h:212:32: error: unknown type name 'LPCOLESTR'
  STDMETHOD(SetHostNames)(THIS_ LPCOLESTR,LPCOLESTR) PURE;
                                ^
c:\mingw\include\oleidl.h:212:42: error: unknown type name 'LPCOLESTR'
  STDMETHOD(SetHostNames)(THIS_ LPCOLESTR,LPCOLESTR) PURE;
                                          ^
c:\mingw\include\oleidl.h:223:37: error: unknown type name 'LPOLESTR'
  STDMETHOD(GetUserType)(THIS_ DWORD,LPOLESTR*) PURE;
                                     ^
c:\mingw\include\oleidl.h:293:60: error: unknown type name 'LPCOLESTR'
  STDMETHOD(SetActiveObject)(THIS_ LPOLEINPLACEACTIVEOBJECT,LPCOLESTR) PURE;
                                                            ^
c:\mingw\include\oleidl.h:342:60: error: unknown type name 'LPCOLESTR'
  STDMETHOD(SetActiveObject)(THIS_ LPOLEINPLACEACTIVEOBJECT,LPCOLESTR) PURE;
                                                            ^
c:\mingw\include\oleidl.h:346:33: error: unknown type name 'LPCOLESTR'
  STDMETHOD(SetStatusText)(THIS_ LPCOLESTR) PURE;
                                 ^
In file included from c:\mingw\include\windows.h:101:0,
                 from c:\mingw\include\rpc.h:27,
                 from c:\mingw\include\wtypes.h:29,
                 from tools/quake3/common/vfs.h:40,
                 from tools/quake3/common/imagelib.c:27:
c:\mingw\include\ole2.h:69:52: error: unknown type name 'LPOLESTR'
WINOLEAPI WriteFmtUserTypeStg(LPSTORAGE,CLIPFORMAT,LPOLESTR);
                                                    ^
c:\mingw\include\ole2.h:70:52: error: unknown type name 'LPOLESTR'
WINOLEAPI ReadFmtUserTypeStg(LPSTORAGE,CLIPFORMAT*,LPOLESTR*);
                                                    ^
In file included from c:\mingw\include\rpcdce.h:33:0,
                 from c:\mingw\include\rpc.h:65,
                 from c:\mingw\include\windows.h:82,
                 from c:\mingw\include\rpc.h:27,
                 from c:\mingw\include\wtypes.h:29,
                 from tools/quake3/common/vfs.h:40,
                 from tools/quake3/common/imagelib.c:27:
c:\mingw\include\ole2.h:80:41: error: expected ')' before 'const'
WINOLEAPI OleCreateLinkToFile(LPCOLESTR,REFIID,DWORD,LPFORMATETC,LPOLECLIENTSIT
E,LPSTORAGE,PVOID*);
                                         ^
In file included from c:\mingw\include\windows.h:101:0,
                 from c:\mingw\include\rpc.h:27,
                 from c:\mingw\include\wtypes.h:29,
                 from tools/quake3/common/vfs.h:40,
                 from tools/quake3/common/imagelib.c:27:
c:\mingw\include\ole2.h:81:38: error: unknown type name 'LPCOLESTR'
WINOLEAPI OleCreateFromFile(REFCLSID,LPCOLESTR,REFIID,DWORD,LPFORMATETC,LPOLECL
IENTSITE,LPSTORAGE,PVOID*);
                                      ^
c:\mingw\include\ole2.h:109:47: error: expected ')' before 'BOOL'
WINOLEAPI_(HGLOBAL) OleGetIconOfFile(LPOLESTR,BOOL);
                                               ^
c:\mingw\include\ole2.h:110:48: error: unknown type name 'LPOLESTR'
WINOLEAPI_(HGLOBAL) OleGetIconOfClass(REFCLSID,LPOLESTR,BOOL);
                                                ^
c:\mingw\include\ole2.h:111:59: error: unknown type name 'LPOLESTR'
WINOLEAPI_(HGLOBAL) OleMetafilePictFromIconAndLabel(HICON,LPOLESTR,LPOLESTR,UIN
T);
                                                           ^
c:\mingw\include\ole2.h:111:68: error: unknown type name 'LPOLESTR'
WINOLEAPI_(HGLOBAL) OleMetafilePictFromIconAndLabel(HICON,LPOLESTR,LPOLESTR,UIN
T);
                                                                    ^
c:\mingw\include\ole2.h:112:44: error: unknown type name 'LPOLESTR'
WINOLEAPI OleRegGetUserType(REFCLSID,DWORD,LPOLESTR*);
                                            ^
In file included from tools/quake3/common/vfs.h:40:0,
                 from tools/quake3/common/imagelib.c:27:
c:\mingw\include\wtypes.h:110:18: error: 'BSTR' redeclared as different kind of
symbol
typedef OLECHAR *BSTR;
                  ^
In file included from c:\mingw\include\rpcdce.h:33:0,
                 from c:\mingw\include\rpc.h:65,
                 from c:\mingw\include\windows.h:82,
                 from c:\mingw\include\rpc.h:27,
                 from c:\mingw\include\wtypes.h:29,
                 from tools/quake3/common/vfs.h:40,
                 from tools/quake3/common/imagelib.c:27:
c:\mingw\include\oleauto.h:231:1: note: previous declaration of 'BSTR' was here
WINOLEAUTAPI_(BSTR) SysAllocStringByteLen(const char*,unsigned int);
^
In file included from tools/quake3/common/imagelib.c:27:0:
tools/quake3/common/vfs.h:42:0: warning: "R_OK" redefined [enabled by default]
#define R_OK 04
^
In file included from tools/quake3/common/vfs.h:41:0,
                 from tools/quake3/common/imagelib.c:27:
c:\mingw\include\io.h:335:0: note: this is the location of the previous definiti
on
#define R_OK 4 /* Check for read permission */
^
make: *** [tools/quake3/common/imagelib.o] Error 1

And now? Smile
I would ask if someone would be so kind to share his/her knowledge to fix this issue.
Thanks in advance for any hint,
cheers
Reply

#2
Damn. I personally have no way to help you with that, and I really don't know who can...

What version of mingw / msys have you tried?

EDIT: If you don't require git, I'm sure you can find useable builds somewhere.
Reply

#3
Try these links

The latest pacakge I believe. Netradiant should be in there
http://beta.xonotic.org/autobuild/Xonoti...upport.zip

In the prompt g-23 is the pass xonotic is the user.

Set Up Info

http://dev.xonotic.org/projects/3/wiki/Mapping-Setup

There's also an older compiling write up here http://forums.xonotic.org/showthread.php?tid=4420 but Mario is on a walk about with kangaroos and alligators atm.
[MoFo] Servers - North America - Hosted in Montreal Canada - Admin DeadDred [MoFo]
Reply

#4
Thanks guys for your kind reply, I've downloaded mingw auto installer so I don't know which version is. Probably is the newer one. I followed the links that end user posted and I found out that maybe I can just use the 2013 executables with a gamepack! Is it possible to add custom gamepack? For example for a foo game add a foo.game? Would it work?
Compiling NetRadiant on Windows I think it's too complicated at the moment. I hope devs will add a Visual Studio sln file. That would be really appreciated
Reply

#5
Do you have any specific game in mind? NetRadiant can't be used for any game, and the ones that do support its format should have some sort of info on how to set it up in their documentation/websites.

Visual Studio, I doubt it. None of the devs work in windows as far as I can tell.
Reply

#6
(08-27-2014, 12:54 AM)Mr. Bougo Wrote: Do you have any specific game in mind? NetRadiant can't be used for any game, and the ones that do support its format should have some sort of info on how to set it up in their documentation/websites.
Well, it can be used for any quake3 based game. I'm using it for a tech demo with FTEQW and DP engine and my gamedata folder is "data" so maybe I can use Xonotic's one and change few things.
My question was different (sorry if it wasn't detailed) : I used GTK Radiant and support for new games must be expanded in source code, I'd like to know if NetRadiant has the same mechanism or it just need to add a xxx.game folder with its game features(data folder name, executable path, an so on) to make recognize the new game. But, honestly, there's no need to bother the forums, I can test it by my own!Tongue
(08-27-2014, 12:54 AM)Mr. Bougo Wrote: Visual Studio, I doubt it. None of the devs work in windows as far as I can tell.
yep, but broading the audience of architecture served, could only benefit the development of new features (layer support hint hint!)
Reply

#7
If someone wants to do any sizeable contribution to NR, surely they'll want to adapt the build environment to their liking. Right now I think it's counterproductive to ask people who do not use VisualWhatever to create a file when there's no guarantee that your horde of potential devs aren't using eclipse anyway.

If you're comfortable with VS, please go ahead and make a project file. But if that can't make use of GNU make and other unix tools, good luck with that. The build process is too involved.

I'd say something's up with your msys / mingw setup anyway. It has worked just fine for at least three people so far. If you really need git, try to clean up your environment and reconstruct it from scratch.

EDIT: As for game dirs, I don't know, as I'm no *radiant user. It shouldn't be too different. Look at how the xonotic gamefiles are made, compare it to something gtkradiant uses.
Reply

#8
I completely disagree with your vision of open development, but of course someone could disagree with mine. Internet is a democratic place.
I found out that I don't need to build from scratch NetRadiant on Windows just to adapt it to my game. Here's what I did:
1) Downloaded NetRadiant last version from here (in the Downloads section)
2) go into the main NR folder and duplicate xonotic.game folder with mygame.game folder changing everything to suit your needs.
I deleted everything except the entities (shaderlist is in my game/scripts folder so I don't see why leaving a duplicate) which need to be cut and paste depending on how many and which entities you need
3) go into the games folder and duplicate xonotic.game with mygame.game and edit:
type="mygame"
index="1"
name="MyGame"
enginepath_win32="c:\games\mygame"
enginepath_linux="useless"
enginepath_macos="useless"
engine_win32="mygame-executable-name.exe"
engine_linux="useless"
engine_macos="useless"
prefix=".mygame"
basegame="mygamedata"
basegamename="mygame"
unknowngamename="Custom My Game modification"
shaderpath="scripts"
archivetypes="pk3"
texturetypes="tga jpg png"
modeltypes="ase obj"
maptypes="mapq3"
shaders="quake3"
entityclass="quake3"
entityclasstype="xml"
entities="quake3"
brushtypes="quake3"
patchtypes="quake3"
default_scale="0.25"
forbidden_paths="xonotic*-data*.pk3* xonotic*-nexcompat*.pk3*"
q3map2_type="xonotic"
brush_primit="1"
4) open NetRadiant and Choose MyGame from the dropdown menu and (hopefully) everything should be set up!
Reply

#9
There's no doubt that VS project files would be a plus, but in practice, I don't think any developer of netradiant is ready to produce a well-made project file without significant work that requires getting familiar with VS in the first place. That's a significant investment of time and the actual benefit is questionable.

Currently, the build system of netradiant relies on *NIX tools. Part of it is because it needs to download game packs from several different sources under several different protocols. With that in mind, no matter how many developers are involved, it's absolutely natural to prefer a *NIX environment like msys or cygwin or any other scripting environment like python that can work portably across platforms, instead of maintaining scripts in parallel for windows and non-windows.

It just so happens that none of these environments work out of the box in Windows, and require some setup. In your case, something broke, but I can assure you that it has worked correctly in the past. I wouldn't blame the NR developers for it.

EDIT: Anyway, I'm glad you worked out the gamepack structure to adapt it to your use case.
Reply

#10
Quote:Currently, the build system of netradiant relies on *NIX tools. Part of it is because it needs to download game packs from several different sources under several different protocols. With that in mind, no matter how many developers are involved, it's absolutely natural to prefer a *NIX environment like msys or cygwin or any other scripting environment like python that can work portably across platforms, instead of maintaining scripts in parallel for windows and non-windows.
Completely agree. My only point is: Would it be so harder or time consuming for maintainers to add a mingw/msys installation (maybe in the downloads section) already tested for NetRadiant / Xonotic compiling? I mean, I use Linux for 8 years now, I couldn't consider myself a pro but not a newbie. I never used mingw, right, but spend 2 days to build an environment that fails at compile is a little frustrating! Big Grin
I don't blame anyone and, at the opposite, I thank A LOT, NR developers to bring us a fresh alternative to GTK radiant
Reply

#11
(08-28-2014, 04:50 PM)toneddu2000 Wrote: Completely agree. My only point is: Would it be so harder or time consuming for maintainers to add a mingw/msys installation (maybe in the downloads section) already tested for NetRadiant / Xonotic compiling? I mean, I use Linux for 8 years now, I couldn't consider myself a pro but not a newbie. I never used mingw, right, but spend 2 days to build an environment that fails at compile is a little frustrating! Big Grin
I don't blame anyone and, at the opposite, I thank A LOT, NR developers to bring us a fresh alternative to GTK radiant

It wouldn't be too hard, no. But it's fair to assume that a fair proportion of users will already be using mingw to compile Xonotic for example, so it won't always be the most hassle-free solution because you either end up with two parallel mingw setups or having to merge both.

I think it's already quite nice of them to provide the whole toolset needed within mingw in a single package. Some time ago I wasn't aware of the guide, and tried to assist a user to figure out what dependencies were needed and how to install them. It was a very frustrating experience, so I understand your pain.

I'll give a shot at setting up the environment in a windows VM some time in september, to see if there's a flaw with the instructions. What version of windows were you using?
Reply

#12
(08-29-2014, 01:34 AM)Mr. Bougo Wrote: It wouldn't be too hard, no. But it's fair to assume that a fair proportion of users will already be using mingw to compile Xonotic for example
Is it different from this?

(08-29-2014, 01:34 AM)Mr. Bougo Wrote: , so it won't always be the most hassle-free solution because you either end up with two parallel mingw setups or having to merge both.
Well, I hope not, as long as they stay in the msys "home" dir I can build dozens of different projects with a single mingw setup. I only need a "warranty certificate"(lol) that says: "don't worry, to compile Xonotic or any other Xonotic tool (NetRadiant for example) download this MinGW installation already shipped with all the common and xonotic-related libs and you're good to go"

Quote:I think it's already quite nice of them to provide the whole toolset needed within mingw in a single package.
indeed

Quote:Some time ago I wasn't aware of the guide, and tried to assist a user to figure out what dependencies were needed and how to install them.
So, there's another guide except the one I posted in the first link? Maybe I'm just wrong and I read an outdated guide! Smile

Quote:I'll give a shot at setting up the environment in a windows VM some time in september, to see if there's a flaw with the instructions. What version of windows were you using?
Windows 7 and thanks for your help
Reply

#13
No no, you're referring to the right guide. I wasn't aware of it or of the dependency package it links to.

I'll post here when I try it out in a VM Smile
Reply

#14
Okay, I got this to work on a Windows 7 (32 bit) virtual machine.

Here's what I did:

  1. Got the mingw-get-setup.exe download tool from mingw.org (default download offered). Version: 0.6.2-beta-20131004-1.
  2. This downloaded and ran the install manager. Installed mingw32 base, g++, and msys, into C:\MinGW\.
  3. Followed install instructions on http://www.mingw.org/wiki/getting_started :
    • Added /mingw mountpoint to C:\MingGW in fstab using notepad.exe.
    • The installer didn't install a desktop/start menu msys item, create a shortcut to C:\MinGW\msys\1.0\msys.bat
  4. As per netradiant instructions:
    • Put the dependencies in $HOME/netradiant-dependencies-mingw32.
    • Cloned git using ~/netradiant-dependencies-mingw32/util/bin/git.
    • Started make process using make MAKEFILE_CONF=mingw-Makefile.conf
  5. At this point, the makefile complained about a missing libjpeg.
  6. I grabbed jpegsrc.v8d.tar.gz from http://ijg.org/files/ (md5: 52654eb3b2e60c35731ea8fc87f1bd29 sha1: f080b2fffc7581f7d19b968092ba9ebc234556ff). Compiled and installed libjpeg 8d:
    Code:
    ./configure --prefix=$HOME/netradiant-dependencies-mingw32/radiantdeps && make && make install
    Note that no pkgconfig info for libjpeg is required during build.
  7. Next troublesome step: whichdll.sh in the dependency package doesn't handle two dlls that were added to the dependency list in install-dll.sh. As a workaround, I change the relevant line in whichdll.sh to
    Code:
    find "${0%/*}" /mingw/bin -name "$1" -print -quit
    The -quit is to avoid multiple matches for zlib1.dll.
  8. Lastly, I changed libgcc_s_sjlj-1.dll to libgcc_s_dw2-1.dll in install-dlls.sh because dwarf2 has superceded sjlj in MinGW GCC builds since 4.4.0. Thanks to Ingar for the clarification.

Troubleshooting for a problem I encountered:
  • I was distracted and kept .d files from my linux git clone. Remove your .d files!

I don't know how well this will work in 64 bit Windows. Let me know!
Reply

#15
Oh man, Thank you! It worked like a charm! The weird thing is that I was able to skip step n.6, compiler didn't claim any jpeg lib missing!Big Grin
Quote:Troubleshooting for a problem I encountered:
I was distracted and kept .d files from my linux git clone. Remove your .d files!
No, I didn't remove them. Should I have done? Is it harmful for the compilation?

Thanks A LOT Mr. Bougo! I really appreciated your effort!Now someone should stick Mr. Bougo's last post!Wink

EDIT: for those who has a multi-cores processor I suggesto to compile with:
make MAKEFILE_CONF=mingw-Makefile.conf -j X
where X is the maximum number of cores your processor has.
Mine is a i7 8 cores and it compiles in 10 sec!Tongue
Reply

#16
Ah, strange that you didn't need libjpeg. I really don't have a clue why. Could you run a search through your mingw install directory for files that include "libjpeg" in their name? Tell me if it finds libjpeg-8.dll in there.

I suppose you were using Windows 7 64 bit?

Did you reinstall mingw completely or did you use the install that had previously failed?

I'll see if we can update the guide and dependency package.
Reply

#17
Nope. I've already a MinGW folder but i renamed MinGW_ and I started from scratch with the installer as you described. Apparently Windows 7(I have 64bit Home Premium) finds only libjpeg6.a in C:\MinGW\msys\1.0\home\user\netradiant
Reply

#18
Weird. I wonder where that file came from. What's the creation / modification timestamp on this?
Reply

#19
(09-28-2014, 11:20 PM)Mr. Bougo Wrote: Weird. I wonder where that file came from. What's the creation / modification timestamp on this?
I think I cannot be of help, here. Creation / modification date says it's yesterday at 4:44 PM! Huh There's a way to see original creation date?
Reply

#20
Nope, if it tells you it's yesterday, it's yesterday... Not sure how to explain that then!
Reply

#21
Are you sure that lib is not in the git repo?
Reply

#22
Yup, I'm positive it isn't!
Reply



Possibly Related Threads…
Thread Author Replies Views Last Post
  NetRadiant issues Garux 7 9,330 02-18-2015, 04:48 AM
Last Post: Garux
  Error Compiling NetRadiant on OS X 10.10 cityy 2 4,388 01-02-2015, 12:42 PM
Last Post: cityy
  Xonotic QCC source won't compile with GMQCC? kristus 4 5,732 11-04-2014, 08:14 PM
Last Post: Mario
  q3map2 x64 for Windows Lord Canistra 11 19,841 09-26-2014, 05:52 PM
Last Post: toneddu2000
  The Windows 64-bit executable austen1000 6 9,676 09-17-2013, 05:46 PM
Last Post: austen1000
  I updated the "Compiling in Windows" wiki page Mr. Bougo 2 4,651 08-24-2012, 03:39 PM
Last Post: Mr. Bougo
  Netradiant crash on startup speaker 6 8,194 06-05-2012, 08:27 AM
Last Post: CuBe0wL
  netradiant textures not loading tangerian 1 4,170 06-05-2012, 01:34 AM
Last Post: PinkRobot
  Writing a NetRadiant plugin with Visual C++ Nitroxis 6 8,714 10-28-2011, 02:42 PM
Last Post: divVerent
Information Platform testing needed - Windows and OSX only mand1nga 21 24,994 08-30-2011, 08:48 PM
Last Post: theShadow

Forum Jump:


Users browsing this thread:
2 Guest(s)

Forum software by © MyBB original theme © iAndrew 2016, remixed by -z-