GCC_VERSION ?= $(shell expr substr "`g++ -dumpversion | tr -dc '[0-9]'`" 1 2) OUTPUT_BIN = test_app OUTPUT_LIB = libTest.so #override if you want to BOOST_INCLUDES ?= /usr/include BOOST_LIB_DIR ?= /usr/lib BOOST_THREAD_LIB ?= boost_thread-mt all: $(OUTPUT_BIN) $(OUTPUT_LIB) $(OUTPUT_BIN): test_app.c gcc test_app.c -ldl -o $(OUTPUT_BIN) $(OUTPUT_LIB): test_lib.cpp g++ test_lib.cpp -Wall -fPIC -shared -Wl,-soname,$(OUTPUT_LIB) -I$(BOOST_INCLUDES) -L$(BOOST_LIB_DIR) -l$(BOOST_THREAD_LIB) -o $(OUTPUT_LIB) clean: rm -f $(OUTPUT_BIN) $(OUTPUT_LIB) run: all ./$(OUTPUT_BIN)