Je passe dans le coin pour communiquer aux gens qui s'occupent de maintenir le serveur wwf (P'tit Nico ?) 2-3 instructions, pour le build du seveur sur un machine de type kimsufi .
Voila la procédure que j'ai suivi pour faire le build que j'ai fait pour vous y'a deux semaines (je ne sait pas si vous l'utilisez toujours):
La compilation se fait sous linux
1- Récuperation des sources de tremulous, dans la version SVN qui va bien :
2- Récuperation du PierreF's patchset, parce que je le vaut bien .
3- Patchage des sources (le truc chiant) :
# cd tremulous-svn/
# cat ../patches/wraths/svn901/999.all_in_one-037.patch | patch -p1
(patchs principaux)
# cat ../patches/wraths/svn901/998.pierre.training_freefunds_fastbuild_nobaseattack.patch | patch -p1
(pour les trucs de training, comme le nom l'indique)
# cat ../patches/svn901/002.pierref.deco_exploding_sd.patch | patch -p1
# cat ../patches/svn901/003.madtree.risujin_donate_improved.patch | patch -p1
(deux patchs ajoutés tardivement)
4- Modification du Makefile : (Y'a deux trois trucs a modifier)
Au début:
Et un peu plus loin:
#############################################################################
# SETUP AND BUILD -- LINUX
#############################################################################
## Defaults
VM_PPC=
LIB=lib
INSTALL=install
MKDIR=mkdir
ifeq ($(PLATFORM),linux)
CC=gcc
ifeq ($(ARCH),alpha)
ARCH=axp
else
ifeq ($(ARCH),x86_64)
LIB=lib64
else
ifeq ($(ARCH),ppc64)
LIB=lib64
else
ifeq ($(ARCH),s390x)
LIB=lib64
endif
endif
endif
endif
BASE_CFLAGS = -march=pentium4 -Os -fomit-frame-pointer -Wall -fno-strict-aliasing -Wimplicit -Wstrict-prototypes -pipe
ifeq ($(USE_OPENAL),1)
BASE_CFLAGS += -DUSE_OPENAL=1
ifeq ($(USE_OPENAL_DLOPEN),1)
BASE_CFLAGS += -DUSE_OPENAL_DLOPEN=1
endif
endif
ifeq ($(USE_CODEC_VORBIS),1)
BASE_CFLAGS += -DUSE_CODEC_VORBIS=1
endif
ifeq ($(USE_SDL),1)
BASE_CFLAGS += -DUSE_SDL_VIDEO=1 -DUSE_SDL_SOUND=1 $(shell sdl-config --cflags)
GL_CFLAGS =
else
GL_CFLAGS = -I/usr/X11R6/include
endif
OPTIMIZE = -Os -march=pentium4 -ffast-math -funroll-loops -fomit-frame-pointer
ifeq ($(ARCH),x86_64)
OPTIMIZE = -O3 -fomit-frame-pointer -ffast-math -funroll-loops \
-falign-loops=2 -falign-jumps=2 -falign-functions=2 \
-fstrength-reduce
# experimental x86_64 jit compiler! you need GNU as
HAVE_VM_COMPILED = true
else
ifeq ($(ARCH),x86)
OPTIMIZE = -Os -march=pentium4 -fomit-frame-pointer -ffast-math \
-funroll-loops -falign-loops=2 -falign-jumps=2 \
-falign-functions=2 -fstrength-reduce
HAVE_VM_COMPILED=true
else
ifeq ($(ARCH),ppc)
BASE_CFLAGS += -maltivec
ifneq ($(VM_PPC),)
HAVE_VM_COMPILED=true
endif
endif
endif
endif
ifneq ($(HAVE_VM_COMPILED),true)
BASE_CFLAGS += -DNO_VM_COMPILED
endif
DEBUG_CFLAGS = $(BASE_CFLAGS) -g -O0
RELEASE_CFLAGS=$(BASE_CFLAGS) -DNDEBUG $(OPTIMIZE)
SHLIBEXT=so
SHLIBCFLAGS=-fPIC
SHLIBLDFLAGS=-shared $(LDFLAGS)
THREAD_LDFLAGS=-lpthread
LDFLAGS=-ldl -lm
ifeq ($(USE_SDL),1)
CLIENT_LDFLAGS=$(shell sdl-config --libs)
else
CLIENT_LDFLAGS=-L/usr/X11R6/$(LIB) -lX11 -lXext -lXxf86dga -lXxf86vm
endif
ifeq ($(USE_OPENAL),1)
ifneq ($(USE_OPENAL_DLOPEN),1)
CLIENT_LDFLAGS += -lopenal
endif
endif
ifeq ($(USE_CODEC_VORBIS),1)
CLIENT_LDFLAGS += -lvorbisfile -lvorbis -logg
endif
ifeq ($(ARCH),x86)
# linux32 make ...
BASE_CFLAGS += -m32
LDFLAGS+=-m32
endif
else # ifeq Linux
5- Ensuite y'a plus qu'a compiler :
# make -j4
Voila, normalement ca devrais tourner avec cela... J'ai oublié un des CFLAGS que j'avais ajouté, mais de toute manière, il étais assez inutile .
Je vous conseille d'utiliser un .so plutôt qu'un game.qvm, car j'ai constaté (sur 2 serveurs, mais je ne peut pas verifier plus) que le .so consome un peu moins de ressources, mais le .qvm est toujours possible en modifiant le Makefile en fonction.
Notez que si vous avez besoin de faire un autre build, y'a toujours moyen de me contacter par mail ou par IRC (quand je suis la).
Voila la procédure que j'ai suivi pour faire le build que j'ai fait pour vous y'a deux semaines (je ne sait pas si vous l'utilisez toujours):
La compilation se fait sous linux
1- Récuperation des sources de tremulous, dans la version SVN qui va bien :
Citation
# svn co svn://svn.icculus.org/tremulous/trunk tremulous-svn -r 901
2- Récuperation du PierreF's patchset, parce que je le vaut bien .
Citation
svn co http://trem.yi.org/svn/patches/ patches
3- Patchage des sources (le truc chiant) :
Citation
# cd tremulous-svn/
# cat ../patches/wraths/svn901/999.all_in_one-037.patch | patch -p1
(patchs principaux)
# cat ../patches/wraths/svn901/998.pierre.training_freefunds_fastbuild_nobaseattack.patch | patch -p1
(pour les trucs de training, comme le nom l'indique)
# cat ../patches/svn901/002.pierref.deco_exploding_sd.patch | patch -p1
# cat ../patches/svn901/003.madtree.risujin_donate_improved.patch | patch -p1
(deux patchs ajoutés tardivement)
4- Modification du Makefile : (Y'a deux trois trucs a modifier)
Au début:
Citation
BUILD_CLIENT = 0
BUILD_CLIENT_SMP = 0
BUILD_SERVER = 1
BUILD_GAME_SO = 1
BUILD_GAME_QVM = 0
BUILD_CLIENT_SMP = 0
BUILD_SERVER = 1
BUILD_GAME_SO = 1
BUILD_GAME_QVM = 0
Et un peu plus loin:
Citation
#############################################################################
# SETUP AND BUILD -- LINUX
#############################################################################
## Defaults
VM_PPC=
LIB=lib
INSTALL=install
MKDIR=mkdir
ifeq ($(PLATFORM),linux)
CC=gcc
ifeq ($(ARCH),alpha)
ARCH=axp
else
ifeq ($(ARCH),x86_64)
LIB=lib64
else
ifeq ($(ARCH),ppc64)
LIB=lib64
else
ifeq ($(ARCH),s390x)
LIB=lib64
endif
endif
endif
endif
BASE_CFLAGS = -march=pentium4 -Os -fomit-frame-pointer -Wall -fno-strict-aliasing -Wimplicit -Wstrict-prototypes -pipe
ifeq ($(USE_OPENAL),1)
BASE_CFLAGS += -DUSE_OPENAL=1
ifeq ($(USE_OPENAL_DLOPEN),1)
BASE_CFLAGS += -DUSE_OPENAL_DLOPEN=1
endif
endif
ifeq ($(USE_CODEC_VORBIS),1)
BASE_CFLAGS += -DUSE_CODEC_VORBIS=1
endif
ifeq ($(USE_SDL),1)
BASE_CFLAGS += -DUSE_SDL_VIDEO=1 -DUSE_SDL_SOUND=1 $(shell sdl-config --cflags)
GL_CFLAGS =
else
GL_CFLAGS = -I/usr/X11R6/include
endif
OPTIMIZE = -Os -march=pentium4 -ffast-math -funroll-loops -fomit-frame-pointer
ifeq ($(ARCH),x86_64)
OPTIMIZE = -O3 -fomit-frame-pointer -ffast-math -funroll-loops \
-falign-loops=2 -falign-jumps=2 -falign-functions=2 \
-fstrength-reduce
# experimental x86_64 jit compiler! you need GNU as
HAVE_VM_COMPILED = true
else
ifeq ($(ARCH),x86)
OPTIMIZE = -Os -march=pentium4 -fomit-frame-pointer -ffast-math \
-funroll-loops -falign-loops=2 -falign-jumps=2 \
-falign-functions=2 -fstrength-reduce
HAVE_VM_COMPILED=true
else
ifeq ($(ARCH),ppc)
BASE_CFLAGS += -maltivec
ifneq ($(VM_PPC),)
HAVE_VM_COMPILED=true
endif
endif
endif
endif
ifneq ($(HAVE_VM_COMPILED),true)
BASE_CFLAGS += -DNO_VM_COMPILED
endif
DEBUG_CFLAGS = $(BASE_CFLAGS) -g -O0
RELEASE_CFLAGS=$(BASE_CFLAGS) -DNDEBUG $(OPTIMIZE)
SHLIBEXT=so
SHLIBCFLAGS=-fPIC
SHLIBLDFLAGS=-shared $(LDFLAGS)
THREAD_LDFLAGS=-lpthread
LDFLAGS=-ldl -lm
ifeq ($(USE_SDL),1)
CLIENT_LDFLAGS=$(shell sdl-config --libs)
else
CLIENT_LDFLAGS=-L/usr/X11R6/$(LIB) -lX11 -lXext -lXxf86dga -lXxf86vm
endif
ifeq ($(USE_OPENAL),1)
ifneq ($(USE_OPENAL_DLOPEN),1)
CLIENT_LDFLAGS += -lopenal
endif
endif
ifeq ($(USE_CODEC_VORBIS),1)
CLIENT_LDFLAGS += -lvorbisfile -lvorbis -logg
endif
ifeq ($(ARCH),x86)
# linux32 make ...
BASE_CFLAGS += -m32
LDFLAGS+=-m32
endif
else # ifeq Linux
5- Ensuite y'a plus qu'a compiler :
Citation
# make -j4
Voila, normalement ca devrais tourner avec cela... J'ai oublié un des CFLAGS que j'avais ajouté, mais de toute manière, il étais assez inutile .
Je vous conseille d'utiliser un .so plutôt qu'un game.qvm, car j'ai constaté (sur 2 serveurs, mais je ne peut pas verifier plus) que le .so consome un peu moins de ressources, mais le .qvm est toujours possible en modifiant le Makefile en fonction.
Notez que si vous avez besoin de faire un autre build, y'a toujours moyen de me contacter par mail ou par IRC (quand je suis la).