# Makefile for Thrift test project.
#
# Author:
#   Marc Kwiatkowski <marc@facebook.com>
#   Aditya Agarwal   <aditya@facebook.com>


ifndef thrift_home
thrift_home=../..
endif #thrift_home

target: all

ifndef boost_home
#boost_home=../../../../../thirdparty/boost_1_33_1
boost_home=/usr/local/include/boost-1_33_1
endif #boost_home
target: all

include_paths = $(thrift_home)/lib/cpp/src \
                $(thrift_home)/lib/cpp \
                $(thrift_home)/ \
                $(boost_home)

include_flags = $(patsubst %,-I%, $(include_paths))

# Tools
ifndef THRIFT
THRIFT = ../../compiler/cpp/thrift
endif # THRIFT

CC     = g++
LD     = g++

# Compiler flags
DCFL  = -Wall -O3 -g -I./gen-cpp $(include_flags) -L$(thrift_home)/lib/cpp/.libs -lthrift -lthriftnb -levent
CFL   = -Wall -O3 -I./gen-cpp $(include_flags) -L$(thrift_home)/lib/cpp/.libs -lthrift -lthriftnb -levent

all: stress-test stress-test-nb

debug: stress-test-debug stress-test-debug-nb

stubs: ../StressTest.thrift
	$(THRIFT) --gen cpp --gen php ../StressTest.thrift

stress-test-debug-nb: stubs
	g++ -o stress-test-nb $(DCFL) src/nb-main.cpp ./gen-cpp/Service.cpp gen-cpp/StressTest_types.cpp

stress-test-nb: stubs
	g++ -o stress-test-nb $(CFL) src/nb-main.cpp ./gen-cpp/Service.cpp gen-cpp/StressTest_types.cpp

stress-test-debug: stubs
	g++ -o stress-test $(DCFL) src/main.cpp ./gen-cpp/Service.cpp gen-cpp/StressTest_types.cpp

stress-test: stubs
	g++ -o stress-test $(CFL) src/main.cpp ./gen-cpp/Service.cpp gen-cpp/StressTest_types.cpp

clean:
	rm -fr stress-test stress-test-nb gen-cpp
