#
#  Adapted for djgpp / Watt-32 / DOS by
#  Gisle Vanem <giva@bgnett.no>
#

include ../../packages/DOS/common.dj

CFLAGS += -I../../include -DFALSE=0 -DTRUE=1

LIBS = ../../lib/libcurl.a

ifeq ($(USE_SSL),1)
  LIBS += $(OPENSSL_ROOT)/lib/libssl.a $(OPENSSL_ROOT)/lib/libcrypt.a
endif

LIBS += $(WATT32_ROOT)/lib/libwatt.a $(ZLIB_ROOT)/libz.a

CSOURCES = fopen.c ftpget.c ftpgetresp.c ftpupload.c getinmemory.c \
           http-post.c httpput.c multi-app.c multi-double.c multi-post.c \
           multi-single.c persistant.c post-callback.c postit2.c \
           sepheaders.c simple.c simplessl.c https.c ftp3rdparty.c \
           getinfo.c anyauthput.c cookie_interface.c 10-at-a-time.c

PROGRAMS = $(CSOURCES:.c=.exe)

all: $(PROGRAMS)

%.exe: %.c
	$(CC) $(CFLAGS) -o $@ $^ $(LIBS)
	@echo

clean:
	rm -f $(PROGRAMS)

# DO NOT DELETE THIS LINE

