PREFIX= $(HOME)/local
PROJECT= sdlkit

CC= gcc
LD= gcc 

CFLAGS= -Wall -pipe -fPIC
LDFLAGS= -lm -lGL 

# configuration pour glew
GLEW_CFLAGS= 
GLEW_LDFLAGS= -lGLEW
CFLAGS+= $(GLEW_CFLAGS)
LDFLAGS+= $(GLEW_LDFLAGS)

# configuration pour sdl
SDL_CFLAGS= `sdl-config --cflags`
SDL_LDFLAGS= `sdl-config --libs`
CFLAGS+= $(SDL_CFLAGS)
LDFLAGS+= $(SDL_LDFLAGS)

SO= libsdlkit.so libglsl.so
DEP= sdlkit.d glsl2.d

.PHONY: lib
lib: $(SO)

libsdlkit.so: sdlkit.o
	@echo ... build $(BUILD)
	$(LD) -shared $(LDFLAGS) -o $@ $+

libglsl.so: glsl2.o
	@echo ... build $(BUILD)
	$(LD) -shared $(LDFLAGS) -o $@ $+

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

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

.PHONY: clean
clean: rebuild
	rm -f *.o *.d

.PHONY: tarball
tarball:
	# archive les exemples
	make tarball -C tests
	@-rm -f sdlkit_tests_latest.tar.gz
	@ln -s tests/sdlkit_tests_latest.tar.gz sdlkit_tests_latest.tar.gz
	# archive la librairie
	@echo $(PROJECT)_b$(BUILD).tar.gz
	tar --ignore-failed-read --dereference -zcf $(PROJECT)_b$(BUILD).tar.gz Makefile *.c *.h $(DATA) sdlkit_tests_latest.tar.gz build
	@-rm -f $(PROJECT)_latest.tar.gz
	@ln -s $(PROJECT)_b$(BUILD).tar.gz $(PROJECT)_latest.tar.gz

.PHONY: install
install: $(SO)
	mkdir -p $(PREFIX)/lib
	cp $(SO) $(PREFIX)/lib
	mkdir -p $(PREFIX)/include
	cp *.h $(PREFIX)/include


# numero de version auto
-include build

build:
	@echo BUILD= 1 > build

rebuild: build
	@echo BUILD= `expr $(BUILD) + 1` > build

ifneq ($(MAKECMDGOALS), clean)
-include $(DEP)
endif
