##
## Makefile for RT in ./
## 
## Made by boesch_c, cadic_e, castet_j, mouial_m
## Login   <login_above@epitech.net>
## 
## Started on  Sat May 17 12:20:50 2008 boesch_c, cadic_e, castet_j, mouial_m
## Last update Thu May 22 10:11:32 2008 boesch_c, cadic_e, castet_j, mouial_m
##

NAME		=	rt

CC		=	gcc

SRC_ROOT	=	./src/main.c					\
			./src/display_img.c				\
			./src/center_eye.c				\
			./src/check_usage.c				\
			./src/display_progress_bar.c			\
			./src/end_program.c				\
			./src/free_all.c				\
			./src/init.c					\
			./src/init_filter_special_values.c		\
			./src/init_hd_tab.c				\
			./src/init_values.c				\
			./src/item_array.c				\
			./src/mix_color.c				\
			./src/rgb2uint.c				\
			./src/rt.c					\
			./src/rt_bmp.c					\
			./src/hd.c					\
			./src/set_pixel_color.c				\
			./src/uint2rgb.c				\
			./src/xmalloc.c					\
			./src/xfree.c					\
			./src/get_next_line.c				\
			./src/xread.c					\
			./src/xopen.c					\
			./src/get_nb_words_of_string.c			\
			./src/str_to_wordtab.c				\
			./src/my_putstr_to_fd.c				\
			./src/my_getnbr_base.c				\
			./src/my_getnbr.c				\

SRC_BITMAP	=	./src/bitmap/add_to_bitmap.c			\
			./src/bitmap/put_bitmap_header.c		\
			./src/bitmap/fill_bmp_data.c			\
			./src/bitmap/get_bmp_data.c			\
			./src/bitmap/get_bmp_color.c			\


SRC_RENDER	=	./src/render/find_obj.c				\
			./src/render/find_final_color_pixel.c		\
			./src/render/get_color.c			\
			./src/render/get_normal.c			\
			./src/render/move_dot.c				\
			./src/render/is_in_limits.c			\
			./src/render/check_limits.c			\
			./src/render/get_color_pixel_of_item.c		\
			./src/render/style.c				\


SRC_ITEMS	=	./src/render/obj/get_normal_cone.c		\
			./src/render/obj/get_normal_cube_h.c		\
			./src/render/obj/get_normal_cylinder.c		\
			./src/render/obj/get_normal_plane.c		\
			./src/render/obj/get_normal_sphere.c		\
			./src/render/obj/obj_cone.c			\
		 	./src/render/obj/obj_cube_h.c			\
			./src/render/obj/obj_cylinder.c			\
			./src/render/obj/obj_plane.c			\
			./src/render/obj/obj_sphere.c			\


SRC_TEX		=	./src/render/texturing/tex_plane.c		\
			./src/render/texturing/tex_sphere.c		\
			./src/render/texturing/tex_repetition.c		\


FILTERS_DIR	=	./src/render/filters/
SRC_FILTERS	=	$(FILTERS_DIR)filter_reflect.c			\
			$(FILTERS_DIR)filter_checkboard.c		\
			$(FILTERS_DIR)filter_light_shadow.c		\
			$(FILTERS_DIR)filter_color_intensity_light.c	\
			$(FILTERS_DIR)filter_transparency.c		\
			$(FILTERS_DIR)filter_texturing_cut.c		\
			$(FILTERS_DIR)filter_shadow_texturing_cut.c	\
			$(FILTERS_DIR)filter_soft_shadows.c		\
			$(FILTERS_DIR)style_black_white.c		\
			$(FILTERS_DIR)style_black_and_white.c		\
			$(FILTERS_DIR)style_16bit.c			\


PERLIN_DIR	=	$(FILTERS_DIR)perlin_noise/
SRC_PERLIN	=	$(PERLIN_DIR)filter_perlin_noise.c		\
			$(PERLIN_DIR)perlin_noise.c			\
			$(PERLIN_DIR)pnoise_init.c			\
			$(PERLIN_DIR)get_coherent_noise.c		\
			$(PERLIN_DIR)bump_normal.c			\


SRC_EQUA	=	./src/equation/resolve_equa.c			\
			./src/equation/resolve_2_deg.c			\
			./src/equation/resolve_3_deg.c			\
			./src/equation/resolve_4_deg.c			\


SRC_MATH	=	./src/math/get_norm.c				\
			./src/math/mult_scal.c				\
			./src/math/get_vect_uni.c			\
			./src/math/rotate_vect.c			\
			./src/math/rotate_invert_vect.c			\
			./src/math/trans_coord_add.c			\
			./src/math/trans_coord_sub.c			\


SRC_PARSER	=	./src/parser/parse.c				\
			./src/parser/add_items_from_groups.c		\
			./src/parser/delete_invisibles_items.c		\
			./src/parser/init_global_values.c		\
			./src/parser/init_group_values.c		\
			./src/parser/init_item_values.c			\
			./src/parser/init_light_values.c		\
			./src/parser/is_comment_line.c			\
			./src/parser/load_attr_int.c			\
			./src/parser/load_attr_color.c			\
			./src/parser/load_attr_coords.c			\
			./src/parser/load_attr_dbl.c			\
			./src/parser/load_attr_limits.c			\
			./src/parser/load_attr_pcent.c			\
			./src/parser/load_attr_tex.c			\
			./src/parser/load_attr_type.c			\
			./src/parser/load_eye_param.c			\
			./src/parser/load_global_param.c		\
			./src/parser/load_group_param.c			\
			./src/parser/load_item_param.c			\
			./src/parser/load_light_param.c			\
			./src/parser/load_param.c			\
			./src/parser/parse_cmd_line.c			\
			./src/parser/parse_block.c			\


OBJ		=	$(SRC_ROOT:.c=.o) \
			$(SRC_BITMAP:.c=.o) \
			$(SRC_RENDER:.c=.o) \
			$(SRC_ITEMS:.c=.o) \
			$(SRC_TEX:.c=.o) \
			$(SRC_FILTERS:.c=.o) \
			$(SRC_PERLIN:.c=.o) \
			$(SRC_EQUA:.c=.o) \
			$(SRC_MATH:.c=.o) \
			$(SRC_PARSER:.c=.o) \


INC		=	-I/usr/X11/include -I./includes

LDFLAGS		+=	`sdl-config --libs`

CFLAGS		+=	$(INC) -W -Wall -pedantic -ansi -O3 -ffast-math `sdl-config --cflags`

RM		=	rm -f



$(NAME)	:	$(OBJ)
		$(CC) $(OBJ) -o $(NAME) $(LDFLAGS)


all	:	$(NAME)

clean	:
		$(RM) $(OBJ)

fclean	:	clean
		$(RM) $(NAME)

re	:	fclean all


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