#pmake: binmake

name_exe = builder.exe

inc_dirs = -I"../h" -I"$(pmake_dir)" -I"$(watcom_dir)/h"

.c : ../c;$(pmake_dir);$(watcom_dir)/c

!ifdef __WATCOM_TOOLS__
!ifeq bld_cpu x64
!undef __WATCOM_TOOLS__
!else ifeq bld_cpu arm
!undef __WATCOM_TOOLS__
!else ifeq bld_cpu a64
!undef __WATCOM_TOOLS__
!endif
!endif

!ifdef __WATCOM_TOOLS__
cc_opts_dos   = -bt=dos -l=causeway #-l=dos4g
cc_opts_os2   = -bt=os2 -l=os2v2
cc_opts_nt    = -bcl=nt
cc_opts_linux = -bcl=linux
CL = *wcl386 -zq $(cc_opts_$(bld_os)) -fe=$(name_exe)
!else ifdef __NT__
CL = cl /nologo /Fe:$(name_exe)
!else
CL = cc -g -O2 -o$(name_exe)
!endif

srcs_dos   = sysdos.c
srcs_os2   = sysos2.c
srcs_nt    = sysnt.c
srcs_linux = sysposix.c
srcs_bsd   = sysposix.c
srcs_haiku = sysposix.c
srcs_osx   = sysposix.c
builder_srcs = $(srcs_$(bld_os)) utils.c runit.c pmake.c builder.c clibext.c

cpp_defines_x64 = -DBLDX64
cpp_defines_a64 = -DBLDA64

!ifdef __WATCOM_TOOLS__
!else ifdef __NT__
cpp_defines_nt = -D__NT__
!else
cpp_defines_common = -D__UNIX__ -D_XOPEN_SOURCE=600
cpp_defines_linux = -D__LINUX__
cpp_defines_haiku = -D__HAIKU__
cpp_defines_osx = -D__OSX__
!ifdef __FREEBSD__
cpp_defines_bsd = -D__BSD__ -D__FREEBSD__
!else ifdef __DRAGONFLY__
cpp_defines_bsd = -D__BSD__ -D__DRAGONFLY__
!else ifdef __NETBSD__
cpp_defines_bsd = -D__BSD__ -D__NETBSD__
!else ifdef __OPENBSD__
cpp_defines_bsd = -D__BSD__ -D__OPENBSD__
!else
cpp_defines_bsd = -D__BSD__
!endif
!endif
cpp_defines = -DBOOTSTRAP -D_BLDVER=$(bld_ver) -D_CYEAR=$(curr_year) $(cpp_defines_$(bld_cpu)) $(cpp_defines_$(bld_os)) $(cpp_defines_common)

!ifdef __UNIX__
target = $(build_dir)/$(%OWOBJDIR)/builder      # Remove .exe from working name
!else
target = $(build_dir)/$(%OWOBJDIR)/builder.exe
!endif

$(target) : $(builder_srcs)
    $(CL) $(cpp_defines) $(inc_dirs) $<
    %copy $(name_exe) $@

clean: .SYMBOLIC
    rm -f $(name_exe)
    rm -f $(target)

