Add waf build script and legacy makefile to contrib
This commit is contained in:
parent
0c903c1e56
commit
ac1c8594b7
4 changed files with 524 additions and 0 deletions
206
contib/mittorn/Makefile.linux
Normal file
206
contib/mittorn/Makefile.linux
Normal file
|
@ -0,0 +1,206 @@
|
||||||
|
#############################################
|
||||||
|
# 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
|
269
contib/mittorn/README.md
Normal file
269
contib/mittorn/README.md
Normal file
|
@ -0,0 +1,269 @@
|
||||||
|
**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
|
||||||
|
```
|
7
contib/mittorn/setup.sh
Executable file
7
contib/mittorn/setup.sh
Executable file
|
@ -0,0 +1,7 @@
|
||||||
|
#!/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/
|
42
contib/mittorn/wscript
Normal file
42
contib/mittorn/wscript
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
#! /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')
|
||||||
|
|
||||||
|
def configure(conf):
|
||||||
|
conf.load('compiler_c')
|
||||||
|
conf.env.append_unique('CFLAGS', '-O2')
|
||||||
|
conf.env.append_unique('DEFINES', 'XASH_SDL')
|
||||||
|
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')
|
||||||
|
conf.env.append_value('LINKFLAGS', '-m32')
|
||||||
|
conf.env.append_value('CFLAGS', '-m32')
|
||||||
|
conf.check_cfg(path='sdl2-config', args='--cflags --libs', package='', uselib_store='SDL2')
|
||||||
|
|
||||||
|
def build(bld):
|
||||||
|
bld(
|
||||||
|
target = 'xash',
|
||||||
|
features = 'c cprogram',
|
||||||
|
includes = ['../common', '../pm_shared', 'common', 'server', 'client', 'client/vgui', '.' ],
|
||||||
|
source = bld.path.ant_glob([
|
||||||
|
'common/*.c',
|
||||||
|
'common/imagelib/*.c',
|
||||||
|
'common/soundlib/*.c',
|
||||||
|
'common/soundlib/libmpg/*.c',
|
||||||
|
'client/*.c',
|
||||||
|
'client/vgui/*.c',
|
||||||
|
'client/avi/*.c',
|
||||||
|
'server/*.c',
|
||||||
|
'platform/sdl/*.c']),
|
||||||
|
use = ['SDL2', 'm', 'pthread']
|
||||||
|
)
|
Loading…
Add table
Reference in a new issue