MinGW build fixes (#187)

This commit is contained in:
Alexey 2016-06-25 18:59:14 +03:00 committed by Alibek Omarov
parent 9efab476fe
commit c708dab58f
21 changed files with 177 additions and 79 deletions

136
cl_dll/Makefile.mingw Normal file
View File

@ -0,0 +1,136 @@
CC= gcc -m32
CXX = g++ -m32
SRCS := \
./cdll_int.cpp \
./demo.cpp \
./entity.cpp \
./in_camera.cpp \
./input.cpp \
./parsemsg.cpp \
./rain.cpp \
./tri.cpp \
./util.cpp \
./view.cpp \
./input_xash3d.cpp \
./vgui_parser.cpp \
./unicode_strtools.cpp \
./draw_util.cpp \
./studio/GameStudioModelRenderer.cpp \
./studio/StudioModelRenderer.cpp \
./studio/studio_util.cpp \
./hud/ammo.cpp \
./hud/ammo_secondary.cpp \
./hud/ammohistory.cpp \
./hud/battery.cpp \
./hud/geiger.cpp \
./hud/health.cpp \
./hud/hud.cpp \
./hud/hud_msg.cpp \
./hud/hud_redraw.cpp \
./hud/hud_spectator.cpp \
./hud/hud_update.cpp \
./hud/sniperscope.cpp \
./hud/nvg.cpp \
./hud/menu.cpp \
./hud/message.cpp \
./hud/status_icons.cpp \
./hud/statusbar.cpp \
./hud/text_message.cpp \
./hud/train.cpp \
./hud/scoreboard.cpp \
./hud/MOTD.cpp \
./hud/radio.cpp \
./hud/radar.cpp \
./hud/timer.cpp \
./hud/money.cpp \
./hud/flashlight.cpp \
./hud/death.cpp \
./hud/saytext.cpp \
./hud/spectator_gui.cpp \
./com_weapons.cpp \
./cs_wpn/cs_baseentity.cpp \
./cs_wpn/cs_objects.cpp \
./cs_wpn/cs_weapons.cpp \
../dlls/wpn_shared/wpn_ak47.cpp \
../dlls/wpn_shared/wpn_aug.cpp \
../dlls/wpn_shared/wpn_awp.cpp \
../dlls/wpn_shared/wpn_c4.cpp \
../dlls/wpn_shared/wpn_deagle.cpp \
../dlls/wpn_shared/wpn_elite.cpp \
../dlls/wpn_shared/wpn_famas.cpp \
../dlls/wpn_shared/wpn_fiveseven.cpp \
../dlls/wpn_shared/wpn_flashbang.cpp \
../dlls/wpn_shared/wpn_g3sg1.cpp \
../dlls/wpn_shared/wpn_galil.cpp \
../dlls/wpn_shared/wpn_glock18.cpp \
../dlls/wpn_shared/wpn_hegrenade.cpp \
../dlls/wpn_shared/wpn_knife.cpp \
../dlls/wpn_shared/wpn_m249.cpp \
../dlls/wpn_shared/wpn_m3.cpp \
../dlls/wpn_shared/wpn_m4a1.cpp \
../dlls/wpn_shared/wpn_mac10.cpp \
../dlls/wpn_shared/wpn_mp5navy.cpp \
../dlls/wpn_shared/wpn_p228.cpp \
../dlls/wpn_shared/wpn_p90.cpp \
../dlls/wpn_shared/wpn_scout.cpp \
../dlls/wpn_shared/wpn_sg550.cpp \
../dlls/wpn_shared/wpn_sg552.cpp \
../dlls/wpn_shared/wpn_smokegrenade.cpp \
../dlls/wpn_shared/wpn_tmp.cpp \
../dlls/wpn_shared/wpn_ump45.cpp \
../dlls/wpn_shared/wpn_usp.cpp \
../dlls/wpn_shared/wpn_xm1014.cpp \
./events/ev_cs16.cpp \
./events/event_ak47.cpp \
./events/event_aug.cpp \
./events/event_awp.cpp \
./events/event_createexplo.cpp \
./events/event_createsmoke.cpp \
./events/event_deagle.cpp \
./events/event_decal_reset.cpp \
./events/event_elite_left.cpp \
./events/event_elite_right.cpp \
./events/event_famas.cpp \
./events/event_fiveseven.cpp \
./events/event_g3sg1.cpp \
./events/event_galil.cpp \
./events/event_glock18.cpp \
./events/event_knife.cpp \
./events/event_m249.cpp \
./events/event_m3.cpp \
./events/event_m4a1.cpp \
./events/event_mac10.cpp \
./events/event_mp5n.cpp \
./events/event_p228.cpp \
./events/event_p90.cpp \
./events/event_scout.cpp \
./events/event_sg550.cpp \
./events/event_sg552.cpp \
./events/event_tmp.cpp \
./events/event_ump45.cpp \
./events/event_usp.cpp \
./events/event_vehicle.cpp \
./events/event_xm1014.cpp \
./events/hl_events.cpp \
./ev_common.cpp \
./events.cpp
SRCS_C := \
../pm_shared/pm_debug.c \
../pm_shared/pm_math.c \
../pm_shared/pm_shared.c
INCLUDES = -Iinclude -Iinclude/hud -Iinclude/studio -Iinclude/math -I../common -I. -I../game_shared -I../pm_shared -I../engine -I../dlls -I../public
DEFINES = -Wno-write-strings -DCLIENT_DLL=1 -DCLIENT_WEAPONS=1
CFLAGS = -Og -ggdb
OBJS = $(SRCS:.cpp=.o) $(SRCS_C:.c=.o)
%.o : %.c
$(CC) $(CFLAGS) -std=c99 $(INCLUDES) $(DEFINES) -c $< -o $@
%.o : %.cpp
$(CXX) $(CFLAGS) -std=gnu++11 $(INCLUDES) $(DEFINES) -fpermissive -c $< -o $@
client.dll : $(OBJS)
g++ -static-libgcc -static-libstdc++ -shared -Wl,--add-stdcall-alias -o client.dll $(OBJS)
#$(CXX) $(OBJS) -shared -o client.dll -Wl,--no-undefined -lm
clean:
$(RM) $(OBJS)

View File

@ -32,12 +32,6 @@ extern "C"
#include "render_api.h"
#include "mobility_int.h"
#ifdef _WIN32
#define DLLEXPORT __declspec( dllexport )
#else
#define DLLEXPORT
#endif
cl_enginefunc_t gEngfuncs = { 0 };
render_api_t gRenderAPI = { 0 };
mobile_engfuncs_t gMobileAPI = { 0 };

View File

@ -17,11 +17,7 @@
#include "demo.h"
#include "demo_api.h"
#include <memory.h>
#ifdef _WIN32
#define DLLEXPORT __declspec( dllexport )
#else
#define DLLEXPORT
#endif
int g_demosniper = 0;
int g_demosniperdamage = 0;
float g_demosniperorg[3];

View File

@ -20,12 +20,6 @@
#include "pmtrace.h"
#include "pm_shared.h"
#ifdef _WIN32
#define DLLEXPORT __declspec( dllexport )
#else
#define DLLEXPORT
#endif
void Game_AddObjects( void );
extern vec3_t v_origin;

View File

@ -29,19 +29,14 @@ typedef unsigned char byte;
typedef unsigned short word;
typedef float vec_t;
typedef int (*pfnUserMsgHook)(const char *pszName, int iSize, void *pbuf);
#define _cdecl
#include "util_vector.h"
#ifdef _WIN32
#define EXPORT _declspec( dllexport )
#else
#define EXPORT
#define stricmp strcasecmp
#define strnicmp strncasecmp
#define stristr strcasestr
#define strnistr strncasestr
#endif
#include "../engine/cdll_int.h"
#include "../dlls/cdll_dll.h"
#include "exportdef.h"
#include "render_api.h"
#include "mobility_int.h"
extern cl_enginefunc_t gEngfuncs;

View File

@ -7,13 +7,9 @@
#pragma once
#if !defined( HUD_IFACEH )
#define HUD_IFACEH
#ifdef _WIN32
#define EXPORT _declspec( dllexport )
#define _DLLEXPORT __declspec( dllexport )
#else
#define EXPORT
#define _DLLEXPORT
#endif
#include "exportdef.h"
typedef int (*pfnUserMsgHook)(const char *pszName, int iSize, void *pbuf);
#include "wrect.h"
#include "../engine/cdll_int.h"

View File

@ -16,9 +16,8 @@
#define ROLL 2
#ifdef _WIN32
#define DLLEXPORT __declspec( dllexport )
#include <windows.h>
#else
#define DLLEXPORT
#ifndef PORT_H
typedef struct point_s{
int x;

View File

@ -5,7 +5,6 @@
#include "keydefs.h"
cvar_t *sensitivity;
cvar_t *in_joystick;
#define DLLEXPORT
#define PITCH 0
#define YAW 1
#define ROLL 2
@ -225,7 +224,7 @@ void IN_Move( float frametime, usercmd_t *cmd )
ac_movecount = 0;
}
extern "C" void IN_MouseEvent( int mstate )
extern "C" DLLEXPORT void IN_MouseEvent( int mstate )
{
static int mouse_oldbuttonstate;
// perform button actions
@ -248,22 +247,22 @@ extern "C" void IN_MouseEvent( int mstate )
// Stubs
extern "C" void IN_ClearStates ( void )
extern "C" DLLEXPORT void IN_ClearStates ( void )
{
//gEngfuncs.Con_Printf("IN_ClearStates\n");
}
extern "C" void IN_ActivateMouse ( void )
extern "C" DLLEXPORT void IN_ActivateMouse ( void )
{
//gEngfuncs.Con_Printf("IN_ActivateMouse\n");
}
extern "C" void IN_DeactivateMouse ( void )
extern "C" DLLEXPORT void IN_DeactivateMouse ( void )
{
//gEngfuncs.Con_Printf("IN_DeactivateMouse\n");
}
extern "C" void IN_Accumulate ( void )
extern "C" DLLEXPORT void IN_Accumulate ( void )
{
//gEngfuncs.Con_Printf("IN_Accumulate\n");
}

View File

@ -1108,12 +1108,6 @@ r_studio_interface_t studio =
R_StudioDrawPlayer,
};
#ifdef _WIN32
#define DLLEXPORT __declspec( dllexport )
#else
#define DLLEXPORT
#endif
/*
====================
HUD_GetStudioModelInterface

View File

@ -16,12 +16,6 @@
#include "triangleapi.h"
#include "rain.h"
#ifdef _WIN32
#define DLLEXPORT __declspec( dllexport )
#else
#define DLLEXPORT
#endif
extern "C"
{
void DLLEXPORT HUD_DrawNormalTriangles( void );

View File

@ -27,7 +27,7 @@
*/
#include <extdll.h>
#include "unicode_strtools.h"
#ifndef _WIN32
#ifndef _MSC_VER
#include <wctype.h>
#endif

View File

@ -87,7 +87,7 @@ public:
#ifdef WIN32
#define EXPORT_FUNCTION __declspec(dllexport)
#define EXPORT_FUNCTION __attribute__ ((dllexport))
#else
#define EXPORT_FUNCTION
#endif

View File

@ -77,7 +77,7 @@ typedef union DLONG {
extern DLONG dlong;
#ifdef _WIN32
#ifdef _MSC_VER
void __inline set_fpu_cw(void)
{
_asm

View File

@ -63,13 +63,6 @@ typedef unsigned char byte;
#include "com_model.h"
#ifdef _WIN32
#define EXPORT _declspec(dllexport)
#else
#define EXPORT
#endif
extern globalvars_t *gpGlobals;
#ifndef M_PI

View File

@ -42,11 +42,7 @@ void REMOVE_ENTITY(edict_t *e);
void CONSOLE_ECHO(char *pszMsg, ...);
void CONSOLE_ECHO_LOGGED(char *pszMsg, ...);
#ifdef _WIN32
#define EXPORT _declspec(dllexport)
#else
#define EXPORT
#endif
#include "exportdef.h"
extern "C" EXPORT int GetEntityAPI(DLL_FUNCTIONS *pFunctionTable, int interfaceVersion);
extern "C" EXPORT int GetEntityAPI2(DLL_FUNCTIONS *pFunctionTable, int *interfaceVersion);

View File

@ -59,7 +59,7 @@ extern enginefuncs_t g_engfuncs;
#define TRACE_HULL (*g_engfuncs.pfnTraceHull)
#define GET_AIM_VECTOR (*g_engfuncs.pfnGetAimVector)
#define SERVER_COMMAND (*g_engfuncs.pfnServerCommand)
#define SERVER_EXECUTE (*g_engfuncs.pfnServerExecute)
#define SERVER_EXECUTE2 (*g_engfuncs.pfnServerExecute)//SERVER_EXECUTE already present in windows winspool.h
#define CLIENT_COMMAND (*g_engfuncs.pfnClientCommand)
#define PARTICLE_EFFECT (*g_engfuncs.pfnParticleEffect)
#define LIGHT_STYLE (*g_engfuncs.pfnLightStyle)

18
dlls/exportdef.h Normal file
View File

@ -0,0 +1,18 @@
#ifndef EXPORTDEF_H
#define EXPORTDEF_H
#if defined _WIN32 || defined __CYGWIN__
#ifdef __GNUC__
#define EXPORT __attribute__ ((dllexport))
#else
#define EXPORT __declspec(dllexport) // Note: actually gcc seems to also supports this syntax.
#endif
#else
#if __GNUC__ >= 4
#define EXPORT __attribute__ ((visibility ("default")))
#else
#define EXPORT
#endif
#endif
#define DLLEXPORT EXPORT
#define _DLLEXPORT EXPORT
#endif // EXPORTDEF_H

View File

@ -104,7 +104,7 @@ void CGameRules::RefreshSkillData(void)
CGameRules *InstallGameRules(void)
{
SERVER_COMMAND("exec game.cfg\n");
SERVER_EXECUTE();
SERVER_EXECUTE2();
if (!gpGlobals->deathmatch)
return new CHalfLifeTraining;

View File

@ -172,7 +172,7 @@ void EndRoundMessage(const char *sentence, int event)
if (g_pGameRules->ShouldRestart())
{
SERVER_COMMAND("quit\n");
SERVER_EXECUTE();
SERVER_EXECUTE2();
/*I know, that this is a strange way to make full restart, but I can't find right way */
}
}

View File

@ -72,7 +72,7 @@ typedef int BOOL;
#ifdef _WIN32
#define LINK_ENTITY_TO_CLASS(mapClassName, DLLClassName) \
extern "C" _declspec(dllexport) void mapClassName(entvars_t *pev); \
extern "C" EXPORT void mapClassName(entvars_t *pev); \
void mapClassName(entvars_t *pev) { GetClassPtr((DLLClassName *)pev); }
#else
#define LINK_ENTITY_TO_CLASS(mapClassName,DLLClassName) extern "C" void mapClassName(entvars_t *pev); void mapClassName(entvars_t *pev) { GetClassPtr((DLLClassName *)pev); }

View File

@ -36,12 +36,6 @@
// This is conveniently done for them in extdll.h
//
#ifdef _WIN32
#define DLLEXPORT __stdcall
#else
#define DLLEXPORT /* */
#endif
typedef enum
{
at_notice,