X-Git-Url: https://de.git.xonotic.org/?p=xonotic%2Fnetradiant.git;a=blobdiff_plain;f=Makefile;h=4f1fc2e8a270332a039e76ce816e2956381dfd69;hp=4443837f0eaece6512222ab8636eae3858a9bd96;hb=33a2b111caec82c121ee5431a57db42044956e90;hpb=2b4ec84926bf6ebc3a9983d2dc7ec42d5e526b9f diff --git a/Makefile b/Makefile index 4443837f..4f1fc2e8 100644 --- a/Makefile +++ b/Makefile @@ -1,3 +1,13 @@ +# TODO: when deleting this Makefile, don't forget to also delete conftest.cpp +# which is only required by this Makefile + +ifeq ($(I_KNOW_MAKEFILE_IS_DEPRECATED),) + $(shell printf 'ERROR: Makefile build is deprecated, use CMake instead, see README.md\n\n' >&2) + $(error I_KNOW_MAKEFILE_IS_DEPRECATED is not set) +else + $(shell printf 'WARNING: deprecated Makefile build enforced\n\n' >&2) +endif + MAKEFILE_CONF ?= Makefile.conf -include $(MAKEFILE_CONF) @@ -14,6 +24,8 @@ CXXFLAGS ?= CPPFLAGS ?= LIBS ?= RADIANT_ABOUTMSG ?= Custom build +RADIANT_NAME ?= NetRadiant +RADIANT_BASENAME ?= netradiant # warning: this directory may NOT contain any files other than the ones written by this Makefile! # NEVER SET THIS TO A SYSTEM WIDE "bin" DIRECTORY! @@ -68,6 +80,9 @@ LIBS_XML ?= $(shell PKG_CONFIG_PATH=$(PKG_CONFIG_PATH) $(PKGCONFIG) li CPPFLAGS_PNG ?= $(shell PKG_CONFIG_PATH=$(PKG_CONFIG_PATH) $(PKGCONFIG) libpng --cflags $(STDERR_TO_DEVNULL)) LIBS_PNG ?= $(shell PKG_CONFIG_PATH=$(PKG_CONFIG_PATH) $(PKGCONFIG) libpng --libs-only-L $(STDERR_TO_DEVNULL)) \ $(shell PKG_CONFIG_PATH=$(PKG_CONFIG_PATH) $(PKGCONFIG) libpng --libs-only-l $(STDERR_TO_DEVNULL)) +CPPFLAGS_WEBP ?= $(shell PKG_CONFIG_PATH=$(PKG_CONFIG_PATH) $(PKGCONFIG) libwebp --cflags $(STDERR_TO_DEVNULL)) +LIBS_WEBP ?= $(shell PKG_CONFIG_PATH=$(PKG_CONFIG_PATH) $(PKGCONFIG) libwebp --libs-only-L $(STDERR_TO_DEVNULL)) \ + $(shell PKG_CONFIG_PATH=$(PKG_CONFIG_PATH) $(PKGCONFIG) libwebp --libs-only-l $(STDERR_TO_DEVNULL)) CPPFLAGS_GTK ?= $(shell PKG_CONFIG_PATH=$(PKG_CONFIG_PATH) $(PKGCONFIG) gtk+-2.0 --cflags $(STDERR_TO_DEVNULL)) LIBS_GTK ?= $(shell PKG_CONFIG_PATH=$(PKG_CONFIG_PATH) $(PKGCONFIG) gtk+-2.0 --libs-only-L $(STDERR_TO_DEVNULL)) \ $(shell PKG_CONFIG_PATH=$(PKG_CONFIG_PATH) $(PKGCONFIG) gtk+-2.0 --libs-only-l $(STDERR_TO_DEVNULL)) @@ -166,7 +181,7 @@ ifeq ($(findstring $(CFLAGS),-O),) CFLAGS_COMMON += -O3 # only add -O3 if no -O flag is in $(CFLAGS) endif - CFLAGS_COMMON += -march=native -mcpu=native + CFLAGS_COMMON += -march=native -mtune=native CPPFLAGS_COMMON += LDFLAGS_COMMON += -s else @@ -195,7 +210,7 @@ ifeq ($(OS),Linux) else ifeq ($(OS),Win32) - CPPFLAGS_COMMON += -DWIN32 -D_WIN32 -D_inline=inline + CPPFLAGS_COMMON += -DWIN32 -D_WIN32 -D_inline=inline -DWORKAROUND_WINDOWS_FLOATING_WINDOW=1 -DWORKAROUND_WINDOWS_GTK2_GLWIDGET=1 CFLAGS_COMMON += -mms-bitfields LDFLAGS_DLL = -Wl,--add-stdcall-alias LIBS_COMMON = -lws2_32 -luser32 -lgdi32 -lole32 @@ -249,16 +264,13 @@ RADIANT_VERSION_NUMBER = $(RADIANT_MAJOR_VERSION).$(RADIANT_MINOR_VERSION).$(RAD RADIANT_VERSION = $(RADIANT_VERSION_NUMBER)n Q3MAP_VERSION = 2.5.17n -# Executable extension -RADIANT_EXECUTABLE := $(EXE) - GIT_VERSION := $(shell $(GIT) rev-parse --short HEAD $(STDERR_TO_DEVNULL)) ifneq ($(GIT_VERSION),) RADIANT_VERSION := $(RADIANT_VERSION)-git-$(GIT_VERSION) Q3MAP_VERSION := $(Q3MAP_VERSION)-git-$(GIT_VERSION) endif -CPPFLAGS += -DRADIANT_VERSION="\"$(RADIANT_VERSION)\"" -DRADIANT_MAJOR_VERSION="\"$(RADIANT_MAJOR_VERSION)\"" -DRADIANT_MINOR_VERSION="\"$(RADIANT_MINOR_VERSION)\"" -DRADIANT_PATCH_VERSION="\"$(RADIANT_PATCH_VERSION)\"" -DRADIANT_ABOUTMSG="\"$(RADIANT_ABOUTMSG)\"" -DQ3MAP_VERSION="\"$(Q3MAP_VERSION)\"" -DRADIANT_EXECUTABLE="\"$(RADIANT_EXECUTABLE)\"" +CPPFLAGS += -DRADIANT_VERSION="\"$(RADIANT_VERSION)\"" -DRADIANT_VERSION_STRING="\"$(RADIANT_VERSION_STRING)\"" -DRADIANT_ABOUTMSG="\"$(RADIANT_ABOUTMSG)\"" -DRADIANT_NAME="\"${RADIANT_NAME}\"" -DRADIANT_BASENAME="\"${RADIANT_BASENAME}\"" -DQ3MAP_VERSION="\"$(Q3MAP_VERSION)\"" CPPFLAGS += -DGTK_TARGET=2 .PHONY: all @@ -352,6 +364,7 @@ dependencies-check: checkheader libglib2.0-dev glib.h g_path_is_absolute "$(CPPFLAGS_GLIB)" "$(LIBS_GLIB)"; \ checkheader libxml2-dev libxml/xpath.h xmlXPathInit "$(CPPFLAGS_XML)" "$(LIBS_XML)"; \ checkheader libpng12-dev png.h png_create_read_struct "$(CPPFLAGS_PNG)" "$(LIBS_PNG)"; \ + checkheader libwebp-dev webp/decode.h WebPGetInfo "$(CPPFLAGS_WEBP)" "$(LIBS_WEBP)"; \ checkheader "mesa-common-dev (or another OpenGL library)" GL/gl.h glClear "$(CPPFLAGS_GL)" "$(LIBS_GL)"; \ checkheader libgtk2.0-dev gtk/gtkdialog.h gtk_dialog_run "$(CPPFLAGS_GTK)" "$(LIBS_GTK)"; \ checkheader libpango1.0-dev pango/pangoft2.h pango_ft2_font_map_new "$(CPPFLAGS_PANGOFT2)" "$(LIBS_PANGOFT2)"; \ @@ -382,6 +395,7 @@ binaries-radiant-modules: \ $(INSTALLDIR)/modules/image.$(DLL) \ $(INSTALLDIR)/modules/imagehl.$(DLL) \ $(INSTALLDIR)/modules/imagepng.$(DLL) \ + $(INSTALLDIR)/modules/imagewebp.$(DLL) \ $(INSTALLDIR)/modules/imageq2.$(DLL) \ $(INSTALLDIR)/modules/mapq3.$(DLL) \ $(INSTALLDIR)/modules/mapxml.$(DLL) \ @@ -427,8 +441,8 @@ binaries-qdata3: \ .PHONY: binaries-h2data binaries-h2data: \ - $(INSTALLDIR)/heretic2/h2data.$(EXE) \ - $(INSTALLDIR)/heretic2/h2data \ + $(INSTALLDIR)/h2data.$(EXE) \ + $(INSTALLDIR)/h2data \ .PHONY: binaries-tools-quake3 binaries-tools-quake3: \ @@ -485,8 +499,8 @@ endif $(CC) $< $(CFLAGS) $(CFLAGS_COMMON) $(CPPFLAGS_EXTRA) $(CPPFLAGS_COMMON) $(CPPFLAGS) $(TARGET_ARCH) -c -o $@ -$(INSTALLDIR)/q3map2.$(EXE): LIBS_EXTRA := $(LIBS_XML) $(LIBS_GLIB) $(LIBS_PNG) $(LIBS_JPEG) $(LIBS_ZLIB) -$(INSTALLDIR)/q3map2.$(EXE): CPPFLAGS_EXTRA := $(CPPFLAGS_XML) $(CPPFLAGS_GLIB) $(CPPFLAGS_PNG) $(CPPFLAGS_JPEG) -Itools/quake3/common -Ilibs -Iinclude +$(INSTALLDIR)/q3map2.$(EXE): LIBS_EXTRA := $(LIBS_XML) $(LIBS_GLIB) $(LIBS_PNG) $(LIBS_JPEG) $(LIBS_WEBP) $(LIBS_ZLIB) +$(INSTALLDIR)/q3map2.$(EXE): CPPFLAGS_EXTRA := $(CPPFLAGS_XML) $(CPPFLAGS_GLIB) $(CPPFLAGS_PNG) $(CPPFLAGS_JPEG) $(CPPFLAGS_WEBP) -Itools/quake3/common -Ilibs -Iinclude $(INSTALLDIR)/q3map2.$(EXE): \ tools/quake3/common/cmdlib.o \ tools/quake3/common/imagelib.o \ @@ -826,6 +840,11 @@ $(INSTALLDIR)/modules/imagepng.$(DLL): CPPFLAGS_EXTRA := $(CPPFLAGS_PNG) -Ilibs $(INSTALLDIR)/modules/imagepng.$(DLL): \ plugins/imagepng/plugin.o \ +$(INSTALLDIR)/modules/imagewebp.$(DLL): LIBS_EXTRA := $(LIBS_WEBP) +$(INSTALLDIR)/modules/imagewebp.$(DLL): CPPFLAGS_EXTRA := $(CPPFLAGS_WEBP) -Ilibs -Iinclude +$(INSTALLDIR)/modules/imagewebp.$(DLL): \ + plugins/imagewebp/plugin.o \ + $(INSTALLDIR)/modules/mapq3.$(DLL): CPPFLAGS_EXTRA := $(CPPFLAGS_GLIB) -Ilibs -Iinclude $(INSTALLDIR)/modules/mapq3.$(DLL): \ plugins/mapq3/parse.o \ @@ -1006,46 +1025,45 @@ $(INSTALLDIR)/plugins/bkgrnd2d.$(DLL): \ contrib/bkgrnd2d/dialog.o \ contrib/bkgrnd2d/plugin.o \ -$(INSTALLDIR)/heretic2/h2data.$(EXE): LIBS_EXTRA := $(LIBS_XML) -$(INSTALLDIR)/heretic2/h2data.$(EXE): CPPFLAGS_EXTRA := $(CPPFLAGS_XML) -Itools/quake2/qdata_heretic2/common -Itools/quake2/qdata_heretic2/qcommon -Itools/quake2/qdata_heretic2 -Itools/quake2/common -Ilibs -Iinclude -$(INSTALLDIR)/heretic2/h2data.$(EXE): \ - tools/quake2/qdata_heretic2/common/bspfile.o \ - tools/quake2/qdata_heretic2/common/cmdlib.o \ - tools/quake2/qdata_heretic2/common/inout.o \ - tools/quake2/qdata_heretic2/common/l3dslib.o \ - tools/quake2/qdata_heretic2/common/lbmlib.o \ - tools/quake2/qdata_heretic2/common/mathlib.o \ - tools/quake2/qdata_heretic2/common/md4.o \ - tools/quake2/qdata_heretic2/common/path_init.o \ - tools/quake2/qdata_heretic2/common/qfiles.o \ - tools/quake2/qdata_heretic2/common/scriplib.o \ - tools/quake2/qdata_heretic2/common/threads.o \ - tools/quake2/qdata_heretic2/common/token.o \ - tools/quake2/qdata_heretic2/common/trilib.o \ - tools/quake2/qdata_heretic2/qcommon/reference.o \ - tools/quake2/qdata_heretic2/qcommon/resourcemanager.o \ - tools/quake2/qdata_heretic2/qcommon/skeletons.o \ - tools/quake2/qdata_heretic2/animcomp.o \ - tools/quake2/qdata_heretic2/book.o \ - tools/quake2/qdata_heretic2/fmodels.o \ - tools/quake2/qdata_heretic2/images.o \ - tools/quake2/qdata_heretic2/jointed.o \ - tools/quake2/qdata_heretic2/models.o \ - tools/quake2/qdata_heretic2/pics.o \ - tools/quake2/qdata_heretic2/qdata.o \ - tools/quake2/qdata_heretic2/qd_skeletons.o \ - tools/quake2/qdata_heretic2/sprites.o \ - tools/quake2/qdata_heretic2/svdcmp.o \ - tools/quake2/qdata_heretic2/tables.o \ - tools/quake2/qdata_heretic2/tmix.o \ - tools/quake2/qdata_heretic2/video.o \ +$(INSTALLDIR)/h2data.$(EXE): LIBS_EXTRA := $(LIBS_XML) +$(INSTALLDIR)/h2data.$(EXE): CPPFLAGS_EXTRA := $(CPPFLAGS_XML) -Itools/heretic2/common -Itools/heretic2/qcommon -Itools/heretic2/h2data -Itools/quake2/common -Ilibs -Iinclude +$(INSTALLDIR)/h2data.$(EXE): \ + tools/heretic2/common/bspfile.o \ + tools/heretic2/common/cmdlib.o \ + tools/heretic2/common/inout.o \ + tools/heretic2/common/l3dslib.o \ + tools/heretic2/common/lbmlib.o \ + tools/heretic2/common/mathlib.o \ + tools/heretic2/common/md4.o \ + tools/heretic2/common/path_init.o \ + tools/heretic2/common/qfiles.o \ + tools/heretic2/common/scriplib.o \ + tools/heretic2/common/threads.o \ + tools/heretic2/common/token.o \ + tools/heretic2/common/trilib.o \ + tools/heretic2/qcommon/reference.o \ + tools/heretic2/qcommon/resourcemanager.o \ + tools/heretic2/qcommon/skeletons.o \ + tools/heretic2/h2data/animcomp.o \ + tools/heretic2/h2data/book.o \ + tools/heretic2/h2data/fmodels.o \ + tools/heretic2/h2data/images.o \ + tools/heretic2/h2data/jointed.o \ + tools/heretic2/h2data/models.o \ + tools/heretic2/h2data/pics.o \ + tools/heretic2/h2data/qdata.o \ + tools/heretic2/h2data/qd_skeletons.o \ + tools/heretic2/h2data/sprites.o \ + tools/heretic2/h2data/svdcmp.o \ + tools/heretic2/h2data/tables.o \ + tools/heretic2/h2data/tmix.o \ + tools/heretic2/h2data/video.o \ libl_net.$(A) \ $(if $(findstring $(OS),Win32),icons/h2data.o,) \ .PHONY: install-data install-data: binaries - $(MKDIR) $(INSTALLDIR)/games - DOWNLOAD_GAMEPACKS="$(DOWNLOAD_GAMEPACKS)" DOWNLOADDIR="$(DOWNLOADDIR)" INSTALLDIR="$(INSTALLDIR)" GIT="$(GIT)" SVN="$(SVN)" WGET="$(WGET)" RM_R="$(RM_R)" MV="$(MV)" UNZIPPER="$(UNZIPPER)" ECHO="$(ECHO)" SH="$(SH)" CP="$(CP)" CP_R="$(CP_R)" $(SH) gamepack-manager + DOWNLOAD_GAMEPACKS="$(DOWNLOAD_GAMEPACKS)" DOWNLOADDIR="$(DOWNLOADDIR)" INSTALLDIR="$(INSTALLDIR)/gamepacks" GIT="$(GIT)" SVN="$(SVN)" WGET="$(WGET)" RM_R="$(RM_R)" MV="$(MV)" UNZIPPER="$(UNZIPPER)" ECHO="$(ECHO)" CP="$(CP)" CP_R="$(CP_R)" ./gamepack-manager $(ECHO) $(RADIANT_MAJOR_VERSION) > $(INSTALLDIR)/RADIANT_MAJOR $(ECHO) $(RADIANT_MINOR_VERSION) > $(INSTALLDIR)/RADIANT_MINOR $(ECHO) $(RADIANT_PATCH_VERSION) > $(INSTALLDIR)/RADIANT_PATCH