head     1.3;
branch   ;
access   ;
symbols  ;
locks    ; strict;
comment  @# @;


1.3
date     93.11.05.15.10.35;  author jesup;  state Exp;
branches ;
next     1.2;

1.2
date     93.10.08.17.46.43;  author jesup;  state Exp;
branches ;
next     1.1;

1.1
date     93.10.08.17.45.41;  author jesup;  state Exp;
branches ;
next     ;


desc
@@


1.3
log
@*** empty log message ***
@
text
@# Amiga Grand Wack
#
# $Id: smakefile,v 1.2 93/10/08 17:46:43 jesup Exp Locker: jesup $
#

VERSION = 40

CC = sc

# -. -b0 -cfist -v -ms -O -d $(MORECFLAGS)
CFLAGS =  NOVERSION DATA=FAR NMINC STRMERGE NOSTKCHK OPTSIZE OPTIMIZE DEBUG=L \
	  NOICONS IGNORE=182 $(MORECFLAGS)
LFLAGS = SMALLCODE SMALLDATA BATCH MAP wack.map X O H S F L plain NOICONS
LLIBS = lib:sc.lib lib:amiga.lib lib:debug.lib

# Object files are $(FIRSTO), $(OFILES), $(LASTO), split to ensure
# correct compile/link ordering.
# main.o has to be linked first, since that's where our main routine is.
# vers.o should be the last DEPENDENCY, since then the revision number
#        will only be bumped if all compilations/assemblies succeed

FIRSTO = main.o
LASTO = vers.o

MAINOFILES= symload.o decode.o nmprintf.o \
	link.o show.o special.o ops.o bind.o sat.o \
	define.o ishexnum.o parse.o \
	showd.o showg.o showi.o showlock.o find.o copper.o \
	envoylink.o io.o locallink.o validmem.o \
	simplerexx.o wackbase.o rexxhandler.o menus.o

SADOFILES = sadlink.o sadapi.o
SADPAROFILES = sadparlink.o sadparapi.o

OFILES = $(MAINOFILES) $(SADOFILES)
PAROFILES = $(MAINOFILES) $(SADPAROFILES)

# C source files are split so the copy command doesn't barf.
# $(CFILES) = $(CFILES1) $(CFILES2) $(CFILES3)

CFILES1= link.c bind.c copper.c decode.c define.c sadlink.c envoylink.c \
	find.c io.c locallink.c main.c menus.c parse.c

CFILES2= ops.c rexxhandler.c sat.c show.c showd.c showg.c \
	showi.c showlock.c simplerexx.c special.c symload.c

CFILES3= validmem.c wackbase.c sadapi.c

CFILES= $(CFILES1) $(CFILES2) $(CFILES3)

# C header files are split so the copy command doesn't barf.  I've
# placed the proto files separately from the normal headers.
# $(HFILES) = $(HFILES1) $(PROTOHFILES1) $(PROTOHFILES2) $(PROTOHFILES3) $(PROTOHFILES4)

PROTOHFILES1= link_proto.h asm_proto.h bind_proto.h copper_proto.h \
	decode_proto.h define_proto.h envoylink_proto.h find_proto.h

PROTOHFILES2= io_proto.h locallink_proto.h main_proto.h \
	menus_proto.h ops_proto.h rexxhandler_proto.h sat_proto.h parse_proto.h

PROTOHFILES3= showd_proto.h showg_proto.h showi_proto.h showlock_proto.h \
	show_proto.h special_proto.h symload_proto.h

PROTOHFILES4= sys_proto.h validmem_proto.h wackbase_proto.h sadlink_proto.h \
	sadapi_proto.h

HFILES1= sadlink.h envoylink.h simplerexx.h special.h std.h symbols.h validmem.h parse.h link.h wackbase.h

HFILES = $(HFILES1) $(PROTOHFILES1) $(PROTOHFILES2) $(PROTOHFILES3) $(PROTOHFILES4)

AFILES= nmprintf.asm ishexnum.asm vers.asm

# Here we specify miscellaenous and assorted files.
# $(MISCFILES) are public miscellaneous files.
# $(IMISCFILES) are private miscellaneous files.
# $(DEMOFILES) are public Wack examples.
# $(IDEMOFILES) are internal Wack examples.
# $(TOOLFILES) are public Wack support tools.

MISCFILES= startup.wack wack_protos.h wack_pragmas.h Wack.doc

IMISCFILES= wack_lib.sfd linklib_lib.sfd wack.map lmkfile smakefile tags

LDFILES= wack.ld.strip wack.ld

EXEFILES= Wack WackServer

DEMOFILES= demos/arexxdemo.wack demos/xwackdemo.c demos/xwackdemo \
	demos/StructureOffset.rexx demos/ShowMember.wack demos/ShowStructure.wack \
	demos/ShowLVO.wack

IDEMOFILES= demos/LoadSym.rexx demos/LoadSym.wack demos/CheckSym.wack \
	demos/isa.wack demos/Member.wack demos/StructureOffset.wack

TOOLFILES= tools/DoSAD.0L tools/DoSAD.0M tools/DoSAD.0R \
	tools/DoSAD.1L tools/DoSAD.1M tools/DoSAD.1R

.c.o:
	$(CC) $(CFLAGS) $*.c

.asm.o:
	@@echo "*NAssembling $*.asm"
	casm -a $*.asm $(AFLAGS) -o$*.o

all: Wack ParWack wack_protos.h

wack.lha: $(EXEFILES) $(MISCFILES) $(DEMOFILES) $(TOOLFILES)
	@@echo "" >wack.lha
	@@delete wack.lha quiet
	lha a -x wack.lha $(EXEFILES) $(MISCFILES)
	lha a -x wack.lha $(DEMOFILES)
	lha a -x wack.lha $(TOOLFILES)

version: wack_rev.rev

wack_rev.rev: $(CFILES) $(AFILES) $(HFILES)
	bumprev $(VERSION) wack_rev

sadparlink.o: sadlink.c
	$(CC) $(CFLAGS) DEFINE SAD_PARALLEL=1 OBJNAME=sadparlink.o sadlink.c

sadparapi.o: sadapi.c
	$(CC) $(CFLAGS) DEFINE SAD_PARALLEL=1 OBJNAME=sadparapi.o sadapi.c


parwack.ld:	wack_protos.h linklib_protos.h $(FIRSTO) $(PAROFILES) $(LASTO)
	slink <with <
FROM $(FIRSTO) $(PAROFILES) $(LASTO)
TO parwack.ld
$(LFLAGS)
lib $(LLIBS)
<

parwack.ld.strip: parwack.ld
	slink from parwack.ld to parwack.ld.strip nodebug
	@@echo "*N --> Built ParWack $(VERSION)." NOLINE
	@@type wack_rev.rev

ParWack: parwack.ld.strip
	@@copy parwack.ld.strip ParWack

wack.ld:	wack_protos.h linklib_protos.h $(FIRSTO) $(OFILES) $(LASTO)
	slink <with <
FROM $(FIRSTO) $(OFILES) $(LASTO)
TO wack.ld
$(LFLAGS)
lib $(LLIBS)
<

wack.ld.strip: wack.ld
	slink from wack.ld to wack.ld.strip nodebug
	@@echo "*N --> Built Wack $(VERSION)." NOLINE
	@@type wack_rev.rev

Wack: wack.ld.strip
	@@copy wack.ld.strip Wack

WackServer: server/wackserver.ld.strip
	@@copy server/wackserver.ld.strip WackServer

vers.o: vers.asm wack_rev.rev
	@@echo "*NAssembling $*.asm"
	casm -a $*.asm $(AFLAGS) -o$*.o

wack_protos.h: wack_lib.sfd
	sfd -h wack_lib.sfd
	copy PROTOS/wack_protos.h ""
	copy PRAGMAS/wack_pragmas.h ""

linklib_protos.h: linklib_lib.sfd
	sfd -h linklib_lib.sfd
	copy PROTOS/linklib_protos.h ""
	copy PRAGMAS/linklib_pragmas.h ""

clean:
	delete \#?.(o|ld|ld.strip|map)

internal: wack.lha
	copy $(CFILES1) V$(VERSION):aug/src/wack nopro
	copy $(CFILES2) V$(VERSION):aug/src/wack nopro
	copy $(CFILES3) V$(VERSION):aug/src/wack nopro
	copy $(AFILES) V$(VERSION):aug/src/wack nopro
	copy $(HFILES1) V$(VERSION):aug/src/wack nopro
	copy $(PROTOHFILES1) V$(VERSION):aug/src/wack nopro
	copy $(PROTOHFILES2) V$(VERSION):aug/src/wack nopro
	copy $(PROTOHFILES3) V$(VERSION):aug/src/wack nopro
	copy $(PROTOHFILES4) V$(VERSION):aug/src/wack nopro

	copy $(EXEFILES) V$(VERSION):aug/src/wack nopro
	copy ParWack V$(VERSION):aug/src/wack nopro
	copy $(LDFILES) V$(VERSION):aug/src/wack nopro
	copy $(MISCFILES) V$(VERSION):aug/src/wack nopro
	copy $(IMISCFILES) V$(VERSION):aug/src/wack nopro
	copy $(DEMOFILES) V$(VERSION):aug/src/wack/demos nopro
	copy $(IDEMOFILES) V$(VERSION):aug/src/wack/demos nopro
	copy $(TOOLFILES) V$(VERSION):aug/src/wack/tools nopro
	copy wack.lha V$(VERSION):aug/src/wack nopro

	copy $(EXEFILES) V$(VERSION):aug/bin/wack nopro
	copy ParWack V$(VERSION):aug/bin/wack nopro
	copy $(MISCFILES) V$(VERSION):aug/bin/wack nopro
	copy $(DEMOFILES) V$(VERSION):aug/bin/wack nopro
	copy $(IDEMOFILES) V$(VERSION):aug/bin/wack nopro
	copy $(TOOLFILES) V$(VERSION):aug/bin/wack nopro
	copy wack.lha V$(VERSION):aug/bin/wack nopro

	copy $(EXEFILES) softserve:Public/Wack nopro
	copy $(MISCFILES) softserve:Public/Wack nopro
	copy $(DEMOFILES) softserve:Public/Wack nopro
	copy $(TOOLFILES) softserve:Public/Wack nopro
	copy wack.lha softserve:Public/Wack nopro
@


1.2
log
@*** empty log message ***
@
text
@d3 1
a3 1
# $Id: smakefile,v 1.1 93/10/08 17:45:41 jesup Exp Locker: jesup $
d113 2
@


1.1
log
@Initial revision
@
text
@d3 1
a3 1
# $Id: $
d82 1
a82 1
IMISCFILES= wack_lib.sfd linklib_lib.sfd wack.map lmkfile tags
@
