8ee458b625
...well msvc still does it as I can't test it...
125 lines
2.5 KiB
Plaintext
125 lines
2.5 KiB
Plaintext
#
|
|
# Include makefile for libtomcrypt
|
|
#
|
|
|
|
# The version
|
|
VERSION=1.17
|
|
# http://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html
|
|
VERSION_LT=0:117
|
|
|
|
PLATFORM := $(shell uname | sed -e 's/_.*//')
|
|
|
|
# Compiler and Linker Names
|
|
ifndef PREFIX
|
|
PREFIX:=
|
|
endif
|
|
|
|
ifeq ($(CC),cc)
|
|
CC := $(PREFIX)gcc
|
|
endif
|
|
LD:=$(PREFIX)ld
|
|
AR:=$(PREFIX)ar
|
|
|
|
# Archiver [makes .a files]
|
|
#AR=ar
|
|
ARFLAGS:=r
|
|
|
|
ifndef MAKE
|
|
MAKE:=make
|
|
endif
|
|
|
|
|
|
# Compilation flags. Note the += does not write over the user's CFLAGS!
|
|
CFLAGS += -I./src/headers/ -Wall -Wsign-compare -Wshadow -DLTC_SOURCE
|
|
|
|
ifdef OLD_GCC
|
|
CFLAGS += -W
|
|
# older GCCs can't handle the "rotate with immediate" ROLc/RORc/etc macros
|
|
# define this to help
|
|
CFLAGS += -DLTC_NO_ROLC
|
|
else
|
|
CFLAGS += -Wextra
|
|
# additional warnings
|
|
CFLAGS += -Wsystem-headers -Wbad-function-cast -Wcast-align
|
|
CFLAGS += -Wstrict-prototypes -Wpointer-arith
|
|
CFLAGS += -Wdeclaration-after-statement
|
|
endif
|
|
|
|
CFLAGS += -Wno-type-limits
|
|
|
|
ifdef LTC_DEBUG
|
|
# compile for DEBUGGING (required for ccmalloc checking!!!)
|
|
ifneq (,$(strip $(LTC_DEBUG)))
|
|
CFLAGS += -g3 -DLTC_NO_ASM -DLTC_TEST_DBG=$(LTC_DEBUG)
|
|
else
|
|
CFLAGS += -g3 -DLTC_NO_ASM -DLTC_TEST_DBG
|
|
endif
|
|
else
|
|
|
|
ifdef LTC_SMALL
|
|
# optimize for SIZE
|
|
CFLAGS += -Os -DLTC_SMALL_CODE
|
|
else
|
|
|
|
ifndef IGNORE_SPEED
|
|
# optimize for SPEED
|
|
CFLAGS += -O3 -funroll-loops
|
|
|
|
# add -fomit-frame-pointer. hinders debugging!
|
|
CFLAGS += -fomit-frame-pointer
|
|
endif
|
|
|
|
endif # COMPILE_SMALL
|
|
endif # COMPILE_DEBUG
|
|
|
|
|
|
ifneq ($(findstring clang,$(CC)),)
|
|
CFLAGS += -Wno-typedef-redefinition -Wno-tautological-compare
|
|
endif
|
|
|
|
|
|
GIT_VERSION := $(shell [ -e .git ] && { echo -n git- ; git describe --tags --always --dirty ; } || echo $(VERSION))
|
|
ifneq ($(GIT_VERSION),)
|
|
CFLAGS += -DGIT_VERSION=\"$(GIT_VERSION)\"
|
|
endif
|
|
|
|
|
|
#List of demo objects
|
|
DSOURCES != ls demos/*.c
|
|
DOBJECTS = ${DSOURCES:.c=.o}
|
|
|
|
#List of testprof headers
|
|
THEADERS != ls testprof/*.h
|
|
|
|
TIMING=timing
|
|
TEST=test
|
|
|
|
USEFUL_DEMOS=hashsum
|
|
DEMOS=$(USEFUL_DEMOS) ltcrypt small tv_gen sizes constants
|
|
|
|
TIMINGS=demos/timing.o
|
|
TESTS=demos/test.o
|
|
|
|
#LIBPATH The directory for libtomcrypt to be installed to.
|
|
#INCPATH The directory to install the header files for libtomcrypt.
|
|
#DATAPATH The directory to install the pdf docs.
|
|
#BINPATH The directory to install the binaries provided.
|
|
DESTDIR ?= /usr/local
|
|
LIBPATH ?= $(DESTDIR)/lib
|
|
INCPATH ?= $(DESTDIR)/include
|
|
DATAPATH ?= $(DESTDIR)/share/doc/libtomcrypt/pdf
|
|
BINPATH ?= $(DESTDIR)/bin
|
|
|
|
#Who do we install as?
|
|
ifdef INSTALL_USER
|
|
USER=$(INSTALL_USER)
|
|
else
|
|
USER=root
|
|
endif
|
|
|
|
ifdef INSTALL_GROUP
|
|
GROUP=$(INSTALL_GROUP)
|
|
else
|
|
GROUP=wheel
|
|
endif
|