mirror of
https://github.com/YGGverse/xash3d-fwgs.git
synced 2025-03-09 20:21:10 +00:00
contrib: delete outdated files
This commit is contained in:
parent
16595bf2c0
commit
e2e14945e4
@ -1,206 +0,0 @@
|
|||||||
#############################################
|
|
||||||
# Makefile.linux - linux makefile
|
|
||||||
# Copyright (C) 2017 mittorn
|
|
||||||
|
|
||||||
# This program is free software: you can redistribute it and/or modify
|
|
||||||
# it under the terms of the GNU General Public License as published by
|
|
||||||
# the Free Software Foundation, either version 3 of the License, or
|
|
||||||
# (at your option) any later version.
|
|
||||||
|
|
||||||
# This program is distributed in the hope that it will be useful,
|
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
# GNU General Public License for more details.
|
|
||||||
##############################################
|
|
||||||
|
|
||||||
# Default options - optimized to debug on local machine
|
|
||||||
CC ?= gcc
|
|
||||||
CXX ?= g++
|
|
||||||
CFLAGS ?= -g -O1 -fsigned-char -Wall -Wextra -Wsign-compare -Wno-unknown-pragmas -Wno-missing-field-initializers -Wno-unused-parameter -Wno-unused-but-set-variable
|
|
||||||
LDFLAGS =
|
|
||||||
LBITS := $(shell getconf LONG_BIT)
|
|
||||||
DEPS :=
|
|
||||||
|
|
||||||
XASH_COMMIT := $(firstword $(shell git rev-parse --short=6 HEAD) unknown)
|
|
||||||
|
|
||||||
ifeq ($(XASH_COMMIT),unknown)
|
|
||||||
$(warning You seems to build xash3d without git)
|
|
||||||
$(warning Please use git if you are going to publish your build)
|
|
||||||
endif
|
|
||||||
|
|
||||||
# Pass 64BIT=1 to make arguments to allow amd64 builds
|
|
||||||
ifneq ($(64BIT),1)
|
|
||||||
ifeq ($(LBITS),64)
|
|
||||||
LDFLAGS += -m32
|
|
||||||
CFLAGS += -m32
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
TOPDIR = $(PWD)/..
|
|
||||||
INCLUDES :=
|
|
||||||
XASH_SINGLE_BINARY ?= 1
|
|
||||||
INSTALL_DIR ?= ./install/
|
|
||||||
ifeq ($(NANOGL),1)
|
|
||||||
INCLUDES += -Inanogl -Inanogl/GL
|
|
||||||
endif
|
|
||||||
INCLUDES += -I/usr/include/SDL2 -Icommon -I../common -I. -I../pm_shared -Iclient -Iserver -Iclient/vgui -Icommon/sdl
|
|
||||||
|
|
||||||
#############################
|
|
||||||
# Preprocessor defines:
|
|
||||||
#############################
|
|
||||||
DEFINES =
|
|
||||||
|
|
||||||
# Specify commit hash in version string
|
|
||||||
DEFINES += -DXASH_BUILD_COMMIT=\"$(XASH_COMMIT)\"
|
|
||||||
|
|
||||||
|
|
||||||
# Only SDL backend exists on linux
|
|
||||||
ifeq ($(XASH_DEDICATED),1)
|
|
||||||
DEFINES += -DXASH_DEDICATED
|
|
||||||
else
|
|
||||||
DEFINES += -DXASH_SDL
|
|
||||||
LIBS += -lSDL2
|
|
||||||
endif
|
|
||||||
|
|
||||||
#############################################
|
|
||||||
# GL/GLES translators.
|
|
||||||
# You need clone it to engine folder to use
|
|
||||||
# Only one translator should be enabled
|
|
||||||
#############################################
|
|
||||||
ifeq ($(NANOGL),1)
|
|
||||||
DEFINES += -DXASH_NANOGL -D__MULTITEXTURE_SUPPORT__ -DEGL_LIB=\"libEGL.so\"
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(WES),1)
|
|
||||||
DEFINES += -DXASH_WES -D__MULTITEXTURE_SUPPORT__ -DEGL_LIB=\"libEGL.so\"
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(REGAL),1)
|
|
||||||
DEFINES += -DXASH_REGAL -D__MULTITEXTURE_SUPPORT__ -DEGL_LIB=\"regal/lib/linux-32/libRegal.so\"
|
|
||||||
LIBS += regal/lib/linux-32/libRegal.so
|
|
||||||
endif
|
|
||||||
|
|
||||||
# Some libc implementations cannot use libdl in static builds, so disable it by default
|
|
||||||
ifeq ($(XASH_STATIC),1)
|
|
||||||
|
|
||||||
ifneq ($(XASH_STATIC_LIBDL),1)
|
|
||||||
DEFINES += -DNO_LIBDL
|
|
||||||
endif
|
|
||||||
|
|
||||||
XASH_SINGLE_BINARY := 1
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifneq ($(XASH_STATIC),1)
|
|
||||||
LIBS += -ldl
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(XASH_STATIC_LIBDL),1)
|
|
||||||
LIBS += -ldl
|
|
||||||
endif
|
|
||||||
|
|
||||||
LIBS += -lm -pthread
|
|
||||||
|
|
||||||
|
|
||||||
ifeq ($(XASH_SINGLE_BINARY),1)
|
|
||||||
DEFINES += -DSINGLE_BINARY
|
|
||||||
endif
|
|
||||||
|
|
||||||
# Collect files
|
|
||||||
SRCS_CPP =
|
|
||||||
SRCS = $(wildcard server/*.c) $(wildcard client/vgui/*.c) $(wildcard client/avi/*.c) $(wildcard common/*.c) $(wildcard common/imagelib/*.c) $(wildcard common/soundlib/*.c) $(wildcard common/soundlib/libmpg/*.c)
|
|
||||||
ifneq ($(XASH_DEDICATED),1)
|
|
||||||
SRCS += $(wildcard client/*.c)
|
|
||||||
SRCS += $(wildcard platform/sdl/*.c)
|
|
||||||
ifeq ($(WES),1)
|
|
||||||
SRCS += $(wildcard gl-wes-v2/src/*.c)
|
|
||||||
endif
|
|
||||||
ifeq ($(NANOGL),1)
|
|
||||||
SRCS_CPP += $(wildcard nanogl/*.cpp)
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
OBJS = $(patsubst %.c,obj/%.o,$(SRCS))
|
|
||||||
OBJS_CPP = $(patsubst %.cpp,obj/%.o,$(SRCS_CPP))
|
|
||||||
|
|
||||||
#################################
|
|
||||||
# Windows DLL loader
|
|
||||||
# Should be enabled only on i386 builds
|
|
||||||
#################################
|
|
||||||
LOADER :=
|
|
||||||
ifeq ($(XASH_DLL_LOADER),1)
|
|
||||||
DEFINES += -DDLL_LOADER
|
|
||||||
ifeq ($(XASH_SINGLE_BINARY),1)
|
|
||||||
LOADER = libloader.a
|
|
||||||
else
|
|
||||||
LOADER = libloader.so
|
|
||||||
endif
|
|
||||||
DEPS += $(LOADER)
|
|
||||||
LIBS += $(LOADER)
|
|
||||||
endif
|
|
||||||
|
|
||||||
# Rules for binaries
|
|
||||||
ifeq ($(XASH_SINGLE_BINARY),0)
|
|
||||||
BINARIES = libxash.so
|
|
||||||
libxash.so : $(OBJS) $(OBJS_CPP) $(DEPS)
|
|
||||||
$(CC) -fvisibility=hidden -o libxash.so $(LDFLAGS) -shared $(OBJS) $(OBJS_CPP) $(LIBS)
|
|
||||||
|
|
||||||
else
|
|
||||||
BINARIES = xash
|
|
||||||
xash: $(OBJS) $(OBJS_CPP) $(DEPS)
|
|
||||||
ifeq ($(XASH_STATIC),1)
|
|
||||||
$(CC) -o xash -static $(LDFLAGS) $(OBJS) $(OBJS_CPP) $(LIBS)
|
|
||||||
else
|
|
||||||
$(CC) -o xash -fvisibility=hidden $(LDFLAGS) $(OBJS) $(OBJS_CPP) $(LIBS)
|
|
||||||
endif
|
|
||||||
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(XASH_DLL_LOADER),1)
|
|
||||||
$(LOADER):
|
|
||||||
$(MAKE) -f ../loader/Makefile.linux -C ../loader $(LOADER)
|
|
||||||
cp ../loader/$(LOADER) .
|
|
||||||
endif
|
|
||||||
|
|
||||||
# Create dirs for object files
|
|
||||||
DIRS := obj obj/server obj/client/avi obj/client/vgui obj/common/sdl obj/common/imagelib obj/common/soundlib/libmpg obj/platform/sdl obj/nanogl
|
|
||||||
$(OBJS): | $(DIRS)
|
|
||||||
|
|
||||||
$(DIRS) :
|
|
||||||
mkdir -p $(DIRS)
|
|
||||||
|
|
||||||
# Object rules
|
|
||||||
obj/%.o : %.c
|
|
||||||
$(CC) $(CFLAGS) $(INCLUDES) $(DEFINES) -c "$<" -o "$@" -Wno-unused-result -fvisibility=hidden
|
|
||||||
|
|
||||||
obj/%.o : %.cpp
|
|
||||||
$(CXX) $(CFLAGS) $(INCLUDES) $(DEFINES) -c "$<" -o "$@"
|
|
||||||
|
|
||||||
|
|
||||||
default: $(BINARIES)
|
|
||||||
|
|
||||||
.PHONY: depend clean list install
|
|
||||||
|
|
||||||
clean:
|
|
||||||
$(RM) $(OBJS) $(OBJS_CPP) $(BINARIES) ../loader/*.o ../loader/*.a ../loader/*.so $(LOADER)
|
|
||||||
|
|
||||||
list:
|
|
||||||
@echo Sources:
|
|
||||||
@echo $(SRCS)
|
|
||||||
@echo C++ Sources:
|
|
||||||
@echo $(SRCS_CPP)
|
|
||||||
@echo Objects:
|
|
||||||
@echo $(OBJS) $(OBJS_CPP)
|
|
||||||
@echo Dirs:
|
|
||||||
@echo $(DIRS)
|
|
||||||
@echo Dependencies:
|
|
||||||
@echo $(DEPS)
|
|
||||||
|
|
||||||
# Simple install rule
|
|
||||||
install: $(BINARIES)
|
|
||||||
mkdir -p $(INSTALL_DIR)
|
|
||||||
|
|
||||||
ifeq ($(XASH_SINGLE_BINARY),1)
|
|
||||||
cp xash $(INSTALL_DIR)/xash_bin
|
|
||||||
else
|
|
||||||
cp libxash.so $(INSTALL_DIR)/
|
|
||||||
cp libloader.so $(INSTALL_DIR)/
|
|
||||||
endif
|
|
@ -1,269 +0,0 @@
|
|||||||
**Table of Contents** *generated with [DocToc](http://doctoc.herokuapp.com/)*
|
|
||||||
|
|
||||||
- [Building](#building)
|
|
||||||
- [Manual build (without CMake)](#manual-build-without-cmake)
|
|
||||||
- [Building Engine](#building-engine)
|
|
||||||
- [Building launch binary](#building-launch-binary)
|
|
||||||
- [Building on Windows](#building-on-windows)
|
|
||||||
- [Visual Studio 2013 (recommended for Windows)](#visual-studio-2013-recommended-for-windows)
|
|
||||||
- [Visual Studio 6](#visual-studio-6)
|
|
||||||
- [MinGW](#mingw)
|
|
||||||
- [Building Game mods](#building-game-mods)
|
|
||||||
- [Linux](#linux)
|
|
||||||
- [microndk](#microndk)
|
|
||||||
- [Makefile.linux](#makefile-linux)
|
|
||||||
- [Windows](#windows)
|
|
||||||
- [Running](#running)
|
|
||||||
- [Manual running](#manual-running)
|
|
||||||
- [Running with GDB](#running-with-gdb)
|
|
||||||
- [Using DLL Loader](#using-dll-loader)
|
|
||||||
- [Running MinGW builds](#running-mingw-builds)
|
|
||||||
- [Running MinGW builds under GDB](#running-mingw-builds-under-gdb)
|
|
||||||
|
|
||||||
# Building
|
|
||||||
|
|
||||||
## Manual build (without CMake)
|
|
||||||
|
|
||||||
### Building engine
|
|
||||||
|
|
||||||
Clone Xash3D repository using git:
|
|
||||||
|
|
||||||
git clone https://github.com/FWGS/xash3d
|
|
||||||
|
|
||||||
Move to the Xash3D folder:
|
|
||||||
|
|
||||||
cd xash3d/engine
|
|
||||||
|
|
||||||
make -f Makefile.linux XASH_VGUI=1
|
|
||||||
|
|
||||||
or same for dedicated
|
|
||||||
|
|
||||||
make -f Makefile.linux XASH_DEDICATED=1
|
|
||||||
|
|
||||||
To enable dll support on linux, build loader library:
|
|
||||||
|
|
||||||
cd ../loader
|
|
||||||
make -f Makefile.linux libloader.so libloader.a
|
|
||||||
cp libloader.so libloader.a ../engine/
|
|
||||||
|
|
||||||
And built engine with XASH_DLL_LOADER=1:
|
|
||||||
|
|
||||||
cd ../engine
|
|
||||||
make -f Makefile.linux XASH_VGUI=1 XASH_SDL=1 XASH_DLL_LOADER=1
|
|
||||||
|
|
||||||
or same for dedicated server
|
|
||||||
|
|
||||||
cd ../engine
|
|
||||||
make -f Makefile.linux XASH_DEDICATED=1 XASH_DLL_LOADER=1
|
|
||||||
|
|
||||||
### Building engine in separate library
|
|
||||||
|
|
||||||
Some old distros does not support hidden symbol visibility
|
|
||||||
This results in crash when loading server library
|
|
||||||
|
|
||||||
Building launch binary
|
|
||||||
|
|
||||||
cd (xash3d)/game_launch
|
|
||||||
gcc xash.c -o xash -ldl -lrt -lm
|
|
||||||
|
|
||||||
Building engine library:
|
|
||||||
|
|
||||||
make -f Makefile.linux XASH_SINGLE_BINARY=0
|
|
||||||
|
|
||||||
## Building on Windows
|
|
||||||
|
|
||||||
### Visual Studio 2013 (recommended for Windows)
|
|
||||||
|
|
||||||
Download latest prebuilt SDL2 from
|
|
||||||
|
|
||||||
https://www.libsdl.org/release/SDL2-devel-2.0.4-VC.zip
|
|
||||||
|
|
||||||
Unzip and rename `SDL2-2.0.4` folder to `SDL2` and put it next to xash3d project folder.
|
|
||||||
|
|
||||||
..\xash3d\
|
|
||||||
..\SDL2\
|
|
||||||
|
|
||||||
Open `xash.sln` with Visual Studio 2013 and make a build. After building, copy contents of `Debug` or
|
|
||||||
`Release` folder to directory you choose. Copy `valve` folder and `vgui.dll` from your Half Life game
|
|
||||||
installation folder and `SDL2.dll` form `\SDL2\lib\x86\` to it.
|
|
||||||
Move `vgui_support.dll` into `valve` folder.
|
|
||||||
|
|
||||||
..\valve\
|
|
||||||
..\valve\vgui_support.dll
|
|
||||||
..\menu.dll
|
|
||||||
..\SDL2.dll
|
|
||||||
..\vgui.dll
|
|
||||||
..\xash.dll
|
|
||||||
..\xash.exe
|
|
||||||
|
|
||||||
Now you good to go, just run `xash.exe`.
|
|
||||||
|
|
||||||
### Visual Studio 6
|
|
||||||
|
|
||||||
This is legacy configuration, but msvc6 seems to generate more stable and more effective code
|
|
||||||
|
|
||||||
Setup your msvc6 enviroment, unpack SDL2-2.0.4 to xash3d folder and do:
|
|
||||||
|
|
||||||
cd (xash3d)\engine
|
|
||||||
..\msvc6\build.bat
|
|
||||||
cd (xash3d)\game_launch
|
|
||||||
..\msvc6\build_launch.bat
|
|
||||||
|
|
||||||
### MinGW
|
|
||||||
|
|
||||||
The most effective configuration, but maybe unstable.
|
|
||||||
Setup your MinGW environment and run:
|
|
||||||
|
|
||||||
cd (xash3d)\engine\
|
|
||||||
CC=gcc mingw32-make -f Makefile.mingw
|
|
||||||
|
|
||||||
engine will be built to single exe binary
|
|
||||||
|
|
||||||
## Building game mods
|
|
||||||
|
|
||||||
### Linux
|
|
||||||
|
|
||||||
#### microndk
|
|
||||||
|
|
||||||
All mods that ported to android may be build to linux using Android.mk with microndk:
|
|
||||||
|
|
||||||
[https://github.com/SDLash3D/microndk]
|
|
||||||
|
|
||||||
Clone microndk repo somewhere, change xash3d_config to preffered configuration (change arch to x86
|
|
||||||
for example)
|
|
||||||
|
|
||||||
Go to dlls folder if you are building server or cl_dlls if you are building client and do:
|
|
||||||
|
|
||||||
make -f /path/to/microndk/microndk.mk -j4
|
|
||||||
|
|
||||||
Do:
|
|
||||||
|
|
||||||
make -f /path/to/microndk/microndk.mk -j4 clean
|
|
||||||
|
|
||||||
every time when you build client after building server
|
|
||||||
|
|
||||||
#### Makefile.linux
|
|
||||||
|
|
||||||
### Windows
|
|
||||||
|
|
||||||
On windows common way is using Visual Studio as many mods does not correctly work with mingw.
|
|
||||||
|
|
||||||
Just open project and build it.
|
|
||||||
|
|
||||||
Other is using mingw and microndk, but it was not tested yet.
|
|
||||||
|
|
||||||
hlsdk-xash3d based mods may work fine with mingw.
|
|
||||||
|
|
||||||
You may use microndk to build it. Build process is very similar to linux one.
|
|
||||||
|
|
||||||
After setting up MinGW enviroment, do:<br>
|
|
||||||
`mingw32-make -f \path\to\microndk\Microndk.mk`
|
|
||||||
|
|
||||||
to build 64-bit library, use:<br>
|
|
||||||
`mingw32-make -f \path\to\microndk\Microndk.mk 64BIT=1`
|
|
||||||
|
|
||||||
Edit xash3d_config.mk to set optimal CFLAGS if you are running server
|
|
||||||
|
|
||||||
# Running
|
|
||||||
|
|
||||||
Copy **valve** folder from Half-Life:
|
|
||||||
|
|
||||||
cp -r $HOME/.steam/steam/steamapps/common/Half-Life/valve $HOME/Games/Xash3D
|
|
||||||
|
|
||||||
**NOTE**: If you build with CMake, you can now use `make install`. It will install binaries where
|
|
||||||
they must be located. So just run `xash3d` from command line in directory where is gamedata is located.
|
|
||||||
For additional info look to the CMakeLists.txt in repo root and xash3d.sh script.
|
|
||||||
|
|
||||||
After a successful build, copy the next files to some other directory where you want to run Xash3D:
|
|
||||||
|
|
||||||
cp engine/libxash.so game_launch/xash3d mainui/libxashmenu.so $HOME/Games/Xash3D
|
|
||||||
|
|
||||||
If you built it with XASH_VGUI, also copy vgui.so:
|
|
||||||
|
|
||||||
cp ../hlsdk/linux/vgui.so vgui_support/libvgui_support.so $HOME/Games/Xash3D
|
|
||||||
|
|
||||||
Copy script:
|
|
||||||
|
|
||||||
cp ../xash3d.sh $HOME/Games/Xash3D
|
|
||||||
|
|
||||||
Run:
|
|
||||||
|
|
||||||
cd $HOME/Games/Xash3D
|
|
||||||
./xash3d.sh
|
|
||||||
|
|
||||||
## Manual running
|
|
||||||
|
|
||||||
Put xash3d binaries and vgui(optionally) to you game data directory and run:
|
|
||||||
|
|
||||||
LD_LIBRARY_PATH=. ./xash -dev 5
|
|
||||||
|
|
||||||
## Running under GDB
|
|
||||||
|
|
||||||
LD_LIBRARY_PATH=. gdb --args ./xash -dev 5
|
|
||||||
|
|
||||||
## Using DLL Loader
|
|
||||||
|
|
||||||
Put vgui_support.dll from windows build to your game data folder and run:
|
|
||||||
|
|
||||||
LD_LIBRARY_PATH=. ./xash -dev 5 -vguilib vgui.dll -clientlib valve/cl_dlls/client.dll -dll dlls/hl.dll
|
|
||||||
|
|
||||||
## Running MinGW builds
|
|
||||||
|
|
||||||
Put exe file to your game data directory
|
|
||||||
|
|
||||||
cd (game)\
|
|
||||||
xash_bin -dev 5
|
|
||||||
|
|
||||||
### Running MinGW builds under GDB
|
|
||||||
|
|
||||||
gdb --args ./xash_bin.exe -dev 5
|
|
||||||
|
|
||||||
# Useful GDB commands
|
|
||||||
|
|
||||||
Start or restart process:
|
|
||||||
|
|
||||||
(gdb) r
|
|
||||||
|
|
||||||
Show backtrace:
|
|
||||||
|
|
||||||
(gdb) bt
|
|
||||||
|
|
||||||
Full backtrace:
|
|
||||||
|
|
||||||
(gdb) bt full
|
|
||||||
|
|
||||||
Continue execution:
|
|
||||||
|
|
||||||
(gdb) c
|
|
||||||
|
|
||||||
Recover from segmentation fault:
|
|
||||||
|
|
||||||
Skipping function:
|
|
||||||
|
|
||||||
(gdb) handle SIGSEGV nopass
|
|
||||||
(gdb) ret
|
|
||||||
(gdb) c
|
|
||||||
|
|
||||||
Restart frame for beginning:
|
|
||||||
|
|
||||||
(gdb) handle SIGSEGV nopass
|
|
||||||
(gdb) jump *Host_AbortCurrentFrame
|
|
||||||
Anti-Crash script (useful for scripting servers):
|
|
||||||
```
|
|
||||||
cd /path/to/rootdir
|
|
||||||
file xash
|
|
||||||
set args xash -dev 5 -nowcon
|
|
||||||
handle SIGSEGV nopass
|
|
||||||
catch signal SIGSEGV
|
|
||||||
set $crashes=0
|
|
||||||
commands
|
|
||||||
print $crashes++
|
|
||||||
if $crashes > 500
|
|
||||||
set $crashes=0
|
|
||||||
run
|
|
||||||
else
|
|
||||||
jump *Host_AbortCurrentFrame
|
|
||||||
end
|
|
||||||
end
|
|
||||||
run
|
|
||||||
```
|
|
@ -1,7 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
SCRIPTDIR=$(dirname "$0")
|
|
||||||
TOPDIR=$SCRIPTDIR/../../
|
|
||||||
cp $SCRIPTDIR/Makefile.dllloader $TOPDIR/loader/
|
|
||||||
cp $SCRIPTDIR/Makefile.emscripten $TOPDIR/engine/
|
|
||||||
cp $SCRIPTDIR/Makefile.linux $TOPDIR/engine/
|
|
||||||
cp $SCRIPTDIR/wscript $TOPDIR/engine/
|
|
@ -1,73 +0,0 @@
|
|||||||
#! /usr/bin/env python
|
|
||||||
# encoding: utf-8
|
|
||||||
# mittorn, 2018
|
|
||||||
|
|
||||||
VERSION='0.99'
|
|
||||||
APPNAME='xash3d-fwgs'
|
|
||||||
|
|
||||||
top = '.'
|
|
||||||
|
|
||||||
def options(opt):
|
|
||||||
opt.load('compiler_c')
|
|
||||||
# opt.load('msvs')
|
|
||||||
opt.add_option('--dedicated', action = 'store_true', help = 'build dedicated server only' )
|
|
||||||
opt.add_option('--64bits', dest = 'amd64', action = 'store_true', help = 'build 64-bit engine on x86_64' )
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def configure(conf):
|
|
||||||
conf.load('compiler_c')
|
|
||||||
conf.env.append_unique('CFLAGS', '-O2')
|
|
||||||
conf.env.append_unique('DEFINES', 'SINGLE_BINARY')
|
|
||||||
conf.env.append_value('LINKFLAGS', '-ldl')
|
|
||||||
conf.env.append_value('LINKFLAGS', '-lm')
|
|
||||||
conf.env.append_value('LINKFLAGS', '-pthread')
|
|
||||||
|
|
||||||
# check for 64-bit builds
|
|
||||||
# TODO: check 32-bit toolchain and dependencies
|
|
||||||
if conf.env.DEST_CPU == 'x86_64' and not conf.options.amd64:
|
|
||||||
conf.env.append_value('LINKFLAGS', '-m32')
|
|
||||||
conf.env.append_value('CFLAGS', '-m32')
|
|
||||||
print('NOTE: will build engine with 64-bit toolchain using -m32')
|
|
||||||
else:
|
|
||||||
print('Warning: 64bit engine may be unstable')
|
|
||||||
|
|
||||||
# check for dedicated server build
|
|
||||||
if conf.options.dedicated:
|
|
||||||
conf.env.append_unique('DEFINES', 'XASH_DEDICATED')
|
|
||||||
conf.env.dedicated = True
|
|
||||||
else:
|
|
||||||
# TODO: add way to specify SDL2 path, move to separate function
|
|
||||||
try:
|
|
||||||
conf.check_cfg(path='sdl2-config', args='--cflags --libs', package='', msg='Checking for SDL2', uselib_store='SDL2')
|
|
||||||
except conf.errors.ConfigurationError:
|
|
||||||
conf.fatal('SDL2 not availiable! If you want to build dedicated server, specify --dedicated')
|
|
||||||
conf.env.append_unique('DEFINES', 'XASH_SDL')
|
|
||||||
|
|
||||||
def build(bld):
|
|
||||||
# basic build: dedicated only, no dependencies
|
|
||||||
use = [];
|
|
||||||
source = bld.path.ant_glob([
|
|
||||||
'common/*.c',
|
|
||||||
'common/imagelib/*.c',
|
|
||||||
'common/soundlib/*.c',
|
|
||||||
'common/soundlib/libmpg/*.c',
|
|
||||||
'server/*.c'])
|
|
||||||
|
|
||||||
# add client files and sdl2 library
|
|
||||||
if not bld.env.dedicated:
|
|
||||||
use += ['SDL2']
|
|
||||||
source += bld.path.ant_glob([
|
|
||||||
'client/*.c',
|
|
||||||
'client/vgui/*.c',
|
|
||||||
'client/avi/*.c',
|
|
||||||
'platform/sdl/*.c'])
|
|
||||||
|
|
||||||
|
|
||||||
bld(
|
|
||||||
target = 'xash',
|
|
||||||
features = 'c cprogram',
|
|
||||||
includes = ['../common', '../pm_shared', 'common', 'server', 'client', 'client/vgui', '.' ],
|
|
||||||
source = source,
|
|
||||||
use = use
|
|
||||||
)
|
|
Loading…
x
Reference in New Issue
Block a user