############################################################################
# smakefile
#
# wpad.library, Copyright ©1995 Lee Kindness.
#
# Makefile for wpad.library
#
# Compiles and links wpad.library
# Extracts autodocs and copies to $(AD)
# Copies public headers to $(INC)
# Copies fd files to $(FD)
# Copies debug version of wpad.library to LIBS:
#

.c.o:
   SC $(OPTIMIZE) $(CFLAGS) $(DEBUG) DEFINE=CPU_$(CPU) CPU=$(CPU) GST=$(GST) OBJNAME=$*.o $*.c

.c.oo:
   SC $(OPTIMIZE) $(CFLAGS) $(DEBUG) DEFINE=CPU_$(CPU) CPU=ANY GST=$(GST) OBJNAME=$*.oo $*.c

.asm.o:
   ASM -D -DCPU_$(CPU) -u $*.asm



CFLAGS = STREQ STRMERGE NOSTKCHK IDLEN=65 NOVER MEMSIZE=HUGE UTILLIB \
         DEFINE=LIB_CODE

LFLAGS = DEFINE __CXM33=__UCXM33 DEFINE __CXD33=__UCXD33 \
         DEFINE __CXM22=__UCXM22 DEFINE __CXD22=__UCXD22 \
         SC ADDSYM SD NOICONS

ADFLAGS = -C -c -I

OPTIMIZE = OPTIMIZE NOOPTINLOCAL OPTSIZE

CPU = ANY

DEBUG = DEBUG=LINE

LIBS = LIB:amiga.lib LIB:sc.lib 

GST = INCLUDE:wpad.gst

INC = INCLUDE:

AD = AUTODOC:

FD = FD:

VERSION = 1

OBJS = wpad_romtag.o wpad_data.o wpad_lib.oo \
       WP_ClosePad.o WP_OpenPad.o WP_GetPadAttrs.o WP_SetPadAttrs.o \
       WP_PadCount.o WPP_Init.o WPP_Exit.o WPP_Entry.o WPP_Handler.o \
       WPP_HandleSetAttrs.o WPP_HandleGetAttrs.o WPP_AddHotKeys.o \
       WPP_FreeHotKeys.o WPP_OpenWindow.o WPP_CloseWindow.o WPP_GetSigMask.o \
       WPP_AllocPIHandles.o WPP_FreePIHandles.o

ADFILES = WP_ClosePad.c WP_OpenPad.c WP_GetPadAttrs.c WP_SetPadAttrs.c \
          WP_PadCount.c



all: $(GST) $(INC)clib/wpad_protos.h $(INC)pragmas/wpad_pragmas.h \
     $(INC)libraries/wpad.h $(INC)proto/wpad.h $(AD)wpad.doc \
     $(FD)wpad_lib.fd wpad.library

##############################################################################
#
# Compile, link and copy wpad.library
#

wpad.library: $(OBJS)
   SLINK WITH T:wpad.WITH <<!(T:wpad.WITH)
FROM $(OBJS)
TO $@.debug
LIB $(LIBS)
$(LFLAGS)
MAP T:$@.map,hsx WIDTH 160 FWIDTH 40 HWIDTH 40 PWIDTH 40 SWIDTH 40
   <
   SLINK FROM $@.debug TO $@ ND NOICONS
   Protect $@ -e
   Copy $@.debug LIBS:$@
   FlushLibs
   bumprev $(VERSION) wpad.library

wpad_romtag.o: wpad_romtag.asm

$(GST): wpad_preinclude.c wpad_global.h wpad_includes.h
   GST $@ unload
   SC NOOBJNAME MAKEGST=$@ wpad_preinclude.c
   GST $@

##############################################################################
#
# Update headers and copy.
# fd2pragma is NOT the SAS/C supplied one. It is by Jochen Wiedmann
# <wiedmann@mailserv.zdv.uni-tuebingen.de> and is on aminet as fd2pragma2_0.lha
#

$(INC)clib/wpad_protos.h: wpad_protos.h
   copy wpad_protos.h TO $@

$(INC)pragmas/wpad_pragmas.h: wpad_pragmas.h
   copy wpad_pragmas.h TO $@

wpad_pragmas.h: wpad_lib.fd
   fd2pragma wpad_lib.fd SAS $@ TAGDIR=stubs

$(INC)libraries/wpad.h: wpad.h
   copy wpad.h TO $@

$(INC)proto/wpad.h: proto_wpad.h
   copy proto_wpad.h TO $@

$(FD)wpad_lib.fd: wpad_lib.fd
   copy wpad_lib.fd TO $@

##############################################################################
#
# Compile the autodoc and copy.
#

$(AD)wpad.doc: wpad.doc
   copy wpad.doc TO $@

wpad.doc: $(ADFILES)
   AutoDoc >wpad.doc $(ADFLAGS) $(ADFILES)

##############################################################################
#
# Other targets
#

bumprev:
   bumprev $(VERSION) wpad.library

clean:
   delete \#?.o\#o

allclean:
   delete $(GST) \#?.o\#o T:$@.map 

maketest:
   sc test.c LINK GST=$(GST) $(DEBUG)


