19bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels#
29bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels# Common defines for curl (djgpp/Watt-32)
39bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels#
49bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels# Assumes you've unpacked cURL with long-file names
59bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels# I.e use "set LFN=y" before untaring on Win9x/XP.
69bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels# Requires sed, yacc, rm and the usual stuff.
79bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels#
89bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels# Define TOPDIR before including this file.
99bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels
109bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels.SUFFIXES: .exe .y
119bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels
129bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas EckelsMAKEFILE = Makefile.dj
139bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas EckelsOBJ_DIR = djgpp
149bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels
159bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels#
16e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET# Find out if using a Unix-like shell or a DOS command interpreter
179bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels#
189bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckelsifneq ($(findstring COMMAND.COM,$(SHELL)),COMMAND.COM)
199bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels  ifneq ($(findstring CMD.EXE,$(SHELL)),CMD.EXE)
209bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels    ifneq ($(findstring 4DOS.COM,$(SHELL)),4DOS.COM)
219bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels      IS_UNIX_SHELL = 1
229bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels    endif
239bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels  endif
249bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckelsendif
259bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels
269bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels#
279bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels# Define shell dependent commands and vars
289bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels#
299bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckelsifeq ($(IS_UNIX_SHELL),1)
309bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels  COPY   = cp -f
319bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels  DELETE = rm -f
329bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels  MKDIR  = mkdir
339bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels  RMDIR  = rm -f -r
349bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels  DS     = /
359bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckelselse
369bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels  COPY   = copy
379bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels  DELETE = del
389bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels  MKDIR  = mkdir
399bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels  RMDIR  = rmdir
409bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels  DS     = \$(NOTHING)
419bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckelsendif
429bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels
439bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels#
449bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels# OpenSSL is available from www.openssl.org and builds okay
459bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels# with djgpp/Watt-32. Set to 0 if you don't need https URLs
469bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels# (reduces curl.exe with approx 700 kB)
479bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels#
489bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas EckelsUSE_SSL = 0
499bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels
509bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels#
519bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels# Use zlib for contents encoding
529bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels#
539bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas EckelsUSE_ZLIB = 0
549bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels
559bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels#
569bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels# Use libidn for international domain names
579bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels#
589bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas EckelsUSE_IDNA = 0
599bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels
609bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels#
619bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels# Use Watt-32 IPv6 stack (only IPv6 name resolution working at the moment)
629bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels#
639bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas EckelsUSE_IPV6 = 0
649bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels
659bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels#
669bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels# Use C-Ares resolver library
679bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels#
689bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas EckelsUSE_ARES = 0
699bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels
709bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels#
719bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels# Enable debug code in libcurl/curl
729bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels#
739bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas EckelsUSE_DEBUG = 0
749bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels
759bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels#
769bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels# Enable memory tracking code in libcurl/curl
779bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels#
789bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas EckelsUSE_CURLDEBUG = 0
799bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels
809bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckelsdefault: all
819bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels
829bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels#
839bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels# Root directory for Waterloo tcp/ip etc. Change to suite.
849bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels# WATT_ROOT should be set during Watt-32 install.
859bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels#
869bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas EckelsWATT32_ROOT  = $(subst \,/,$(WATT_ROOT))
879bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas EckelsOPENSSL_ROOT = e:/net/openssl.099
889bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas EckelsZLIB_ROOT    = $(DJDIR)/contrib/zlib
899bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas EckelsLIBIDN_ROOT  = $(TOPDIR)/../IDN/libidn
909bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas EckelsARES_ROOT    = $(TOPDIR)/ares
919bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels
929bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas EckelsCC   = gcc
939bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas EckelsYACC = bison -y
949bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels
95e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNETCFLAGS = -g -O2 -I. -I$(TOPDIR)/include -I$(TOPDIR)/lib \
969bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels         -I$(WATT32_ROOT)/inc -Wall -DHAVE_CONFIG_H
979bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels
989bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckelsifeq ($(USE_SSL),1)
999bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels  CFLAGS += -DUSE_SSLEAY -DUSE_OPENSSL -I$(OPENSSL_ROOT)
1009bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckelsendif
1019bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels
1029bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckelsifeq ($(USE_ZLIB),1)
1039bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels  CFLAGS += -DUSE_ZLIB -I$(ZLIB_ROOT)
1049bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckelsendif
1059bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels
1069bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckelsifeq ($(USE_IPV6),1)
1079bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels  CFLAGS += -DENABLE_IPV6
1089bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckelsendif
1099bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels
1109bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckelsifeq ($(USE_ARES),1)
1119bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels  CFLAGS += -DUSE_ARES -I$(ARES_ROOT)
1129bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckelsendif
1139bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels
1149bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckelsifeq ($(USE_IDNA),1)
1159bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels  CFLAGS += -DHAVE_LIBIDN -DHAVE_IDN_FREE_H -DHAVE_IDN_FREE -DHAVE_TLD_H \
1169bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels            -DHAVE_TLD_STRERROR -I$(LIBIDN_ROOT)/lib
1179bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckelsendif
1189bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels
1199bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckelsifeq ($(USE_DEBUG),1)
1209bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels  CFLAGS += -DDEBUG=1 -DDEBUGBUILD
1219bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckelsendif
1229bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels
1239bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckelsifeq ($(USE_CURLDEBUG),1)
1249bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels  CFLAGS += -DCURLDEBUG
1259bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckelsendif
1269bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels
1279bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels$(OBJ_DIR):
1289bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels	$(MKDIR) $(OBJ_DIR)
1299bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels
1309bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels$(OBJ_DIR)/%.o: %.c
1319bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels	$(CC) $(CFLAGS) -o $@ -c $<
1329bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels	@echo
1339bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels
1349bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckelsdepend: $(DEPEND_PREREQ) $(MAKEFILE)
1359bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels	$(CC) -MM $(CFLAGS) $(CSOURCES) | \
1369bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels	sed -e 's/^\([a-zA-Z0-9_-]*\.o:\)/$$(OBJ_DIR)\/\1/' > depend.dj
137