rendered paste body# GPL License - see http://opensource.org/licenses/gpl-license.php
# Copyright 2005 *nixCoders team - don't forget to credits us
CCXX = g++-3.3
CFLAGS = -g -pipe -fPIC -Wall -DGAME_DLL -DQ4SDK -fno-strict-aliasing -fmessage-length=0
LDFLAGS = -lz -ldl -shared
SDK_FILE = quake4-linux-1.0-sdk.x86.run
SDK_URL = http://ftp.games.skynet.be/pub/ftp.idsoftware.com/quake4/source/linux/
SDK_ROOT = sdk
IDLIB_SRC = $(shell find $(SDK_ROOT)/idlib -type f -iname "*.cpp")
IDLIB_OBJS = $(patsubst %.cpp, %.o, $(IDLIB_SRC))
IDLIB_NAME = Q4idlib
IDLIB = lib$(IDLIB_NAME).a
Q4H_OBJS = engine.o g_functions.o hook.o q4h.o visuals.o
LIB_ROOT = lib
BUILD_ROOT = build
IDLIB_OBJS := $(patsubst $(SDK_ROOT)/%, $(BUILD_ROOT)/%, $(IDLIB_OBJS))
Q4H_OBJS := $(patsubst %, $(BUILD_ROOT)/%, $(Q4H_OBJS))
IDLIB := $(LIB_ROOT)/$(IDLIB)
Q4H_LIB = libQ4H.so
all: $(SDK_ROOT) $(IDLIB) $(Q4H_LIB)
clean:
rm -rf $(Q4H_LIB) $(BUILD_ROOT)
# idlib
$(IDLIB_OBJS):
mkdir -p $(dir $@) > /dev/null 2>&1
$(CCXX) $(CFLAGS) -c -o $@ $(patsubst $(BUILD_ROOT)/%.o, sdk/%.cpp, $@) 2> /dev/null
$(IDLIB): $(IDLIB_OBJS)
ar r $(IDLIB) $(IDLIB_OBJS)
ranlib $(IDLIB)
# q4h
$(Q4H_LIB): $(Q4H_OBJS) $(SDK_ROOT)
$(CCXX) $(LDFLAGS) $(Q4H_OBJS) -o $(Q4H_LIB) -L$(LIB_ROOT) -l$(IDLIB_NAME) -lhook
$(BUILD_ROOT)/%.o: %.cpp q4h.h
$(CCXX) $(CFLAGS) -c -o $@ $<
# sdk
$(SDK_FILE):
wget --progress=dot:mega $(SDK_URL)$(SDK_FILE)
$(SDK_ROOT): $(SDK_FILE)
mkdir $(SDK_ROOT)
/bin/sh $(SDK_FILE) --tar xfC $(SDK_ROOT)
@# Cleanup sdk
find $(SDK_ROOT) -type f -not -wholename "$(SDK_ROOT)/source/idlib/*" -not -name "*.h" -exec rm -f \{\} \;
find $(SDK_ROOT) -type d -exec rmdir -p \{\} \; 2> /dev/null || /bin/true
mv $(SDK_ROOT)/source/* $(SDK_ROOT)
rm -rf $(SDK_ROOT)/source
@# Restart make for get correct $(IDLIB_SRC)
make $(MAKECMDGOALS)
exit 0