SDLPP: add .dll target for windows
This commit is contained in:
+25
-9
@@ -1,14 +1,17 @@
|
||||
CXX ?= g++
|
||||
CPPFLAGS = -std=c++14 -Wall -Wextra -pedantic
|
||||
|
||||
MAJOR ?= 1
|
||||
MINOR ?= 0
|
||||
RELEASE ?= 0
|
||||
|
||||
ifeq ($(OS),Windows_NT)
|
||||
UNAME_S := Windows
|
||||
CXX = cl
|
||||
CXXFLAGS = -MD -EHsc /DDLLEXPORT
|
||||
OBJEXT = obj
|
||||
else
|
||||
UNAME_S := $(shell uname -s)
|
||||
CXX ?= g++
|
||||
CXXFLAGS = -std=c++14 -Wall -Wextra -pedantic
|
||||
OBJEXT = o
|
||||
endif
|
||||
|
||||
ifeq ($(UNAME_S),Linux)
|
||||
@@ -19,28 +22,41 @@ ifeq ($(UNAME_S),Darwin)
|
||||
SDLPPLIBRARY = libsdlpp.dylib
|
||||
LIBRARYFLAGS =
|
||||
endif
|
||||
ifeq ($(UNAME_S),Windows)
|
||||
SDLPPLIBRARY = libsdlpp.dll
|
||||
LIBRARYFLAGS =
|
||||
endif
|
||||
|
||||
OBJECTFILES = sdlpp_circlecolider.o sdlpp_circlerenderer.o sdlpp_collision.o sdlpp_common.o sdlpp_font.o sdlpp_linerenderer.o sdlpp_rectcolider.o sdlpp_rectrenderer.o sdlpp_renderer.o sdlpp_renderobject.o sdlpp_scene.o sdlpp_textrenderer.o sdlpp_texture.o sdlpp_window.o
|
||||
OBJECTFILES = sdlpp_circlecolider.${OBJEXT} sdlpp_circlerenderer.${OBJEXT} sdlpp_collision.${OBJEXT} sdlpp_common.${OBJEXT} sdlpp_font.${OBJEXT} sdlpp_linerenderer.${OBJEXT} sdlpp_rectcolider.${OBJEXT} sdlpp_rectrenderer.${OBJEXT} sdlpp_renderer.${OBJEXT} sdlpp_renderobject.${OBJEXT} sdlpp_scene.${OBJEXT} sdlpp_textrenderer.${OBJEXT} sdlpp_texture.${OBJEXT} sdlpp_window.${OBJEXT}
|
||||
|
||||
all: ${SDLPPLIBRARY}
|
||||
|
||||
%.o: %.cpp
|
||||
${CXX} ${CPPFLAGS} ${LIBRARYFLAGS} -c $< -o $@
|
||||
ifeq ($(UNAME_S),Windows)
|
||||
%.${OBJEXT}: %.cpp
|
||||
${CXX} ${CXXFLAGS} ${LIBRARYFLAGS} /c $< /Fo"$@"
|
||||
else
|
||||
%.${OBJEXT}: %.cpp
|
||||
${CXX} ${CXXFLAGS} ${LIBRARYFLAGS} -c $< -o $@
|
||||
endif
|
||||
|
||||
ifeq ($(UNAME_S),Linux)
|
||||
${SDLPPLIBRARY}: ${OBJECTFILES}
|
||||
${CXX} ${CPPFLAGS} -shared -Wl,-soname,libsdlpp.so.${MAJOR}\
|
||||
${CXX} ${CXXFLAGS} -shared -Wl,-soname,libsdlpp.so.${MAJOR}\
|
||||
-o ${SDLPPLIBRARY} $^
|
||||
ln -sf ${SDLPPLIBRARY} libsdlpp.so
|
||||
ln -sf ${SDLPPLIBRARY} libsdlpp.so.${MAJOR}
|
||||
endif
|
||||
ifeq ($(UNAME_S),Darwin)
|
||||
${SDLPPLIBRARY}: ${OBJECTFILES}
|
||||
${CXX} ${CPPFLAGS} -dynamiclib -install_name ${SDLPPLIBRARY}\
|
||||
${CXX} ${CXXFLAGS} -dynamiclib -install_name ${SDLPPLIBRARY}\
|
||||
-current_version ${MAJOR}.${MINOR} $^ -lSDL2 -lSDL2_image -lSDL2_gfx -lSDL2_ttf -o $@
|
||||
endif
|
||||
ifeq ($(UNAME_S),Windows)
|
||||
${SDLPPLIBRARY}: ${OBJECTFILES}
|
||||
${CXX} /LD $^ /link SDL2.lib SDL2_ttf.lib SDL2_image.lib /OUT:$@ /IMPLIB:libsdlpp.lib
|
||||
endif
|
||||
|
||||
clean:
|
||||
${RM} *.so* *.o *.dylib
|
||||
${RM} *.so* *.${OBJEXT} *.dylib libsdlpp*
|
||||
|
||||
.PHONY: all clean test
|
||||
|
||||
Reference in New Issue
Block a user