mirror of
https://github.com/Detanup01/gbe_fork.git
synced 2024-12-27 10:54:15 +08:00
51 lines
1.3 KiB
Makefile
51 lines
1.3 KiB
Makefile
|
.DEFAULT_GOAL := all
|
||
|
|
||
|
CXX=clang++
|
||
|
CXX_FLAGS += -fPIC -std=c++14
|
||
|
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)
|