#Makefile for EFileBrowser
COPTS = -c -fexceptions -Wall -o2
LOPTS = -lsyllable

FOLDERTREEVIEW = foldertreeview/foldertreeview.o foldertreeview/etreeview.o foldertreeview/listview.o
FILEVIEW = fileview/fileview.o fileview/dirkeeper.o fileview/iconview.o fileview/thumbsdb.o fileview/thumbcreator.o
GUI = gui/splitter.o gui/tabview.o
SIDEBAR = sidebar.o sidebar_title.o sidebar_foldertreeview.o sidebar_info.o
OBJS = 	main.o common.o appwindow.o preferences.o  address_field.o address_field_button.o tab_browser.o about.o $(FILEVIEW) $(FOLDERTREEVIEW) $(GUI) $(SIDEBAR) image.o

OBJDIR := objs
OBJS	:= $(addprefix $(OBJDIR)/,$(OBJS))

# Rules
$(OBJDIR)/%.o : %.c
	@echo Compiling : $<
	@$(CC) $(COPTS) $< -o $@

$(OBJDIR)/%.o : %.cpp
	@echo Compiling : $<
	@$(CXX) $(COPTS) $< -o $@

$(OBJDIR)/%.o : %.s
	@echo Assembling : $<
	@$(CC) $(COPTS) -x assembler-with-cpp $< -o $@

all : objs efilebrowser

objs:
	@echo Creating subdirectories...
	@mkdir -p objs
	@mkdir -p objs/fileview
	@mkdir -p objs/foldertreeview
	@mkdir -p objs/gui

efilebrowser: $(OBJS)
	@echo Linking...
	@$(CXX) $(LOPTS)  $(OBJS) -o efilebrowser
	@echo Adding resources...
	@rescopy efilebrowser -r images/*

clean:
	@echo Cleaning...
	@rm -r $(OBJDIR)
	@rm -f efilebrowser
