All pastes #271106 Raw Edit

ascii

public text v1 · immutable
·published 2006-12-08 01:40 UTC
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