Created
June 4, 2015 12:47
-
-
Save Kerollmops/42327326395e6cecbd4f to your computer and use it in GitHub Desktop.
jboulet
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# **************************************************************************** # | |
# # | |
# ::: :::::::: # | |
# Makefile :+: :+: :+: # | |
# +:+ +:+ +:+ # | |
# By: crenault <crenault@student.42.fr> +#+ +:+ +#+ # | |
# +#+#+#+#+#+ +#+ # | |
# Created: 2015/05/09 18:00:27 by crenault #+# #+# # | |
# Updated: 2015/05/28 14:58:35 by crenault ### ########.fr # | |
# # | |
# **************************************************************************** # | |
# glfw | |
GLFW_FOLD = glfw | |
GLFW_CHECK = $(GLFW_FOLD)/.git | |
GLFW_LIB = glfwlib | |
GLFW_FLAGS = -L$(GLFW_LIB)/lib -lglfw3 | |
# libft | |
FT_FOLD = libft | |
FT_CHECK = $(FT_FOLD)/.git | |
FT_LIB = $(FT_FOLD)/libft.a | |
FT_FLAGS = -L$(FT_FOLD) -lft | |
# cMatrixHelper | |
CMH_FOLD = cMatrixHelper | |
CMH_CHECK = $(CMH_FOLD)/.git | |
CMH_LIB = $(CMH_FOLD)/libcmh.a | |
CMH_FLAGS = -L$(CMH_FOLD) -lcmh | |
# submodules | |
SUBMODULES = $(GLFW_CHECK) $(FT_CHECK) $(CMH_CHECK) | |
# libraries | |
LIBRARIES = $(GLFW_LIB) $(FT_LIB) $(CMH_LIB) | |
# compiler | |
CC = clang | |
# file type | |
FT = c | |
# flags | |
FLAGS = -Wall -Wextra -Werror | |
FLAGS += -O3 | |
FLAGS += -g | |
# binary flags (add libraries) | |
BIN_FLAGS = $(FLAGS) $(GLFW_FLAGS) $(FT_FLAGS) $(CMH_FLAGS) | |
BIN_FLAGS += -framework Cocoa -framework OpenGL | |
BIN_FLAGS += -framework IOKit -framework CoreVideo | |
# executable | |
NAME = scop | |
# to compile files | |
SRC = src/main.c | |
SRC += src/genv.c | |
SRC += src/bmp.c | |
SRC += src/helpers.c | |
SRC += src/matrix/view.c | |
SRC += src/opengl/init.c | |
SRC += src/opengl/input_events.c | |
SRC += src/opengl/log.c | |
SRC += src/opengl/loadprog.c | |
SRC += src/object/creation.c | |
SRC += src/object/info.c | |
SRC += src/object/modif.c | |
SRC += src/object/average.c | |
SRC += src/object/destruct.c | |
SRC += src/object/parsing/base.c | |
SRC += src/object/parsing/vertice.c | |
SRC += src/object/parsing/vertice_average.c | |
SRC += src/object/parsing/face.c | |
SRC += src/object/parsing/facenorm.c | |
SRC += src/object/parsing/facetypes.c | |
SRC += src/object/alloc.c | |
SRC += src/object/alloc2.c | |
SRC += src/object/linking.c | |
SRC += src/object/transform.c | |
# header files | |
HDR = include/helpers.h | |
HDR += include/genv.h | |
HDR += include/mat4_view.h | |
HDR += include/opengl/init.h | |
HDR += include/opengl/log.h | |
HDR += include/object/creation.h | |
HDR += include/object/parsing.h | |
HDR += include/object/alloc.h | |
HDR += include/object/transform.h | |
# objects files | |
OBJS = $(SRC:.$(FT)=.o) | |
# main rule | |
all: $(NAME) | |
# rebuild your bin | |
re: fclean $(NAME) | |
# reclone submodule and rebuild | |
rere: ffclean $(NAME) | |
$(NAME): $(SUBMODULES) $(LIBRARIES) $(OBJS) | |
@$(CC) -o $@ $(OBJS) $(BIN_FLAGS) | |
@echo $@ "updated!" | |
# making o files | |
%.o: %.$(FT) $(HDR) | |
@$(CC) -o $@ -c $< $(FLAGS) | |
@echo $< "updated!" | |
# submodules | |
$(SUBMODULES): | |
@git submodule init | |
@git submodule update | |
@echo $@ "updated!" | |
# lib glfw | |
$(GLFW_LIB): | |
@cd $(GLFW_FOLD) && cmake -DCMAKE_INSTALL_PREFIX=../$(GLFW_LIB) . | |
@make install -C $(GLFW_FOLD) | |
@echo $@ "updated!" | |
# lib libft | |
$(FT_LIB): | |
@make -C $(FT_FOLD) | |
@echo $@ "updated!" | |
# lib libft | |
$(CMH_LIB): | |
@rm -rf $(CMH_FOLD)/$(FT_FOLD) | |
@cd $(CMH_FOLD) && ln -s ../$(FT_FOLD) $(FT_FOLD) | |
@make -C $(CMH_FOLD) | |
@echo $@ "updated!" | |
# | |
.PHONY: all re rere clean fclean ffclean cleansubs | |
# clean o files | |
clean: | |
@rm -rf $(OBJS) | |
# clean submodules | |
cleansubs: | |
@rm -rf $(PI_RESS_LOCAL_DIR) | |
@make clean -C $(GLFW_FOLD) | |
@make clean -C $(FT_FOLD) | |
@make clean -C $(CMH_FOLD) | |
# clean exec file and library | |
fclean: clean | |
@rm -rf $(GLFW_LIB) | |
@make fclean -C $(FT_FOLD) | |
@make fclean -C $(CMH_FOLD) | |
@rm -rf $(NAME) | |
# get empty and clean repo (without libs) | |
ffclean: fclean cleansubs |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment