CFLAGS=-g -Wall -Wextra

all: square

square: square.o libsquare.a
	$(CC) $(CFLAGS) -o square square.o -L. -lsquare

libsquare.a: libsquare.a(square_int.o) \
	libsquare.a(square_float.o) libsquare.a(square_unsigned.o)
	ranlib libsquare.a

libsquare.a(square_int.o): square_int.o
	ar crU libsquare.a square_int.o

libsquare.a(square_float.o): square_float.o
	ar crU libsquare.a square_float.o

libsquare.a(square_unsigned.o): square_unsigned.o
	ar crU libsquare.a square_unsigned.o

square_int.o: square_int.h square_int.c

square_float.o: square_float.h square_float.c

square_unsigned.o: square_unsigned.h square_unsigned.c

square.o: square_float.h square.h square_int.h square_unsigned.h square.c

clean:
	rm -f *.o *.a square

