emailler/apps/Makefile
Oliver Schmidt 29793d4814 Added (Apple II specific) wget65 program.
IP65 doesn't support TCP flow control. Therefore it doesn't make sense to write a program receiving a significant amount of data via TCP using IP65. From that perspective it makes sense that IP65's HTTP client doesn't allow to handle incoming data with a callback but requires a buffer being able to hold the whole HTTP body.

However, on the Apple II there's the Uthernet II card with its W5100 Ethernet controller chip. That chip has it's own TCP implementation supporting TCP flow control. Therefore the wget65 program uses the W5100 TCP capabilities for the HTTP client.

But even with the W5100 TCP implementation in place IP65 still plays a role for the wget65 program as it desires DHCP and requires (usually) DNS. Both are not supported by the W5100 capabilities.
2018-08-01 19:39:06 +02:00

137 lines
3.6 KiB
Makefile

# Build for Cirrus Logic CS8900A based devices:
# make eth=cl
# Build for Standard Microsystems LAN91C96 based devices:
# make eth=sm
# Build for WIZnet W5100 based devices:
# make eth=wn
ifeq ($(eth),cl)
C64DRIVERLIB = ../drivers/c64rrnet.lib
A2DRIVERLIB = ../drivers/a2uther.lib
else ifeq ($(eth),sm)
C64DRIVERLIB = ../drivers/c64eth64.lib
A2DRIVERLIB = ../drivers/a2lancegs.lib
else ifeq ($(eth),wn)
C64DRIVERLIB = ../drivers/c64wiz811.lib
A2DRIVERLIB = ../drivers/a2uther2.lib
else
C64DRIVERLIB = ../drivers/c64combo.lib
A2DRIVERLIB = ../drivers/a2combo.lib
endif
ATRDRIVERLIB = ../drivers/atrdragon.lib
C64_DRIVERLIB = ../drivers/ip65_c64.lib
A2_DRIVERLIB = ../drivers/ip65_apple2.lib
ATR_DRIVERLIB = ../drivers/ip65_atari.lib
UDP =\
date65
TCP =\
hfs65 \
telnet65
bin: wget65.bin
wget65.bin: w5100.c linenoise.c
wget65.bin: IP65LIB = ../ip65/ip65.lib
wget65.bin: A2_DRIVERLIB = ../drivers/ip65_apple2_uther2.lib
date65.bin hfs65.bin: CL65FLAGS = --start-addr 0x0C00 apple2enh-iobuf-0800.o
telnet65.com: ATARI_CFG = atrtelnet.cfg
all: $(UDP) $(TCP)
.PHONY: $(UDP) $(TCP)
$(addsuffix .prg,$(UDP)): IP65LIB = ../ip65/ip65.lib
$(addsuffix .prg,$(TCP)): IP65LIB = ../ip65/ip65_tcp.lib
$(addsuffix .bin,$(UDP)): IP65LIB = ../ip65/ip65.lib
$(addsuffix .bin,$(TCP)): IP65LIB = ../ip65/ip65_tcp.lib
$(addsuffix .com,$(UDP)): IP65LIB = ../ip65/ip65.lib
$(addsuffix .com,$(TCP)): IP65LIB = ../ip65/ip65_tcp.lib
$(foreach pgm,$(UDP) $(TCP),$(eval $(pgm): $(pgm).prg $(pgm).bin $(pgm).com))
prg: $(addsuffix .prg,$(UDP) $(TCP))
bin: $(addsuffix .bin,$(UDP) $(TCP))
com: $(addsuffix .com,$(UDP) $(TCP))
d64: ip65.d64
dsk: ip65.dsk
atr: ip65.atr
ip65:
make -C ../ip65
drivers:
make -C ../drivers
BUILDS = ip65 drivers
CC65 := $(shell cl65 --print-target-path)
ATARI_CFG = atari.cfg
%.s.o: %.s
ca65 -o $@ $<
%.o: %.c
%.prg: %.s.o $(BUILDS)
ld65 -o $*.prg -C c64.cfg -m $*.c64.map -vm $< $(IP65LIB) $(C64DRIVERLIB) c64.lib
%.bin: %.s.o $(BUILDS)
ld65 -o $*.bin -C apple2.cfg -m $*.a2.map -vm $< $(IP65LIB) $(A2DRIVERLIB) apple2.lib
%.com: %.s.o $(BUILDS)
ld65 -o $*.com -C $(ATARI_CFG) -m $*.atr.map -vm $< $(IP65LIB) $(ATRDRIVERLIB) atari.lib
%.prg: %.c $(BUILDS)
cl65 -o $*.prg -Or -t c64 $(CL65FLAGS) -m $*.c64.map -vm $(filter-out $(BUILDS),$^) $(IP65LIB) $(C64_DRIVERLIB)
%.bin: %.c $(BUILDS)
cl65 -o $*.bin -Or -t apple2enh $(CL65FLAGS) -m $*.a2.map -vm $(filter-out $(BUILDS),$^) $(IP65LIB) $(A2_DRIVERLIB)
%.com: %.c $(BUILDS)
cl65 -o $*.com -Or -t atari $(CL65FLAGS) -m $*.atr.map -vm $(filter-out $(BUILDS),$^) $(IP65LIB) $(ATR_DRIVERLIB)
ip65.d64: prg
$(C1541) -format ip65,00 d64 $@
$(C1541) -attach $@ -write date65.prg date65,p
$(C1541) -attach $@ -write hfs65.prg hfs65,p
$(C1541) -attach $@ -write telnet65.prg telnet65,p
ip65.dsk: bin
cp ../build/prodos.dsk $@
java -jar $(AC) -as $@ date65 < date65.bin
java -jar $(AC) -p $@ date65.system sys < $(CC65)/apple2enh/util/loader.system
java -jar $(AC) -as $@ hfs65 < hfs65.bin
java -jar $(AC) -p $@ hfs65.system sys < $(CC65)/apple2enh/util/loader.system
java -jar $(AC) -as $@ wget65 < wget65.bin
java -jar $(AC) -p $@ wget65.system sys < $(CC65)/apple2enh/util/loader.system
java -jar $(AC) -as $@ telnet65 < telnet65.bin
ip65.atr: com
mkdir atr
cp ../build/dos.sys atr/dos.sys
cp ../build/dup.sys atr/dup.sys
cp date65.com atr/date65.com
cp telnet65.com atr/telnet65.com
$(DIR2ATR) -b Dos25 1040 $@ atr
rm -r atr
clean:
make -C ../ip65 clean
make -C ../drivers clean
-rm -f *.o *.prg *.bin *.com *.map
-rm -f ip65.d64 ip65.dsk ip65.atr