project64/Source/nragev20/Makefile

102 lines
1.6 KiB
Makefile

IS_GIT := $(if $(shell git rev-parse --show-toplevel 2>/dev/null),1)
IS_HG := $(if $(shell hg root 2>/dev/null),1)
ifeq ($(IS_HG),1)
$(info This is a hg repository)
GIT_VERSION := "hg:$(shell hg identify --id)"
VERSION_BUILD := 0
endif
ifeq ($(IS_GIT),1)
$(info This is a git repository)
GIT_VERSION := "git:$(shell git describe --always --long --dirty=+ 2>/dev/null)"
VERSION_BUILD := 0
endif
ifeq ($(or $(IS_GIT),$(IS_HG)),)
$(info Not inside a repository)
GIT_VERSION := "?"
VERSION_BUILD := 0
endif
CXX ?= g++
LD := $(CXX)
WINDRES ?= windres
OBJECTS := \
Debug.o \
DirectInput.o \
FileAccess.o \
GBCart.o \
Interface.o \
International.o \
NRagePluginV2.o \
PakIO.o \
XInputController.o
RESOURCE := NRagePluginV2.res
TARGET := PJ64_NRage.dll
CPPFLAGS := \
-DGIT_VERSION=\"$(GIT_VERSION)\" \
-DVERSION_BUILD=$(VERSION_BUILD) \
-DNOMINMAX
CXXFLAGS := \
-shared \
-fPIC \
-Os \
-Wno-write-strings
LIBS := \
-lcomctl32 \
-lcomdlg32 \
-ldinput8 \
-lgdi32 \
-lole32 \
-loleaut32 \
-luuid
ifeq ($(DYN_WINPTHREAD),1)
LIBS += -lwinpthread
else
LIBS += -static -lwinpthread
endif
LDFLAGS := \
-mwindows \
-static-libgcc \
-static-libstdc++
DEPFILES := $(addprefix .deps/,$(OBJECTS:.o=.d))
.PHONY: all clean
all: .deps Version.h $(TARGET)
-include $(DEPFILES)
clean:
-rm -f $(TARGET)
-rm -f $(OBJECTS) $(RESOURCE)
-rm -f $(DEPFILES)
-rm -rf .deps
-rm -f Version.h
.deps:
mkdir -p $@
Version.h: Version.h.in
cp $< $@
%.res: %.rc
$(WINDRES) -O coff -o $@ -i $<
%.o: %.cpp
$(CXX) $(CXXFLAGS) $(CPPFLAGS) -MMD -MP -MF .deps/$(@:.o=.d) -o $@ -c $<
$(TARGET): $(OBJECTS) $(RESOURCE)
$(LD) $(CXXFLAGS) $(LDFLAGS) $^ $(LIBS) -o $@