--- makefile.orig	Mon Jul 24 15:18:20 2006
+++ makefile	Mon Jul 24 15:22:20 2006
@@ -1,19 +1,30 @@
+# GNU Makefile for EGL.
+
+# Compilation components and options.
 BUILD_CLIENT?=YES	# client executable
 BUILD_DEDICATED?=YES	# server executable
 BUILD_CGAME?=YES	# cgame dll
 BUILD_GAME?=YES		# game dll
+WITH_OPT_CFLAGS?=YES	# Optimized compiler flags.
+WITH_HOMEDIR?=YES	# Write files in "~/.egl".
 
+# Common variables.
+CC?=gcc
 VERSION=0.0.6
-
-CC=gcc
 EGL_MAKEFILE=makefile
-SHARED_FLAGS:=
-RELEASE_CFLAGS=-Isource/ -I./ -I../ $(SHARED_FLAGS) -O2 -fno-strict-aliasing -ffast-math -fexpensive-optimizations
-DEBUG_CFLAGS=-g -Isource/ -I./ -I../ $(SHARED_FLAGS) -DC_ONLY
-LDFLAGS=-ldl -lm -lz -ljpeg -lpng
-DED_LDFLAGS=-ldl -lm -lz
-MODULE_LDFLAGS=-ldl -lm
-X11_LDFLAGS=-L/usr/X11R6/lib -lX11 -lXext
+
+# Compiler flags.
+SHARED_FLAGS:=-Isource -I./ -I../ $(CFLAGS)
+RELEASE_CFLAGS=$(SHARED_FLAGS)
+DEBUG_CFLAGS=$(SHARED_FLAGS) -g -DC_ONLY
+
+# Linker flags.
+LDFLAGS+=-lm
+DED_LDFLAGS=-lz
+MODULE_LDFLAGS=
+X11_LDFLAGS=-lX11 -lXext -ljpeg -lpng -lz
+
+# Compilation commands.
 
 SHLIBCFLAGS=-fPIC
 SHLIBLDFLAGS=-shared
@@ -26,8 +37,22 @@
 ARCH := $(shell uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc/ -e s/sparc64/sparc/ -e s/arm.*/arm/ -e s/sa110/arm/ -e s/alpha/axp/)
 SHLIBEXT =so
 
-BUILD_DEBUG_DIR=debug$(ARCH)
-BUILD_RELEASE_DIR=release$(ARCH)
+OSTYPE := $(shell uname -s)
+
+BUILD_DEBUG_DIR=debug
+BUILD_RELEASE_DIR=release
+
+ifeq ($(OSTYPE),Linux)
+LDFLAGS+=-ldl
+endif
+
+ifeq ($(OSTYPE),FreeBSD)
+# These variables are defined from the port, and passed by the environment.
+SHARED_FLAGS+=	-I$(LOCALBASE)/include \
+		-DDATADIR='\"$(Q2DIR)\"' -DLIBDIR='\"$(LIBDIR)\"'
+LDFLAGS+=	-L$(LOCALBASE)/lib
+X11_LDFLAGS+=	-lpthread
+endif
 
 ifeq ($(strip $(BUILD_CLIENT)),YES)
   TARGETS += $(BUILDDIR)/egl
@@ -38,19 +63,27 @@
 endif
 
 ifeq ($(strip $(BUILD_CGAME)),YES)
- TARGETS += $(BUILDDIR)/baseq2/eglcgame$(ARCH).$(SHLIBEXT)
+ TARGETS += $(BUILDDIR)/baseq2/eglcgame.$(SHLIBEXT)
 endif
 
 ifeq ($(strip $(BUILD_GAME)),YES)
- TARGETS += $(BUILDDIR)/baseq2/game$(ARCH).$(SHLIBEXT)
+ TARGETS += $(BUILDDIR)/baseq2/game.$(SHLIBEXT)
 endif
 
-ifeq ($(wildcard /usr/include/X11/extensions/xf86vmode.h),/usr/include/X11/extensions/xf86vmode.h)
+ifeq ($(strip $(WITH_OPT_CFLAGS)),YES)
+RELEASE_CFLAGS += -O2 -fno-strict-aliasing -ffast-math -fexpensive-optimizations
+endif
+
+ifeq ($(strip $(WITH_HOMEDIR)),YES)
+SHARED_FLAGS += -DHOMEDIR
+endif
+
+ifeq ($(wildcard $(LOCALBASE)/include/X11/extensions/xf86vmode.h),/usr/include/X11/extensions/xf86vmode.h)
 SHARED_FLAGS += -DXF86VMODE
 X11_LDFLAGS += -lXxf86vm
 endif
 
-ifeq ($(wildcard /usr/include/X11/extensions/xf86dga.h),/usr/include/X11/extensions/xf86dga.h)
+ifeq ($(wildcard $(LOCALBASE)/include/X11/extensions/xf86dga.h),/usr/include/X11/extensions/xf86dga.h)
 SHARED_FLAGS += -DXF86DGA
 X11_LDFLAGS += -lXxf86dga
 endif
@@ -111,6 +144,7 @@
 	$(BUILDDIR)/client/sv_user.o \
 	$(BUILDDIR)/client/sv_world.o \
 	\
+	$(BUILDDIR)/client/cl_acapi.o \
 	$(BUILDDIR)/client/cl_cgapi.o \
 	$(BUILDDIR)/client/cl_cin.o \
 	$(BUILDDIR)/client/cl_console.o \
@@ -135,7 +169,7 @@
 	\
 	$(BUILDDIR)/client/r_math.o \
 	$(BUILDDIR)/client/rb_batch.o \
-	$(BUILDDIR)/client/rb_cin.o \
+	$(BUILDDIR)/client/rf_video.o \
 	$(BUILDDIR)/client/rb_entity.o \
 	$(BUILDDIR)/client/rb_light.o \
 	$(BUILDDIR)/client/rb_math.o \
@@ -173,7 +207,6 @@
 	$(BUILDDIR)/client/x11_main.o \
 	$(BUILDDIR)/client/x11_utils.o \
 	\
-	$(BUILDDIR)/client/byteswap.o \
 	$(BUILDDIR)/client/infostrings.o \
 	$(BUILDDIR)/client/m_angles.o \
 	$(BUILDDIR)/client/m_bounds.o \
@@ -222,6 +255,7 @@
 $(BUILDDIR)/client/sv_user.o: $(SOURCEDIR)/server/sv_user.c; $(DO_CC)
 $(BUILDDIR)/client/sv_world.o: $(SOURCEDIR)/server/sv_world.c; $(DO_CC)
 
+$(BUILDDIR)/client/cl_acapi.o: $(SOURCEDIR)/client/cl_acapi.c; $(DO_CC)
 $(BUILDDIR)/client/cl_cgapi.o: $(SOURCEDIR)/client/cl_cgapi.c; $(DO_CC)
 $(BUILDDIR)/client/cl_cin.o: $(SOURCEDIR)/client/cl_cin.c; $(DO_CC)
 $(BUILDDIR)/client/cl_console.o: $(SOURCEDIR)/client/cl_console.c; $(DO_CC)
@@ -246,7 +280,7 @@
 
 $(BUILDDIR)/client/r_math.o: $(SOURCEDIR)/renderer/r_math.c; $(DO_CC)
 $(BUILDDIR)/client/rb_batch.o: $(SOURCEDIR)/renderer/rb_batch.c; $(DO_CC)
-$(BUILDDIR)/client/rb_cin.o: $(SOURCEDIR)/renderer/rb_cin.c; $(DO_CC)
+$(BUILDDIR)/client/rf_video.o: $(SOURCEDIR)/renderer/rf_video.c; $(DO_CC)
 $(BUILDDIR)/client/rb_entity.o: $(SOURCEDIR)/renderer/rb_entity.c; $(DO_CC)
 $(BUILDDIR)/client/rb_light.o: $(SOURCEDIR)/renderer/rb_light.c; $(DO_CC)
 $(BUILDDIR)/client/rb_math.o: $(SOURCEDIR)/renderer/rb_math.c; $(DO_CC)
@@ -284,7 +318,6 @@
 $(BUILDDIR)/client/x11_main.o: $(SOURCEDIR)/unix/x11_main.c; $(DO_CC)
 $(BUILDDIR)/client/x11_utils.o: $(SOURCEDIR)/unix/x11_utils.c; $(DO_CC)
 
-$(BUILDDIR)/client/byteswap.o: $(SOURCEDIR)/shared/byteswap.c; $(DO_CC)
 $(BUILDDIR)/client/infostrings.o: $(SOURCEDIR)/shared/infostrings.c; $(DO_CC)
 $(BUILDDIR)/client/m_angles.o: $(SOURCEDIR)/shared/m_angles.c; $(DO_CC)
 $(BUILDDIR)/client/m_bounds.o: $(SOURCEDIR)/shared/m_bounds.c; $(DO_CC)
@@ -337,7 +370,6 @@
 	$(BUILDDIR)/dedicated/unix_main.o \
 	$(BUILDDIR)/dedicated/unix_udp.o \
 	\
-	$(BUILDDIR)/dedicated/byteswap.o \
 	$(BUILDDIR)/dedicated/infostrings.o \
 	$(BUILDDIR)/dedicated/m_angles.o \
 	$(BUILDDIR)/dedicated/m_bounds.o \
@@ -355,7 +387,7 @@
 
 $(BUILDDIR)/eglded: $(OBJS_DEDICATED)
 	@echo Linking eglded;
-	$(CC) $(CFLAGS) -o $@ $(OBJS_DEDICATED) $(DED_LDFLAGS)
+	$(CC) $(CFLAGS) -o $@ $(OBJS_DEDICATED) $(LDFLAGS) $(DED_LDFLAGS)
 
 $(BUILDDIR)/dedicated/alias.o: $(SOURCEDIR)/common/alias.c; $(DO_DED_CC)
 $(BUILDDIR)/dedicated/cbuf.o: $(SOURCEDIR)/common/cbuf.c; $(DO_DED_CC)
@@ -390,7 +422,6 @@
 $(BUILDDIR)/dedicated/unix_main.o: $(SOURCEDIR)/unix/unix_main.c; $(DO_DED_CC)
 $(BUILDDIR)/dedicated/unix_udp.o: $(SOURCEDIR)/unix/unix_udp.c; $(DO_DED_CC)
 
-$(BUILDDIR)/dedicated/byteswap.o: $(SOURCEDIR)/shared/byteswap.c; $(DO_DED_CC)
 $(BUILDDIR)/dedicated/infostrings.o: $(SOURCEDIR)/shared/infostrings.c; $(DO_DED_CC)
 $(BUILDDIR)/dedicated/m_angles.o: $(SOURCEDIR)/shared/m_angles.c; $(DO_DED_CC)
 $(BUILDDIR)/dedicated/m_bounds.o: $(SOURCEDIR)/shared/m_bounds.c; $(DO_DED_CC)
@@ -475,7 +506,6 @@
 	\
 	$(BUILDDIR)/baseq2/cgame/pmove.o \
 	\
-	$(BUILDDIR)/baseq2/cgame/byteswap.o \
 	$(BUILDDIR)/baseq2/cgame/infostrings.o \
 	$(BUILDDIR)/baseq2/cgame/m_angles.o \
 	$(BUILDDIR)/baseq2/cgame/m_bounds.o \
@@ -490,9 +520,9 @@
 	$(BUILDDIR)/baseq2/cgame/m_flash.o \
 
 
-$(BUILDDIR)/baseq2/eglcgame$(ARCH).$(SHLIBEXT): $(OBJS_CGAME)
+$(BUILDDIR)/baseq2/eglcgame.$(SHLIBEXT): $(OBJS_CGAME)
 	@echo Linking cgame dll;
-	$(CC) $(CFLAGS) $(SHLIBLDFLAGS) -o $@ $(OBJS_CGAME) $(MODULE_LDFLAGS)
+	$(CC) $(CFLAGS) $(SHLIBLDFLAGS) -o $@ $(OBJS_CGAME) $(LDFLAGS) $(MODULE_LDFLAGS)
 
 $(BUILDDIR)/baseq2/cgame/cg_api.o: $(SOURCEDIR)/cgame/cg_api.c; $(DO_SHLIB_CC)
 $(BUILDDIR)/baseq2/cgame/cg_console.o: $(SOURCEDIR)/cgame/cg_console.c; $(DO_SHLIB_CC)
@@ -557,7 +587,6 @@
 $(BUILDDIR)/baseq2/cgame/ui_keys.o: $(SOURCEDIR)/cgame/ui/ui_keys.c; $(DO_SHLIB_CC)
 $(BUILDDIR)/baseq2/cgame/pmove.o: $(SOURCEDIR)/cgame/pmove.c; $(DO_SHLIB_CC)
 
-$(BUILDDIR)/baseq2/cgame/byteswap.o: $(SOURCEDIR)/shared/byteswap.c; $(DO_SHLIB_CC)
 $(BUILDDIR)/baseq2/cgame/infostrings.o: $(SOURCEDIR)/shared/infostrings.c; $(DO_SHLIB_CC)
 $(BUILDDIR)/baseq2/cgame/m_angles.o: $(SOURCEDIR)/shared/m_angles.c; $(DO_SHLIB_CC)
 $(BUILDDIR)/baseq2/cgame/m_bounds.o: $(SOURCEDIR)/shared/m_bounds.c; $(DO_SHLIB_CC)
@@ -625,7 +654,6 @@
 	$(BUILDDIR)/baseq2/game/p_view.o \
 	$(BUILDDIR)/baseq2/game/p_weapon.o \
 	\
-	$(BUILDDIR)/baseq2/game/byteswap.o \
 	$(BUILDDIR)/baseq2/game/infostrings.o \
 	$(BUILDDIR)/baseq2/game/m_angles.o \
 	$(BUILDDIR)/baseq2/game/m_bounds.o \
@@ -639,9 +667,9 @@
 	$(BUILDDIR)/baseq2/game/string.o \
 
 
-$(BUILDDIR)/baseq2/game$(ARCH).$(SHLIBEXT): $(OBJS_GAME)
+$(BUILDDIR)/baseq2/game.$(SHLIBEXT): $(OBJS_GAME)
 	@echo Linking game dll;
-	$(CC) $(CFLAGS) $(SHLIBLDFLAGS) -o $@ $(OBJS_GAME) $(MODULE_LDFLAGS)
+	$(CC) $(CFLAGS) $(SHLIBLDFLAGS) -o $@ $(OBJS_GAME) $(LDFLAGS) $(MODULE_LDFLAGS)
 
 $(BUILDDIR)/baseq2/game/g_ai.o: $(SOURCEDIR)/game/g_ai.c; $(DO_SHLIB_CC)
 $(BUILDDIR)/baseq2/game/g_chase.o: $(SOURCEDIR)/game/g_chase.c; $(DO_SHLIB_CC)
@@ -691,7 +719,6 @@
 $(BUILDDIR)/baseq2/game/p_view.o: $(SOURCEDIR)/game/p_view.c; $(DO_SHLIB_CC)
 $(BUILDDIR)/baseq2/game/p_weapon.o: $(SOURCEDIR)/game/p_weapon.c; $(DO_SHLIB_CC)
 
-$(BUILDDIR)/baseq2/game/byteswap.o: $(SOURCEDIR)/shared/byteswap.c; $(DO_SHLIB_CC)
 $(BUILDDIR)/baseq2/game/infostrings.o: $(SOURCEDIR)/shared/infostrings.c; $(DO_SHLIB_CC)
 $(BUILDDIR)/baseq2/game/m_angles.o: $(SOURCEDIR)/shared/m_angles.c; $(DO_SHLIB_CC)
 $(BUILDDIR)/baseq2/game/m_bounds.o: $(SOURCEDIR)/shared/m_bounds.c; $(DO_SHLIB_CC)
