Skip to content

Commit

Permalink
refactor & clean-up makefiles
Browse files Browse the repository at this point in the history
  • Loading branch information
sjaeckel committed Dec 12, 2015
1 parent 68a360a commit 087d2b4
Show file tree
Hide file tree
Showing 3 changed files with 55 additions and 61 deletions.
42 changes: 7 additions & 35 deletions makefile
Original file line number Diff line number Diff line change
Expand Up @@ -14,17 +14,14 @@ ifneq ($V,1)
endif
${silent} ${CC} -c ${CFLAGS} $^ -o $@

#version of library
VERSION=0.43.0

include makefile.include

#default files to install
ifndef LIBNAME
LIBNAME=libtommath.a
endif

default: ${LIBNAME}
include makefile.include

LCOV_ARGS=--directory .

#START_INS
OBJECTS=bncore.o bn_error.o bn_fast_mp_invmod.o bn_fast_mp_montgomery_reduce.o bn_fast_s_mp_mul_digs.o \
Expand Down Expand Up @@ -58,24 +55,6 @@ $(LIBNAME): $(OBJECTS)
$(AR) $(ARFLAGS) $@ $(OBJECTS)
$(RANLIB) $@


#make the code coverage of the library
#
coverage: CFLAGS += -fprofile-arcs -ftest-coverage -DTIMING_NO_LOGS
coverage: LFLAGS += -lgcov

coverage: test_standalone timing
./test
./ltmtest

lcov: coverage
rm -f coverage.info
lcov --capture --no-external --no-recursion --directory . --output-file coverage.info -q
genhtml coverage.info --output-directory coverage -q

coveralls: coverage
cpp-coveralls

#make a profiled library (takes a while!!!)
#
# This will build the library with profile generation
Expand All @@ -100,10 +79,10 @@ profiled_single:
ranlib $(LIBNAME)

install: $(LIBNAME)
install -d -g $(GROUP) -o $(USER) $(DESTDIR)$(LIBPATH)
install -d -g $(GROUP) -o $(USER) $(DESTDIR)$(INCPATH)
install -g $(GROUP) -o $(USER) $(LIBNAME) $(DESTDIR)$(LIBPATH)
install -g $(GROUP) -o $(USER) $(HEADERS_PUB) $(DESTDIR)$(INCPATH)
install -d $(DESTDIR)$(LIBPATH)
install -d $(DESTDIR)$(INCPATH)
install -m 644 $(LIBNAME) $(DESTDIR)$(LIBPATH)
install -m 644 $(HEADERS_PUB) $(DESTDIR)$(INCPATH)

test: $(LIBNAME) demo/demo.o
$(CC) $(CFLAGS) demo/demo.o $(LIBNAME) $(LFLAGS) -o test
Expand Down Expand Up @@ -177,13 +156,6 @@ manual: mandvi
pretty:
perl pretty.build

clean:
rm -f *.gcda *.gcno *.bat *.o *.a *.obj *.lib *.exe *.dll etclib/*.o demo/demo.o test ltmtest mpitest mtest/mtest mtest/mtest.exe \
*.idx *.toc *.log *.aux *.dvi *.lof *.ind *.ilg *.ps *.log *.s mpi.c *.da *.dyn *.dpi tommath.tex `find . -type f | grep [~] | xargs` *.lo *.la
rm -rf .libs
cd etc ; MAKE=${MAKE} ${MAKE} clean
cd pics ; MAKE=${MAKE} ${MAKE} clean

#zipup the project (take that!)
no_oops: clean
cd .. ; cvs commit
Expand Down
52 changes: 39 additions & 13 deletions makefile.include
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,13 @@
# Include makefile for libtommath
#

#version of library
VERSION=0.43.0
VERSION_SO=0:43

# default make target
default: ${LIBNAME}

# Compiler and Linker Names
ifndef PREFIX
PREFIX=
Expand Down Expand Up @@ -52,23 +59,42 @@ HEADERS=tommath_private.h $(HEADERS_PUB)

test_standalone: CFLAGS+=-DLTM_DEMO_TEST_VS_MTEST=0

#install as this user
ifndef INSTALL_GROUP
GROUP=wheel
else
GROUP=$(INSTALL_GROUP)
endif

ifndef INSTALL_USER
USER=root
else
USER=$(INSTALL_USER)
endif

#LIBPATH-The directory for libtommath to be installed to.
#INCPATH-The directory to install the header files for libtommath.
#DATAPATH-The directory to install the pdf docs.
LIBPATH?=/usr/lib
INCPATH?=/usr/include
DATAPATH?=/usr/share/doc/libtommath/pdf

#make the code coverage of the library
#
coverage: CFLAGS += -fprofile-arcs -ftest-coverage -DTIMING_NO_LOGS
coverage: LFLAGS += -lgcov
coverage: LDFLAGS += -lgcov

coverage: test_standalone timing
./test
./ltmtest

lcov: coverage
rm -f coverage.info
lcov --capture --no-external --no-recursion $(LCOV_ARGS) --output-file coverage.info -q
genhtml coverage.info --output-directory coverage -q

coveralls: coverage
cpp-coveralls

# target that removes all coverage output
cleancov-clean:
rm -f `find . -type f -name "*.info" | xargs`
rm -rf coverage/

# cleans everything - coverage output and standard 'clean'
cleancov: cleancov-clean clean

clean:
rm -f *.gcda *.gcno *.bat *.o *.a *.obj *.lib *.exe *.dll etclib/*.o demo/demo.o test ltmtest mpitest mtest/mtest mtest/mtest.exe \
*.idx *.toc *.log *.aux *.dvi *.lof *.ind *.ilg *.ps *.log *.s mpi.c *.da *.dyn *.dpi tommath.tex `find . -type f | grep [~] | xargs` *.lo *.la
rm -rf .libs/
cd etc ; MAKE=${MAKE} ${MAKE} clean
cd pics ; MAKE=${MAKE} ${MAKE} clean
22 changes: 9 additions & 13 deletions makefile.shared
Original file line number Diff line number Diff line change
@@ -1,22 +1,18 @@
#Makefile for GCC
#
#Tom St Denis
VERSION=0:42

#default files to install
ifndef LIBNAME
LIBNAME=libtommath.la
endif

include makefile.include

LT ?= libtool
LTCOMPILE = $(LT) --mode=compile --tag=CC $(CC)

default: libtommath.la

#default files to install
ifndef LIBNAME
LIBNAME=libtommath.la
endif
ifndef LIBNAME_S
LIBNAME_S=libtommath.a
endif
LCOV_ARGS=--directory .libs --directory .

#START_INS
OBJECTS=bncore.o bn_error.o bn_fast_mp_invmod.o bn_fast_mp_montgomery_reduce.o bn_fast_s_mp_mul_digs.o \
Expand Down Expand Up @@ -52,12 +48,12 @@ objs: $(OBJECTS)
$(LTCOMPILE) $(CFLAGS) $(LDFLAGS) -o $@ -c $<

$(LIBNAME): $(OBJECTS)
$(LT) --mode=link --tag=CC $(CC) $(LDFLAGS) *.lo -o $(LIBNAME) -rpath $(LIBPATH) -version-info $(VERSION)
$(LT) --mode=link --tag=CC $(CC) $(LDFLAGS) *.lo -o $(LIBNAME) -rpath $(LIBPATH) -version-info $(VERSION_SO)

install: $(LIBNAME)
install -d $(DESTDIR)$(LIBPATH)
$(LT) --mode=install install -c $(LIBNAME) $(DESTDIR)$(LIBPATH)/$(LIBNAME)
install -d $(DESTDIR)$(INCPATH)
$(LT) --mode=install install -c $(LIBNAME) $(DESTDIR)$(LIBPATH)/$(LIBNAME)
install -m 644 $(HEADERS_PUB) $(DESTDIR)$(INCPATH)

test: $(LIBNAME) demo/demo.o
Expand All @@ -72,4 +68,4 @@ mtest:
cd mtest ; $(CC) $(CFLAGS) $(LDFLAGS) mtest.c -o mtest

timing: $(LIBNAME)
$(LT) --mode=link $(CC) $(CFLAGS) $(LDFLAGS) -DTIMER demo/timing.c $(LIBNAME_S) -o ltmtest
$(LT) --mode=link $(CC) $(CFLAGS) $(LDFLAGS) -DTIMER demo/timing.c $(LIBNAME) -o ltmtest

0 comments on commit 087d2b4

Please sign in to comment.