Closed andrijan closed 3 years ago
No problem! On Windows you'll want to use MinGW: https://osdn.net/projects/mingw/releases/p15522
I also recommend including the path to command-line git in your MinGW environment: https://stackoverflow.com/a/6093805/2005867
Then it should be this easy:
git clone https://github.com/aq2-tng/aq2-tng.git
cd aq2-tng/source
make
If it works, it'll make gamex86.dll in the aq2-tng/source directory.
Feel free to re-open this ticket if you're still having troubles building it.
Hey again! just got the itch again. Below is the output from make
- I get a gamex86.dll file, but when loading it (via game action
) it just loads the default baseq2 dll file it seems. All the assets are from action, but the weapons and such are from baseq2, which is the default behavior with a broken .dll file if I remember correctly. Any idea what's wrong?
andrijan@andrijan-win MINGW64 ~/aq2-tng/source (master)
$ make
gcc -Wall -fno-strict-aliasing -DC_ONLY -DVERSION="\"2.81 2020-05-20 16b2e20\"" -O2 -DWIN32 -o a_cmds.o -c a_cmds.c
In file included from g_local.h:272,
from a_cmds.c:134:
game.h:131:9: warning: 'callee_pop_aggregate_return' attribute only available for 32-bit [-Wattributes]
edict_t * passent, int contentmask);
^~~~~~~
gcc -Wall -fno-strict-aliasing -DC_ONLY -DVERSION="\"2.81 2020-05-20 16b2e20\"" -O2 -DWIN32 -o a_ctf.o -c a_ctf.c
In file included from g_local.h:272,
from a_ctf.c:50:
game.h:131:9: warning: 'callee_pop_aggregate_return' attribute only available for 32-bit [-Wattributes]
edict_t * passent, int contentmask);
^~~~~~~
gcc -Wall -fno-strict-aliasing -DC_ONLY -DVERSION="\"2.81 2020-05-20 16b2e20\"" -O2 -DWIN32 -o a_doorkick.o -c a_doorkick.c
In file included from g_local.h:272,
from a_doorkick.c:20:
game.h:131:9: warning: 'callee_pop_aggregate_return' attribute only available for 32-bit [-Wattributes]
edict_t * passent, int contentmask);
^~~~~~~
gcc -Wall -fno-strict-aliasing -DC_ONLY -DVERSION="\"2.81 2020-05-20 16b2e20\"" -O2 -DWIN32 -o a_game.o -c a_game.c
In file included from g_local.h:272,
from a_game.c:72:
game.h:131:9: warning: 'callee_pop_aggregate_return' attribute only available for 32-bit [-Wattributes]
edict_t * passent, int contentmask);
^~~~~~~
a_game.c: In function 'PrintMOTD':
a_game.c:338:6: warning: 'strncat' output may be truncated copying 39 bytes from a string of length 127 [-Wstringop-truncation]
strncat(msg_buf + strlen(msg_buf), ctfgame.comment, 39);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
gcc -Wall -fno-strict-aliasing -DC_ONLY -DVERSION="\"2.81 2020-05-20 16b2e20\"" -O2 -DWIN32 -o a_items.o -c a_items.c
In file included from g_local.h:272,
from a_items.c:36:
game.h:131:9: warning: 'callee_pop_aggregate_return' attribute only available for 32-bit [-Wattributes]
edict_t * passent, int contentmask);
^~~~~~~
gcc -Wall -fno-strict-aliasing -DC_ONLY -DVERSION="\"2.81 2020-05-20 16b2e20\"" -O2 -DWIN32 -o a_match.o -c a_match.c
In file included from g_local.h:272,
from a_match.c:56:
game.h:131:9: warning: 'callee_pop_aggregate_return' attribute only available for 32-bit [-Wattributes]
edict_t * passent, int contentmask);
^~~~~~~
gcc -Wall -fno-strict-aliasing -DC_ONLY -DVERSION="\"2.81 2020-05-20 16b2e20\"" -O2 -DWIN32 -o a_menu.o -c a_menu.c
In file included from g_local.h:272,
from a_menu.c:15:
game.h:131:9: warning: 'callee_pop_aggregate_return' attribute only available for 32-bit [-Wattributes]
edict_t * passent, int contentmask);
^~~~~~~
gcc -Wall -fno-strict-aliasing -DC_ONLY -DVERSION="\"2.81 2020-05-20 16b2e20\"" -O2 -DWIN32 -o a_radio.o -c a_radio.c
In file included from g_local.h:272,
from a_radio.c:30:
game.h:131:9: warning: 'callee_pop_aggregate_return' attribute only available for 32-bit [-Wattributes]
edict_t * passent, int contentmask);
^~~~~~~
gcc -Wall -fno-strict-aliasing -DC_ONLY -DVERSION="\"2.81 2020-05-20 16b2e20\"" -O2 -DWIN32 -o a_team.o -c a_team.c
In file included from g_local.h:272,
from a_team.c:305:
game.h:131:9: warning: 'callee_pop_aggregate_return' attribute only available for 32-bit [-Wattributes]
edict_t * passent, int contentmask);
^~~~~~~
gcc -Wall -fno-strict-aliasing -DC_ONLY -DVERSION="\"2.81 2020-05-20 16b2e20\"" -O2 -DWIN32 -o a_tourney.o -c a_tourney.c
In file included from g_local.h:272,
from a_tourney.c:16:
game.h:131:9: warning: 'callee_pop_aggregate_return' attribute only available for 32-bit [-Wattributes]
edict_t * passent, int contentmask);
^~~~~~~
gcc -Wall -fno-strict-aliasing -DC_ONLY -DVERSION="\"2.81 2020-05-20 16b2e20\"" -O2 -DWIN32 -o a_vote.o -c a_vote.c
In file included from g_local.h:272,
from a_vote.c:63:
game.h:131:9: warning: 'callee_pop_aggregate_return' attribute only available for 32-bit [-Wattributes]
edict_t * passent, int contentmask);
^~~~~~~
gcc -Wall -fno-strict-aliasing -DC_ONLY -DVERSION="\"2.81 2020-05-20 16b2e20\"" -O2 -DWIN32 -o a_xcmds.o -c a_xcmds.c
In file included from g_local.h:272,
from a_xcmds.c:72:
game.h:131:9: warning: 'callee_pop_aggregate_return' attribute only available for 32-bit [-Wattributes]
edict_t * passent, int contentmask);
^~~~~~~
gcc -Wall -fno-strict-aliasing -DC_ONLY -DVERSION="\"2.81 2020-05-20 16b2e20\"" -O2 -DWIN32 -o a_xgame.o -c a_xgame.c
In file included from g_local.h:272,
from a_xgame.c:71:
game.h:131:9: warning: 'callee_pop_aggregate_return' attribute only available for 32-bit [-Wattributes]
edict_t * passent, int contentmask);
^~~~~~~
gcc -Wall -fno-strict-aliasing -DC_ONLY -DVERSION="\"2.81 2020-05-20 16b2e20\"" -O2 -DWIN32 -o a_xmenu.o -c a_xmenu.c
In file included from g_local.h:272,
from a_xmenu.c:16:
game.h:131:9: warning: 'callee_pop_aggregate_return' attribute only available for 32-bit [-Wattributes]
edict_t * passent, int contentmask);
^~~~~~~
gcc -Wall -fno-strict-aliasing -DC_ONLY -DVERSION="\"2.81 2020-05-20 16b2e20\"" -O2 -DWIN32 -o a_xvote.o -c a_xvote.c
In file included from g_local.h:272,
from a_xvote.c:24:
game.h:131:9: warning: 'callee_pop_aggregate_return' attribute only available for 32-bit [-Wattributes]
edict_t * passent, int contentmask);
^~~~~~~
gcc -Wall -fno-strict-aliasing -DC_ONLY -DVERSION="\"2.81 2020-05-20 16b2e20\"" -O2 -DWIN32 -o cgf_sfx_glass.o -c cgf_sfx_glass.c
In file included from g_local.h:272,
from cgf_sfx_glass.c:43:
game.h:131:9: warning: 'callee_pop_aggregate_return' attribute only available for 32-bit [-Wattributes]
edict_t * passent, int contentmask);
^~~~~~~
gcc -Wall -fno-strict-aliasing -DC_ONLY -DVERSION="\"2.81 2020-05-20 16b2e20\"" -O2 -DWIN32 -o g_chase.o -c g_chase.c
In file included from g_local.h:272,
from g_chase.c:31:
game.h:131:9: warning: 'callee_pop_aggregate_return' attribute only available for 32-bit [-Wattributes]
edict_t * passent, int contentmask);
^~~~~~~
gcc -Wall -fno-strict-aliasing -DC_ONLY -DVERSION="\"2.81 2020-05-20 16b2e20\"" -O2 -DWIN32 -o g_cmds.o -c g_cmds.c
In file included from g_local.h:272,
from g_cmds.c:214:
game.h:131:9: warning: 'callee_pop_aggregate_return' attribute only available for 32-bit [-Wattributes]
edict_t * passent, int contentmask);
^~~~~~~
gcc -Wall -fno-strict-aliasing -DC_ONLY -DVERSION="\"2.81 2020-05-20 16b2e20\"" -O2 -DWIN32 -o g_combat.o -c g_combat.c
In file included from g_local.h:272,
from g_combat.c:116:
game.h:131:9: warning: 'callee_pop_aggregate_return' attribute only available for 32-bit [-Wattributes]
edict_t * passent, int contentmask);
^~~~~~~
gcc -Wall -fno-strict-aliasing -DC_ONLY -DVERSION="\"2.81 2020-05-20 16b2e20\"" -O2 -DWIN32 -o g_func.o -c g_func.c
In file included from g_local.h:272,
from g_func.c:29:
game.h:131:9: warning: 'callee_pop_aggregate_return' attribute only available for 32-bit [-Wattributes]
edict_t * passent, int contentmask);
^~~~~~~
gcc -Wall -fno-strict-aliasing -DC_ONLY -DVERSION="\"2.81 2020-05-20 16b2e20\"" -O2 -DWIN32 -o g_items.o -c g_items.c
In file included from g_local.h:272,
from g_items.c:69:
game.h:131:9: warning: 'callee_pop_aggregate_return' attribute only available for 32-bit [-Wattributes]
edict_t * passent, int contentmask);
^~~~~~~
gcc -Wall -fno-strict-aliasing -DC_ONLY -DVERSION="\"2.81 2020-05-20 16b2e20\"" -O2 -DWIN32 -o g_main.o -c g_main.c
In file included from g_local.h:272,
from g_main.c:272:
game.h:131:9: warning: 'callee_pop_aggregate_return' attribute only available for 32-bit [-Wattributes]
edict_t * passent, int contentmask);
^~~~~~~
gcc -Wall -fno-strict-aliasing -DC_ONLY -DVERSION="\"2.81 2020-05-20 16b2e20\"" -O2 -DWIN32 -o g_misc.o -c g_misc.c
In file included from g_local.h:272,
from g_misc.c:31:
game.h:131:9: warning: 'callee_pop_aggregate_return' attribute only available for 32-bit [-Wattributes]
edict_t * passent, int contentmask);
^~~~~~~
gcc -Wall -fno-strict-aliasing -DC_ONLY -DVERSION="\"2.81 2020-05-20 16b2e20\"" -O2 -DWIN32 -o g_phys.o -c g_phys.c
In file included from g_local.h:272,
from g_phys.c:16:
game.h:131:9: warning: 'callee_pop_aggregate_return' attribute only available for 32-bit [-Wattributes]
edict_t * passent, int contentmask);
^~~~~~~
gcc -Wall -fno-strict-aliasing -DC_ONLY -DVERSION="\"2.81 2020-05-20 16b2e20\"" -O2 -DWIN32 -o g_save.o -c g_save.c
In file included from g_local.h:272,
from g_save.c:255:
game.h:131:9: warning: 'callee_pop_aggregate_return' attribute only available for 32-bit [-Wattributes]
edict_t * passent, int contentmask);
^~~~~~~
gcc -Wall -fno-strict-aliasing -DC_ONLY -DVERSION="\"2.81 2020-05-20 16b2e20\"" -O2 -DWIN32 -o g_spawn.o -c g_spawn.c
In file included from g_local.h:272,
from g_spawn.c:155:
game.h:131:9: warning: 'callee_pop_aggregate_return' attribute only available for 32-bit [-Wattributes]
edict_t * passent, int contentmask);
^~~~~~~
gcc -Wall -fno-strict-aliasing -DC_ONLY -DVERSION="\"2.81 2020-05-20 16b2e20\"" -O2 -DWIN32 -o g_svcmds.o -c g_svcmds.c
In file included from g_local.h:272,
from g_svcmds.c:61:
game.h:131:9: warning: 'callee_pop_aggregate_return' attribute only available for 32-bit [-Wattributes]
edict_t * passent, int contentmask);
^~~~~~~
gcc -Wall -fno-strict-aliasing -DC_ONLY -DVERSION="\"2.81 2020-05-20 16b2e20\"" -O2 -DWIN32 -o g_target.o -c g_target.c
In file included from g_local.h:272,
from g_target.c:16:
game.h:131:9: warning: 'callee_pop_aggregate_return' attribute only available for 32-bit [-Wattributes]
edict_t * passent, int contentmask);
^~~~~~~
gcc -Wall -fno-strict-aliasing -DC_ONLY -DVERSION="\"2.81 2020-05-20 16b2e20\"" -O2 -DWIN32 -o g_trigger.o -c g_trigger.c
In file included from g_local.h:272,
from g_trigger.c:16:
game.h:131:9: warning: 'callee_pop_aggregate_return' attribute only available for 32-bit [-Wattributes]
edict_t * passent, int contentmask);
^~~~~~~
gcc -Wall -fno-strict-aliasing -DC_ONLY -DVERSION="\"2.81 2020-05-20 16b2e20\"" -O2 -DWIN32 -o g_utils.o -c g_utils.c
In file included from g_local.h:272,
from g_utils.c:16:
game.h:131:9: warning: 'callee_pop_aggregate_return' attribute only available for 32-bit [-Wattributes]
edict_t * passent, int contentmask);
^~~~~~~
gcc -Wall -fno-strict-aliasing -DC_ONLY -DVERSION="\"2.81 2020-05-20 16b2e20\"" -O2 -DWIN32 -o g_weapon.o -c g_weapon.c
In file included from g_local.h:272,
from g_weapon.c:71:
game.h:131:9: warning: 'callee_pop_aggregate_return' attribute only available for 32-bit [-Wattributes]
edict_t * passent, int contentmask);
^~~~~~~
gcc -Wall -fno-strict-aliasing -DC_ONLY -DVERSION="\"2.81 2020-05-20 16b2e20\"" -O2 -DWIN32 -o p_client.o -c p_client.c
In file included from g_local.h:272,
from p_client.c:319:
game.h:131:9: warning: 'callee_pop_aggregate_return' attribute only available for 32-bit [-Wattributes]
edict_t * passent, int contentmask);
^~~~~~~
p_client.c:2808:1: warning: 'callee_pop_aggregate_return' attribute only available for 32-bit [-Wattributes]
{
^
gcc -Wall -fno-strict-aliasing -DC_ONLY -DVERSION="\"2.81 2020-05-20 16b2e20\"" -O2 -DWIN32 -o p_hud.o -c p_hud.c
In file included from g_local.h:272,
from p_hud.c:52:
game.h:131:9: warning: 'callee_pop_aggregate_return' attribute only available for 32-bit [-Wattributes]
edict_t * passent, int contentmask);
^~~~~~~
gcc -Wall -fno-strict-aliasing -DC_ONLY -DVERSION="\"2.81 2020-05-20 16b2e20\"" -O2 -DWIN32 -o p_view.o -c p_view.c
In file included from g_local.h:272,
from p_view.c:79:
game.h:131:9: warning: 'callee_pop_aggregate_return' attribute only available for 32-bit [-Wattributes]
edict_t * passent, int contentmask);
^~~~~~~
gcc -Wall -fno-strict-aliasing -DC_ONLY -DVERSION="\"2.81 2020-05-20 16b2e20\"" -O2 -DWIN32 -o p_weapon.o -c p_weapon.c
In file included from g_local.h:272,
from p_weapon.c:97:
game.h:131:9: warning: 'callee_pop_aggregate_return' attribute only available for 32-bit [-Wattributes]
edict_t * passent, int contentmask);
^~~~~~~
gcc -Wall -fno-strict-aliasing -DC_ONLY -DVERSION="\"2.81 2020-05-20 16b2e20\"" -O2 -DWIN32 -o q_shared.o -c q_shared.c
gcc -Wall -fno-strict-aliasing -DC_ONLY -DVERSION="\"2.81 2020-05-20 16b2e20\"" -O2 -DWIN32 -o tng_stats.o -c tng_stats.c
In file included from g_local.h:272,
from tng_stats.c:70:
game.h:131:9: warning: 'callee_pop_aggregate_return' attribute only available for 32-bit [-Wattributes]
edict_t * passent, int contentmask);
^~~~~~~
gcc -Wall -fno-strict-aliasing -DC_ONLY -DVERSION="\"2.81 2020-05-20 16b2e20\"" -O2 -DWIN32 -o tng_flashlight.o -c tng_flashlight.c
In file included from g_local.h:272,
from tng_flashlight.c:1:
game.h:131:9: warning: 'callee_pop_aggregate_return' attribute only available for 32-bit [-Wattributes]
edict_t * passent, int contentmask);
^~~~~~~
gcc -Wall -fno-strict-aliasing -DC_ONLY -DVERSION="\"2.81 2020-05-20 16b2e20\"" -O2 -DWIN32 -o tng_irc.o -c tng_irc.c
In file included from g_local.h:272,
from tng_irc.c:39:
game.h:131:9: warning: 'callee_pop_aggregate_return' attribute only available for 32-bit [-Wattributes]
edict_t * passent, int contentmask);
^~~~~~~
tng_irc.c: In function 'irc_connect':
tng_irc.c:207:3: warning: 'strncpy' specified bound 2048 equals destination size [-Wstringop-truncation]
strncpy (irc_data.ircserver, ircserver->string, IRC_BUFLEN);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
tng_irc.c:208:3: warning: 'strncpy' specified bound 2048 equals destination size [-Wstringop-truncation]
strncpy (irc_data.ircuser, ircuser->string, IRC_BUFLEN);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
tng_irc.c:209:3: warning: 'strncpy' specified bound 2048 equals destination size [-Wstringop-truncation]
strncpy (irc_data.ircpasswd, ircpasswd->string, IRC_BUFLEN);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
tng_irc.c:210:3: warning: 'strncpy' specified bound 2048 equals destination size [-Wstringop-truncation]
strncpy (irc_data.ircchannel, ircchannel->string, IRC_BUFLEN);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
tng_irc.c: In function 'IRC_printf':
tng_irc.c:647:33: warning: '%s' directive writing up to 2047 bytes into a region of size 2040 [-Wformat-overflow=]
sprintf (outbuf, "PRIVMSG %s :%s\n", irc_data.ircchannel, message);
^~ ~~~~~~~~~~~~~~~~~~~
tng_irc.c:647:7: note: 'sprintf' output between 12 and 3978 bytes into a destination of size 2048
sprintf (outbuf, "PRIVMSG %s :%s\n", irc_data.ircchannel, message);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
gcc -Wall -fno-strict-aliasing -DC_ONLY -DVERSION="\"2.81 2020-05-20 16b2e20\"" -O2 -DWIN32 -o tng_ini.o -c tng_ini.c
In file included from g_local.h:272,
from tng_ini.c:1:
game.h:131:9: warning: 'callee_pop_aggregate_return' attribute only available for 32-bit [-Wattributes]
edict_t * passent, int contentmask);
^~~~~~~
gcc -Wall -fno-strict-aliasing -DC_ONLY -DVERSION="\"2.81 2020-05-20 16b2e20\"" -O2 -DWIN32 -o tng_balancer.o -c tng_balancer.c
In file included from g_local.h:272,
from tng_balancer.c:1:
game.h:131:9: warning: 'callee_pop_aggregate_return' attribute only available for 32-bit [-Wattributes]
edict_t * passent, int contentmask);
^~~~~~~
gcc -Wall -fno-strict-aliasing -DC_ONLY -DVERSION="\"2.81 2020-05-20 16b2e20\"" -O2 -DWIN32 -o g_grapple.o -c g_grapple.c
In file included from g_local.h:272,
from g_grapple.c:1:
game.h:131:9: warning: 'callee_pop_aggregate_return' attribute only available for 32-bit [-Wattributes]
edict_t * passent, int contentmask);
^~~~~~~
gcc -Wall -fno-strict-aliasing -DC_ONLY -DVERSION="\"2.81 2020-05-20 16b2e20\"" -O2 -DWIN32 -o a_dom.o -c a_dom.c
In file included from g_local.h:272,
from a_dom.c:3:
game.h:131:9: warning: 'callee_pop_aggregate_return' attribute only available for 32-bit [-Wattributes]
edict_t * passent, int contentmask);
^~~~~~~
gcc -Wall -fno-strict-aliasing -DC_ONLY -DVERSION="\"2.81 2020-05-20 16b2e20\"" -O2 -DWIN32 -o tng_jump.o -c tng_jump.c
In file included from g_local.h:272,
from tng_jump.c:1:
game.h:131:9: warning: 'callee_pop_aggregate_return' attribute only available for 32-bit [-Wattributes]
edict_t * passent, int contentmask);
^~~~~~~
gcc -Wall -fno-strict-aliasing -DC_ONLY -DVERSION="\"2.81 2020-05-20 16b2e20\"" -O2 -DWIN32 -shared -o gamex86.dll a_cmds.o a_ctf.o a_doorkick.o a_game.o a_items.o a_match.o a_menu.o a_radio.o a_team.o a_tourney.o a_vote.o a_xcmds.o a_xgame.o a_xmenu.o a_xvote.o cgf_sfx_glass.o g_chase.o g_cmds.o g_combat.o g_func.o g_items.o g_main.o g_misc.o g_phys.o g_save.o g_spawn.o g_svcmds.o g_target.o g_trigger.o g_utils.o g_weapon.o p_client.o p_hud.o p_view.o p_weapon.o q_shared.o tng_stats.o tng_flashlight.o tng_irc.o tng_ini.o tng_balancer.o g_grapple.o a_dom.o tng_jump.o -lws2_32
The warning: 'callee_pop_aggregate_return' attribute only available for 32-bit
is telling me that it's trying to build as a 64-bit DLL rather than the 32-bit Quake2 needs. It should be adding -m32
to the gcc command line, but for some reason it isn't.
Try this:
make X86=y ARCH=x86
If that works, I'll just need to improve the detection of MinGW64/MSYS2 in the Makefile.
Also, what does it say when you type uname -m
in your MinGW environment?
Thanks, I guess I just botched up my MinGW install :) It works now (By installing again the correct way)
Glad you got it working!
I should probably still add detection of the MinGW64 environment and add -m32
in that case.
Hey there!
Sorry for creating an issue here, but it was the only way I could reach you :)
About 5 years ago I was toying around modding AQ2, by adding Proximity mines, invisibility cloak and silly stuff like that. (https://github.com/andrijan/ajaq)
Now, I've been revisiting the idea of continuing the modding experience and I was delighted to find someone had picked up TNG!
Anyway, I've been searching the web trying to find a way to compile the source code for windows (gamex86.dll). The best I could find was https://www.quakewiki.net/archives/qdevels/lcccompile.html - But that's not working for me
(Just to provide a minor context, it probably doesn't mean anything, but this is the error I get when compiling)
Do you have a way to create the gamex86.dll (It doesn't have to be compiled on Windows, if that's possible)