PREFIX= $(HOME)/local

CC= gcc 
LD= gcc 

CFLAGS= -Wall -pipe -O3 -Winline -msse -mfpmath=sse
LDFLAGS= -lm 

IMG_CFLAGS= -I$(PREFIX)/include
IMG_LDFLAGS= -L$(PREFIX)/lib -Wl,-rpath $(PREFIX)/lib -limg
CFLAGS+= $(IMG_CFLAGS)
LDFLAGS+= $(IMG_LDFLAGS)

OBJ_CFLAGS= -I$(PREFIX)/include
OBJ_LDFLAGS= -L$(PREFIX)/lib -Wl,-rpath $(PREFIX)/lib -lobj
CFLAGS+= $(OBJ_CFLAGS)
LDFLAGS+= $(OBJ_LDFLAGS)

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

#
SRC= ray.c dpoint.c sample.c camera.c glmat.c render.c glmain.c
OBJ= $(SRC:.c=.o)
DEP= $(SRC:.c=.d)

# numero de version auto
-include build

BIN= rendertoy

.PHONY: all
all: $(BIN)

build:
	echo BUILD= 1 > build

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

rendertoy: $(OBJ)
	$(LD) $(LDFLAGS) -o $@ $+

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

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


.PHONY: clean
clean: rebuild
	rm -f $(BIN) $(OBJ) $(DEP)

.PHONY: tarball
tarball:  
	@echo rendertoy_b$(BUILD).tar.gz
	tar -zcf rendertoy_b$(BUILD).tar.gz Makefile build *.c *.h 
	cp rendertoy_b$(BUILD).tar.gz rendertoy_latest.tar.gz
	make tarball -C imgtoy
	cp imgtoy/imgtoy_latest.tar.gz .
	make tarball -C objtoy
	cp objtoy/objtoy_latest.tar.gz .	

.PHONY: install
install: $(BIN)
	mkdir -p $(PREFIX)/bin
	cp rendertoy $(PREFIX)/bin

.PHONY: dist
dist: tarball
	mkdir -p rendertoy_b$(BUILD)
	cp rendertoy_latest.tar.gz imgtoy_latest.tar.gz objtoy_latest.tar.gz rendertoy_b$(BUILD)
	tar -zcf rendertoy.tar.gz rendertoy_b$(BUILD)

#	rm -rf rendertoy_b$(BUILD)

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