# P-Code interpreter (to run the apple pascal system)
# Copyright (C) 2000 Mario Klebsch
#
# $Id: Makefile,v 1.11 2001/06/06 23:14:19 mario Exp $
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
#
#
# $Log: Makefile,v $
# Revision 1.11  2001/06/06 23:14:19  mario
# Turtlegraphics wird jetzt mit einem #define aktiviert
#
# Revision 1.10  2001/05/27 16:21:48  mario
# - Neue Kommandozeilenoption zum Tracen einer einzigen Prozedur
#
# - Auch beim Disassemblieren  von Segment 0 werden jetzt die
#   korrekten Prozedurnamen angezeigt.
#
# Revision 1.9  2001/05/26 16:51:55  mario
# Optimierung beim Compiler aktiviert.
#
# Revision 1.8  2001/05/26 15:13:29  mario
# Diverse kleine Fehler behoben, fehlende #includes, Labels ohne Statement
# dahinter, ...
#
# Revision 1.7  2001/05/23 21:32:57  mario
# kleinere Änderungen an den Regeln
#
# Revision 1.6  2001/05/23 21:16:41  mario
# Turtlegraphics wurde als eigener Prozess ausgelagert.
#
# Revision 1.5  2001/05/20 20:35:22  mario
# svolio ruft die Disk-I/O-Routinen jetzt direkt auf.
#
# Revision 1.4  2001/05/20 20:14:40  mario
# Neues Gerät PRINTER: implementiert
#
# Revision 1.3  2001/05/20 13:47:56  mario
# Alternative Quellen für das Image eingetragen
#
# Revision 1.2  2001/05/20 13:12:02  mario
# CVS-Idents und Logs eingefügt
#
#

PREFIX=/usr/local

SRCS=interpreter.c Memory.c Stack.c Sets.c Array.c native6502.c \
	UnitIo.c Term.c Diskio.c Printer.c Search.c turtlegr.c ptrace.c
OBJS=$(SRCS:%.c=%.o)

X11=/opt/X11

X11_INCLUDE=$(X11)/include
X11_LIB=$(X11)/lib

#DEFINES=-DAPPLE_1_3
DEFINES=-DTURTLEGRAPHICS

#IMAGES=ftp://ftp.apple.asimov.net/pub/apple_II/images/utility/programming/apple_pascal
#IMAGES=ftp://ftp.calvacom.fr/pub/apple_II/images/utility/programming/apple_pascal
IMAGES=ftp://ftp.mayn.de/pub/mirrors/apple.asimov.net/programming/apple_pascal

INCLUDES=-I$(X11_INCLUDE)
CFLAGS=-Wall -g $(INCLUDES) $(DEFINES) # -O3 # -Dinline= -pedantic

MAKEDEPEND=gccmakedep

BINS=ucsd svolio svolcvt xturtleserver
all: $(BINS)

install: all
	cp $(BINS) $(PREFIX)/bin/.
	cp ucsd.1 svolio.1 svolcvt.1 $(PREFIX)/man/man1/.

Bin2C: Bin2C.c
	$(CC) $(CFLAGS) -o $@ $<

svolcvt: svolcvt.c
	$(CC) $(CFLAGS) -o $@ $<

system.charset.h: system.charset Bin2C
	(echo '/* WARNING: this file is not GPLed, do not redistribute */';\
	./Bin2C system.charset )>system.charset.h

turtlegr.o: system.charset.h

xturtleserver: xturtleserver.c
	$(CC) -o $@ -g xturtleserver.c -I$(X11_INCLUDE) -L$(X11_LIB) -R$(X11_LIB) -lXt -lX11 -lm

ucsd: $(OBJS)
	$(CC) -o $@ $(OBJS) -lncurses_g -lm

svolio: svolio.o Diskio.o Memory.o
	$(CC) -o $@ $+ -lcurses

depend: 
	$(MAKEDEPEND) -DMAKEDEPEND $(INCLUDES) $(DEFINES) $(SRCS) svolio.c svolcvt.c xturtleserver.c

clean:
	-rm -f *.o system.charset.h *.tmp *~ TAGS tags *.bak ucsd.core

distclean: clean
	-rm -f $(BINS) Bin2C system.charset apple_pascal_*.dsk \
	work.svol system.svol
	touch tmp.c
	$(MAKEDEPEND) tmp.c
	-rm -f tmp.c

system.charset: apple_pascal_1.dsk svolio
	./svolio apple_pascal_1.dsk $@ > $@.tmp 
	mv $@.tmp $@

apple_pascal: apple_pascal_0.dsk apple_pascal_1.dsk \
	apple_pascal_2.dsk apple_pascal_3.dsk

apple_pascal_0.dsk:
	ncftpget $(IMAGES)/$@.gz
	gzip -d $@.gz

apple_pascal_1.dsk:
	ncftpget $(IMAGES)/$@.gz
	gzip -d $@.gz

apple_pascal_2.dsk:
	ncftpget $(IMAGES)/$@.gz
	gzip -d $@.gz

apple_pascal_3.dsk:
	ncftpget $(IMAGES)/$@.gz
	gzip -d $@.gz

work.svol system.svol: buildimages.sh ucsd apple_pascal_1.dsk \
	apple_pascal_2.dsk apple_pascal_3.dsk
	sh buildimages.sh

# DO NOT DELETE
tmp.o: tmp.c
