mirror of
https://github.com/ZDoom/Raze.git
synced 2024-12-14 22:51:11 +00:00
9fcba228b1
Set up the use of {Windows,Apple}/{include,lib} regardless of feature toggles in Makefile.common using $(abspath ) in reference to the directory Makefile.common is in. Add the three DirectX headers that are actually used to the repo. (from: http://alleg.sourceforge.net/files/dx9mgw.zip) Since current MinGW versions include DirectX libs (for dynamic linking), remove "-L$(DXROOT)/lib". The DirectX headers are no longer a separate dependency for building. Add $(SDLROOT_OVERRIDE). $(SDLROOT) only functions for Windows and Mac OS X. Factor handling of $(DXROOT_OVERRIDE) and $(SDLROOT_OVERRIDE) into Makefile.shared using $(abspath ). git-svn-id: https://svn.eduke32.com/eduke32@3275 1a8010ca-5511-0410-912e-c29ae57300e0
331 lines
9.4 KiB
Text
331 lines
9.4 KiB
Text
# Shared make information between Build engine and games
|
|
|
|
MAKEFILE_SHARED:=$(lastword $(MAKEFILE_LIST))
|
|
|
|
ENGINELIB=libengine.a
|
|
EDITORLIB=libbuild.a
|
|
|
|
|
|
# SDK locations - adjust to match your setup
|
|
# Overrides must use absolute paths since this Makefile is included at different directory levels
|
|
#
|
|
SDLCONFIG = /usr/local/bin/sdl-config
|
|
SDLNAME = SDL
|
|
|
|
DXROOT=$(abspath $(dir $(MAKEFILE_COMMON))../sdk/dx)
|
|
#DXROOT=/c/sdks/directx/dx8
|
|
SDLROOT=$(abspath $(dir $(MAKEFILE_COMMON))../sdk/SDL)
|
|
|
|
ifeq ($(wildcard $(SDLCONFIG)),$(SDLCONFIG))
|
|
# $(info Detected locally installed SDL 1.X)
|
|
SDLROOT = /usr/local
|
|
else
|
|
# Swap the commenting in the following two lines to
|
|
# enable SDL 2.X detection
|
|
SDLCONFIG = /usr/local/file_that_does_not_exist
|
|
# SDLCONFIG = /usr/local/bin/sdl2-config
|
|
|
|
ifeq ($(wildcard $(SDLCONFIG)),$(SDLCONFIG))
|
|
# $(info Detected locally installed SDL 2.X)
|
|
SDLROOT = /usr/local
|
|
SDLNAME = SDL2
|
|
else
|
|
# $(info Detected system-wide installed SDL 1.X)
|
|
SDLCONFIG = /usr/bin/sdl-config
|
|
endif
|
|
endif
|
|
|
|
SDL_FRAMEWORK = 0
|
|
|
|
DXROOT_OVERRIDE ?=
|
|
SDLROOT_OVERRIDE ?=
|
|
ifneq ($(DXROOT_OVERRIDE),)
|
|
DXROOT=$(DXROOT_OVERRIDE)
|
|
endif
|
|
ifneq ($(SDLROOT_OVERRIDE),)
|
|
SDLROOT=$(SDLROOT_OVERRIDE)
|
|
endif
|
|
|
|
|
|
ifeq (4,$(GCC_MAJOR))
|
|
L_SSP := -lssp
|
|
endif
|
|
|
|
BUILDCOMMONFLAGS=$(ARCH)
|
|
BUILDLIBS=
|
|
|
|
ifeq ($(SUBPLATFORM),LINUX)
|
|
STDCPPLIB:=
|
|
else
|
|
# Overridden for OSes that don't have the cutdown stdc++ that is supc++
|
|
STDCPPLIB:=-lsupc++
|
|
endif
|
|
|
|
ifeq ($(SUBPLATFORM),LINUX)
|
|
RENDERTYPE=SDL
|
|
BUILDCOMMONFLAGS+= -DHAVE_INTTYPES
|
|
GTKCOMPAT32=0
|
|
|
|
ifeq ($(findstring x86_64,$(shell uname -m)),x86_64)
|
|
ifeq (1,$(BUILD32_ON_64))
|
|
# On my 64bit Gentoo these are the 32bit emulation libs
|
|
BUILDLIBS+= -m32 -L/emul/linux/x86/usr/lib
|
|
BUILDCOMMONFLAGS+= -m32
|
|
# Override WITHOUT_GTK=0
|
|
GTKCOMPAT32=1
|
|
else
|
|
override NOASM=1
|
|
endif
|
|
endif
|
|
endif
|
|
ifeq ($(PLATFORM),DARWIN)
|
|
RENDERTYPE = SDL
|
|
STDCPPLIB:=-lstdc++
|
|
BUILDCOMMONFLAGS += -DHAVE_INTTYPES
|
|
GTKCOMPAT32 = 0
|
|
SDL_FRAMEWORK = 1
|
|
|
|
ifeq (1,$(DARWIN9))
|
|
BUILDCOMMONFLAGS += -DDARWIN9
|
|
endif
|
|
|
|
ifeq (1,$(BUILD32_ON_64))
|
|
ARCH=-arch i386
|
|
else
|
|
# ASM won't work on PowerPC or x86_64
|
|
override NOASM = 1
|
|
endif
|
|
endif
|
|
ifeq ($(PLATFORM),WINDOWS)
|
|
RENDERTYPE?=WIN
|
|
WITHOUT_GTK?=1
|
|
SDL_FRAMEWORK=1
|
|
BUILDCOMMONFLAGS+= -DHAVE_INTTYPES
|
|
EXESUFFIX=.exe
|
|
BUILDLIBS+= -lmingwex -lwsock32 -lcomctl32 -lwinmm
|
|
#-lshfolder
|
|
#STDCPPLIB:=-lstdc++
|
|
endif
|
|
ifeq ($(PLATFORM),BSD)
|
|
RENDERTYPE=SDL
|
|
BUILDCOMMONFLAGS+= -DHAVE_INTTYPES
|
|
ifneq ($(findstring i386, $(SYSARCH)), i386)
|
|
override NOASM=1
|
|
endif
|
|
STDCPPLIB:=-lstdc++
|
|
endif
|
|
ifeq ($(PLATFORM),BEOS)
|
|
RENDERTYPE=SDL
|
|
STDCPPLIB:=-lstdc++
|
|
endif
|
|
ifeq ($(PLATFORM),SKYOS)
|
|
RENDERTYPE=SDL
|
|
EXESUFFIX=.app
|
|
override NOASM=1
|
|
BUILDCOMMONFLAGS+= -DUNDERSCORES
|
|
SDLCONFIG=
|
|
SDLCONFIG_COMMONFLAGS=-I/boot/programs/sdk/include/sdl
|
|
BUILDLIBS+= -lSDL -lnet
|
|
endif
|
|
ifeq ($(PLATFORM),WII)
|
|
ifeq ($(strip $(DEVKITPPC)),)
|
|
$(error "Please set DEVKITPPC in your environment. export DEVKITPPC=<path to>devkitPPC")
|
|
endif
|
|
|
|
include $(DEVKITPPC)/wii_rules
|
|
|
|
RANLIB=powerpc-eabi-ranlib
|
|
STRIP=powerpc-eabi-strip
|
|
|
|
RENDERTYPE=SDL
|
|
EXESUFFIX=.elf
|
|
override USE_OPENGL=0
|
|
override NOASM=1
|
|
override WITHOUT_GTK=1
|
|
# -msdata=eabi
|
|
BUILDCOMMONFLAGS+= -g -mtune=750 -meabi -mhard-float \
|
|
-DGEKKO -DHAVE_INTTYPES -D__POWERPC__ \
|
|
-I$(LIBOGC_INC) -I$(LIBOGC_INC)/SDL -I$(PORTLIBS)/include
|
|
SDLCONFIG=
|
|
BUILDLIBS+= -lSDL_mixer -lsmpeg -lSDL -laesnd
|
|
endif
|
|
ifeq ($(PLATFORM),QNX)
|
|
RENDERTYPE=SDL
|
|
override USE_OPENGL=0
|
|
override NOASM=1
|
|
STDCPPLIB:=-lstdc++
|
|
BUILDLIBS+= -lsocket
|
|
endif
|
|
ifeq ($(PLATFORM),SUNOS)
|
|
RENDERTYPE=SDL
|
|
override USE_OPENGL=0
|
|
override NOASM=1
|
|
STDCPPLIB:=-lstdc++
|
|
BUILDLIBS+= -lsocket -lnsl
|
|
endif
|
|
ifeq ($(PLATFORM),SYLLABLE)
|
|
RENDERTYPE=SDL
|
|
override USE_OPENGL=0
|
|
override NOASM=1
|
|
endif
|
|
|
|
ifneq (0,$(CLANG))
|
|
ifneq (,$(STDCPPLIB))
|
|
STDCPPLIB:=-Xlinker $(STDCPPLIB)
|
|
endif
|
|
endif
|
|
|
|
ifeq ($(RENDERTYPE),SDL)
|
|
|
|
ifeq ($(SDL_FRAMEWORK),1)
|
|
SDLCONFIG_COMMONFLAGS += -DSDL_FRAMEWORK
|
|
endif
|
|
|
|
ifneq ($(PLATFORM),WINDOWS)
|
|
ifeq ($(SDL_FRAMEWORK),1)
|
|
ifeq ($(PLATFORM),DARWIN)
|
|
SDLCONFIG_LIBS += -Wl,-framework,SDL
|
|
SDLCONFIG_COMMONFLAGS+= -I$(APPLE_FRAMEWORKS)/SDL.framework/Headers
|
|
endif
|
|
else
|
|
ifneq ($(SDLCONFIG),)
|
|
SDLCONFIG_COMMONFLAGS+=$(subst -Dmain=SDL_main,,$(shell $(SDLCONFIG) --cflags))
|
|
SDLCONFIG_LIBS+= $(shell $(SDLCONFIG) --libs)
|
|
endif
|
|
endif
|
|
else
|
|
SDLCONFIG_COMMONFLAGS += -D_GNU_SOURCE=1
|
|
SDLCONFIG_LIBS+= -lmingw32 -lSDLmain -lSDL
|
|
endif
|
|
|
|
BUILDLIBS+= $(SDLCONFIG_LIBS)
|
|
BUILDCOMMONFLAGS+= $(SDLCONFIG_COMMONFLAGS)
|
|
|
|
ifeq (1,$(WITHOUT_GTK))
|
|
HAVE_GTK2=0
|
|
else
|
|
ifneq (No,$(shell pkg-config --exists gtk+-2.0 || echo No))
|
|
HAVE_GTK2=1
|
|
# On my 64bit Gentoo box I have Cairo enabled which means the libs list includes
|
|
# -lpangocairo-1.0 and -lcairo, however the 32bit compatibility libraries don't
|
|
# include cairo, so we need to filter out those -l switches in order to link
|
|
ifneq ($(LINKED_GTK),0)
|
|
ifeq ($(GTKCOMPAT32),1)
|
|
BUILDLIBS+= $(shell pkg-config --libs gtk+-2.0 | sed 's/\s-l\(pango\)\{0,1\}cairo\S*\s/ /g')
|
|
else
|
|
BUILDLIBS+= $(shell pkg-config --libs gtk+-2.0)
|
|
endif
|
|
endif
|
|
else
|
|
HAVE_GTK2=0
|
|
endif
|
|
endif
|
|
else
|
|
ifeq ($(RENDERTYPE),WIN)
|
|
BUILDLIBS+= -ldxguid
|
|
endif
|
|
endif
|
|
|
|
|
|
BUILDCOMMONFLAGS+= -DRENDERTYPE$(RENDERTYPE)=1 $(W_STRICT_OVERFLOW)
|
|
|
|
ifneq (0,$(USE_OPENGL))
|
|
BUILDCOMMONFLAGS+= -DUSE_OPENGL
|
|
endif
|
|
ifneq (0,$(NOASM))
|
|
BUILDCOMMONFLAGS+= -DNOASM
|
|
endif
|
|
ifneq (0,$(LINKED_GTK))
|
|
BUILDCOMMONFLAGS+= -DLINKED_GTK
|
|
endif
|
|
|
|
ifneq (0,$(POLYMER))
|
|
ifneq (0,$(USE_OPENGL))
|
|
BUILDCOMMONFLAGS+= -DPOLYMER
|
|
endif
|
|
endif
|
|
|
|
ifneq ($(EXESUFFIX_OVERRIDE),)
|
|
EXESUFFIX=$(EXESUFFIX_OVERRIDE)
|
|
endif
|
|
|
|
STATICSTDCPP?=
|
|
ifeq (1,$(STATICSTDCPP))
|
|
STATICSTDCPP= -static
|
|
endif
|
|
ifeq (0,$(STATICSTDCPP))
|
|
STATICSTDCPP= -shared
|
|
endif
|
|
|
|
|
|
ifneq ($(PLATFORM),WINDOWS)
|
|
ifneq ($(PLATFORM),WII)
|
|
BUILDLIBS+= -ldl
|
|
endif
|
|
BUILDLIBS+= -pthread
|
|
endif
|
|
|
|
ifeq ($(PLATFORM),WINDOWS)
|
|
ifneq ($(USE_LIBPNG),0)
|
|
BUILDLIBS+= -lpng_mini -lz_mini
|
|
endif
|
|
else
|
|
ifeq ($(PLATFORM),DARWIN)
|
|
ifneq ($(USE_LIBPNG),0)
|
|
BUILDCOMMONFLAGS+= -I/opt/local/include -I/sw/include -I/usr/local/include
|
|
BUILDLIBS+= -L/opt/local/lib -L/usr/local/lib -lpng # -lz
|
|
endif
|
|
else
|
|
ifneq ($(USE_LIBPNG),0)
|
|
BUILDLIBS+= -lpng -lz
|
|
endif
|
|
endif
|
|
endif
|
|
|
|
ifeq ($(PLATFORM),WINDOWS)
|
|
BUILDLIBS+= $(L_SSP) -Wl,--enable-auto-import
|
|
BUILDLIBS+= -mwindows -lwsock32 -lws2_32 #-L$(ENETROOT)
|
|
endif
|
|
|
|
|
|
ifeq ($(PRETTY_OUTPUT),1)
|
|
BUILD_SETTINGS_COMPILER = \033[1;36mcompiler: \033[0;36m\"$(COMPILER) $(OURCFLAGS)\"
|
|
BUILD_SETTINGS_ASSEMBLER = \033[1;36massembler: \033[0;36m\"$(AS) $(OURASFLAGS)\"
|
|
BUILD_SETTINGS_LINKER = \033[1;36mlinker: \033[0;36m\"$(PRINTLDFLAGS) $(OURLIBS) $(STATICSTDCPP) $(STDCPPLIB)\"
|
|
ifeq (0,$(NOASM))
|
|
BUILD_SETTINGS = printf "$(BUILD_SETTINGS_COMPILER)\n$(BUILD_SETTINGS_ASSEMBLER)\n$(BUILD_SETTINGS_LINKER)\033[0m\n"
|
|
else
|
|
BUILD_SETTINGS = printf "$(BUILD_SETTINGS_COMPILER)\n$(BUILD_SETTINGS_LINKER)\033[0m\n"
|
|
endif
|
|
BUILD_STARTED = printf "\033[K\033[1;36mBuild started using:\033[0m\n"; $(BUILD_SETTINGS)
|
|
BUILD_ECHOFLAGS = printf "\033[K\033[1;36mEnded compilation in this directory using:\n$(BUILD_SETTINGS_COMPILER)\033[0m\n"
|
|
BUILD_FINISHED = printf "\033[K\033[1;36mBuild successful:\033[0m\n"
|
|
COMPILE_STATUS = printf "\033[K\033[0mBuilding object \033[1m$@\033[0m...\033[0m\r"
|
|
ONESTEP_STATUS = printf "\033[K\033[0mBuilding executable \033[1m$@\033[0m...\033[0m\r"
|
|
COMPILE_OK = printf "\033[K\033[0;32mBuilt object \033[1;32m$@\033[0;32m \033[0m\n"
|
|
ONESTEP_OK = printf "\033[K\033[0;32mBuilt executable \033[1;32m$@\033[0;32m \033[0m\n"
|
|
COMPILE_FAILED = printf "\033[K\033[0;31mFailed building \033[1;31m$@\033[0;31m from\033[0m \033[1;31m$<\033[0;31m!\033[0m\n"; exit 1
|
|
ONESTEP_FAILED = printf "\033[K\033[0;31mFailed building executable \033[1;31m$@\033[0;31m!\033[0m\n"; exit 1
|
|
ARCHIVE_STATUS = printf "\033[K\033[0mCreating library archive \033[1m$@\033[0m...\033[0m\r"
|
|
ARCHIVE_OK = printf "\033[K\033[0;32mCreated library archive \033[1;32m$@\033[0;32m \033[0m\n"
|
|
ARCHIVE_FAILED = printf "\033[K\033[0;31mFailed creating library archive \033[1;31m$@\033[0;31m from\033[0m \033[1;31m$<\033[0;31m!\033[0m\n"; exit 1
|
|
LINK_STATUS = printf "\033[K\033[0;0mLinking executable \033[1m$@\033[0;0m...\033[0m\r"
|
|
LINK_OK = printf "\033[K\033[0;32mLinked executable \033[1;32m$@\033[0;32m \033[0m\n"
|
|
LINK_FAILED = printf "\033[K\033[0;31mFailed linking executable \033[1;31m$@\033[0;31m!\033[0m\n"; exit 1
|
|
else
|
|
BUILD_STARTED =
|
|
BUILD_ECHOFLAGS =
|
|
BUILD_FINISHED =
|
|
COMPILE_STATUS =
|
|
ONESTEP_STATUS =
|
|
COMPILE_OK = true
|
|
ONESTEP_OK = true
|
|
COMPILE_FAILED = false; exit 1
|
|
ONESTEP_FAILED = false; exit 1
|
|
ARCHIVE_STATUS =
|
|
ARCHIVE_OK = true
|
|
ARCHIVE_FAILED = false; exit 1
|
|
LINK_STATUS =
|
|
LINK_OK = true
|
|
LINK_FAILED = false; exit 1
|
|
endif
|