#
# Quake2 gamei386.so Makefile for Linux 2.0
#
# Jan '98 by Zoid <zoid@idsoftware.com>
#
# Modified for bjp tools by goldenboy <j.nicolaisen@gmx.net>
#
#
# ELF only
#
# Probably requires GNU make (gmake)
#

CC=gcc
CXX=g++

CFLAGS=-mtune=pentium -O3 -pipe -fomit-frame-pointer
CXXFLAGS=-mtune=pentium -O3 -pipe -fpermissive -fomit-frame-pointer

LDFLAGS=-ldl -lm

LIGHT_OBJS = 	common/bspfile.o common/cmdlib.o light/entities.o light/light.o \
		light/ltface.o common/mathlib.o light/threads.o light/trace.o 

VIS_OBJS = 	common/bspfile.o common/cmdlib.o vis/flow.o common/mathlib.o \
		vis/soundpvs.o vis/vis.o

BSPINFO_OBJS = 	bspinfo/brush.o common/bspfile.o bspinfo/bspinfo.o common/cmdlib.o \
		bspinfo/csg4.o common/mathlib.o bspinfo/portals.o bspinfo/qbsp.o

QBSP_OBJS = 	qbsp/brush.o qbsp/bspfile.o qbsp/cmdlib.o qbsp/csg4.o qbsp/file.o \
		qbsp/globals.o qbsp/map.o qbsp/mathlib.o qbsp/merge.o qbsp/outside.o \
		qbsp/parser.o qbsp/portals.o qbsp/qbsp.o qbsp/solidbsp.o \
		qbsp/surfaces.o qbsp/tjunc.o qbsp/util.o qbsp/wad.o qbsp/winding.o \
		qbsp/writebsp.o

#
# compile
#

.c.o:
	$(CC) $(CFLAGS) -o $@ -c $<

# dirty hack, because qbsp mixes C and C++

qbsp/%.o: CC=g++
qbsp/%.o: CFLAGS+=-fpermissive


# 
# extra targets because light, vis etc are also directories
#

.PHONY: all light vis bspinfo qbsp clean

all : Light Vis
light : Light
vis : Vis
bspinfo : Bspinfo
qbsp : Qbsp


Light : $(LIGHT_OBJS)
	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^
	-mv Light bin/light

Vis : $(VIS_OBJS)
	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^
	-mv Vis bin/vis

Bspinfo : $(BSPINFO_OBJS)
	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^
	-mv Bspinfo bin/bspinfo

Qbsp : $(QBSP_OBJS)
	$(CXX) $(CXXFLAGS) $(LDFLAGS) -o $@ $^
	-mv Qbsp bin/qbsp

clean:
	-rm -f $(VIS_OBJS)
	-rm -f $(LIGHT_OBJS)
	-rm -f $(BSPINFO_OBJS)
	-rm -f $(QBSP_OBJS)


