Alibek Omarov
2 years ago
4 changed files with 0 additions and 555 deletions
@ -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…
Reference in new issue