Comment indexer une librairie codée en C avec ranlib?
Résolu/Fermé
Utilisateur anonyme
-
Modifié par orinym le 1/10/2013 à 06:08
Utilisateur anonyme - 3 oct. 2013 à 09:51
Utilisateur anonyme - 3 oct. 2013 à 09:51
A voir également:
- Ranlib makefile
- C'est quoi un Makefile ? - Forum Linux / Unix
- Makefile séparateur manquant - Forum Programmation
1 réponse
Utilisateur anonyme
3 oct. 2013 à 09:51
3 oct. 2013 à 09:51
J'ai finalement réglé le problème, voici le makefile que j'ai obtenu :
NAME_RELEASE=bsq
NAME_DEBUG=bsq_debug
INC=./includes/
SRC_DEBUG=./debug/
MAIN_TEST=main_test.c
SRC=./src/
MAIN_RELEASE=main.c
DIR_DEBUG=./debug/
C_DEBUG=debug.c
O_DEBUG=$(subst .c,.o,$(C_DEBUG))
H_DEBUG=debug.h
LIB_DEBUG=libdebug.a
DIR_LON=./src/
C_LONG={ft_long1.c,ft_long2.c}
DIR_LONG=./src/
O_LONG=$(subst .c,.o,$(C_LONG))
H_LONG=s_long.h
LIB_LONG=liblong.a
LIB=$(subst lib,-l,$(subst .a,,$^))
DEBUG=yes
CC=cc
CFLAGS=-Wall -Werror -Wextra
ifeq ($(DEBUG), yes)
NAME=$(NAME_DEBUG)
else
NAME=$(NAME_RELEASE)
endif
all : $(NAME) clean
$(NAME_RELEASE) : $(LIB_LONG)
$(CC) $(CFLAGS) $^ $(SRC)$(MAIN_RELEASE) -o $@
$(NAME_DEBUG) : $(LIB_DEBUG) $(LIB_LONG)
$(CC) $(CFLAGS) -I $(INC) $(SRC_DEBUG)$(MAIN_TEST) -L./ $(LIB) -o $@
$(LIB_DEBUG) :
echo lib_debug
$(CC) $(CFLAGS) -I $(INC) -c $(DIR_DEBUG)$(C_DEBUG)
ar rc $(LIB_DEBUG) $(O_DEBUG)
ranlib $(LIB_DEBUG)
$(LIB_LONG) :
echo lib_long
echo $(O_LONG) $(O_DEBUG)
$(CC) $(CFLAGS) -I $(INC) -c $(DIR_LONG)$(C_LONG)
ar rc $(LIB_LONG) $(O_LONG)
ranlib $(LIB_LONG)
clean :
-rm *.o || echo .o\ not\ found
-rm *.a || echo .a\ not\ found
fclean :
rm $(NAME) || echo file\ not\ found
re : fclean all