#=============================================================================
#
#        This is an OpenWatcom makefile to build SDL.DLL for OS/2  
#
#=============================================================================

# Create debug build or not?
#debug_build=defined

# Special flags for building SDL
SDLCFlags = -dBUILD_SDL -dCHECK_LEAKS -dUSE_ASM_MIXER_VC -dUSE_DOSSETPRIORITY

# Name of the DLL to be created
dllname = SDL12

#
#==============================================================================
#

!ifdef debug_build
debugflags = -d2 -dDEBUG_BUILD
!else
debugflags =
!endif

cflags = -zq $(debugflags) -bd -bm -bt=OS2 -5s -fpi -sg -otexan -wx -ei $(SDLCFlags) -fo=.\obj\

audioobjs = SDL_audio.obj SDL_audiocvt.obj &
            SDL_mixer.obj SDL_mixer_MMX_VC.obj SDL_wave.obj &
            SDL_dart.obj SDL_diskaudio.obj SDL_dummyaudio.obj
cdromobjs = SDL_cdrom.obj SDL_syscdrom.obj
cpuinfoobjs = SDL_cpuinfo.obj
eventsobjs = SDL_active.obj SDL_events.obj SDL_expose.obj &
             SDL_keyboard.obj SDL_mouse.obj SDL_quit.obj &
             SDL_resize.obj
fileobjs = SDL_rwops.obj
hermesobjs = mmx_main.obj mmxp2_32.obj x86_main.obj &
             x86p_16.obj x86p_32.obj
joystickobjs = SDL_joystick.obj SDL_sysjoystick.obj
loadsoobjs = SDL_sysloadso.obj
threadobjs = SDL_thread.obj SDL_sysmutex.obj &
             SDL_syssem.obj SDL_systhread.obj &
             SDL_syscond.obj
timerobjs = SDL_timer.obj SDL_systimer.obj
videoobjs = SDL_blit.obj SDL_blit_0.obj SDL_blit_1.obj &
            SDL_blit_A.obj SDL_blit_N.obj SDL_bmp.obj &
            SDL_cursor.obj SDL_gamma.obj SDL_pixels.obj &
            SDL_RLEaccel.obj SDL_stretch.obj SDL_surface.obj &
            SDL_video.obj SDL_yuv.obj SDL_yuv_mmx.obj SDL_yuv_sw.obj &
            SDL_os2fslib.obj &
            SDL_nullevents.obj SDL_nullmouse.obj SDL_nullvideo.obj
stdlibobjs = SDL_string.obj

object_files= SDL.obj SDL_error.obj SDL_fatal.obj &
              $(stdlibobjs) $(audioobjs) $(cpuinfoobjs) &
              $(eventsobjs) $(fileobjs) $(joystickobjs) $(loadsoobjs) &
              $(threadobjs) $(timerobjs) $(videoobjs) $(cdromobjs)

.before:
    @set include=$(%include);$(%os2tk)\h;$(%FSLIB);.\include;.\src;.\src\audio;.\src\audio\dart;.\src\audio\disk;.\src\audio\dummy;.\src\cdrom;.\src\cdrom\os2;.\src\cpuinfo;.\src\events;.\src\file;.\src\joystick;.\src\joystick\os2;.\src\loadso\os2;.\src\stdlib;.\src\thread;.\src\thread\os2;.\src\timer;.\src\timer\os2;.\src\video;.\src\video\os2fslib;.\src\video\dummy

.extensions:
.extensions: .lib .dll .obj .c .asm

.c: .\src;.\src\audio;.\src\audio\dart;.\src\audio\disk;.\src\audio\dummy;.\src\cdrom;.\src\cdrom\os2;.\src\cpuinfo;.\src\events;.\src\file;.\src\joystick;.\src\joystick\os2;.\src\loadso\os2;.\src\stdlib;.\src\thread;.\src\thread\os2;.\src\timer;.\src\timer\os2;.\src\video;.\src\video\os2fslib;.\src\video\dummy
.obj: .\obj

.c.obj : .AUTODEPEND
    @wcc386 $[* $(cflags)

.asm.obj : .AUTODEPEND
    @nasm -t -O2 -f obj -I$(%include) $[*.asm

all: $(dllname).dll $(dllname).lib done_info .symbolic

$(dllname).dll : $(dllname).lnk object_dir compiling_info $(object_files)
    @echo * Linking...
    @wlink @$(dllname)

$(dllname).lib : $(dllname).dll
    @echo * Creating LIB file...
    @implib $(dllname).lib $(dllname).dll

object_dir : .symbolic
    @if not exist obj @mkdir obj

compiling_info : .symbolic
    @echo * Compiling...

done_info : .symbolic
    @echo * All done!

$(dllname).lnk : makefile
    @echo * Creating linker file ($(dllname).lnk)...
    @echo $#============================================================================= >$^@
    @echo $#              This is a linker file to build SDL.DLL for OS/2 >>$^@
    @echo $# >>$^@
    @echo $# Generated automatically by makefile >>$^@
    @echo $#============================================================================= >>$^@
    @echo SYSTEM os2v2_dll INITINSTANCE TERMINSTANCE >>$^@
    @echo NAME $^& >>$^@
    @for %i in ($(object_files)) do @echo FILE obj\%i >>$^@
    @echo LIBPATH %os2tk%\lib >>$^@
    @echo LIBPATH %fslib% >>$^@
    @echo LIB mmpm2.lib >>$^@
    @echo LIB fslib.lib >>$^@
    @echo LIB libuls.lib >>$^@
    @echo LIB libconv.lib >>$^@
    @echo OPTION QUIET >>$^@
    @echo OPTION MAP=$^&.map >>$^@
    @echo OPTION DESCRIPTION 'Simple DirectMedia Layer v1.2' >>$^@
    @echo OPTION ELIMINATE >>$^@
    @echo OPTION MANYAUTODATA >>$^@
    @echo OPTION OSNAME='OS/2 and eComStation' >>$^@
    @echo OPTION SHOWDEAD >>$^@
    @echo * Linker file created!

clean : .SYMBOLIC
    @echo * Cleaning...
    @if exist *.dll del *.dll
    @if exist *.lib del *.lib
    @if exist .\obj\*.obj del .\obj\*.obj
    @if exist *.lnk del *.lnk
    @if exist *.map del *.map
    @if exist *.res del *.res
    @if exist *.lst del *.lst
