Makefile.os2 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176
  1. # Open Watcom makefile to build SDL2.dll for OS/2
  2. # wmake -f Makefile.os2
  3. #
  4. # If you have libiconv installed, you can compile against it
  5. # by specifying LIBICONV=1, e.g.:
  6. # wmake -f Makefile.os2 LIBICONV=1
  7. LIBNAME = SDL2
  8. VERSION = 2.0.19
  9. DESCRIPTION = Simple DirectMedia Layer 2
  10. LIBICONV=0
  11. LIBHOME = .
  12. DLLFILE = $(LIBHOME)/$(LIBNAME).dll
  13. LIBFILE = $(LIBHOME)/$(LIBNAME).lib
  14. LNKFILE = $(LIBNAME).lnk
  15. INCPATH = -I"$(%WATCOM)/h/os2" -I"$(%WATCOM)/h"
  16. INCPATH+= -Iinclude
  17. LIBM = libm.lib
  18. LIBS = mmpm2.lib $(LIBM)
  19. CFLAGS = -bt=os2 -d0 -q -bm -5s -fp5 -fpi87 -sg -oteanbmier -ei
  20. # max warnings:
  21. CFLAGS+= -wx
  22. # newer OpenWatcom versions enable W303 by default
  23. CFLAGS+= -wcd=303
  24. # building dll:
  25. CFLAGS+= -bd
  26. # iconv:
  27. !ifeq LIBICONV 1
  28. CFLAGS+= -DHAVE_ICONV=1 -DHAVE_ICONV_H=1
  29. LIBS+= iconv.lib
  30. !else
  31. LIBS+= libuls.lib libconv.lib
  32. !endif
  33. # the include paths :
  34. CFLAGS+= $(INCPATH)
  35. # building SDL itself (for DECLSPEC):
  36. CFLAGS+= -DBUILD_SDL
  37. # Debug options:
  38. # - debug messages from OS/2 related code to stdout:
  39. #CFLAGS+= -DOS2DEBUG
  40. # - debug messages from OS/2 code via SDL_LogDebug():
  41. #CFLAGS+= -DOS2DEBUG=2
  42. 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 &
  43. k_cos.c k_rem_pio2.c k_sin.c k_tan.c &
  44. s_atan.c s_copysign.c s_cos.c s_fabs.c s_floor.c s_scalbn.c s_sin.c s_tan.c
  45. SRCS = SDL.c SDL_assert.c SDL_error.c SDL_log.c SDL_dataqueue.c SDL_hints.c
  46. 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
  47. SRCS+= SDL_cpuinfo.c SDL_atomic.c SDL_spinlock.c SDL_thread.c SDL_timer.c
  48. SRCS+= SDL_rwops.c SDL_power.c
  49. SRCS+= SDL_audio.c SDL_audiocvt.c SDL_audiodev.c SDL_audiotypecvt.c SDL_mixer.c SDL_wave.c
  50. SRCS+= SDL_events.c SDL_quit.c SDL_keyboard.c SDL_mouse.c SDL_windowevents.c &
  51. SDL_clipboardevents.c SDL_dropevents.c SDL_displayevents.c SDL_gesture.c &
  52. SDL_sensor.c SDL_touch.c
  53. SRCS+= SDL_haptic.c SDL_hidapi.c SDL_gamecontroller.c SDL_joystick.c
  54. SRCS+= SDL_render.c yuv_rgb.c SDL_yuv.c SDL_yuv_sw.c SDL_blendfillrect.c &
  55. SDL_blendline.c SDL_blendpoint.c SDL_drawline.c SDL_drawpoint.c &
  56. SDL_render_sw.c SDL_rotate.c SDL_triangle.c
  57. SRCS+= SDL_blit.c SDL_blit_0.c SDL_blit_1.c SDL_blit_A.c SDL_blit_auto.c &
  58. SDL_blit_copy.c SDL_blit_N.c SDL_blit_slow.c SDL_fillrect.c SDL_bmp.c &
  59. SDL_pixels.c SDL_rect.c SDL_RLEaccel.c SDL_shape.c SDL_stretch.c &
  60. SDL_surface.c SDL_video.c SDL_clipboard.c SDL_vulkan_utils.c SDL_egl.c
  61. SRCS+= SDL_syscond.c SDL_sysmutex.c SDL_syssem.c SDL_systhread.c SDL_systls.c
  62. SRCS+= SDL_systimer.c
  63. SRCS+= SDL_sysloadso.c
  64. SRCS+= SDL_sysfilesystem.c
  65. SRCS+= SDL_os2joystick.c SDL_syshaptic.c SDL_sysjoystick.c SDL_virtualjoystick.c
  66. 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
  67. SRCS+= SDL_dummyaudio.c SDL_diskaudio.c
  68. SRCS+= SDL_nullvideo.c SDL_nullframebuffer.c SDL_nullevents.c
  69. SRCS+= SDL_dummysensor.c
  70. SRCS+= SDL_locale.c SDL_syslocale.c
  71. SRCS+= SDL_url.c SDL_sysurl.c
  72. SRCS+= SDL_os2.c
  73. !ifeq LIBICONV 0
  74. SRCS+= geniconv.c os2cp.c os2iconv.c sys2utf8.c
  75. !endif
  76. SRCS+= SDL_os2audio.c
  77. SRCS+= SDL_os2video.c SDL_os2util.c SDL_os2dive.c SDL_os2vman.c &
  78. SDL_os2mouse.c SDL_os2messagebox.c
  79. SRCS+= SDL_dynapi.c
  80. OBJS = $(SRCS:.c=.obj)
  81. MOBJS= $(MSRCS:.c=.obj)
  82. .extensions:
  83. .extensions: .lib .dll .obj .c .asm
  84. .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;
  85. .c: ./src/haptic/dummy;./src/joystick/dummy;./src/joystick/virtual;./src/audio/dummy;./src/video/dummy;./src/sensor/dummy;
  86. .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;
  87. .c: ./src/core/os2/geniconv;
  88. .c: ./src/locale/;./src/locale/unix;./src/misc;./src/misc/dummy;./src/joystick/hidapi;./src/hidapi
  89. all: $(DLLFILE) $(LIBFILE) .symbolic
  90. $(DLLFILE): $(OBJS) $(LIBM) $(LNKFILE)
  91. @echo * Linking: $@
  92. wlink @$(LNKFILE)
  93. $(LIBFILE): $(DLLFILE)
  94. @echo * Creating LIB file: $@
  95. wlib -q -b -n -c -pa -s -t -zld -ii -io $* $(DLLFILE)
  96. .c.obj:
  97. wcc386 $(CFLAGS) -fo=$^@ $<
  98. SDL_syscond.obj: "src/thread/generic/SDL_syscond.c"
  99. wcc386 $(CFLAGS) -fo=$^@ $<
  100. SDL_cpuinfo.obj: SDL_cpuinfo.c
  101. wcc386 $(CFLAGS) -wcd=200 -fo=$^@ $<
  102. SDL_rwops.obj: SDL_rwops.c
  103. wcc386 $(CFLAGS) -wcd=136 -fo=$^@ $<
  104. SDL_wave.obj: SDL_wave.c
  105. wcc386 $(CFLAGS) -wcd=124 -fo=$^@ $<
  106. SDL_blendfillrect.obj: SDL_blendfillrect.c
  107. wcc386 $(CFLAGS) -wcd=200 -fo=$^@ $<
  108. SDL_blendline.obj: SDL_blendline.c
  109. wcc386 $(CFLAGS) -wcd=200 -fo=$^@ $<
  110. SDL_blendpoint.obj: SDL_blendpoint.c
  111. wcc386 $(CFLAGS) -wcd=200 -fo=$^@ $<
  112. SDL_RLEaccel.obj: SDL_RLEaccel.c
  113. wcc386 $(CFLAGS) -wcd=201 -fo=$^@ $<
  114. # c99 mode needed because of structs with flexible array members in libusb.h
  115. SDL_hidapi.obj: SDL_hidapi.c
  116. wcc386 $(CFLAGS) -za99 -fo=$^@ $<
  117. .c: ./src/libm;
  118. $(LIBM): $(MOBJS)
  119. wlib -q -b -n -c -pa -s -t -zld -ii -io $@ $(MOBJS)
  120. $(LNKFILE):
  121. @echo * Creating linker file: $@
  122. @%create $@
  123. @%append $@ SYSTEM os2v2_dll INITINSTANCE TERMINSTANCE
  124. @%append $@ NAME $(DLLFILE)
  125. @for %i in ($(OBJS)) do @%append $@ FILE %i
  126. @for %i in ($(LIBS)) do @%append $@ LIB %i
  127. @%append $@ OPTION QUIET
  128. @%append $@ OPTION IMPF=$(LIBHOME)/$^&.exp
  129. @%append $@ OPTION MAP=$(LIBHOME)/$^&.map
  130. @%append $@ OPTION DESCRIPTION '@$#libsdl org:$(VERSION)$#@$(DESCRIPTION)'
  131. @%append $@ OPTION ELIMINATE
  132. @%append $@ OPTION MANYAUTODATA
  133. @%append $@ OPTION OSNAME='OS/2 and eComStation'
  134. @%append $@ OPTION SHOWDEAD
  135. clean: .SYMBOLIC
  136. @ echo * Clean: $(LIBNAME)
  137. @if exist *.obj rm *.obj
  138. @if exist *.err rm *.err
  139. @if exist $(LNKFILE) rm $(LNKFILE)
  140. @if exist $(LIBM) rm $(LIBM)
  141. distclean: .SYMBOLIC clean
  142. @if exist $(LIBHOME)/*.exp rm $(LIBHOME)/*.exp
  143. @if exist $(LIBHOME)/*.map rm $(LIBHOME)/*.map
  144. @if exist $(LIBFILE) rm $(LIBFILE)
  145. @if exist $(DLLFILE) rm $(DLLFILE)