Jump to content
Sign in to follow this  
Electr0

Сборка из исходников FileNetMessages (под Linux, SM 1.9+MMSOURCE 1.10)

Recommended Posts

Собирать будем под ubuntu 14.04 lts 32-bit, скачать ее можно тут:  releases.ubuntu.com/trusty

 

Инструкция создана на базе статьи Сборка из исходников l4dtoolz, от автора с ником  'iHX"

 

Открываем Terminal

5.PNG


Устанавливаем пакет git

sudo apt-get install git

 

Устанавливаем пакеты gcc и g++

sudo apt-get install gcc g++

 

Создаем папку в которой все и будем делать

mkdir -p alliedmodders_filenetmessages

 

Переходим в созданную нами папку alliedmodders_filenetmessages

cd alliedmodders_filenetmessages

 

Скачиваем исходники hl2sdk для Left 4 dead 2

git clone --depth=1 --branch=l4d2 https://github.com/alliedmodders/hl2sdk hl2sdk-l4d2

 

Скачиваем исходники для Sourcemod 1.9 Stable

git clone --recursive --depth=1 --branch=1.9-dev https://github.com/alliedmodders/sourcemod sourcemod-central

 

Скачиваем исходники для Metamod:Source 1.10

git clone --depth=1 --branch=1.10-dev https://github.com/alliedmodders/metamod-source mmsource-central

 

Скачиваем исходники для FileNetMessages

git clone https://github.com/dordnung/FileNetMessages FileNetMessages

 

После данных команд, у Вас в папке alliedmodders_filenetmessages будут 4 папки со скачанными исходниками нужными для сборки расширения FileNetMessages

 

Заходим в папку FileNetMessages, переходим папку sdk и перемещаем файл smsdk_config.h в папку FileNetMessages, после чего удаляем папку sdk, должно получится вот такое содержимое папки FileNetMessages

533333333333.PNG

 

Заходим в папку FileNetMessages и открываем файл Makefile

204.PNG

 

Актуализируем строки с путями к папкам исходников в шапке Makefile, в данном случае нас интересуют только константы SMSDKHL2SDK_L4D2MMSOURCE

SMSDK = ../../sourcemod-1.6
HL2SDK_L4D2 = ../../hl2sdk-l4d2
MMSOURCE = ../../mmsource-1.10

 

Изменить на:

SMSDK = ../sourcemod-central
HL2SDK_L4D2 = ../hl2sdk-l4d2
MMSOURCE = ../mmsource-central

 

Исправляем использование автором расширение скопированных smsdk_ext.cpp, нужно использовать актуальные версии файлов из SDK Sourcemod:

 

Находим

OBJECTS = sdk/smsdk_ext.cpp extension.cpp clientlistener.cpp

Изменить на:

OBJECTS = smsdk_ext.cpp extension.cpp clientlistener.cpp

 

Находим

ln -sf $(HL2LIB)/$(LIB_PREFIX)vstdlib$(LIB_SUFFIX); \
ln -sf $(HL2LIB)/$(LIB_PREFIX)tier0$(LIB_SUFFIX); \

Изменить на:

ln -sf $(SMSDK)/public/smsdk_ext.cpp; \
ln -sf $(HL2LIB)/$(LIB_PREFIX)vstdlib$(LIB_SUFFIX); \
ln -sf $(HL2LIB)/$(LIB_PREFIX)tier0$(LIB_SUFFIX); \

 

Далее исправляем флаги сборки

C_OPT_FLAGS = -DNDEBUG -O3 -funroll-loops -pipe -fno-strict-aliasing
C_DEBUG_FLAGS = -D_DEBUG -DDEBUG -g -ggdb3
C_GCC4_FLAGS = -fvisibility=hidden
CPP_GCC4_FLAGS = -fvisibility-inlines-hidden
CPP = gcc
CPP_OSX = clang

Изменить на:

C_OPT_FLAGS = -D_LINUX \
	-Dstricmp=strcasecmp \
	-D_stricmp=strcasecmp \
	-D_strnicmp=strncasecmp \
	-Dstrnicmp=strncasecmp \
	-D_snprintf=snprintf \
	-D_vsnprintf=vsnprintf \
	-D_alloca=alloca \
	-Dstrcmpi=strcasecmp \
	-Wall \
	-Werror \
	-Wno-switch \
	-Wno-unused \
	-msse \
	-DSOURCEMOD_BUILD \
	-DHAVE_STDINT_H \
	-m32 \
	-DNDEBUG \
	-O3 \
	-funroll-loops \
	-pipe \
	-fno-strict-aliasing \
	-fvisibility=hidden \
	-DCOMPILER_GCC \
	-mfpmath=sse

CPP_GCC4_FLAGS = -Wno-non-virtual-dtor \
	-fvisibility-inlines-hidden \
	-fno-exceptions \
	-fno-rtti \
	-std=c++11

C_DEBUG_FLAGS = -D_DEBUG -DDEBUG -g -ggdb3
C_GCC4_FLAGS = -fvisibility=hidden
CPP = gcc
CPP_OSX = clang

 

Исправляем путь к папке sourcepawn/include который у автора расширения устарел:

INCLUDE += -I. -I.. -Isdk -Ipublic -Ilisteners -I$(SMSDK)/public -I$(SMSDK)/public/sourcepawn

Изменить на:

INCLUDE += -I. -I.. -Isdk -Ipublic -Ilisteners -I$(SMSDK)/public -I$(SMSDK)/sourcepawn/include

 

Все, подготовка закончена, можно собирать!

 

Переходим в папку FileNetMessages в консоли

cd FileNetMessages

 

Собираем FileNetMessages

make -f Makefile ENGINE=left4dead2

 

Если все хорошо у вас будет вот такой ответ консоли

202.PNG

 

Теперь открываем папку FileNetMessages => Release.left4dead2 и видим там собранный файл filenetmessages.ext.2.l4d2.so

203.PNG

 

Готовый Makefile с изменениями из данной статьи:

Makefile

 

Собранный в ходе урока filenetmessages.ext.2.l4d2.so

filenetmessages.ext.2.l4d2.so

 

Share this post


Link to post
Share on other sites

добавлена информация о том как исключить из сборки скопированный автором расширения файл smsdk_ext.cpp, вместо него указываем на этот файл из SDK Soircemod чтобы собирать под свежими версиями этого файла.

 

Так же приложен собранный в ходе урока файл filenetmessages.ext.2.l4d2.so

Share this post


Link to post
Share on other sites

благодаря применению параметра --recursive в ссылке скачивания репозитория Sourcemod можно не ложить файлы sp_typeutil.h, sp_vm_api.h, sp_vm_types.h самостоятельно т.к. под модуль sourcepawn репозитория sourcemod скачается сам.

 

Соседние с данной инструкцией упрощены по этому поводу, и файлы в них пересобраны.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...