#
#   Makefile for Eureka
#

PROGRAM=./eureka

LIB_DIR=lib_linux
OBJ_DIR=obj_linux

FLTK_DIR=$(LIB_DIR)/fltk-1.3.0

OPTIMISE=-O0 -g3

# operating system choices: UNIX WIN32
OS=UNIX


#--- Internal stuff from here -----------------------------------

FLTK_FLAGS=-I$(FLTK_DIR)
FLTK_LIBS=$(FLTK_DIR)/lib/libfltk_images.a \
          $(FLTK_DIR)/lib/libfltk.a \
          -lX11 -lXext -lXft -lfontconfig -lXinerama -lpng -ljpeg

CXXFLAGS=$(OPTIMISE) -Wall -D$(OS) $(FLTK_FLAGS)
LDFLAGS=-L/usr/X11R6/lib 
LIBS=-lm -lz $(FLTK_LIBS)


#----- Object files ----------------------------------------------

OBJS = \
	$(OBJ_DIR)/editloop.o  \
	$(OBJ_DIR)/editobj.o  \
	$(OBJ_DIR)/e_basis.o   \
	$(OBJ_DIR)/e_checks.o   \
	$(OBJ_DIR)/e_cutpaste.o  \
	$(OBJ_DIR)/e_linedef.o  \
	$(OBJ_DIR)/e_loadsave.o  \
	$(OBJ_DIR)/e_path.o  \
	$(OBJ_DIR)/e_sector.o  \
	$(OBJ_DIR)/e_things.o  \
	$(OBJ_DIR)/e_vertex.o  \
	$(OBJ_DIR)/im_color.o  \
	$(OBJ_DIR)/im_img.o   \
	$(OBJ_DIR)/levels.o  \
	$(OBJ_DIR)/lib_crc.o  \
	$(OBJ_DIR)/main.o  \
	$(OBJ_DIR)/m_bitvec.o  \
	$(OBJ_DIR)/m_config.o  \
	$(OBJ_DIR)/m_dialog.o  \
	$(OBJ_DIR)/m_game.o  \
	$(OBJ_DIR)/m_select.o  \
	$(OBJ_DIR)/m_strings.o  \
	$(OBJ_DIR)/objects.o  \
	$(OBJ_DIR)/r_grid.o  \
	$(OBJ_DIR)/r_misc.o  \
 	$(OBJ_DIR)/r_render.o  \
	$(OBJ_DIR)/selectn.o  \
	$(OBJ_DIR)/s_misc.o  \
	$(OBJ_DIR)/sys_debug.o \
	$(OBJ_DIR)/ui_about.o  \
	$(OBJ_DIR)/ui_browser.o  \
	$(OBJ_DIR)/ui_canvas.o  \
	$(OBJ_DIR)/ui_hyper.o  \
	$(OBJ_DIR)/ui_infobar.o  \
	$(OBJ_DIR)/ui_linedef.o  \
	$(OBJ_DIR)/ui_menu.o  \
	$(OBJ_DIR)/ui_nombre.o  \
	$(OBJ_DIR)/ui_pic.o  \
	$(OBJ_DIR)/ui_radius.o  \
	$(OBJ_DIR)/ui_sector.o  \
	$(OBJ_DIR)/ui_sidedef.o  \
	$(OBJ_DIR)/ui_thing.o  \
	$(OBJ_DIR)/ui_vertex.o  \
	$(OBJ_DIR)/ui_window.o  \
	$(OBJ_DIR)/w_loadpic.o  \
	$(OBJ_DIR)/w_flats.o  \
	$(OBJ_DIR)/w_sprite.o  \
	$(OBJ_DIR)/w_texture.o  \
	$(OBJ_DIR)/w_wad.o   \
	$(OBJ_DIR)/x_hover.o  \
	$(OBJ_DIR)/x_loop.o  \
	$(OBJ_DIR)/x_mirror.o  \
	$(OBJ_DIR)/ymemory.o  \
	$(OBJ_DIR)/yutil.o

$(OBJ_DIR)/%.o: src/%.cc
	$(CXX) $(CXXFLAGS) -o $@ -c $<


#----- Targets -----------------------------------------------

all: $(PROGRAM)

clean:
	rm -f $(PROGRAM) $(OBJ_DIR)/*.* core core.*
	rm -f ERRS LOG.txt update.log

$(PROGRAM): $(OBJS)
	$(CXX) $(CFLAGS) $(OBJS) -o $@ $(LDFLAGS) $(LIBS)

bin: all
	strip --strip-unneeded $(PROGRAM)

.PHONY: all clean bin

#--- editor settings ------------
# vi:ts=8:sw=8:noexpandtab
