Advertisement
Guest User

Makefile

a guest
Jan 14th, 2018
493
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Make 4.90 KB | None | 0 0
  1. # **************************************************************************** #
  2. #                                                                              #
  3. #                                                         :::      ::::::::    #
  4. #    Makefile                                           :+:      :+:    :+:    #
  5. #                                                     +:+ +:+         +:+      #
  6. #    By: jlasne <marvin@42.fr>                      +#+  +:+       +#+         #
  7. #                                                 +#+#+#+#+#+   +#+            #
  8. #    Created: 2016/11/03 12:34:13 by jlasne            #+#    #+#              #
  9. #    Updated: 2018/01/02 15:28:02 by jlasne           ###   ########.fr        #
  10. #                                                                              #
  11. # **************************************************************************** #
  12.  
  13. NAME = libjlasne.a
  14.  
  15. # Libft Core
  16. SRCS += core/ft_add_to_array.c \
  17.         core/ft_arraylen.c \
  18.         core/ft_atoi.c \
  19.         core/ft_atoi_base.c \
  20.         core/ft_atoi_nbase.c \
  21.         core/ft_binlen.c \
  22.         core/ft_bzero.c \
  23.         core/ft_cat.c \
  24.         core/ft_charwlen.c \
  25.         core/ft_free_array.c \
  26.         core/ft_isalnum.c \
  27.         core/ft_isalpha.c \
  28.         core/ft_isascii.c \
  29.         core/ft_isdigit.c \
  30.         core/ft_isprint.c \
  31.         core/ft_itoa.c \
  32.         core/ft_itoa_base.c \
  33.         core/ft_itoa_base_l.c \
  34.         core/ft_itoa_base_ll.c \
  35.         core/ft_itoa_base_uint.c \
  36.         core/ft_memalloc.c \
  37.         core/ft_memccpy.c \
  38.         core/ft_memchr.c \
  39.         core/ft_memcmp.c \
  40.         core/ft_memcpy.c \
  41.         core/ft_memdel.c \
  42.         core/ft_memmove.c \
  43.         core/ft_memset.c \
  44.         core/ft_nblen.c \
  45.         core/ft_nblen_l.c \
  46.         core/ft_nblen_ll.c \
  47.         core/ft_power.c \
  48.         core/ft_print_array.c \
  49.         core/ft_putchar.c \
  50.         core/ft_putchar_fd.c \
  51.         core/ft_putendl.c \
  52.         core/ft_putendl_fd.c \
  53.         core/ft_putnbr.c \
  54.         core/ft_putnbr_fd.c \
  55.         core/ft_putnbr_l.c \
  56.         core/ft_putnbr_ll.c \
  57.         core/ft_putnstr.c \
  58.         core/ft_putnwchar.c \
  59.         core/ft_putnwstr.c \
  60.         core/ft_putstr.c \
  61.         core/ft_putstr_fd.c \
  62.         core/ft_putwchar.c \
  63.         core/ft_remfrom_array.c \
  64.         core/ft_split_whitespaces.c \
  65.         core/ft_str_to_tab_sep.c \
  66.         core/ft_str_to_tab_sep_helper.c \
  67.         core/ft_strcat.c \
  68.         core/ft_strchr.c \
  69.         core/ft_strclr.c \
  70.         core/ft_strcmp.c \
  71.         core/ft_strcpy.c \
  72.         core/ft_strdel.c \
  73.         core/ft_strdup.c \
  74.         core/ft_strequ.c \
  75.         core/ft_strisdigit.c \
  76.         core/ft_striter.c \
  77.         core/ft_striteri.c \
  78.         core/ft_strjoin.c \
  79.         core/ft_strjoin_sep.c \
  80.         core/ft_strlcat.c \
  81.         core/ft_strlen.c \
  82.         core/ft_strmap.c \
  83.         core/ft_strmapi.c \
  84.         core/ft_strncat.c \
  85.         core/ft_strncmp.c \
  86.         core/ft_strncpy.c \
  87.         core/ft_strnequ.c \
  88.         core/ft_strnew.c \
  89.         core/ft_strnstr.c \
  90.         core/ft_strrchr.c \
  91.         core/ft_strsplit.c \
  92.         core/ft_strstr.c \
  93.         core/ft_strsub.c \
  94.         core/ft_strtrim.c \
  95.         core/ft_strwlen.c \
  96.         core/ft_tabdup.c \
  97.         core/ft_tolower.c \
  98.         core/ft_toupper.c \
  99.  
  100.  
  101. #Printf
  102. # Printf Checks
  103. SRCS +=     ft_printf/checks/check_flags.c \
  104.         ft_printf/checks/check_precision_max.c \
  105.         ft_printf/checks/check_spaces.c \
  106.         ft_printf/checks/check_width.c \
  107.  
  108. #Printf color
  109. SRCS +=     ft_printf/color/color.c \
  110.         ft_printf/color/color2.c \
  111.         ft_printf/color/color3.c \
  112.  
  113. #Printf Convert
  114. SRCS +=     ft_printf/convert/convert_c.c \
  115.         ft_printf/convert/convert_d.c \
  116.         ft_printf/convert/convert_jzlh.c \
  117.         ft_printf/convert/convert_o.c \
  118.         ft_printf/convert/convert_p.c \
  119.         ft_printf/convert/convert_percent.c \
  120.         ft_printf/convert/convert_r.c \
  121.         ft_printf/convert/convert_s.c \
  122.         ft_printf/convert/convert_u.c \
  123.         ft_printf/convert/convert_x.c \
  124.  
  125. #Printf Core
  126. SRCS +=     ft_printf/core/ft_printf.c \
  127.         ft_printf/core/parser.c \
  128.         ft_printf/core/utils.c \
  129.  
  130. #Printf Print
  131. SRCS +=     ft_printf/print/print_d.c \
  132.         ft_printf/print/print_o.c \
  133.         ft_printf/print/print_u.c \
  134.         ft_printf/print/print_x.c \
  135.         ft_printf/print/print_xx.c \
  136.  
  137. CC = clang
  138.  
  139. SRC_PATH = ./srcs/
  140.  
  141. SRC_POS = $(addprefix $(SRC_PATH),$(SRCS))
  142.  
  143. INC = -I includes
  144. INC += -I includes/core/includes
  145. INC += -I includes/ft_printf/
  146.  
  147. CC              = clang
  148. FLAGS           = -Wall -Wextra
  149.  
  150. # For the deprecated errors
  151. ifneq ($(NOERR),yes)
  152.     FLAGS       += -Werror
  153. endif
  154.  
  155. # For the debug options, used for example in valgrind
  156. ifeq ($(DEV),yes)
  157.     FLAGS       += -g
  158. endif
  159.  
  160. # Used when debugging memory
  161. ifeq ($(SAN),yes)
  162.     FLAGS       += -fsanitize=address -fno-omit-frame-pointer -fno-optimize-sibling-calls
  163. endif
  164.  
  165. OBJ = $(SRC_POS:.c=.o)
  166.  
  167. OBJ_DIR = ./obj
  168.  
  169.  
  170. all: $(NAME)
  171.  
  172. $(NAME): $(OBJ)
  173.     ar r $(NAME) $(OBJ)
  174.     ranlib $(NAME)
  175.     if [ -d "./obj" ]; then echo "\033[35mDirectory\033[34m obj\033[35m already exists\033[0m"; else mkdir obj; fi
  176.     mv *.o $(OBJ_DIR)/
  177.     echo "\033[35mLibft compilation complete\033[0m" "\033[32m [ok] \033[32m"
  178.  
  179. %.o:$(SRC_PATH)/%.c
  180.     $(CC) $(FLAGS) $(INC) -o $@ -c $<
  181.  
  182. clean:
  183.     echo "\033[35mRemoving .o files\033[0m"
  184.     /bin/rm -rf obj/$(OBJ)
  185.  
  186. fclean: clean
  187.     echo "\033[35mRemoving .a files\033[0m"
  188.     /bin/rm -rf $(NAME)
  189.  
  190. re: fclean all
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement