1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125
|
ifeq ($(ruby),)
ifeq ($(platform),windows)
ruby += video.direct3d9 video.gdi
ifneq ($(filter $(arch),x86 amd64),)
ruby += video.wgl
endif
ruby += audio.wasapi audio.xaudio2 audio.directsound audio.waveout #audio.asio
ruby += input.windows
ifeq ($(call which,pkg-config),)
# TODO: Check presence of libSDL
else
# If we're in a posix shell, use pkg-config/pkg-check
pkg_check = $(if $(shell pkg-config $1 && echo 1),$2)
ruby += $(call pkg_check,sdl2,input.sdl)
ruby += $(call pkg_check,sdl2,audio.sdl)
endif
else ifeq ($(platform),macos)
ruby += video.cgl
ruby += audio.openal
ruby += input.quartz #input.carbon
else ifeq ($(platform),linux)
pkg_check = $(if $(shell pkg-config $1 && echo 1),$2)
ruby += video.glx video.glx2 video.xshm
ruby += $(call pkg_check,xv,video.xvideo)
ruby += audio.oss audio.alsa
ruby += $(call pkg_check,openal,audio.openal)
ruby += $(call pkg_check,libpulse,audio.pulseaudio)
ruby += $(call pkg_check,libpulse-simple,audio.pulseaudiosimple)
ruby += $(call pkg_check,ao,audio.ao)
ruby += input.xlib
ruby += $(call pkg_check,libudev,input.udev)
ruby += $(call pkg_check,sdl2,input.sdl)
ruby += $(call pkg_check,sdl2,audio.sdl)
else ifeq ($(platform),bsd)
pkg_check = $(if $(shell pkg-config $1 && echo 1),$2)
ruby += video.glx video.glx2 video.xshm
ruby += $(call pkg_check,xv,video.xvideo)
ruby += audio.oss
ruby += $(call pkg_check,openal,audio.openal)
ruby += $(call pkg_check,libpulse,audio.pulseaudio)
ruby += $(call pkg_check,libpulse-simple,audio.pulseaudiosimple)
ruby += $(call pkg_check,ao,audio.ao)
ruby += input.uhid input.xlib
ruby += $(call pkg_check,sdl2,input.sdl)
ruby += $(call pkg_check,sdl2,audio.sdl)
endif
endif
ifeq ($(platform),macos)
ruby.flags := $(flags.objcpp)
else
ruby.flags := $(flags.cpp)
endif
ruby.flags += $(foreach c,$(subst .,_,$(call strupper,$(ruby))),-D$c)
ifeq ($(call which,pkg-config),)
# TODO: add SDL2 cflags
else
ruby.flags += $(if $(findstring input.sdl,$(ruby)),$(shell pkg-config sdl2 --cflags))
ruby.flags += $(if $(findstring audio.sdl,$(ruby)),$(shell pkg-config sdl2 --cflags))
endif
ruby.options :=
ruby.options += $(if $(findstring video.cgl,$(ruby)),-framework OpenGL)
ruby.options += $(if $(findstring video.direct3d9,$(ruby)),$(call lib,d3d9))
ruby.options += $(if $(findstring video.glx,$(ruby)),-lGL)
ruby.options += $(if $(findstring video.wgl,$(ruby)),$(call lib,opengl32))
ruby.options += $(if $(findstring video.xvideo,$(ruby)),-lXv)
ruby.options += $(if $(findstring audio.alsa,$(ruby)),-lasound)
ruby.options += $(if $(findstring audio.ao,$(ruby)),-lao)
ruby.options += $(if $(findstring audio.directsound,$(ruby)),$(call lib,dsound uuid))
ruby.options += $(if $(findstring audio.pulseaudio,$(ruby)),-lpulse)
ruby.options += $(if $(findstring audio.pulseaudiosimple,$(ruby)),-lpulse-simple)
ruby.options += $(if $(findstring audio.wasapi,$(ruby)),$(call lib,avrt uuid))
ruby.options += $(if $(findstring audio.waveout,$(ruby)),$(call lib,winmm))
ruby.options += $(if $(findstring audio.xaudio2,$(ruby)),$(call lib,ole32))
ifeq ($(platform),windows)
ifeq ($(call which,pkg-config),)
# TODO: add SDL2 ldflags
else
ruby.options += $(if $(findstring input.sdl,$(ruby)),$(shell pkg-config sdl2 --libs --static))
ruby.options += $(if $(findstring audio.sdl,$(ruby)),$(shell pkg-config sdl2 --libs --static))
endif
else
ruby.options += $(if $(findstring input.sdl,$(ruby)),$(shell pkg-config sdl2 --libs))
ruby.options += $(if $(findstring audio.sdl,$(ruby)),$(shell pkg-config sdl2 --libs))
endif
ruby.options += $(if $(findstring input.udev,$(ruby)),-ludev)
ruby.options += $(if $(findstring input.uhid,$(ruby)),-lusbhid)
ruby.options += $(if $(findstring input.windows,$(ruby)),$(call lib,dinput8 dxguid))
ifeq ($(platform),windows)
ruby.options += $(if $(findstring audio.openal,$(ruby)),$(call lib,openal32))
endif
ifeq ($(platform),macos)
ruby.options += -framework IOKit
ruby.options += $(if $(findstring audio.openal,$(ruby)),-framework OpenAL)
endif
ifeq ($(platform),linux)
ruby.options += -lX11 -lXext -lXrandr
ruby.options += $(if $(findstring audio.openal,$(ruby)),-lopenal)
endif
ifeq ($(platform),bsd)
ruby.options += -lX11 -lXext -lXrandr
ruby.options += $(if $(findstring audio.openal,$(ruby)),-lopenal -fuse-ld=bfd)
# -fuse-ld=bfd: see FreeBSD bug 219089
endif
ruby.objects := $(object.path)/ruby.o
$(object.path)/ruby.o: $(ruby.path)/ruby.cpp $(call rwildcard,$(ruby.path))
$(info Compiling $(subst ../,,$<) ...)
@$(compiler) $(ruby.flags) $(flags) $(flags.deps) -c $< $(call obj,$@)
ruby.verbose:
$(info ruby Drivers:)
$(foreach n,$(ruby),$(info $([space]) $n))
|