#
# Quake Makefile for Linux 2.0
#
# Aug '98 by Zoid <zoid@idsoftware.com>
#
# ELF only
#
# Modified by QuDos at http://qudos.quakedev.com
#

# Check OS type.
OSTYPE := $(shell uname -s | tr A-Z a-z)

# this nice line comes from the linux kernel makefile
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/)
MARCH :=$(shell uname -m)

VERSION=3.2.4
BINDIR=quake
MOUNT_DIR=.
BUILD_DEBUG_DIR=debug_build
BUILD_RELEASE_DIR=release_build

BUILD_TREMOR=YES	# Tremor glx executable (uses ioctl's for cdrom and oss for sound).
BUILD_TREMOR_SDL=YES	# Tremor sdl glx executable (uses SDL for cdrom and sound).
BUILD_DZIP=NO		# Dzip binary for compress/uncompress demos

ifeq ($(OSTYPE),linux)
WITH_FMOD=NO		# Use FMOD library for ingame music, no tested
endif

# Use DATADIR for reading and ~/.tremor for writting.
WITH_DATADIR=NO
# The next option is required when DATADIR is set to YES, Use ~/ for writing, instead of .
WITH_HOMEDIR=NO
# Directory within $HOME to write to
HOMEDIR=.tremor


CC=gcc
CC_VERSION=$(shell $(CC) -dumpversion | sed -e 's/\..*//g')
CC_VERSION_NUM=$(shell $(CC) -dumpversion)

OPTIMIZE=NO           # Enable Optimization, release build only.
STRIP=NO              # Remove symbols from binaries, reduce size.
VERBOSE=NO

LOCALBASE= /usr/local
GAMEBASE= /usr/local
X11BASE=/usr/X11R6
SYSBINDIR=$(LOCALBASE)/bin
DATADIR= $(GAMEBASE)/games/quake

ifeq ($(ARCH),x86_64)
 ARCH_LIBDIR=64
endif

# Seems that gcc 4.0 has some issues with -march option here, so i added it by default.
# Feel free to remove it.
BASE_CFLAGS+= \
             -I$(LOCALBASE)/include \
             -I$(X11BASE)/include \
	     -Dstricmp=strcasecmp \
             -DGLQUAKE
ifeq ($(ARCH),i386)
 BASE_CFLAGS+=-march=$(MARCH)
endif
	    
DEBUG_CFLAGS=$(BASE_CFLAGS) -g -ggdb -Wall
RELEASE_CFLAGS+=$(BASE_CFLAGS) \
               -fno-strict-aliasing \

ifeq ($(strip $(OPTIMIZE)),YES)
 RELEASE_CFLAGS+= -O3 \
                  -funroll-loops \
                  -falign-loops=2 \
                  -falign-jumps=2 \
                  -falign-functions=2
 ifeq ($(ARCH),i386)
  RELEASE_CFLAGS+=-march=$(MARCH)
 endif
endif

ifeq ($(strip $(STRIP)),YES)
RELEASE_CFLAGS+=-s
endif

ifeq ($(strip $(WITH_FMOD)),YES)
 BASE_CFLAGS+= -DWITH_FMOD
 LDFLAGS_FMOD+= -L./fmod -Wl,-rpath,. -lfmod
endif

ifeq ($(strip $(WITH_DATADIR)),YES)
 BASE_CFLAGS+=-DDATADIR='\"$(DATADIR)\"'
 BASE_CFLAGS+=-DHOMEDIR='\"$(HOMEDIR)\"'
endif

LDFLAGS=-lm -pthread
ifeq ($(OSTYPE),linux)
 LDFLAGS+=-ldl
endif

X_LDFLAGS=-L$(X11BASE)/lib$(ARCH_LIBDIR) \
          -lX11 -lXext -lXxf86vm -lXxf86dga
GLX_LDFLAGS=-L$(X11BASE)/lib$(ARCH_LIBDIR) \
            -L$(LOCALBASE)/lib$(ARCH_LIBDIR) \
	    -lGL -lGLU -ljpeg `libpng-config --libs`


SDL_CONFIG=sdl-config
SDL_CFLAGS=$(shell $(SDL_CONFIG) --cflags)
SDL_LDFLAGS=$(shell $(SDL_CONFIG) --libs)

ifeq ($(VERBOSE),NO)
CC_OUTPUT=echo "  Compiling >> $< ..." &&
endif
DO_CC=$(CC_OUTPUT) $(CC) $(CFLAGS) -o $@ -c $<
DO_GL_CC=$(CC_OUTPUT) $(CC) $(CFLAGS) -o $@ -c $<
DO_SDL_CC=$(CC_OUTPUT) $(CC) $(CFLAGS) $(SDL_CFLAGS) -o $@ -c $<

#############################################################################
# SETUP AND BUILD
#############################################################################

ifeq ($(strip $(BUILD_TREMOR)),YES)
 TARGETS += $(BINDIR)/tremor-glx
endif

ifeq ($(strip $(BUILD_TREMOR_SDL)),YES)
 TARGETS +=$(BINDIR)/tremor-sdl
endif

ifeq ($(strip $(BUILD_DZIP)),YES)
 TARGETS +=$(BINDIR)/dzip
endif

all:
	@echo
	@echo Set to YES or NO at the top of this file the possible options to build by the makefile.
	@echo By default, it will build client, sdl client and dzip binary.
	@echo 
	@echo Possible targets:
	@echo
	@echo ">> Add VERBOSE=YES to the command line in order to get a verbose output, defaults to NO"
	@echo
	@echo ">> make release       (build the binary for a release)."
	@echo ">> make debug         (build the binary for debuging mode)."
	@echo ">> make clean         (clean objects)."
	@echo ">> make distclean     (clean objects, executables and modified files)."
	@echo ">> make install       (quake home dir)."
	@echo ">> make install_root  (required when was built with DATADIR option enabled," 
	@echo "                       you must gain root privileges)."
	@echo
	
debug:
	@echo
	@printf "** Debug Build **\n"
	@-mkdir -p $(BUILD_DEBUG_DIR) \
		$(BINDIR)
ifeq ($(VERBOSE),YES)
		$(MAKE) targets BUILDDIR=$(BUILD_DEBUG_DIR) CFLAGS="$(DEBUG_CFLAGS)";
else
		@-$(MAKE) --silent targets BUILDDIR=$(BUILD_DEBUG_DIR) CFLAGS="$(DEBUG_CFLAGS)";
endif
	
release:
	@echo
	@printf "** Release Build **\n"
	@-mkdir -p $(BUILD_RELEASE_DIR) \
		$(BINDIR)
ifeq ($(VERBOSE),YES)
		$(MAKE) targets BUILDDIR=$(BUILD_RELEASE_DIR) CFLAGS="$(RELEASE_CFLAGS)";
else
		@-$(MAKE) --silent targets BUILDDIR=$(BUILD_RELEASE_DIR) CFLAGS="$(RELEASE_CFLAGS)";
endif
	
targets: $(TARGETS)
	@echo
	@echo "Tremor compilation finished succesfully ;)"
	@echo
	@echo "'make install' to install in your quake home dir."
	@echo
	@echo "'make install_root' if was built with DATADIR option enabled, you must gain root privileges."
	@echo

#############################################################################
# GLQuake
#############################################################################

GLQUAKE_OBJS= \
   $(BUILDDIR)/cl_demo.o  $(BUILDDIR)/cl_input.o  $(BUILDDIR)/cl_main.o \
   $(BUILDDIR)/cl_parse.o $(BUILDDIR)/cl_tent.o   $(BUILDDIR)/chase.o \
   $(BUILDDIR)/cmd.o      $(BUILDDIR)/common.o    $(BUILDDIR)/console.o \
   $(BUILDDIR)/crc.o      $(BUILDDIR)/cvar.o \
   \
   $(BUILDDIR)/gl_draw.o  $(BUILDDIR)/gl_md3.o    $(BUILDDIR)/gl_mesh.o \
   $(BUILDDIR)/gl_model.o $(BUILDDIR)/gl_refrag.o $(BUILDDIR)/gl_rlight.o \
   $(BUILDDIR)/gl_rmain.o $(BUILDDIR)/gl_rmisc.o  $(BUILDDIR)/gl_rpart.o \
   $(BUILDDIR)/gl_rsurf.o $(BUILDDIR)/gl_screen.o $(BUILDDIR)/gl_warp.o \
   \
   $(BUILDDIR)/host.o     $(BUILDDIR)/host_cmd.o  $(BUILDDIR)/image.o \
   $(BUILDDIR)/keys.o     $(BUILDDIR)/menu.o      $(BUILDDIR)/mathlib.o \
   $(BUILDDIR)/nehahra.o  $(BUILDDIR)/net_dgrm.o  $(BUILDDIR)/net_loop.o \
   $(BUILDDIR)/net_main.o $(BUILDDIR)/net_vcr.o   $(BUILDDIR)/net_udp.o \
   $(BUILDDIR)/net_bsd.o  $(BUILDDIR)/pr_cmds.o   $(BUILDDIR)/pr_edict.o \
   $(BUILDDIR)/pr_exec.o  $(BUILDDIR)/r_part.o    $(BUILDDIR)/sbar.o \
   $(BUILDDIR)/sv_main.o  $(BUILDDIR)/sv_phys.o   $(BUILDDIR)/sv_move.o \
   $(BUILDDIR)/sv_user.o  $(BUILDDIR)/zone.o      $(BUILDDIR)/view.o   \
   $(BUILDDIR)/version.o  $(BUILDDIR)/wad.o       $(BUILDDIR)/world.o \
   $(BUILDDIR)/sys_unix.o $(BUILDDIR)/snd_dma.o   $(BUILDDIR)/snd_mem.o \
   $(BUILDDIR)/snd_mix.o

SND_OBJS = $(BUILDDIR)/snd_oss.o \
           $(BUILDDIR)/cd_unix.o

SDL_SND_OBJS = $(BUILDDIR)/snd_sdl.o \
               $(BUILDDIR)/cd_sdl.o
   
GLX_OBJS= \
   $(BUILDDIR)/vid_glx.o \
   $(BUILDDIR)/vid_common_gl.o
	
DZIP_OBJS= \
   $(BUILDDIR)/main.o     $(BUILDDIR)/compress.o $(BUILDDIR)/uncompress.o \
   $(BUILDDIR)/list.o     $(BUILDDIR)/crc32.o    $(BUILDDIR)/encode.o \
   $(BUILDDIR)/decode.o   $(BUILDDIR)/v1code.o   $(BUILDDIR)/conmain.o \
   $(BUILDDIR)/delete.o   $(BUILDDIR)/adler32.o  $(BUILDDIR)/deflate.o \
   $(BUILDDIR)/trees.o    $(BUILDDIR)/inflate.o  $(BUILDDIR)/infblock.o \
   $(BUILDDIR)/inftrees.o $(BUILDDIR)/infcodes.o $(BUILDDIR)/infutil.o \
   $(BUILDDIR)/inffast.o
   
$(BINDIR)/tremor-glx : $(GLQUAKE_OBJS) $(SND_OBJS) $(GLX_OBJS)
	@echo
	@echo "**Built Tremor client with cflags:"
	@echo "$(CC) $(CC_VERSION_NUM) $(CFLAGS)";
	@echo
	@echo "**Linking Client with flags:"
	@echo "$(LDFLAGS)";
	@echo "$(X_LDFLAGS)";
	@echo "$(GLX_LDFLAGS)";
	@echo "$(LDFLAGS_FMOD)";
	@echo
	$(CC) $(CFLAGS) -o $@ $(GLQUAKE_OBJS) $(SND_OBJS) $(GLX_OBJS) $(X_LDFLAGS) $(GLX_LDFLAGS) $(LDFLAGS) $(LDFLAGS_FMOD)
	
$(BINDIR)/tremor-sdl : $(GLQUAKE_OBJS) $(SDL_SND_OBJS) $(GLX_OBJS)
	@echo
	@echo "**Built Tremor SDL client with cflags:"
	@echo "$(CC) $(CC_VERSION_NUM) $(CFLAGS)";
	@echo
	@echo "**Linking Client with flags:"
	@echo "$(LDFLAGS)";
	@echo "$(X_LDFLAGS)";
	@echo "$(GLX_LDFLAGS)";
	@echo "$(SDL_LDFLAGS)";
	@echo "$(LDFLAGS_FMOD)";
	@echo
	$(CC) $(CFLAGS) -o $@ $(GLQUAKE_OBJS) $(SDL_SND_OBJS) $(GLX_OBJS) $(X_LDFLAGS) $(GLX_LDFLAGS) $(LDFLAGS) $(SDL_LDFLAGS) $(LDFLAGS_FMOD)
	
$(BINDIR)/dzip : $(DZIP_OBJS)
	$(CC) $(CFLAGS) -o $@ $(DZIP_OBJS) $(LDFLAGS)

$(BUILDDIR)/cl_demo.o :       $(MOUNT_DIR)/cl_demo.c;               $(DO_GL_CC)
$(BUILDDIR)/cl_input.o :      $(MOUNT_DIR)/cl_input.c;              $(DO_GL_CC)
$(BUILDDIR)/cl_main.o :       $(MOUNT_DIR)/cl_main.c;               $(DO_GL_CC)
$(BUILDDIR)/cl_parse.o :      $(MOUNT_DIR)/cl_parse.c;              $(DO_GL_CC)
$(BUILDDIR)/cl_tent.o :       $(MOUNT_DIR)/cl_tent.c;               $(DO_GL_CC)
$(BUILDDIR)/chase.o :         $(MOUNT_DIR)/chase.c;                 $(DO_GL_CC)
$(BUILDDIR)/cmd.o :           $(MOUNT_DIR)/cmd.c;                   $(DO_GL_CC)
$(BUILDDIR)/common.o :        $(MOUNT_DIR)/common.c;                $(DO_GL_CC)
$(BUILDDIR)/console.o :       $(MOUNT_DIR)/console.c;               $(DO_GL_CC)
$(BUILDDIR)/crc.o :           $(MOUNT_DIR)/crc.c;                   $(DO_GL_CC)
$(BUILDDIR)/cvar.o :          $(MOUNT_DIR)/cvar.c;                  $(DO_GL_CC)
$(BUILDDIR)/gl_draw.o :       $(MOUNT_DIR)/gl_draw.c;               $(DO_GL_CC)
$(BUILDDIR)/gl_md3.o :        $(MOUNT_DIR)/gl_md3.c;                $(DO_GL_CC)
$(BUILDDIR)/gl_mesh.o :       $(MOUNT_DIR)/gl_mesh.c;               $(DO_GL_CC)
$(BUILDDIR)/gl_model.o :      $(MOUNT_DIR)/gl_model.c;              $(DO_GL_CC)
$(BUILDDIR)/gl_refrag.o :     $(MOUNT_DIR)/gl_refrag.c;             $(DO_GL_CC)
$(BUILDDIR)/gl_rlight.o :     $(MOUNT_DIR)/gl_rlight.c;             $(DO_GL_CC)
$(BUILDDIR)/gl_rmain.o :      $(MOUNT_DIR)/gl_rmain.c;              $(DO_GL_CC)
$(BUILDDIR)/gl_rmisc.o :      $(MOUNT_DIR)/gl_rmisc.c;              $(DO_GL_CC)
$(BUILDDIR)/gl_rpart.o :      $(MOUNT_DIR)/gl_rpart.c;              $(DO_GL_CC)
$(BUILDDIR)/gl_rsurf.o :      $(MOUNT_DIR)/gl_rsurf.c;              $(DO_GL_CC)
$(BUILDDIR)/gl_screen.o :     $(MOUNT_DIR)/gl_screen.c;             $(DO_GL_CC)
$(BUILDDIR)/vid_common_gl.o : $(MOUNT_DIR)/vid_common_gl.c;         $(DO_GL_CC)
$(BUILDDIR)/vid_glx.o :       $(MOUNT_DIR)/vid_glx.c;               $(DO_GL_CC)
$(BUILDDIR)/gl_warp.o :       $(MOUNT_DIR)/gl_warp.c;               $(DO_GL_CC)
$(BUILDDIR)/host.o :          $(MOUNT_DIR)/host.c;                  $(DO_GL_CC)
$(BUILDDIR)/host_cmd.o :      $(MOUNT_DIR)/host_cmd.c;              $(DO_GL_CC)
$(BUILDDIR)/image.o :         $(MOUNT_DIR)/image.c;                 $(DO_GL_CC)
$(BUILDDIR)/keys.o :          $(MOUNT_DIR)/keys.c;                  $(DO_GL_CC)
$(BUILDDIR)/menu.o :          $(MOUNT_DIR)/menu.c;                  $(DO_GL_CC)
$(BUILDDIR)/mathlib.o :       $(MOUNT_DIR)/mathlib.c;               $(DO_GL_CC)
$(BUILDDIR)/nehahra.o :       $(MOUNT_DIR)/nehahra.c;               $(DO_GL_CC)
$(BUILDDIR)/net_dgrm.o :      $(MOUNT_DIR)/net_dgrm.c;              $(DO_GL_CC)
$(BUILDDIR)/net_loop.o :      $(MOUNT_DIR)/net_loop.c;              $(DO_GL_CC)
$(BUILDDIR)/net_main.o :      $(MOUNT_DIR)/net_main.c;              $(DO_GL_CC)
$(BUILDDIR)/net_vcr.o :       $(MOUNT_DIR)/net_vcr.c;               $(DO_GL_CC)
$(BUILDDIR)/net_udp.o :       $(MOUNT_DIR)/net_udp.c;               $(DO_GL_CC)
$(BUILDDIR)/net_bsd.o :       $(MOUNT_DIR)/net_bsd.c;               $(DO_GL_CC)
$(BUILDDIR)/pr_cmds.o :       $(MOUNT_DIR)/pr_cmds.c;               $(DO_GL_CC)
$(BUILDDIR)/pr_edict.o :      $(MOUNT_DIR)/pr_edict.c;              $(DO_GL_CC)
$(BUILDDIR)/pr_exec.o :       $(MOUNT_DIR)/pr_exec.c;               $(DO_GL_CC)
$(BUILDDIR)/r_part.o :        $(MOUNT_DIR)/r_part.c;                $(DO_GL_CC)
$(BUILDDIR)/sbar.o :          $(MOUNT_DIR)/sbar.c;                  $(DO_GL_CC)
$(BUILDDIR)/sv_main.o :       $(MOUNT_DIR)/sv_main.c;               $(DO_GL_CC)
$(BUILDDIR)/sv_phys.o :       $(MOUNT_DIR)/sv_phys.c;               $(DO_GL_CC)
$(BUILDDIR)/sv_move.o :       $(MOUNT_DIR)/sv_move.c;               $(DO_GL_CC)
$(BUILDDIR)/sv_user.o :       $(MOUNT_DIR)/sv_user.c;               $(DO_GL_CC) 
$(BUILDDIR)/zone.o   :        $(MOUNT_DIR)/zone.c;                  $(DO_GL_CC)
$(BUILDDIR)/view.o   :        $(MOUNT_DIR)/view.c;                  $(DO_GL_CC)
$(BUILDDIR)/version.o   :     $(MOUNT_DIR)/version.c;               $(DO_GL_CC)
$(BUILDDIR)/wad.o :           $(MOUNT_DIR)/wad.c;                   $(DO_GL_CC)
$(BUILDDIR)/world.o :         $(MOUNT_DIR)/world.c;                 $(DO_GL_CC)
$(BUILDDIR)/cd_unix.o :       $(MOUNT_DIR)/cd_unix.c;               $(DO_GL_CC)
$(BUILDDIR)/sys_unix.o :      $(MOUNT_DIR)/sys_unix.c;              $(DO_GL_CC)
$(BUILDDIR)/snd_dma.o :       $(MOUNT_DIR)/snd_dma.c;               $(DO_GL_CC)
$(BUILDDIR)/snd_mem.o :       $(MOUNT_DIR)/snd_mem.c;               $(DO_GL_CC)
$(BUILDDIR)/snd_mix.o :       $(MOUNT_DIR)/snd_mix.c;               $(DO_GL_CC)
$(BUILDDIR)/snd_oss.o :       $(MOUNT_DIR)/snd_oss.c;               $(DO_GL_CC)
$(BUILDDIR)/cd_sdl.o :        $(MOUNT_DIR)/cd_sdl.c;                $(DO_SDL_CC)
$(BUILDDIR)/snd_sdl.o :       $(MOUNT_DIR)/snd_sdl.c;               $(DO_SDL_CC)
$(BUILDDIR)/main.o :          $(MOUNT_DIR)/dz29src/main.c;          $(DO_GL_CC)
$(BUILDDIR)/compress.o :      $(MOUNT_DIR)/dz29src/compress.c;      $(DO_GL_CC)
$(BUILDDIR)/uncompress.o :    $(MOUNT_DIR)/dz29src/uncompress.c;    $(DO_GL_CC)
$(BUILDDIR)/list.o :          $(MOUNT_DIR)/dz29src/list.c;          $(DO_GL_CC)
$(BUILDDIR)/crc32.o :         $(MOUNT_DIR)/dz29src/crc32.c;         $(DO_GL_CC)
$(BUILDDIR)/encode.o :        $(MOUNT_DIR)/dz29src/encode.c;        $(DO_GL_CC)
$(BUILDDIR)/decode.o :        $(MOUNT_DIR)/dz29src/decode.c;        $(DO_GL_CC)
$(BUILDDIR)/v1code.o :        $(MOUNT_DIR)/dz29src/v1code.c;        $(DO_GL_CC)
$(BUILDDIR)/conmain.o :       $(MOUNT_DIR)/dz29src/conmain.c;       $(DO_GL_CC)
$(BUILDDIR)/delete.o :        $(MOUNT_DIR)/dz29src/delete.c;        $(DO_GL_CC)
$(BUILDDIR)/adler32.o :       $(MOUNT_DIR)/dz29src/zlib/adler32.c;  $(DO_GL_CC)
$(BUILDDIR)/deflate.o :       $(MOUNT_DIR)/dz29src/zlib/deflate.c;  $(DO_GL_CC)
$(BUILDDIR)/trees.o :         $(MOUNT_DIR)/dz29src/zlib/trees.c;    $(DO_GL_CC)
$(BUILDDIR)/inflate.o :       $(MOUNT_DIR)/dz29src/zlib/inflate.c;  $(DO_GL_CC)
$(BUILDDIR)/infblock.o :      $(MOUNT_DIR)/dz29src/zlib/infblock.c; $(DO_GL_CC)
$(BUILDDIR)/inftrees.o :      $(MOUNT_DIR)/dz29src/zlib/inftrees.c; $(DO_GL_CC)
$(BUILDDIR)/infcodes.o :      $(MOUNT_DIR)/dz29src/zlib/infcodes.c; $(DO_GL_CC)
$(BUILDDIR)/infutil.o :       $(MOUNT_DIR)/dz29src/zlib/infutil.c;  $(DO_GL_CC)
$(BUILDDIR)/inffast.o :       $(MOUNT_DIR)/dz29src/zlib/inffast.c;  $(DO_GL_CC)


#############################################################################
# MISC
#############################################################################

clean: clean-debug clean-release

clean-debug:
	$(MAKE) clean2 BUILDDIR=$(BUILD_DEBUG_DIR) CFLAGS="$(DEBUG_CFLAGS)"
	
clean-release:
	$(MAKE) clean2 BUILDDIR=$(BUILD_RELEASE_DIR) CFLAGS="$(DEBUG_CFLAGS)"
	
clean2:
	-rm -f $(GLQUAKE_OBJS) \
	$(GLX_OBJS) \
	$(SDN_OBJS) \
	$(SND_SDL_OBJS) \
	$(DZIP_OBJS)
	
distclean:
	@echo cleaning objects, binaries and modified files
	@-rm -rf $(BUILD_DEBUG_DIR) $(BUILD_RELEASE_DIR) $(BINDIR)
	@-rm -f `find . \( -not -type d \) -and \
		\( -name '*~' \) -type f -print`
	@echo .
	@echo .... Done	

install:
	@printf "Copying files to your home dir\n"
	@echo ......
	@cp -rv $(BINDIR) $(HOME)
	@cp -rv tremor.run $(HOME)/$(BINDIR)
	@chmod +x $(HOME)/$(BINDIR)/tremor.run
	@mkdir -pv $(HOME)/bin
	@cd $(HOME)/bin && ln -svf $(HOME)/$(BINDIR)/tremor.run tremor
	@printf "Symlinking executable to $(HOME)/bin\n"
	@echo
	@printf "You must to set the PATH $(HOME)/bin to the executable search path in order to run tremor.\n" 
	@printf "Type tremor to start playing\n"
	@echo
ifeq ($(OSTYPE),linux)
 ifeq ($(strip $(WITH_FMOD)),YES)
	@echo Copying and symlinking fmod libraries 
	@cp -rv $(MOUNT_DIR)/fmod/*.so $(MOUNT_DIR)/fmod/*.txt $(BINDIR)
 endif
endif
	@echo .....
	@echo Done

install_root:
	@echo ......
	@mkdir -pv $(DATADIR)
	@printf "Copying files to $(DATADIR)\n"
	@cp -rv $(BINDIR) $(LOCALBASE)/games
	@cp -rv tremor.run $(DATADIR)
	@chmod +x $(DATADIR)/tremor.run
	@ln -sfv $(DATADIR)/tremor.run $(SYSBINDIR)/tremor
	@printf "Symlinking executable to $(SYSBINDIR)\n"
ifeq ($(strip $(WITH_FMOD)),YES)
	@echo Copying and symlinking fmod libraries 
	@cp -rav $(MOUNT_DIR)/fmod/*.so $(BINDIR)
endif
	@echo 
	@printf "Type tremor as user to start playing.\n"
	@echo .....
	@echo Done 