X-Git-Url: http://git.xonotic.org/?a=blobdiff_plain;f=Makefile;h=4f1fc2e8a270332a039e76ce816e2956381dfd69;hb=34e9180f07468b678b08393b72a3558f70495692;hp=99cfc9013ec58a4b25e62f255be6815a67f54fdc;hpb=29f82a6d407b065749aa77b470a7f95b9a04e3ab;p=xonotic%2Fnetradiant.git diff --git a/Makefile b/Makefile index 99cfc901..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,10 +24,13 @@ 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! INSTALLDIR ?= install +DOWNLOADDIR ?= build/download CC ?= gcc CXX ?= g++ @@ -36,7 +49,7 @@ ECHO_NOLF ?= echo -n CAT ?= cat MKDIR ?= mkdir -p CP ?= cp -CP_R ?= $(CP) -r +CP_R ?= $(CP) -r --preserve=timestamps LN ?= ln LN_SNF ?= $(LN) -snf RM ?= rm @@ -168,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 @@ -197,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 @@ -251,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 @@ -431,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: \ @@ -453,6 +463,7 @@ binaries-q3map2: \ .PHONY: clean clean: $(RM_R) $(INSTALLDIR_BASE)/ + $(RM_R) $(DOWNLOADDIR)/ $(FIND) . \( -name \*.o -o -name \*.d -o -name \*.$(DLL) -o -name \*.$(A) -o -name \*.$(EXE) \) -exec $(RM) {} \; $(RM) icons/*.rc @@ -1014,54 +1025,51 @@ $(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 - $(FIND) $(INSTALLDIR_BASE)/ -name .svn -exec $(RM_R) {} \; -prune - DOWNLOAD_GAMEPACKS="$(DOWNLOAD_GAMEPACKS)" 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) install-gamepacks.sh "$(INSTALLDIR)" + 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 $(CP_R) setup/data/tools/* $(INSTALLDIR)/ $(MKDIR) $(INSTALLDIR)/docs $(CP_R) docs/* $(INSTALLDIR)/docs/ - $(FIND) $(INSTALLDIR_BASE)/ -name .svn -exec $(RM_R) {} \; -prune .PHONY: install-dll ifeq ($(OS),Win32)