51 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Makefile
		
	
	
			
		
		
	
	
			51 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Makefile
		
	
	
.DEFAULT_GOAL := all
 | 
						|
 | 
						|
CXX=clang++
 | 
						|
CXX_FLAGS += -fPIC -std=c++11
 | 
						|
LD_FLAGS += -shared -lprotobuf-lite -ldl -Wl,--no-undefined
 | 
						|
LIBRARY_NAME=libsteam_api.so
 | 
						|
RM = rm -f
 | 
						|
 | 
						|
PROTOS      := $(wildcard dll/*.proto)
 | 
						|
PROTO_CC    := $(PROTOS:.proto=.pb.cc)
 | 
						|
PROTO_OBJ   := $(PROTOS:.proto=.pb.o)
 | 
						|
PROTO_HEADERS := $(PROTOS:.proto=.pb.h)
 | 
						|
HEADERS     := $(wildcard dll/*.h) $(PROTO_HEADERS)
 | 
						|
SRC_NOPROTO := $(wildcard dll/*.cpp)
 | 
						|
SRC         := $(SRC_NOPROTO) $(PROTO_CC)
 | 
						|
OBJ_NOPROTO := $(SRC_NOPROTO:.cpp=.o)
 | 
						|
OBJ         := $(OBJ_NOPROTO) $(PROTO_OBJ)
 | 
						|
 | 
						|
$(PROTO_CC) : $(PROTOS)
 | 
						|
$(PROTO_HEADERS) : $(PROTO_CC)
 | 
						|
$(OBJ_NOPROTO) : $(PROTO_CC) $(PROTO_HEADERS)
 | 
						|
$(OBJ) : $(HEADERS)
 | 
						|
 | 
						|
release: CXX_FLAGS += -DNDEBUG -DEMU_RELEASE_BUILD -Ofast
 | 
						|
release: LD_FLAGS += -lpthread
 | 
						|
release32: CXX_FLAGS += -m32
 | 
						|
release32: LD_FLAGS += -m32
 | 
						|
debug: CXX_FLAGS += -g3 -fsanitize=address
 | 
						|
debug: LD_FLAGS += -lasan
 | 
						|
release: library
 | 
						|
release32: release
 | 
						|
debug: library
 | 
						|
all: release
 | 
						|
 | 
						|
library: $(LIBRARY_NAME)
 | 
						|
 | 
						|
$(PROTO_CC) :
 | 
						|
	protoc -I./dll/ --cpp_out=./dll/ ./dll/*.proto
 | 
						|
 | 
						|
$(PROTO_OBJ) : %.o : %.cc
 | 
						|
	$(CXX) $(CXX_FLAGS) -c -o $@ $<
 | 
						|
 | 
						|
$(OBJ_NOPROTO) : %.o : %.cpp
 | 
						|
	$(CXX) $(CXX_FLAGS) -c -o $@ $<
 | 
						|
 | 
						|
$(LIBRARY_NAME): $(OBJ)
 | 
						|
	$(CXX) $(CXX_FLAGS) -o $@ $^ $(LD_FLAGS)
 | 
						|
 | 
						|
clean:
 | 
						|
	$(RM) $(OBJ) $(LIBRARY_NAME) $(PROTO_CC) $(PROTOS:.proto=.pb.h)
 |