# Makefile for a small GCC Lib
# Jrg Hhle, 29-Nov-92

CC=gcc
LD=gcc

.s:

.SUFFIXES: .s

LIBSHORTNAME=clisp
LIBREALNAME=lib$(LIBSHORTNAME).a
LIBNAME=$(LIBDIR)/$(LIBREALNAME)

LIBFILESC=CreatePort.o strlen.o
LIBFILESA=setjmp.o
LIBFILES=$(LIBFILESC) $(LIBFILESA)

# NB: gcc doesn't allow an appended slash
LIBDIR=Ben:p/gccsmalllib/lib
INCDIR=Ben:p/gccsmalllib/include
INCPATH=-IAB:usr/include/Amiga20 -I$(INCDIR)

# Add your flags here:
FLAGS=-v -Q -DFOR_CLISP -DAMIGA_REALLY
CFLAGS=-O -nostdinc $(INCPATH) -W -Wimplicit -Wreturn-type $(FLAGS)

# Don't forget to set your stack high enough (150000 recommended here)!
GCCSTACK=120000
LDSTACK=100000
ARSTACK=50000

TESTFILES=test.o
TESTSRCFILES=$(subst .o,.c,$(TESTFILES))

all: $(LIBFILES)

.PHONY: all

$(LIBFILES):

$(LIBFILESA): $*.s
	stack $(GCCSTACK)
	$(CC) $(CFLAGS) -c $*.s

$(LIBFILESC) $(TESTFILES): $*.c
	stack $(GCCSTACK)
	$(CC) $(CFLAGS) -c $*.c

# let's have a look at assembly code
$(subst .o,.s,$(LIBFILESC) $(TESTFILES)): $*.c
	stack $(GCCSTACK)
	$(CC) $(CFLAGS) -S $*.c

test: $(TESTFILES) setjmp.o
	stack $(LDSTACK)
	$(LD) -nostdlib -L$(LIBDIR) -o $@ $(LIBDIR)/crt0.o $(TESTFILES) setjmp.o -l$(LIBSHORTNAME)

clean:
	delete $(LIBFILES) $(TESTFILES)

install:
	stack $(ARSTACK)
	ar -rv $(LIBNAME) $(LIBFILES)

.PHONY: clean install
