CC = g++

DEFINES += 
CFLAGS  += -fPIC -ggdb -O0 -Wall
INCLUDE += -I ./ 
LDFLAGS += 
LDLIBS  += -lpthread -lm -ldl 

DEBUG_FROM_SO =

ifdef DEBUG_FROM_SO
NET_SDK_CLIENT = %NetSdkClient.cpp
OUTPUT_EXE := demo_so
else
NET_SDK_CLIENT = %ImportLib.cpp
OUTPUT_EXE := demo
endif

ALL_CPP := $(wildcard ./*.cpp)
SOURCES := $(filter-out $(NET_SDK_CLIENT), $(ALL_CPP))
objects := $(SOURCES:.cpp=.o)


$(OUTPUT_EXE) : $(objects)
	$(CC) -o $(OUTPUT_EXE) $(objects) $(LDFLAGS) $(LDLIBS) 
ifdef DEBUG_FROM_SO
	@echo "Build $(OUTPUT_EXE) Finished"
else
	@echo "Build $(OUTPUT_EXE) Finished"
endif

%.o: %.cpp
	$(CC) $(CFLAGS) $(DEFINES) $(INCLUDE) -c $< -o $@
	
%.o: %.c
	$(CC) $(CFLAGS) $(DEFINES) $(INCLUDE) -c $< -o $@

.PHONY : clean
clean :
	rm -f $(OUTPUT_EXE) $(objects)
	rm -f ./demo ./demo_so
	


