CXX=g++
CC=gcc
#ARCH=-m64 -fno-omit-frame-pointer

CXXFLAGS=-gstabs -I../../.. -Wall -D_REENTRANT $(ARCH)
CFLAGS=-gstabs  -I../../.. -Wall -D_REENTRANT  $(ARCH)
LDFLAGS=-lpthread

OBJ_DIR=.
BIN_DIR=.

SHARE_CXX_SRC=../../../common/linux/file_id.cc\
	      ../../../common/linux/guid_creator.cc\
	      ../../../common/string_conversion.cc\
	      ../../../common/md5.cc\
	      ../../minidump_file_writer.cc\
	      gettid.cc\
	      sigcontext.cc\
	      cpu_context.cc\
	      linux_thread.cc\
	      minidump_generator.cc\
	      exception_handler.cc
SHARE_C_SRC=../../../common/convert_UTF.c

THREAD_TEST_SRC=linux_thread_test.cc
MINIDUMP_TEST_SRC=minidump_test.cc
EXCEPTION_TEST_SRC=exception_handler_test.cc

SHARE_CXX_OBJ=$(patsubst %.cc,$(OBJ_DIR)/%.o,$(SHARE_CXX_SRC))
SHARE_C_OBJ=$(patsubst %.c,$(OBJ_DIR)/%.o,$(SHARE_C_SRC))
SHARE_OBJ=$(SHARE_CXX_OBJ) $(SHARE_C_OBJ)

BIN=$(BIN_DIR)/minidump_test\
    $(BIN_DIR)/linux_thread_test\
    $(BIN_DIR)/exception_handler_test

.PHONY:all clean

all:$(BIN)

$(BIN_DIR)/linux_thread_test:linux_thread_test.o $(SHARE_OBJ)
	$(CXX) $(CXXFLAGS) $(LDFLAGS) $^ -o $@

$(BIN_DIR)/minidump_test:minidump_test.o $(SHARE_OBJ)
	$(CXX) $(CXXFLAGS) $(LDFLAGS) $^ -o $@

$(BIN_DIR)/exception_handler_test:exception_handler_test.o $(SHARE_OBJ)
	$(CXX) $(CXXFLAGS) $(LDFLAGS) $^ -o $@

clean:
	rm -f $(BIN) *.o *.dmp $(SHARE_OBJ)
