Public feed
#601315
# GPL License - see http://opensource.org/licenses/gpl-license.php
# Copyright 2006 *nixCoders team - don't forget to credit us
VERSION = $(shell cat version.def)
CFLAGS = -Wall -fPIC -march=i686 -fno-strict-aliasing -fvisibility=hidden
LDFLAGS = -ldl -lm -shared
# Release/Debug flags
ifdef RELEASE
CFLAGS += -O3 -ffast-math
LDFLAGS += -s
else
CFLAGS += -g -ggdb3 -DETH_DEBUG
endif
OBJS = aimbot.o backtrace.o commands.o drawtools.o engine.o eth.o g_functions.o hook.o \
hud.o medias.o medicbot.o menu.o net.o punkbuster.o spycam.o visuals.o windows.o tracer.o
HEADERS = eth.h offsets.h hud.h menu.h net.h types.h windows.h tracer.h
PROG = libETH.so
# libghf
LIBGHF_VERSION = 0.5-2
LIBGHF_FOLDER = ghf
LIBGHF_DISTFILE = ghf-$(LIBGHF_VERSION).tar.gz
LIBGHF_URL = http://eth.sourceforge.net/$(LIBGHF_FOLDER)/
LIBGHF = $(LIBGHF_FOLDER)/libghf.a
LIBGHF_LDFLAGS = -lz -L$(LIBGHF_FOLDER) -lghf
# Release/Debug flags
ifdef RELEASE
LIBGHF_LDFLAGS += /usr/lib/libelf.a /usr/lib/libbfd.a /usr/lib/libopcodes.a
else
LIBGHF_LDFLAGS += -lelf -lbfd -lopcodes
endif
# pk3
PK3_FOLDER = pk3
PK3_FILE = eth.pk3
# auto-generate shaders file
SHADERS_SCRIPT = pk3/scripts/eth.shader
SHADERS_DEFINE = shaders.h
HEADERS += $(SHADERS_DEFINE)
SHADERS_MAKER = makeshaders.sh
# sdk
SDK_FOLDER = sdk
SDK_URL = ftp://ftp.mirror.nl/pub/mirror/idsoftware/idstuff/et/sdk/
SDK_FILE = et-linux-2.60-sdk.x86.run
DIST_FILES += $(OBJS:.o=.c) $(HEADERS) $(PROG) $(LIBGHF_DISTFILE) $(PK3_FILE) $(SDK_FOLDER) $(PK3_FOLDER) \
$(SHADERS_MAKER) CHANGELOG CREDITS INSTALL LICENSE Makefile README run.sh version.def
DIST_FOLDER = eth-$(VERSION)
# Private
ifdef PRIVATE
CFLAGS += -DETH_PRIVATE
OBJS += private.o
HEADERS += private.h
endif
# Default
all: $(SDK_FOLDER) $(LIBGHF) $(SHADERS_DEFINE) $(PK3_FILE) $(PROG)
# Compile
%.o: %.c $(HEADERS) Makefile
$(CC) $(CFLAGS) $(shell pkg-config --cflags libelf 2> /dev/null) -DETH_PK3_FILE=\"$(PK3_FILE)\" -DETH_VERSION=\"$(VERSION)\" -c -o $@ $<
q_math.o: sdk/src/game/q_math.c Makefile
$(CC) $(CFLAGS) -c -o $@ $<
# Link
$(PROG): $(OBJS) q_math.o
$(CC) $(OBJS) q_math.o -o $(PROG) $(LDFLAGS) $(LIBGHF_LDFLAGS)
# libghf
$(LIBGHF): $(LIBGHF_DISTFILE)
tar xzf $(LIBGHF_DISTFILE)
make -C $(LIBGHF_FOLDER) clean all $(if $(RELEASE), RELEASE=1)
$(LIBGHF_DISTFILE):
wget $(LIBGHF_URL)$(LIBGHF_DISTFILE)
# sdk
$(SDK_FOLDER):
@test -f $(SDK_FILE) || wget $(SDK_URL)$(SDK_FILE)
mkdir $(SDK_FOLDER)
/bin/sh $(SDK_FILE) --tar xfC $(SDK_FOLDER)
@# Cleanup sdk
find $(SDK_FOLDER) -not -name "q_math.c" -not -iname "*.h" -exec rm -f {} \; 2> /dev/null || /bin/true
find $(SDK_FOLDER) -type d -exec rmdir -p {} \; 2> /dev/null || /bin/true
rm -rf $(SDK_FOLDER)/src/botai
@# Change somes vars name in ET SDK to avoid conflict with system libs
sed -i -e "s/Window/eth_Window/" $(SDK_FOLDER)/src/ui/ui_shared.h
sed -i -e "s/DT_NUM/eth_DT_NUM/" $(SDK_FOLDER)/src/game/q_shared.h
sed -i -e "s/EV_NONE/eth_EV_NONE/" $(SDK_FOLDER)/src/game/bg_public.h
# pk3
$(PK3_FILE): $(SHADERS_SCRIPT)
cd $(PK3_FOLDER) && zip -q9r ../$(PK3_FILE) . -x '*.svn*'
# auto-generate shaders files
$(SHADERS_DEFINE) $(SHADERS_SCRIPT): $(SHADERS_MAKER)
/bin/sh $(SHADERS_MAKER)
clean:
rm -rf $(PROG) $(OBJS) $(LIBGHF_FOLDER) $(PK3_FILE) $(SDK_FOLDER) \
$(SHADERS_SCRIPT) $(SHADERS_DEFINE) q_math.o private.o
dist:
@test ! -f eth-$(VERSION).tar.gz || (echo eth-$(VERSION).tar.gz already exist. && /bin/false)
make clean all RELEASE=1
mkdir $(DIST_FOLDER)
cp -R $(DIST_FILES) $(DIST_FOLDER)
find $(DIST_FOLDER) -type d -name ".svn" -exec rm -rf {} \; 2> /dev/null || /bin/true
tar --numeric-owner -czf eth-$(VERSION).tar.gz $(DIST_FOLDER)
rm -rf $(DIST_FOLDER)
help:
@echo "For this Makefile options see README"