add/update MAkefile

* removed c99 as the c compiler variable
 * add doc rule
 * add build library rules for .a and .so
 * mem2 rule now tests for 000 arg instead of 0
 * clean rule update for libraries
 * add numericx.h dependency to rules

Signed-off-by: Daniel Santos <dacs.git@brilhante.top>
This commit is contained in:
Daniel Santos 2022-03-18 22:03:33 +00:00
parent 6fbbcbd9e1
commit ff971aaa63
1 changed files with 25 additions and 8 deletions

View File

@ -1,18 +1,35 @@
CC := c99
CFLAGS := -Wall -Wextra -O2
DEP := cli.c numericx.o
.PHONY: all
all: decimal-to-earth earth-to-decimal decimal-to-sun sun-to-decimal decimal-to-lori decimal-to-nonal_inf decimal-to-nonal lori-to-decimal nonal_inf-to-decimal nonal-to-decimal uninfinity decimal-to-binary binary-to-decimal
numericx.o: numericx.c
$(CC) $(CFLAGS) -c $^
.PHONY: lib-dirs
lib-dirs:
@mkdir -p lib/{static,shared}
numericx.o: numericx.c numericx.h
$(CC) $(CFLAGS) -c numericx.c
.PHONY: libnumericx.a libnumericx.so
libnumericx.a: numericx.o
ar -rc libnumericx.a $^
ranlib $@
@make lib-dirs
ar -rcs lib/static/$@ $^
libs: libnumericx.a
numericx-pic.o: numericx.c numericx.h
$(CC) $(CFLAGS) -fPIC -c numericx.c -o $@
libnumericx.so: numericx-pic.o
@make lib-dirs
$(CC) -shared $^ -o lib/shared/$@
.PHONY: libs
libs: libnumericx.a libnumericx.so
.PHONY: doc
doc:
rm -Rf doc/*
doxygen
decimal-to-earth: $(DEP)
$(CC) $(CFLAGS) -DFROM_NUMERICALS=\"0123456789\" -DFROM_FIRST_NUMBER_VOID -DFROM_INFINITE_BASE -DTO_NUMERICALS=\"12345\" -o $@ $^
@ -64,7 +81,7 @@ uninfinity: $(DEP)
.PHONY: clean
clean:
\rm -f *-to-* uninfinity *.o *.a
\rm -f *-to-* uninfinity *.o lib/static/*.a lib/shared/*.so
.PHONY: run
run: decimal-to-earth
@ -78,7 +95,7 @@ mem1: decimal-to-earth
valgrind --leak-check=full --show-leak-kinds=all -s decimal-to-earth 999
mem2: decimal-to-earth
valgrind --leak-check=full --show-leak-kinds=all -s decimal-to-earth 0
valgrind --leak-check=full --show-leak-kinds=all -s decimal-to-earth 000
mem3: decimal-to-earth
valgrind --leak-check=full --show-leak-kinds=all -s decimal-to-earth abc