mirror of
https://github.com/averello/xfig.git
synced 2026-02-28 18:23:28 +01:00
109 lines
1.9 KiB
Makefile
109 lines
1.9 KiB
Makefile
CC = gcc
|
|
CFLAGS_PRIV = -Wall -Wextra -g3 -pedantic -std=c99 -I${INC} -D_XOPEN_SOURCE=700 $(CFLAGS)
|
|
LDFLAGS_PRIV = -L$(LIB) -lxfig $(LDFLAGS)
|
|
BIN = bin
|
|
INC = include
|
|
OBJ = obj
|
|
SRC = src
|
|
MKDIR = mkdir
|
|
|
|
LIB = lib
|
|
MKDIR = mkdir
|
|
|
|
LIB_NAME = xfig
|
|
|
|
.PHONY: all directories compileall runall clean cleanall
|
|
|
|
UNAME := $(shell uname)
|
|
ifeq ($(UNAME), Linux)
|
|
STRIP = strip --strip-unneeded
|
|
endif
|
|
|
|
ifeq ($(UNAME), Darwin)
|
|
STRIP = strip -X -x -S
|
|
endif
|
|
|
|
|
|
# +-----------+
|
|
# | Cible all |
|
|
# +-----------+
|
|
|
|
all: directories compileall
|
|
|
|
# +-------------+
|
|
# | Cible test1 |
|
|
# +-------------+
|
|
|
|
TEST1 = main
|
|
test1: directories libstatic ${BIN}/${TEST1}
|
|
@echo "**** Testing ${TEST1}"
|
|
@${BIN}/${TEST1}
|
|
@echo "---- end of ${TEST1}"
|
|
|
|
|
|
libstatic: directories $(LIB)/lib$(LIB_NAME).a
|
|
|
|
valgrind% : $(BIN)/%
|
|
@valgrind --track-origins=yes --leak-check=full --show-reachable=yes $<
|
|
|
|
|
|
# +-------------------+
|
|
# | Cible directories |
|
|
# +-------------------+
|
|
|
|
directories: ${OBJ} ${BIN} ${LIB}
|
|
|
|
${OBJ}:
|
|
${MKDIR} -p ${OBJ}
|
|
${BIN}:
|
|
${MKDIR} -p ${BIN}
|
|
${LIB}:
|
|
${MKDIR} -p ${LIB}
|
|
|
|
# +------------------------------+
|
|
# | Cibles pour compiler avec -c |
|
|
# +------------------------------+
|
|
|
|
${OBJ}/%.o : ${SRC}/%.c
|
|
$(CC) -c -o $@ $< ${CFLAGS_PRIV}
|
|
|
|
${BIN}/% : ${OBJ}/%.o
|
|
${CC} -o $@ $< ${LDFLAGS_PRIV}
|
|
|
|
$(BIN)/main : $(OBJ)/main.o libstatic
|
|
$(CC) $(OUTPUT_OPTION) $< $(LDFLAGS_PRIV)
|
|
|
|
${LIB}/lib${LIB_NAME}.a : $(OBJ)/memory_management.o $(OBJ)/Point.o $(OBJ)/LinkedList.o $(OBJ)/XFig.o
|
|
${AR} r ${LIB}/lib${LIB_NAME}.a $?
|
|
|
|
|
|
# +------------------+
|
|
# | Cible compileall |
|
|
# +------------------+
|
|
|
|
compileall: libstatic
|
|
|
|
# +--------------+
|
|
# | Cible runall |
|
|
# +--------------+
|
|
|
|
runall: compileall
|
|
$(MAKE) tests
|
|
|
|
# +-------------+
|
|
# | Cible clean |
|
|
# +-------------+
|
|
|
|
clean:
|
|
rm -f ${OBJ}/* ${BIN}/*
|
|
|
|
# +----------------+
|
|
# | Cible cleanall |
|
|
# +----------------+
|
|
|
|
cleanall: clean
|
|
rm -f ${OBJ}/* ${BIN}/*;
|
|
rmdir ${OBJ} ${BIN}
|
|
rm -f ${INC}/*~ ${SRC}/*~ *~
|
|
|