##
## Makefile for libvc.a and libm.a (PowerPC, AmigaOS, SVR4-ABI)
##
## Please delete the archives in the current directory,
##  before executing 'make' !
##
## V1.0 23.11.97 phx
##	-DMATH is required for libvc.a to provide a float-version of
##	vfprintf(). gnu-ld ignores the vfprintf() in libm.a.
##	This will change with a new linker...
##

## C Compiler
CC = vbcc://bin/vc +ppc
COPTSC = -c -o $@ -IPPC-CDROM:PPCRelease/PPC-Dev/include -I/libsrc -DMATH
COPTSM = -c -o $@ -IPPC-CDROM:PPCRelease/PPC-Dev/include -I/libsrc

## PowerPC Assembler
AS = vbccppc:bin/pasm
ASOPTSC = -O1 -o $@
ASOPTSM = -O1 -o $@

## Library Archive Tool
AR = vbccppc:bin/ppc-amigaos-ar
AROPTS = q

## Miscellaneous Commands
RM = delete quiet
ECHO = echo
CP = copy


## libvc.a objects

MAIN = _chkabort.o _errno.o _errors.o _main.o

CTYPE = ctype/isalnum.o ctype/isalpha.o ctype/iscntrl.o ctype/isdigit.o \
	ctype/isgraph.o ctype/islower.o ctype/isprint.o ctype/ispunct.o \
	ctype/isspace.o ctype/isupper.o ctype/isxdigit.o ctype/tolower.o \
	ctype/toupper.o ctype/_ctype_.o

LOCALE = locale/localeconv.o locale/setlocale.o

SETJMP = setjmp/longjmp.o setjmp/setjmp.o

SIGNAL = signal/raise.o signal/signal.o

STDIO = stdio/clearerr.o stdio/fclose.o stdio/feof.o stdio/ferror.o \
	stdio/fflush.o stdio/fgetc.o stdio/fgetpos.o stdio/fgets.o \
	stdio/fopen.o stdio/fprintf.o stdio/fputc.o stdio/fputs.o \
	stdio/fread.o stdio/freopen.o stdio/fscanf.o stdio/fseek.o \
	stdio/fsetpos.o stdio/ftell.o stdio/fwrite.o stdio/getchar.o \
	stdio/gets.o stdio/perror.o stdio/printf.o stdio/putchar.o \
	stdio/puts.o stdio/remove.o stdio/rename.o stdio/rewind.o \
	stdio/scanf.o stdio/setbuf.o stdio/setvbuf.o stdio/sprintf.o \
	stdio/sscanf.o stdio/tmpfile.o stdio/tmpnam.o stdio/ungetc.o \
	stdio/vfprintf.o stdio/vfscanf.o stdio/vprintf.o stdio/vscanf.o \
	stdio/vsprintf.o stdio/vsscanf.o stdio/_fillbuf.o stdio/_flushbuf.o \
	stdio/_putbuf.o stdio/__v0fprintf.o stdio/__v0printf.o \
	stdio/__v0sprintf.o stdio/__v2fprintf.o stdio/__v2printf.o \
	stdio/__v2sprintf.o stdio/__v2vfprintf.o stdio/__v2fscanf.o \
	stdio/__v2scanf.o stdio/__v2sscanf.o stdio/__v2vfscanf.o

STDLIB = stdlib/abort.o stdlib/abs.o stdlib/atexit.o stdlib/atoi.o \
	 stdlib/atol.o stdlib/bsearch.o stdlib/calloc.o stdlib/div.o \
	 stdlib/getenv.o stdlib/labs.o stdlib/ldiv.o stdlib/malloc.o \
	 stdlib/qsort.o stdlib/rand.o stdlib/strtol.o stdlib/strtoul.o \
	 stdlib/system.o

STRING = string/memchr.o string/memcmp.o string/memcpy.o string/memmove.o \
	 string/memset.o string/strcat.o string/strchr.o string/strcmp.o \
	 string/strcpy.o string/strcspn.o string/strerror.o string/strlen.o \
	 string/strncat.o string/strncmp.o string/strncpy.o string/strpbrk.o \
	 string/strrchr.o string/strspn.o string/strstr.o string/strtok.o

TIME = time/asctime.o time/clock.o time/gmtime.o time/localtime.o \
       time/mktime.o time/strftime.o time/time.o time/__gmtoffset.o


# libm.a objects

MATH = math/isinf.o math/isnan.o math/strtod.o math/atof.o \
       math/difftime.o math/fmod.o math/asin.o math/acos.o \
       math/sinh.o math/cosh.o math/tanh.o math/tan.o math/fabs.o \
       math/modf.o math/ldexp.o math/frexp.o math/floor.o math/ceil.o \

LIBMOTO = math/libmoto/trig.emb.o math/libmoto/sqrt.emb.o \
	  math/libmoto/pow.emb.o math/libmoto/atan.emb.o


# Dependencies

all: libvc.a libm.a


libvc.a: $(MAIN) $(CTYPE) $(LOCALE) $(SETJMP) $(SIGNAL) $(STDIO) \
	 $(STDLIB) $(STRING) $(TIME)
	$(AR) $(AROPTS) libvc.a $(MAIN)
	$(AR) $(AROPTS) libvc.a $(CTYPE)
	$(AR) $(AROPTS) libvc.a $(LOCALE)
	$(AR) $(AROPTS) libvc.a $(SETJMP)
	$(AR) $(AROPTS) libvc.a $(SIGNAL)
	$(AR) $(AROPTS) libvc.a $(STDIO)
	$(AR) $(AROPTS) libvc.a $(STDLIB)
	$(AR) $(AROPTS) libvc.a $(STRING)
	$(AR) $(AROPTS) libvc.a $(TIME)
	$(CP) libvc.a /lib/
	$(RM) libvc.a


libm.a: $(MATH) $(LIBMOTO)
	$(AR) $(AROPTS) libm.a $(LIBMOTO)
	$(AR) $(AROPTS) libm.a $(MATH)
	$(CP) libm.a /lib/
	$(RM) libm.a


_chkabort.o: _chkabort.c
	$(CC) $(COPTSC) _chkabort.c
_errno.o: _errno.c
	$(CC) $(COPTSC) _errno.c
_errors.o: _errors.c
	$(CC) $(COPTSC) _errors.c
_main.o: _main.c
	$(CC) $(COPTSC) _main.c

ctype/isalnum.o: ctype/isalnum.c
	$(CC) $(COPTSC) ctype/isalnum.c
ctype/isalpha.o: ctype/isalpha.c
	$(CC) $(COPTSC) ctype/isalpha.c
ctype/iscntrl.o: ctype/iscntrl.c
	$(CC) $(COPTSC) ctype/iscntrl.c
ctype/isdigit.o: ctype/isdigit.c
	$(CC) $(COPTSC) ctype/isdigit.c
ctype/isgraph.o: ctype/isgraph.c
	$(CC) $(COPTSC) ctype/isgraph.c
ctype/islower.o: ctype/islower.c
	$(CC) $(COPTSC) ctype/islower.c
ctype/isprint.o: ctype/isprint.c
	$(CC) $(COPTSC) ctype/isprint.c
ctype/ispunct.o: ctype/ispunct.c
	$(CC) $(COPTSC) ctype/ispunct.c
ctype/isspace.o: ctype/isspace.c
	$(CC) $(COPTSC) ctype/isspace.c
ctype/isupper.o: ctype/isupper.c
	$(CC) $(COPTSC) ctype/isupper.c
ctype/isxdigit.o: ctype/isxdigit.c
	$(CC) $(COPTSC) ctype/isxdigit.c
ctype/tolower.o: ctype/tolower.s
	$(AS) $(ASOPTSC) ctype/tolower.s
ctype/toupper.o: ctype/toupper.s
	$(AS) $(ASOPTSC) ctype/toupper.s
ctype/_ctype_.o: ctype/_ctype_.c
	$(CC) $(COPTSC) ctype/_ctype_.c

locale/localeconv.o: locale/localeconv.c
	$(CC) $(COPTSC) locale/localeconv.c
locale/setlocale.o: locale/setlocale.c
	$(CC) $(COPTSC) locale/setlocale.c

setjmp/longjmp.o: setjmp/longjmp.s
	$(AS) $(ASOPTSC) setjmp/longjmp.s
setjmp/setjmp.o: setjmp/setjmp.s
	$(AS) $(ASOPTSC) setjmp/setjmp.s

signal/raise.o: signal/raise.c
	$(CC) $(COPTSC) signal/raise.c
signal/signal.o: signal/signal.c
	$(CC) $(COPTSC) signal/signal.c

stdio/clearerr.o: stdio/clearerr.c
	$(CC) $(COPTSC) stdio/clearerr.c
stdio/fclose.o: stdio/fclose.c
	$(CC) $(COPTSC) stdio/fclose.c
stdio/feof.o: stdio/feof.c
	$(CC) $(COPTSC) stdio/feof.c
stdio/ferror.o: stdio/ferror.c
	$(CC) $(COPTSC) stdio/ferror.c
stdio/fflush.o: stdio/fflush.c
	$(CC) $(COPTSC) stdio/fflush.c
stdio/fgetc.o: stdio/fgetc.c
	$(CC) $(COPTSC) stdio/fgetc.c
stdio/fgetpos.o: stdio/fgetpos.c
	$(CC) $(COPTSC) stdio/fgetpos.c
stdio/fgets.o: stdio/fgets.c
	$(CC) $(COPTSC) stdio/fgets.c
stdio/fopen.o: stdio/fopen.c
	$(CC) $(COPTSC) stdio/fopen.c
stdio/fprintf.o: stdio/fprintf.c
	$(CC) $(COPTSC) stdio/fprintf.c
stdio/fputc.o: stdio/fputc.c
	$(CC) $(COPTSC) stdio/fputc.c
stdio/fputs.o: stdio/fputs.c
	$(CC) $(COPTSC) stdio/fputs.c
stdio/fread.o: stdio/fread.c
	$(CC) $(COPTSC) stdio/fread.c
stdio/freopen.o: stdio/freopen.c
	$(CC) $(COPTSC) stdio/freopen.c
stdio/fscanf.o: stdio/fscanf.c
	$(CC) $(COPTSC) stdio/fscanf.c
stdio/fseek.o: stdio/fseek.c
	$(CC) $(COPTSC) stdio/fseek.c
stdio/fsetpos.o: stdio/fsetpos.c
	$(CC) $(COPTSC) stdio/fsetpos.c
stdio/ftell.o: stdio/ftell.c
	$(CC) $(COPTSC) stdio/ftell.c
stdio/fwrite.o: stdio/fwrite.c
	$(CC) $(COPTSC) stdio/fwrite.c
stdio/getchar.o: stdio/getchar.c
	$(CC) $(COPTSC) stdio/getchar.c
stdio/gets.o: stdio/gets.c
	$(CC) $(COPTSC) stdio/gets.c
stdio/perror.o: stdio/perror.c
	$(CC) $(COPTSC) stdio/perror.c
stdio/printf.o: stdio/printf.c
	$(CC) $(COPTSC) stdio/printf.c
stdio/putchar.o: stdio/putchar.c
	$(CC) $(COPTSC) stdio/putchar.c
stdio/puts.o: stdio/puts.c
	$(CC) $(COPTSC) stdio/puts.c
stdio/remove.o: stdio/remove.c
	$(CC) $(COPTSC) stdio/remove.c
stdio/rename.o: stdio/rename.c
	$(CC) $(COPTSC) stdio/rename.c
stdio/rewind.o: stdio/rewind.c
	$(CC) $(COPTSC) stdio/rewind.c
stdio/scanf.o: stdio/scanf.c
	$(CC) $(COPTSC) stdio/scanf.c
stdio/setbuf.o: stdio/setbuf.c
	$(CC) $(COPTSC) stdio/setbuf.c
stdio/setvbuf.o: stdio/setvbuf.c
	$(CC) $(COPTSC) stdio/setvbuf.c
stdio/sprintf.o: stdio/sprintf.c
	$(CC) $(COPTSC) stdio/sprintf.c
stdio/sscanf.o: stdio/sscanf.c
	$(CC) $(COPTSC) stdio/sscanf.c
stdio/tmpfile.o: stdio/tmpfile.c
	$(CC) $(COPTSC) stdio/tmpfile.c
stdio/tmpnam.o: stdio/tmpnam.c
	$(CC) $(COPTSC) stdio/tmpnam.c
stdio/ungetc.o: stdio/ungetc.c
	$(CC) $(COPTSC) stdio/ungetc.c
stdio/vfprintf.o: stdio/vfprintf.c
	$(CC) $(COPTSC) stdio/vfprintf.c
stdio/vfscanf.o: stdio/vfscanf.c
	$(CC) $(COPTSC) stdio/vfscanf.c
stdio/vprintf.o: stdio/vprintf.c
	$(CC) $(COPTSC) stdio/vprintf.c
stdio/vscanf.o: stdio/vscanf.c
	$(CC) $(COPTSC) stdio/vscanf.c
stdio/vsprintf.o: stdio/vsprintf.c
	$(CC) $(COPTSC) stdio/vsprintf.c
stdio/vsscanf.o: stdio/vsscanf.c
	$(CC) $(COPTSC) stdio/vsscanf.c
stdio/_fillbuf.o: stdio/_fillbuf.c
	$(CC) $(COPTSC) stdio/_fillbuf.c
stdio/_flushbuf.o: stdio/_flushbuf.c
	$(CC) $(COPTSC) stdio/_flushbuf.c
stdio/_putbuf.o: stdio/_putbuf.c
	$(CC) $(COPTSC) stdio/_putbuf.c
stdio/__v0fprintf.o: stdio/__v0fprintf.c
	$(CC) $(COPTSC) stdio/__v0fprintf.c
stdio/__v0printf.o: stdio/__v0printf.c
	$(CC) $(COPTSC) stdio/__v0printf.c
stdio/__v0sprintf.o: stdio/__v0sprintf.c
	$(CC) $(COPTSC) stdio/__v0sprintf.c
stdio/__v2fprintf.o: stdio/__v2fprintf.c
	$(CC) $(COPTSC) stdio/__v2fprintf.c
stdio/__v2printf.o: stdio/__v2printf.c
	$(CC) $(COPTSC) stdio/__v2printf.c
stdio/__v2sprintf.o: stdio/__v2sprintf.c
	$(CC) $(COPTSC) stdio/__v2sprintf.c
stdio/__v2fscanf.o: stdio/__v2fscanf.c
	$(CC) $(COPTSC) stdio/__v2fscanf.c
stdio/__v2scanf.o: stdio/__v2scanf.c
	$(CC) $(COPTSC) stdio/__v2scanf.c
stdio/__v2sscanf.o: stdio/__v2sscanf.c
	$(CC) $(COPTSC) stdio/__v2sscanf.c
stdio/__v2vfprintf.o: stdio/__v2vfprintf.c stdio/vfprintf.c
	$(CC) $(COPTSC) stdio/__v2vfprintf.c
stdio/__v2vfscanf.o: stdio/__v2vfscanf.c stdio/vfscanf.c
	$(CC) $(COPTSC) stdio/__v2vfscanf.c



stdlib/abort.o: stdlib/abort.c
	$(CC) $(COPTSC) stdlib/abort.c
stdlib/abs.o: stdlib/abs.c
	$(CC) $(COPTSC) stdlib/abs.c
stdlib/atexit.o: stdlib/atexit.c
	$(CC) $(COPTSC) stdlib/atexit.c
stdlib/atoi.o: stdlib/atoi.c
	$(CC) $(COPTSC) stdlib/atoi.c
stdlib/atol.o: stdlib/atol.c
	$(CC) $(COPTSC) stdlib/atol.c
stdlib/bsearch.o: stdlib/bsearch.c
	$(CC) $(COPTSC) stdlib/bsearch.c
stdlib/calloc.o: stdlib/calloc.c
	$(CC) $(COPTSC) stdlib/calloc.c
stdlib/div.o: stdlib/div.c
	$(CC) $(COPTSC) stdlib/div.c
stdlib/getenv.o: stdlib/getenv.c
	$(CC) $(COPTSC) stdlib/getenv.c
stdlib/labs.o: stdlib/labs.c
	$(CC) $(COPTSC) stdlib/labs.c
stdlib/ldiv.o: stdlib/ldiv.c
	$(CC) $(COPTSC) stdlib/ldiv.c
stdlib/malloc.o: stdlib/malloc.c
	$(CC) $(COPTSC) stdlib/malloc.c
stdlib/qsort.o: stdlib/qsort.c
	$(CC) $(COPTSC) stdlib/qsort.c
stdlib/rand.o: stdlib/rand.c
	$(CC) $(COPTSC) stdlib/rand.c
stdlib/strtol.o: stdlib/strtol.c
	$(CC) $(COPTSC) stdlib/strtol.c
stdlib/strtoul.o: stdlib/strtoul.c
	$(CC) $(COPTSC) stdlib/strtoul.c
stdlib/system.o: stdlib/system.c
	$(CC) $(COPTSC) stdlib/system.c

string/memchr.o: string/memchr.c
	$(CC) $(COPTSC) string/memchr.c
string/memcmp.o: string/memcmp.c
	$(CC) $(COPTSC) string/memcmp.c
string/memcpy.o: string/memcpy.s
	$(AS) $(ASOPTSC) string/memcpy.s
string/memmove.o: string/memmove.s
	$(AS) $(ASOPTSC) string/memmove.s
string/memset.o: string/memset.s
	$(AS) $(ASOPTSC) string/memset.s
string/strcat.o: string/strcat.c
	$(CC) $(COPTSC) string/strcat.c
string/strchr.o: string/strchr.c
	$(CC) $(COPTSC) string/strchr.c
string/strcmp.o: string/strcmp.c
	$(CC) $(COPTSC) string/strcmp.c
string/strcpy.o: string/strcpy.s
	$(AS) $(ASOPTSC) string/strcpy.s
string/strcspn.o: string/strcspn.c
	$(CC) $(COPTSC) string/strcspn.c
string/strerror.o: string/strerror.c
	$(CC) $(COPTSC) string/strerror.c
string/strlen.o: string/strlen.s
	$(AS) $(ASOPTSC) string/strlen.s
string/strncat.o: string/strncat.c
	$(CC) $(COPTSC) string/strncat.c
string/strncmp.o: string/strncmp.c
	$(CC) $(COPTSC) string/strncmp.c
string/strncpy.o: string/strncpy.c
	$(CC) $(COPTSC) string/strncpy.c
string/strpbrk.o: string/strpbrk.c
	$(CC) $(COPTSC) string/strpbrk.c
string/strrchr.o: string/strrchr.c
	$(CC) $(COPTSC) string/strrchr.c
string/strspn.o: string/strspn.c
	$(CC) $(COPTSC) string/strspn.c
string/strstr.o: string/strstr.c
	$(CC) $(COPTSC) string/strstr.c
string/strtok.o: string/strtok.c
	$(CC) $(COPTSC) string/strtok.c

time/asctime.o: time/asctime.c
	$(CC) $(COPTSC) time/asctime.c
time/clock.o: time/clock.c
	$(CC) $(COPTSC) time/clock.c
time/gmtime.o: time/gmtime.c
	$(CC) $(COPTSC) time/gmtime.c
time/localtime.o: time/localtime.c
	$(CC) $(COPTSC) time/localtime.c
time/mktime.o: time/mktime.c
	$(CC) $(COPTSC) time/mktime.c
time/strftime.o: time/strftime.c
	$(CC) $(COPTSC) time/strftime.c
time/time.o: time/time.c
	$(CC) $(COPTSC) time/time.c
time/__gmtoffset.o: time/__gmtoffset.c
	$(CC) $(COPTSC) time/__gmtoffset.c

math/isinf.o: math/isinf.c
	$(CC) $(COPTSM) math/isinf.c
math/isnan.o: math/isnan.c
	$(CC) $(COPTSM) math/isnan.c
math/strtod.o: math/strtod.c
	$(CC) $(COPTSM) math/strtod.c
math/atof.o: math/atof.c
	$(CC) $(COPTSM) math/atof.c
math/vfprintf.o: math/vfprintf.c
	$(CC) $(COPTSM) math/vfprintf.c
math/vfscanf.o: math/vfscanf.c
	$(CC) $(COPTSM) math/vfscanf.c
math/difftime.o: math/difftime.c
	$(CC) $(COPTSM) math/difftime.c
math/fmod.o: math/fmod.c
	$(CC) $(COPTSM) math/fmod.c
math/asin.o: math/asin.c
	$(CC) $(COPTSM) math/asin.c
math/acos.o: math/acos.c
	$(CC) $(COPTSM) math/acos.c
math/sinh.o: math/sinh.c
	$(CC) $(COPTSM) math/sinh.c
math/cosh.o: math/cosh.c
	$(CC) $(COPTSM) math/cosh.c
math/tanh.o: math/tanh.c
	$(CC) $(COPTSM) math/tanh.c
math/tan.o: math/tan.c
	$(CC) $(COPTSM) math/tan.c
math/fabs.o: math/fabs.s
	$(AS) $(ASOPTSM) math/fabs.s
math/modf.o: math/modf.c
	$(CC) $(COPTSM) math/modf.c
math/ldexp.o: math/ldexp.c
	$(CC) $(COPTSM) math/ldexp.c
math/frexp.o: math/frexp.c
	$(CC) $(COPTSM) math/frexp.c
math/floor.o: math/floor.c
	$(CC) $(COPTSM) math/floor.c
math/ceil.o: math/ceil.c
	$(CC) $(COPTSM) math/ceil.c
