Create an account


Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[SOLVED] how to compile linux and win executable using git under win7

#1
Hello community,

i just downloaded the the "msysGit-fullinstall-1.8.1.2-preview20130201.exe" and installed it. After doing all the "git clone" and "./all update" i managed to compile the "darkplaces.exe" and the the other needed stuff to run the game with "./all run +vid_fullscreen 0". But when i compile the "darkplaces.exe" in the console windows it's shown that the "darkplaces.exe" debug executable is beeing build. So my question is: how can i compile the release version of "xonotic.exe" with its xonotic Icon included in the resource (+ the win_x64 exe) ? And can i also compile the linux excecutables using the git under windows (+ 64 bit version)? I also wonder that my compiled "csprogs.dat" and "progs.dat" are so much bigger the the ones of the 0.6.0 release, is that normal? So maybe someone can help me here?

After using the forum search i found the following links:

http://dev.xonotic.org/projects/xonotic/...in_Windows

But there i found nothing abotu my questions.


Thx so far.
Reply

#2
Building a release for windows is a complicated process. There is no documentation for it other than the ./all script itself, so if you don't know Bash scripting you might as well give up. However, you can make non-debug "release" darkplaces binaries by adding the -r switch after ./all compile: "./all compile -r". This will still not give you branded binaries though. If you really need git release builds, you can get them pre-made from the autobuild server. See this thread: http://forums.xonotic.org/showthread.php?tid=1863

I doubt you can cross-compile Linux or win64 binaries. As far as I know, there is no cross-compiling in making the official release builds.

I wouldn't worry about the progs size. We have changed QC compilers since 0.6.0 (we ditched FTEQCC in favor of GMQCC).

EDIT: I feel my post is not very helpful. Don't hesitate to elaborate on your questions if you think that there is more to be answered.
Reply

#3
Thx for the reply. I wonder that this all script is done to build the darkplaces.exe, but if you want to build the xonotic.exe it should be complicated, sounds strange for me. I expected something like this ./all build-xonitic-release. What is the secret behind this? How can i compile the x64 executables?

(04-28-2013, 03:01 PM)Mr. Bougo Wrote: so if you don't know Bash scripting you might as well give up.
I'm not a linux user, ok a run a linux rootserver for my games, but i know less then the basics. I normaly work with windows, so i rarely come in contact with bash scripts. But why should i know somethings about it, it would help me if someone tell me i should type this-or-that in the console window. Same as driving a car, i dont need to know how to manufactor a car, when i want to drive it.

Ok next question: whats with the csprogs.dat, progs.dat and menu.dat? Are these files then the same as in the releas version?

The reason why i want to know all this, is because i want compile my own builds. I run a xonotic server and i want to change some logfiles to my own needs, like the score log. Same as using some commands e.g. if you rcon to the server and type "banlist" you wont get any feedback, first i thought the command was wrong written, but when i then looked in the console log of my server i could see the result there, thats not helpfull for me (hmmm..... looks like a bug?). I don't want to aks the developers, if they maybe can implement this or that feature, they probably have enough other work todo.

So maybe its now more clear why i want to know this.
Reply

#4
(05-01-2013, 03:42 AM)TheGoodGamer Wrote: Thx for the reply. I wonder that this all script is done to build the darkplaces.exe, but if you want to build the xonotic.exe it should be complicated, sounds strange for me. I expected something like this ./all build-xonitic-release. What is the secret behind this? How can i compile the x64 executables?

Building the branded Darkplaces binary is part of the larger process of building a complete release. This involves compression of all textures and sounds, which uses a lot of buffer disk space and special scripts. It seems you can build the engine on its own though, but I don't know if it will work without the rest of the release bits, and that needs a lot of infrastructure (read the comments in misc/tools/all/release.subr).

Let me start with a warning: I do not know what the release script does. It might mess up your git clone, but it should not break anything else outside of Xonotic.

You can do the engine part alone with ./all release-engine-win32 or ./all release-engine-win64 (depending on your architecture). You might need to do a ./all release-prepare first. A complete release build is done with ./all release.

Quote:
(04-28-2013, 03:01 PM)Mr. Bougo Wrote: so if you don't know Bash scripting you might as well give up.
I'm not a linux user, ok a run a linux rootserver for my games, but i know less then the basics. I normaly work with windows, so i rarely come in contact with bash scripts. But why should i know somethings about it, it would help me if someone tell me i should type this-or-that in the console window. Same as driving a car, i dont need to know how to manufactor a car, when i want to drive it.
You're assuming that you know how to drive the car. In this analogy, only a couple of people know how a car works at all, what it does when you push this and that button, etc. You could try to mash buttons and see what it does, or you could look at the internals of the release script to see how it works. But there is no other documentation than the code itself.

No one except the Xonotic team is meant to make use of the release script, so you should not expect any help at all. It's there for the sake of convenience and openness, but it's not meant to be used by the general public.

Quote:Ok next question: whats with the csprogs.dat, progs.dat and menu.dat? Are these files then the same as in the releas version?
Why does that matter at all? They might not be the same bit-by-bit, but they contain the same code and run the same way.


Quote:The reason why i want to know all this, is because i want compile my own builds. I run a xonotic server and i want to change some logfiles to my own needs, like the score log. Same as using some commands e.g. if you rcon to the server and type "banlist" you wont get any feedback, first i thought the command was wrong written, but when i then looked in the console log of my server i could see the result there, thats not helpfull for me (hmmm..... looks like a bug?). I don't want to aks the developers, if they maybe can implement this or that feature, they probably have enough other work todo.

So maybe its now more clear why i want to know this.
Why do you need entire release builds? What is wrong with ./all compile? You can modify the code and do a ./all compile and it will work just fine, so I don't know why you would want a release build at all.

The rcon command does not work the way you expect because aliases don't send their output back to the rcon client (probably because there's no such thing as "output" in an alias because it can consist of several commands with side effects and delayed output and such). You should use the command itself instead of its alias: "rcon sv_cmd banlist".


EDIT: By the way, if you want to modify game logic such as log formats and such, that's in the gamecode (progs.dat most probably). You don't need to recompile the engine for that, you can just compile a new progs.dat and use that with an existing release, provided you're using compatible code as a base. Plus, .dat files are portable.
Reply

#5
First let me thank for your fast reply.

Quote:You can do the engine part alone with ./all release-engine-win32 or ./all release-engine-win64 (depending on your architecture). You might need to do a ./all release-prepare first. A complete release build is done with ./all release.
I have discovered these commands allready, when i digged a little bit in the files. But the "./all release-engine-win32" and the "./all release-engine-win64" end with an error message, so i thought i did something wrong.

Quote:Why do you need entire release builds? What is wrong with ./all compile? You can modify the code and do a ./all compile and it will work just fine, so I don't know why you would want a release build at all.
If someone tell me you can have this, but the other thing is nothing for you, then i ask myself why should i accept this, whats different to the other thing, that i can not have. That's the reason, why i want to have the release builds.

Quote:The rcon command does not work the way you expect because aliases don't send their output back to the rcon client (probably because there's no such thing as "output" in an alias because it can consist of several commands with side effects and delayed output and such). You should use the command itself instead of its alias: "rcon sv_cmd banlist".
Important information, thank you. I allready wondered, because i couldn't imagine that the developers would have made such a mistake.

Quote:EDIT: By the way, if you want to modify game logic such as log formats and such, that's in the gamecode (progs.dat most probably). You don't need to recompile the engine for that, you can just compile a new progs.dat and use that with an existing release, provided you're using compatible code as a base. Plus, .dat files are portable.
Yes, i think i will do that.

Last but not least, can the 64bit darkplaces.exe been build with the all script? Like i said befor, the "./all release-engine-win64" ends up with an error message: "/xonotic/../all.xonotic.sh: line 73: rsync: command not found"
Reply

#6
(05-05-2013, 02:28 AM)TheGoodGamer Wrote: I have discovered these commands allready, when i digged a little bit in the files. But the "./all release-engine-win32" and the "./all release-engine-win64" end with an error message, so i thought i did something wrong.

Read the error message is all I can say. I don't know what the script does, so I can't know what went wrong.

(05-05-2013, 02:28 AM)TheGoodGamer Wrote:
Quote:Why do you need entire release builds? What is wrong with ./all compile? You can modify the code and do a ./all compile and it will work just fine, so I don't know why you would want a release build at all.
If someone tell me you can have this, but the other thing is nothing for you, then i ask myself why should i accept this, whats different to the other thing, that i can not have. That's the reason, why i want to have the release builds.

As I said above, release builds need a ton of infrastructure that is just unnecessary for git testing. If you want to run the game from git, you don't have to go through all the steps that need that infrastructure, so a simpler build script is provided (./all compile) which simplifies testing.

You are free to pick the most complicated option, but you should not complain that it is complicated. The existence of "./all compile" is meant to address that complaint.

(05-05-2013, 02:28 AM)TheGoodGamer Wrote: Last but not least, can the 64bit darkplaces.exe been build with the all script? Like i said befor, the "./all release-engine-win64" ends up with an error message: "/xonotic/../all.xonotic.sh: line 73: rsync: command not found"

Do I need to explain what that means? The script expects the "rsync" command but can not find it. I don't know why it needs rsync at all though, can you paste the entire output?
Reply

#7
(05-05-2013, 12:47 PM)Mr. Bougo Wrote: Do I need to explain what that means? The script expects the "rsync" command but can not find it. I don't know why it needs rsync at all though, can you paste the entire output?

I found the rsync.exe in "msysgit\xonotic\misc\tools\rsync-updater\rsync.exe" and in "\msysgit\xonotic\Xonotic\misc\tools\rsync-updater\rsync.exe"

The total output is the following:


Welcome to msysGit


Run 'git help git' to display the help index.
Run 'git help <command>' to display help for specific commands.
Run '/share/msysGit/add-shortcut.tcl' to add a shortcut to msysGit.

It appears that you installed msysGit using the full installer.
To set up the Git repositories, please run /share/msysGit/initialize.sh
Mike@HOME1 /
$ cd xonotic
Mike@HOME1 /xonotic (master)
$ ./all release-engine-win64
Found main repo = git://de.git.xonotic.org/xonotic/
Repository . enabled because it already exists
Repository data/xonotic-data.pk3dir enabled because it already exists
Repository data/xonotic-music.pk3dir enabled because it already exists
Repository data/xonotic-nexcompat.pk3dir disabled by default, create data/xonoti
c-nexcompat.pk3dir.yes to enable
Repository darkplaces enabled because it already exists
Repository netradiant enabled because it already exists
Repository div0-gittools disabled by default, create div0-gittools.yes to enable

Repository d0_blind_id enabled because it already exists
Repository data/xonotic-maps.pk3dir enabled because it already exists
Repository mediasource disabled by default, create mediasource.yes to enable
Repository fteqcc enabled because it already exists
Repository gmqcc enabled because it already exists
Repository xonstat disabled by default, create xonstat.yes to enable
Repository xonstatdb disabled by default, create xonstatdb.yes to enable
*** release-engine-win64 : start
+ /xonotic/all release-compile win64 STRIP=: DP_MAKE_TARGET=mingw UNAME=MINGW32
CC="amd64-mingw32msvc-gcc -g1 -Wl,--dynamicbase -Wl,--nxcompat -I.deps/include -
L.deps/lib -DSUPPORTIPV6" WINDRES="amd64-mingw32msvc-windres" SDL_CONFIG=".deps/
bin/sdl-config" LIB_JPEG= CFLAGS_LIBJPEG= WIN64RELEASE=1 D3D=1 gmqcc.exe gmqcc.e
xe:Xonotic/gmqcc/gmqcc-x64.exe win fteqcc.exe:Xonotic/fteqcc/fteqcc.exe release
darkplaces.exe:Xonotic/xonotic-x64.exe darkplaces-sdl.exe:Xonotic/xonotic-x64-sd
l.exe darkplaces-dedicated.exe:Xonotic/xonotic-x64-dedicated.exe
Found main repo = git://de.git.xonotic.org/xonotic/
Repository . enabled because it already exists
Repository data/xonotic-data.pk3dir enabled because it already exists
Repository data/xonotic-music.pk3dir enabled because it already exists
Repository data/xonotic-nexcompat.pk3dir disabled by default, create data/xonoti
c-nexcompat.pk3dir.yes to enable
Repository darkplaces enabled because it already exists
Repository netradiant enabled because it already exists
Repository div0-gittools disabled by default, create div0-gittools.yes to enable

Repository d0_blind_id enabled because it already exists
Repository data/xonotic-maps.pk3dir enabled because it already exists
Repository mediasource disabled by default, create mediasource.yes to enable
Repository fteqcc enabled because it already exists
Repository gmqcc enabled because it already exists
Repository xonstat disabled by default, create xonstat.yes to enable
Repository xonstatdb disabled by default, create xonstatdb.yes to enable
*** release-compile : start
+ /xonotic/all release-compile-run xonotic-build-win64 /tmp/gmqcc.build.win64 gm
qcc.exe STRIP=: DP_MAKE_TARGET=mingw UNAME=MINGW32 CC="amd64-mingw32msvc-gcc -g1
-Wl,--dynamicbase -Wl,--nxcompat -I.deps/include -L.deps/lib -DSUPPORTIPV6" WIN
DRES="amd64-mingw32msvc-windres" SDL_CONFIG=".deps/bin/sdl-config" LIB_JPEG= CFL
AGS_LIBJPEG= WIN64RELEASE=1 D3D=1 Xonotic/source/gmqcc /xonotic/misc/builddeps/d
p.win64 gmqcc.exe:Xonotic/gmqcc/gmqcc-x64.exe
Found main repo = git://de.git.xonotic.org/xonotic/
Repository . enabled because it already exists
Repository data/xonotic-data.pk3dir enabled because it already exists
Repository data/xonotic-music.pk3dir enabled because it already exists
Repository data/xonotic-nexcompat.pk3dir disabled by default, create data/xonoti
c-nexcompat.pk3dir.yes to enable
Repository darkplaces enabled because it already exists
Repository netradiant enabled because it already exists
Repository div0-gittools disabled by default, create div0-gittools.yes to enable

Repository d0_blind_id enabled because it already exists
Repository data/xonotic-maps.pk3dir enabled because it already exists
Repository mediasource disabled by default, create mediasource.yes to enable
Repository fteqcc enabled because it already exists
Repository gmqcc enabled because it already exists
Repository xonstat disabled by default, create xonstat.yes to enable
Repository xonstatdb disabled by default, create xonstatdb.yes to enable
*** release-compile-run : start
++ '[' -n gmqcc.exe:Xonotic/gmqcc/gmqcc-x64.exe ']'
++ case " $HOSTS_THAT_ARE_DISABLED " in
++ case " $HOSTS_THAT_ARE_MYSELF " in
++ verbose rsync --delete -zLvaSHP Xonotic/source/gmqcc/ xonotic-build-win64:/tm
p/gmqcc.build.win64/
++ msg '+ rsync --delete -zLvaSHP Xonotic/source/gmqcc/ xonotic-build-win64:/tmp
/gmqcc.build.win64/'
++ echo '+ rsync --delete -zLvaSHP Xonotic/source/gmqcc/ xonotic-build-win64:/tm
p/gmqcc.build.win64/'
+ rsync --delete -zLvaSHP Xonotic/source/gmqcc/ xonotic-build-win64:/tmp/gmqcc.b
uild.win64/
++ rsync --delete -zLvaSHP Xonotic/source/gmqcc/ xonotic-build-win64:/tmp/gmqcc.
build.win64/
/xonotic/../all.xonotic.sh: line 73: rsync: command not found
+ release_end
++ date +%s
+ release_endtime=1367813814
+ release_deltatime=0
+ msg '*** release-compile-run : 0 seconds'
+ echo '*** release-compile-run : 0 seconds'
*** release-compile-run : 0 seconds
*** release-compile : 1 seconds
*** release-engine-win64 : 1 seconds
Mike@HOME1 /xonotic (master)
$


Is this output helpfull somehow?
Reply

#8
You need to get rsync accessible from the msysgit shell somehow. I don't use msysgit so I can't help you with that, I would have to try for myself first. Search the web, I guess.
Reply



Possibly Related Threads…
Thread Author Replies Views Last Post
Question [NEED HELP] After a successful build & compile (0.8.5): This script is not properly set up yet. John 1 1,107 01-27-2024, 12:07 AM
Last Post: John
  [NEEDS INFO] Xonotic settings file on linux ArchBerrie 2 5,548 07-15-2021, 03:18 AM
Last Post: ArchBerrie
  USB Mouse input on Linux dagelf 1 2,509 10-07-2020, 06:14 PM
Last Post: BuddyFriendGuy
Question [NEED HELP] How to use textures for radiant(win version)? (solved) Kotangens 4 3,406 08-12-2020, 01:33 AM
Last Post: Kotangens
  [BUG] some textures won't load with git builds lister 2 2,772 01-17-2020, 06:09 PM
Last Post: LuckyStripe
  [NEED HELP] Keybindings not recognized when using the SDL launcher naw 1 2,303 09-02-2019, 05:38 AM
Last Post: naw
  [NEEDS INFO] Corsair Strafe input lag in Linux Mint? FAF 1 1,867 08-18-2019, 03:14 AM
Last Post: FAF
  [NEED HELP] Add Bots using Console in Xonotic OpenSourceGames 1 9,093 08-09-2019, 10:16 AM
Last Post: martin-t
  [NEED HELP] Missclick on Linux Mint Mate 19 RanDoom 4 3,653 04-23-2019, 01:41 PM
Last Post: RanDoom
  [NEED HELP] NetRadiant doesn't compile on Mac nokko 3 3,235 03-29-2019, 11:19 AM
Last Post: Freddy

Forum Jump:


Users browsing this thread:
2 Guest(s)

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