//
// curl network retrieval client
//

TARGET        curl.exe
TARGETTYPE    exe
UID           0x00000000 0xF0206442

SOURCEPATH  ../../../src
SOURCE \
    tool_binmode.c \
    tool_bname.c \
    tool_cb_dbg.c \
    tool_cb_hdr.c \
    tool_cb_prg.c \
    tool_cb_rea.c \
    tool_cb_see.c \
    tool_cb_wrt.c \
    tool_cfgable.c \
    tool_convert.c \
    tool_dirhie.c \
    tool_doswin.c \
    tool_easysrc.c \
    tool_formparse.c \
    tool_getparam.c \
    tool_getpass.c \
    tool_help.c \
    tool_helpers.c \
    tool_homedir.c \
    tool_hugehelp.c \
    tool_libinfo.c \
    tool_main.c \
    tool_metalink.c \
    tool_mfiles.c \
    tool_msgs.c \
    tool_operate.c \
    tool_operhlp.c \
    tool_panykey.c \
    tool_paramhlp.c \
    tool_parsecfg.c \
    tool_setopt.c \
    tool_sleep.c \
    tool_urlglob.c \
    tool_util.c \
    tool_vms.c \
    tool_writeenv.c \
    tool_writeout.c \
    tool_writeout_json.c \
    tool_xattr.c

SOURCEPATH  ../../../lib
SOURCE \
    strcase.c nonblock.c

USERINCLUDE ../../../src ../../../lib ../../../include/curl

SYSTEMINCLUDE ../../../include /epoc32/include /epoc32/include/stdapis

LIBRARY       euser.lib libc.lib libcurl.lib
STATICLIBRARY libcrt0.lib

CAPABILITY NetworkServices

EPOCSTACKSIZE 0x8000
