OBJECTS = bt.o bt_test.o

CC = gcc
AR = ar rcu
RANLIB = ranlib

bt_test = bt_test
bt = libbt.so
bt_a = libbt.a

all: $(bt) $(bt_test)

CPPFLAGS= -I.
CFLAGS = -g -O2 -Wall -Wextra
LDFLAGS = -L.

%.o : %.c
	@echo "  Compilation of $(@D)/$(<F)"
	@$(CC) -c $(CPPFLAGS) $(CFLAGS) $< -o $@

$(bt): $(OBJECTS)
	@echo "  Linking  $(@F)"
	@$(CC) -shared -o $(bt) $(OBJECTS) $(LDFLAGS)

$(bt_a): $(OBJECTS) $(bt)
	@echo "  Linking  $(@F)"
	@$(AR) $@ $?
	@$(RANLIB) $@

# La rgle explicite d'dition de liens
$(bt_test): $(OBJECTS) $(bt_a)
	@echo "  Linking  $(@F)"
	@$(CC) -o $(bt_test) bt_test.o $(LDFLAGS) -lbt


clean:
	@rm -f *.o $(bt_test) $(bt) $(bt_a) bt.tar.bz2

test:
	LD_LIBRARY_PATH=. ./bt_test

dist:
	@rm -rf bt_src/ bt.tar.bz2
	@mkdir bt_src
	@cp Makefile *.c *.h bt_src/
	@tar cf bt.tar bt_src/ && bzip2 -9 bt.tar
	@rm -rf bt_src/
