# makefile for gnu make

# that's how gcc is called on my system
CC=gcc-driver

# set YOURFLAGS according to your machine
MYFLAGS=#-mc68020 -m68881

# set a gcc switch
DEFS=-D__GCC__

# optimise and warn
CFLAGS=$(DEFS) $(MYFLAGS) -O -Wall

LIB=lib/libreqtools.a

.c.o:
	$(CC) $(CFLAGS) -c $< -o $@

all: $(LIB) demo1 demo2 demo3 demo4

$(LIB): reqtoolsstub.o reqtoolsglue.o
	ar -r $(LIB) reqtoolsstub.o reqtoolsglue.o
	ranlib $(LIB)

# in real situation when libreqtools.a is in gcc:lib directory
# one simply writes -lreqtools

# without inline
demo1: demo1.o $(LIB)
	$(CC) $(CFLAGS) demo1.o -lamy $(LIB)
	C:stripa FROM a.out TO $@
	C:delete a.out

# with inline stubs
demo2: demo2.o reqtoolsstub.o
	$(CC) $(CFLAGS) demo2.o reqtoolsstub.o -lamy
	C:stripa FROM a.out TO $@
	C:delete a.out

demo1.o: demo.c
	$(CC) $(CFLAGS) -c $< -o $@

demo2.o: demo.c
	$(CC) $(CFLAGS) -DDEMO_INLINE -c $< -o $@

# without inline + hooks
demo3: demo3.o $(LIB)
	$(CC) $(CFLAGS) demo3.o -lamy $(LIB)
	C:stripa FROM a.out TO $@
	C:delete a.out

# with inline stubs + hooks
demo4: demo4.o reqtoolsstub.o
	$(CC) $(CFLAGS) demo4.o reqtoolsstub.o -lamy
	C:stripa FROM a.out TO $@
	C:delete a.out

demo3.o: demo.c
	$(CC) $(CFLAGS) -c -DDOHOOKS $< -o $@

demo4.o: demo.c
	$(CC) $(CFLAGS) -DDEMO_INLINE -DDOHOOKS -c $< -o $@
