Remove old makefile

This commit is contained in:
Jenny White 2018-04-28 20:28:04 +03:00
parent 6725619837
commit aa8f861952

View File

@ -1,191 +0,0 @@
#
# MAKEFILE OPTIONS (make OPTION=1 ...args)
#
# GAME - compile for specific game (tf2, hl2dm, dab, tf2c, css, dynamic), tf2 by default, other ones probably won't compile/crash on inject
# CLANG - compile with clang instead of g++
# BUILD_DEBUG - include debug info in the build
# NO_STRIP - Don't Strip library (for use with debug build, can get you vacced)
# NO_VISUALS - disable all visuals completely
# NO_IPC - disable IPC module completely (also disables followbot lol)
# NO_GUI - disable GUI
# NO_LTO - disable Link-Time Optimization
# NO_WARNINGS - disable warnings during compilation
# NO_TF2_RENDERING - disable in-game rendering (does not work yet)
# TEXTMODE_STDIN - allows using console with textmode tf2
# TEXTMODE_VAC - allows joining VAC-secured servers in textmode
#
GAME=tf2
ENABLE_VISUALS=1
ENABLE_GUI=1
ENABLE_IPC=1
ENABLE_NULL_GRAPHICS=0
TEXTMODE_STDIN=0
TEXTMODE_VAC=0
DATA_PATH="/opt/cathook/data"
NO_LTO=0
ifdef CLANG
override NO_LTO=1
endif
ifdef NO_VISUALS
ENABLE_VISUALS:=0
ENABLE_GUI:=0
endif
ifdef NO_IPC
ENABLE_IPC:=0
endif
ifdef NO_GUI
ENABLE_GUI:=0
endif
ifdef NO_TF2_RENDERING
ENABLE_NULL_GRAPHICS:=1
endif
OUT_NAME = libcathook.so
SSDK_DIR=$(realpath source-sdk-2013-headers/mp/src)
SIPC_DIR=$(realpath simple-ipc/src/include)
LIB_DIR=lib
SRC_DIR=src
RES_DIR=res
OUT_DIR=bin
TARGET = $(OUT_DIR)/$(OUT_NAME)
INCLUDES=-Iinclude -I. -Iucccccp -isystem$(SSDK_DIR)/public -isystem$(SSDK_DIR)/mathlib -isystem$(SSDK_DIR)/common -isystem$(SSDK_DIR)/public/tier1 -isystem$(SSDK_DIR)/public/tier0 -isystem$(SSDK_DIR)
LDLIBS=-static -l:libc.so.6 -l:libstdc++.so.6 -l:libtier0.so -l:libvstdlib.so
LDFLAGS=-shared -L$(realpath $(LIB_DIR))
#LDFLAGS+=-Wl,--no-undefined
SOURCES=$(shell find $(SRC_DIR) -name "*.c*" -print)
ifndef CLANG
CXX=$(shell sh -c "which g++-7 || which g++-6 || which g++")
CC=$(shell sh -c "which gcc-7 || which g++-6 || which gcc")
LD=$(CXX)
LDFLAGS+=-m32 -fno-gnu-unique
else
CXX=clang++
CC=clang
LD=ld.lld
LDFLAGS+=-melf_i386
endif
DEFINES+=_GLIBCXX_USE_CXX11_ABI=0 _POSIX=1 FREETYPE_GL_USE_VAO=1 RAD_TELEMETRY_DISABLED=1 LINUX=1 USE_SDL=1 _LINUX=1 POSIX=1 GNUC=1 NO_MALLOC_OVERRIDE=1
DEFINES+=ENABLE_VISUALS=$(ENABLE_VISUALS) ENABLE_GUI=$(ENABLE_GUI) ENABLE_IPC=$(ENABLE_IPC) BUILD_GAME=$(GAME) ENABLE_NULL_GRAPHICS=$(ENABLE_NULL_GRAPHICS) TEXTMODE_STDIN=$(TEXTMODE_STDIN) TEXTMODE_VAC=$(TEXTMODE_VAC) DATA_PATH="\"$(DATA_PATH)\""
WARNING_FLAGS=-pedantic -Wall -Wextra -Wcast-align -Wcast-qual -Wctor-dtor-privacy -Wdisabled-optimization -Wformat=2 -Winit-self -Wlogical-op -Wmissing-declarations -Wmissing-include-dirs -Wnoexcept -Wold-style-cast -Woverloaded-virtual -Wredundant-decls -Wshadow -Wsign-conversion -Wsign-promo -Wstrict-null-sentinel -Wstrict-overflow=5 -Wswitch-default -Wundef
COMMON_FLAGS=-O3 -shared -Wno-unknown-pragmas -fmessage-length=0 -m32 -fvisibility=hidden -fPIC -march=native -mtune=native
ifdef CLANG
COMMON_FLAGS+=-Wno-c++11-narrowing
endif
ifdef BUILD_DEBUG
COMMON_FLAGS+=-g3 -ggdb
else
ifneq ($(NO_LTO),1)
COMMON_FLAGS+=-flto
endif
endif
CFLAGS=$(COMMON_FLAGS)
CXXFLAGS=-std=gnu++1z $(COMMON_FLAGS)
ifdef NO_WARNINGS
CFLAGS+=-w
CXXFLAGS+=-w
else
CFLAGS+=$(WARNING_FLAGS)
CXXFLAGS+=$(WARNING_FLAGS)
endif
ifeq ($(ENABLE_VISUALS),1)
LDLIBS+=-lssl -l:libSDL2-2.0.so.0 -l:libGLEW.so -lglez -lxoverlay
CXXFLAGS+=$(shell sdl2-config --cflags)
CFLAGS+=$(shell sdl2-config --cflags)
else
EXCL_SOURCES:=visual/atlas.cpp visual/colors.cpp visual/drawex.cpp visual/drawing.cpp visual/drawmgr.cpp visual/EffectChams.cpp visual/EffectGlow.cpp hacks/ESP.cpp hacks/SkinChanger.cpp hacks/SpyAlert.cpp hacks/Radar.cpp fidgetspinner.cpp hooks/sdl.cpp drawing.cpp hooks/PaintTraverse.cpp
EXCL_SOURCES:=$(addprefix $(SRC_DIR)/,$(EXCL_SOURCES))
SOURCES:=$(filter-out $(shell find $(SRC_DIR)/gui -name "*.cpp" -print),$(SOURCES))
SOURCES:=$(filter-out $(EXCL_SOURCES),$(SOURCES))
endif
ifneq ($(ENABLE_GUI),1)
SOURCES := $(filter-out $(shell find $(SRC_DIR)/gui -name "*.cpp" -print),$(SOURCES))
endif
GIT_COMMIT_HASH=$(shell git log -1 --pretty="%h")
GIT_COMMIT_DATE=$(shell git log -1 --pretty="%ai")
DEFINES+=GIT_COMMIT_HASH="\"$(GIT_COMMIT_HASH)\"" GIT_COMMIT_DATE="\"$(GIT_COMMIT_DATE)\""
ifeq ($(ENABLE_IPC),1)
SOURCES+=$(shell find $(SIPC_DIR) -name "*.cpp" -print)
INCLUDES+=-I$(SIPC_DIR)
endif
CXXFLAGS+=$(addprefix -D,$(DEFINES))
CFLAGS+=$(addprefix -D,$(DEFINES))
CXXFLAGS+=$(INCLUDES)
CFLAGS+=$(INCLUDES)
OBJECTS = $(patsubst %.c,%.o, $(patsubst %.cpp,%.o, $(SOURCES)))
OBJECTS += $(shell find $(RES_DIR) -name "*.o" -print)
DEPENDS = $(patsubst %.c,%.d, $(patsubst %.cpp,%.d, $(SOURCES)))
.PHONY: clean directories echo data
all:
mkdir -p $(OUT_DIR)
$(MAKE) data
$(MAKE) $(TARGET)
echo:
echo $(OBJECTS)
data:
./check-data "$(DATA_PATH)"
# 3rd party source files, we don't need warnings there
# c++
src/sdk/checksum_md5.o : CXXFLAGS+=-w
src/sdk/convar.o : CXXFLAGS+=-w
src/sdk/KeyValues.o : CXXFLAGS+=-w
src/sdk/MaterialSystemUtil.o : CXXFLAGS+=-w
src/sdk/tier1.o : CXXFLAGS+=-w
src/sdk/utlbuffer.o : CXXFLAGS+=-w
# end of 3rd party sources
.cpp.o:
@echo Compiling $<
$(CXX) $(CXXFLAGS) -c $< -o $@
.c.o:
@echo Compiling $<
$(CC) $(CFLAGS) -c $< -o $@
%.d: %.cpp
@$(CXX) -M $(CXXFLAGS) $< > $@
$(TARGET): $(OBJECTS)
@echo Building cathook
$(LD) -o $@ $(LDFLAGS) $(OBJECTS) $(LDLIBS)
ifndef NO_STRIP
strip --strip-all $@
endif
clean:
find src -type f -name '*.o' -delete
find src -type f -name '*.d' -delete
find simple-ipc -type f -name '*.o' -delete
find simple-ipc -type f -name '*.d' -delete
rm -rf ./bin
ifneq ($(MAKECMDGOALS), clean)
-include $(DEPENDS)
endif