mirror of
https://github.com/Ryujinx/SDL.git
synced 2024-12-22 20:55:29 +00:00
cd7c2f1de7
For stable releases, this gives us the ability to make bugfix-only point releases such as 2.24.1 if we want to, and distinguish between them programmatically. For example, this ability could have been useful after 2.0.16 to fix Xwayland regressions, and after 2.0.18 to fix event loop regressions. For development releases, this gives us the ability to make multiple prereleases during the same feature cycle, and distinguish between them programmatically. For example, this would have been useful during 2.0.22 development, which went through three prereleases before reaching the final release. Signed-off-by: Simon McVittie <smcv@collabora.com>
292 lines
10 KiB
Makefile
292 lines
10 KiB
Makefile
# Open Watcom makefile to build SDL2.dll for OS/2
|
|
# wmake -f Makefile.os2
|
|
#
|
|
# If you have GNU libiconv installed (iconv2.dll), you
|
|
# can compile against it by specifying LIBICONV=1, e.g.:
|
|
# wmake -f Makefile.os2 LIBICONV=1
|
|
#
|
|
# If you have libusb-1.0 installed (usb100.dll, libusb.h), you
|
|
# can compile hidapi joystick support against it (experimental)
|
|
# by specifying HIDAPI=1, e.g.:
|
|
# wmake -f Makefile.os2 HIDAPI=1
|
|
|
|
LIBNAME = SDL2
|
|
MAJOR_VERSION = 2
|
|
MINOR_VERSION = 23
|
|
MICRO_VERSION = 0
|
|
VERSION = $(MAJOR_VERSION).$(MINOR_VERSION).$(MICRO_VERSION)
|
|
DESCRIPTION = Simple DirectMedia Layer 2
|
|
|
|
LIBICONV=0
|
|
ICONVLIB=$(LIBICONV_LIB)
|
|
|
|
LIBHOME = .
|
|
DLLFILE = $(LIBHOME)/$(LIBNAME).dll
|
|
LIBFILE = $(LIBHOME)/$(LIBNAME).lib
|
|
LNKFILE = $(LIBNAME).lnk
|
|
|
|
INCPATH = -I"$(%WATCOM)/h/os2" -I"$(%WATCOM)/h"
|
|
INCPATH+= -Iinclude
|
|
|
|
LIBM = SDL2libm.lib
|
|
TLIB = SDL2test.lib
|
|
LIBS = mmpm2.lib $(LIBM)
|
|
CFLAGS = -bt=os2 -d0 -q -bm -5s -fp5 -fpi87 -sg -oeatxhn -ei
|
|
# Debug options:
|
|
# - debug messages from OS/2 related code to stdout:
|
|
#CFLAGS+= -DOS2DEBUG
|
|
# - debug messages from OS/2 code via SDL_LogDebug():
|
|
#CFLAGS+= -DOS2DEBUG=2
|
|
|
|
# max warnings:
|
|
CFLAGS+= -wx
|
|
# newer OpenWatcom versions enable W303 by default
|
|
CFLAGS+= -wcd=303
|
|
# the include paths :
|
|
CFLAGS+= $(INCPATH)
|
|
CFLAGS_STATIC=$(CFLAGS)
|
|
# building dll:
|
|
CFLAGS_DLL =$(CFLAGS)
|
|
CFLAGS_DLL+= -bd
|
|
# iconv:
|
|
LIBICONV_LIB=iconv2.lib
|
|
!ifeq LIBICONV 1
|
|
CFLAGS_DLL+= -DHAVE_ICONV=1 -DHAVE_ICONV_H=1
|
|
LIBS+= $(ICONVLIB)
|
|
!else
|
|
LIBS+= libuls.lib libconv.lib
|
|
!endif
|
|
# hidapi (libusb):
|
|
!ifeq HIDAPI 1
|
|
CFLAGS_DLL+= -DHAVE_LIBUSB_H=1
|
|
!endif
|
|
# building SDL itself (for DECLSPEC):
|
|
CFLAGS_DLL+= -DBUILD_SDL
|
|
|
|
CFLAGS+= -DSDL_BUILD_MAJOR_VERSION=$(MAJOR_VERSION)
|
|
CFLAGS+= -DSDL_BUILD_MINOR_VERSION=$(MINOR_VERSION)
|
|
CFLAGS+= -DSDL_BUILD_MICRO_VERSION=$(MICRO_VERSION)
|
|
|
|
SRCS = SDL.c SDL_assert.c SDL_error.c SDL_log.c SDL_dataqueue.c SDL_hints.c SDL_list.c
|
|
SRCS+= SDL_getenv.c SDL_iconv.c SDL_malloc.c SDL_qsort.c SDL_stdlib.c SDL_string.c SDL_strtokr.c SDL_crc32.c
|
|
SRCS+= SDL_cpuinfo.c SDL_atomic.c SDL_spinlock.c SDL_thread.c SDL_timer.c
|
|
SRCS+= SDL_rwops.c SDL_power.c
|
|
SRCS+= SDL_audio.c SDL_audiocvt.c SDL_audiodev.c SDL_audiotypecvt.c SDL_mixer.c SDL_wave.c
|
|
SRCS+= SDL_events.c SDL_quit.c SDL_keyboard.c SDL_mouse.c SDL_windowevents.c &
|
|
SDL_clipboardevents.c SDL_dropevents.c SDL_displayevents.c SDL_gesture.c &
|
|
SDL_sensor.c SDL_touch.c
|
|
SRCS+= SDL_haptic.c SDL_hidapi.c SDL_gamecontroller.c SDL_joystick.c
|
|
SRCS+= SDL_render.c yuv_rgb.c SDL_yuv.c SDL_yuv_sw.c SDL_blendfillrect.c &
|
|
SDL_blendline.c SDL_blendpoint.c SDL_drawline.c SDL_drawpoint.c &
|
|
SDL_render_sw.c SDL_rotate.c SDL_triangle.c
|
|
SRCS+= SDL_blit.c SDL_blit_0.c SDL_blit_1.c SDL_blit_A.c SDL_blit_auto.c &
|
|
SDL_blit_copy.c SDL_blit_N.c SDL_blit_slow.c SDL_fillrect.c SDL_bmp.c &
|
|
SDL_pixels.c SDL_rect.c SDL_RLEaccel.c SDL_shape.c SDL_stretch.c &
|
|
SDL_surface.c SDL_video.c SDL_clipboard.c SDL_vulkan_utils.c SDL_egl.c
|
|
|
|
SRCS+= SDL_syscond.c SDL_sysmutex.c SDL_syssem.c SDL_systhread.c SDL_systls.c
|
|
SRCS+= SDL_systimer.c
|
|
SRCS+= SDL_sysloadso.c
|
|
SRCS+= SDL_sysfilesystem.c
|
|
SRCS+= SDL_os2joystick.c SDL_syshaptic.c SDL_sysjoystick.c SDL_virtualjoystick.c
|
|
SRCS+= SDL_hidapijoystick.c SDL_hidapi_rumble.c SDL_hidapi_gamecube.c SDL_hidapi_luna.c SDL_hidapi_ps4.c SDL_hidapi_ps5.c SDL_hidapi_stadia.c SDL_hidapi_switch.c SDL_hidapi_xbox360.c SDL_hidapi_xbox360w.c SDL_hidapi_xboxone.c SDL_hidapi_steam.c
|
|
SRCS+= SDL_dummyaudio.c SDL_diskaudio.c
|
|
SRCS+= SDL_nullvideo.c SDL_nullframebuffer.c SDL_nullevents.c
|
|
SRCS+= SDL_dummysensor.c
|
|
SRCS+= SDL_locale.c SDL_syslocale.c
|
|
SRCS+= SDL_url.c SDL_sysurl.c
|
|
|
|
SRCS+= SDL_os2.c
|
|
!ifeq LIBICONV 0
|
|
SRCS+= geniconv.c os2cp.c os2iconv.c sys2utf8.c
|
|
!endif
|
|
SRCS+= SDL_os2audio.c
|
|
SRCS+= SDL_os2video.c SDL_os2util.c SDL_os2dive.c SDL_os2vman.c &
|
|
SDL_os2mouse.c SDL_os2messagebox.c
|
|
|
|
SRCS+= SDL_dynapi.c
|
|
|
|
OBJS = $(SRCS:.c=.obj)
|
|
|
|
.extensions:
|
|
.extensions: .lib .dll .obj .c .asm
|
|
|
|
.c: ./src;./src/dynapi;./src/audio;./src/cpuinfo;./src/events;./src/file;./src/haptic;./src/joystick;./src/power;./src/render;./src/render/software;./src/sensor;./src/stdlib;./src/thread;./src/timer;./src/video;./src/video/yuv2rgb;./src/atomic;./src/audio/disk;
|
|
.c: ./src/haptic/dummy;./src/joystick/dummy;./src/joystick/virtual;./src/audio/dummy;./src/video/dummy;./src/sensor/dummy;
|
|
.c: ./src/core/os2;./src/audio/os2;./src/loadso/os2;./src/filesystem/os2;./src/joystick/os2;./src/thread/os2;./src/timer/os2;./src/video/os2;
|
|
.c: ./src/core/os2/geniconv;
|
|
.c: ./src/locale/;./src/locale/unix;./src/misc;./src/misc/dummy;./src/joystick/hidapi;./src/hidapi
|
|
|
|
all: $(DLLFILE) $(LIBFILE) $(TLIB) .symbolic
|
|
|
|
build_dll: .symbolic
|
|
@echo * Compiling dll objects
|
|
|
|
$(DLLFILE): build_dll $(OBJS) $(LIBM) $(LIBICONV_LIB) $(LNKFILE)
|
|
@echo * Linking: $@
|
|
wlink @$(LNKFILE)
|
|
|
|
$(LIBFILE): $(DLLFILE)
|
|
@echo * Creating LIB file: $@
|
|
wlib -q -b -n -c -pa -s -t -zld -ii -io $* $(DLLFILE)
|
|
|
|
.c.obj:
|
|
wcc386 $(CFLAGS_DLL) -fo=$^@ $<
|
|
|
|
SDL_syscond.obj: "src/thread/generic/SDL_syscond.c"
|
|
wcc386 $(CFLAGS_DLL) -fo=$^@ $<
|
|
SDL_cpuinfo.obj: SDL_cpuinfo.c
|
|
wcc386 $(CFLAGS_DLL) -wcd=200 -fo=$^@ $<
|
|
SDL_wave.obj: SDL_wave.c
|
|
wcc386 $(CFLAGS_DLL) -wcd=124 -fo=$^@ $<
|
|
SDL_blendfillrect.obj: SDL_blendfillrect.c
|
|
wcc386 $(CFLAGS_DLL) -wcd=200 -fo=$^@ $<
|
|
SDL_blendline.obj: SDL_blendline.c
|
|
wcc386 $(CFLAGS_DLL) -wcd=200 -fo=$^@ $<
|
|
SDL_blendpoint.obj: SDL_blendpoint.c
|
|
wcc386 $(CFLAGS_DLL) -wcd=200 -fo=$^@ $<
|
|
SDL_RLEaccel.obj: SDL_RLEaccel.c
|
|
wcc386 $(CFLAGS_DLL) -wcd=201 -fo=$^@ $<
|
|
!ifeq HIDAPI 1
|
|
# c99 mode needed because of structs with flexible array members in libusb.h
|
|
SDL_hidapi.obj: SDL_hidapi.c
|
|
wcc386 $(CFLAGS_DLL) -za99 -fo=$^@ $<
|
|
!endif
|
|
|
|
$(LIBICONV_LIB): "src/core/os2/iconv2.lbc"
|
|
@echo * Creating: $@
|
|
wlib -q -b -n -c -pa -s -t -zld -ii -io $@ @$<
|
|
|
|
# SDL2libm
|
|
MSRCS= e_atan2.c e_exp.c e_fmod.c e_log10.c e_log.c e_pow.c e_rem_pio2.c e_sqrt.c &
|
|
k_cos.c k_rem_pio2.c k_sin.c k_tan.c &
|
|
s_atan.c s_copysign.c s_cos.c s_fabs.c s_floor.c s_scalbn.c s_sin.c s_tan.c
|
|
MOBJS= $(MSRCS:.c=.obj)
|
|
|
|
.c: ./src/libm;
|
|
e_atan2.obj: e_atan2.c
|
|
wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
|
|
e_exp.obj: e_exp.c
|
|
wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
|
|
e_fmod.obj: e_fmod.c
|
|
wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
|
|
e_log10.obj: e_log10.c
|
|
wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
|
|
e_log.obj: e_log.c
|
|
wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
|
|
e_pow.obj: e_pow.c
|
|
wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
|
|
e_rem_pio2.obj: e_rem_pio2.c
|
|
wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
|
|
e_sqrt.obj: e_sqrt.c
|
|
wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
|
|
k_cos.obj: k_cos.c
|
|
wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
|
|
k_rem_pio2.obj: k_rem_pio2.c
|
|
wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
|
|
k_sin.obj: k_sin.c
|
|
wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
|
|
k_tan.obj: k_tan.c
|
|
wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
|
|
s_atan.obj: s_atan.c
|
|
wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
|
|
s_copysign.obj: s_copysign.c
|
|
wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
|
|
s_cos.obj: s_cos.c
|
|
wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
|
|
s_fabs.obj: s_fabs.c
|
|
wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
|
|
s_floor.obj: s_floor.c
|
|
wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
|
|
s_scalbn.obj: s_scalbn.c
|
|
wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
|
|
s_sin.obj: s_sin.c
|
|
wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
|
|
s_tan.obj: s_tan.c
|
|
wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
|
|
|
|
build_libm: .symbolic
|
|
@echo * Compiling libm objects
|
|
$(LIBM): build_libm $(MOBJS)
|
|
@echo * Creating: $@
|
|
wlib -q -b -n -c -pa -s -t -zld -ii -io $@ $(MOBJS)
|
|
|
|
# SDL2test
|
|
TSRCS = SDL_test_assert.c SDL_test_common.c SDL_test_compare.c &
|
|
SDL_test_crc32.c SDL_test_font.c SDL_test_fuzzer.c SDL_test_harness.c &
|
|
SDL_test_imageBlit.c SDL_test_imageBlitBlend.c SDL_test_imageFace.c &
|
|
SDL_test_imagePrimitives.c SDL_test_imagePrimitivesBlend.c &
|
|
SDL_test_log.c SDL_test_md5.c SDL_test_random.c SDL_test_memory.c
|
|
TOBJS= $(TSRCS:.c=.obj)
|
|
|
|
.c: ./src/test;
|
|
SDL_test_assert.obj: SDL_test_assert.c
|
|
wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
|
|
SDL_test_common.obj: SDL_test_common.c
|
|
wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
|
|
SDL_test_compare.obj: SDL_test_compare.c
|
|
wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
|
|
SDL_test_crc32.obj: SDL_test_crc32.c
|
|
wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
|
|
SDL_test_font.obj: SDL_test_font.c
|
|
wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
|
|
SDL_test_fuzzer.obj: SDL_test_fuzzer.c
|
|
wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
|
|
SDL_test_harness.obj: SDL_test_harness.c
|
|
wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
|
|
SDL_test_imageBlit.obj: SDL_test_imageBlit.c
|
|
wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
|
|
SDL_test_imageBlitBlend.obj: SDL_test_imageBlitBlend.c
|
|
wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
|
|
SDL_test_imageFace.obj: SDL_test_imageFace.c
|
|
wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
|
|
SDL_test_imagePrimitives.obj: SDL_test_imagePrimitives.c
|
|
wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
|
|
SDL_test_imagePrimitivesBlend.obj: SDL_test_imagePrimitivesBlend.c
|
|
wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
|
|
SDL_test_log.obj: SDL_test_log.c
|
|
wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
|
|
SDL_test_md5.obj: SDL_test_md5.c
|
|
wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
|
|
SDL_test_random.obj: SDL_test_random.c
|
|
wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
|
|
SDL_test_memory.obj: SDL_test_memory.c
|
|
wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
|
|
|
|
build_tlib: .symbolic
|
|
@echo * Compiling testlib objects
|
|
$(TLIB): build_tlib $(TOBJS)
|
|
@echo * Creating: $@
|
|
wlib -q -b -n -c -pa -s -t -zld -ii -io $@ $(TOBJS)
|
|
|
|
$(LNKFILE):
|
|
@echo * Creating linker file: $@
|
|
@%create $@
|
|
@%append $@ SYSTEM os2v2_dll INITINSTANCE TERMINSTANCE
|
|
@%append $@ NAME $(DLLFILE)
|
|
@for %i in ($(OBJS)) do @%append $@ FILE %i
|
|
@for %i in ($(LIBS)) do @%append $@ LIB %i
|
|
@%append $@ OPTION QUIET
|
|
@%append $@ OPTION IMPF=$(LIBHOME)/$^&.exp
|
|
@%append $@ OPTION MAP=$(LIBHOME)/$^&.map
|
|
@%append $@ OPTION DESCRIPTION '@$#libsdl org:$(VERSION)$#@$(DESCRIPTION)'
|
|
@%append $@ OPTION ELIMINATE
|
|
@%append $@ OPTION MANYAUTODATA
|
|
@%append $@ OPTION OSNAME='OS/2 and eComStation'
|
|
@%append $@ OPTION SHOWDEAD
|
|
|
|
clean: .SYMBOLIC
|
|
@echo * Clean: $(LIBNAME)
|
|
@if exist *.obj rm *.obj
|
|
@if exist *.err rm *.err
|
|
@if exist $(LNKFILE) rm $(LNKFILE)
|
|
@if exist $(LIBM) rm $(LIBM)
|
|
@if exist $(LIBICONV_LIB) rm $(LIBICONV_LIB)
|
|
|
|
distclean: .SYMBOLIC clean
|
|
@if exist $(LIBHOME)/*.exp rm $(LIBHOME)/*.exp
|
|
@if exist $(LIBHOME)/*.map rm $(LIBHOME)/*.map
|
|
@if exist $(LIBFILE) rm $(LIBFILE)
|
|
@if exist $(DLLFILE) rm $(DLLFILE)
|
|
@if exist $(TLIB) rm $(TLIB)
|