# Makefile for libRILc.
# Simple implementation of a standard C library (and a few other things).
# Copyright © 1993, 1997, 1998 Rask Ingemann Lambertsen.

# libRILc is freely distributable as described in the file DISTRIBUTION.

srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH  = @top_srcdir@

CC = @CC@
AR = @AR@

PPC_AFLAGS  = -Wa,-mregnames
M68K_AFLAGS =

ALL_CPPFLAGS = -I $(top_srcdir)/include -I $(top_srcdir)/internal -I $(top_srcdir) $(CPPFLAGS)

M68KFLAGS = -m68020-60 -g
PPCFLAGS  = -mcpu=604 -mmultiple -g

CFLAGS = -O3 -fomit-frame-pointer -Wall $(@CPU@FLAGS)
ALL_CFLAGS = $(CFLAGS) $(ALL_CPPFLAGS)

prefix = @prefix@
exec_prefix = @exec_prefix@

SETJMP_OBJ = setjmp-@CPU@.o

OBJS = time.o $(SETJMP_OBJ) rand48.o random.o atoi.o signal.o strtol.o \
       strtoul.o __strtod.o strtod.o clock.o getenv.o \
       system.o mktemp.o atexit.o qsort.o

all : $(OBJS)

clean :
	-Delete $(OBJS) QUIET

.PHONY : all clean

time.o : stdlib/time.c include/time.h internal/systemcalls.h
	$(CC) $(ALL_CFLAGS) -c $< -o $@

setjmp-PPC.o : stdlib/setjmp-PPC.s
	$(CC) $(ALL_CFLAGS) $(PPC_AFLAGS) -c $< -o $@

setjmp-M68K.o : stdlib/setjmp-M68K.s
	$(CC) $(ALL_CFLAGS) $(M68K_AFLAGS) -c $< -o $@

rand48.o : stdlib/rand48.c include/float.h
	$(CC) $(ALL_CFLAGS) -c $< -o $@

random.o : stdlib/random.c include/stdlib.h
	$(CC) $(ALL_CFLAGS) -c $< -o $@

atoi.o : stdlib/atoi.c include/stdlib.h internal/systemcalls.h
	$(CC) $(ALL_CFLAGS) -c $< -o $@

signal.o : stdlib/signal.c include/signal.h include/stdio.h include/stdlib.h include/errno.h include/sys/types.h internal/globals.h internal/systemcalls.h internal/signalcheck.h
	$(CC) $(ALL_CFLAGS) -c $< -o $@

strtol.o : stdlib/strtol.c include/stdio.h include/ctype.h include/errno.h include/stdlib.h internal/globals.h
	$(CC) $(ALL_CFLAGS) -c $< -o $@

strtoul.o : stdlib/strtoul.c include/stdio.h include/ctype.h include/errno.h include/stdlib.h internal/globals.h
	$(CC) $(ALL_CFLAGS) -c $< -o $@

__strtod.o : stdlib/__strtod.c include/stdlib.h include/string.h include/float.h include/errno.h include/math.h
	$(CC) $(ALL_CFLAGS) -c $< -o $@ -DMALLOC=__strtod_malloc -Dstrtod=__strtod "-D_G_uint32_t=unsigned long" "-D_G_int32_t=signed long" -DIEEE_BIG_ENDIAN -D_IO_USE_DTOA

strtod.o : stdlib/strtod.c include/stdlib.h include/sys/types.h internal/systemcalls.h
	$(CC) $(ALL_CFLAGS) -c $< -o $@

clock.o : stdlib/clock.c include/time.h include/sys/time.h
	$(CC) $(ALL_CFLAGS) -c $< -o $@

getenv.o : stdlib/getenv.c include/stdlib.h include/string.h include/errno.h internal/globals.h internal/systemcalls.h
	$(CC) $(ALL_CFLAGS) -c $< -o $@

system.o : stdlib/system.c include/stdlib.h include/errno.h include/stdio.h internal/systemcalls.h internal/globals.h
	$(CC) $(ALL_CFLAGS) -c $< -o $@

mktemp.o : stdlib/mktemp.c include/stdio.h include/string.h include/unistd.h
	$(CC) $(ALL_CFLAGS) -c $< -o $@

atexit.o : stdlib/atexit.c include/stdlib.h internal/resourcetracking.h internal/systemcalls.h internal/globals.h
	$(CC) $(ALL_CFLAGS) -c $< -o $@

qsort.o : stdlib/qsort.c include/stdlib.h
	$(CC) $(ALL_CFLAGS) -c $< -o $@

