-
Notifications
You must be signed in to change notification settings - Fork 465
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Gentoo Bug: https://bugs.gentoo.org/777084
- Loading branch information
Showing
5 changed files
with
92 additions
and
54 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
#!/bin/sh | ||
# Shell wrapper script for the built executables when built with the | ||
# shared libtomcrypt library. | ||
|
||
set -euf | ||
|
||
rootdir="$(cd -- "${0%/*}/" && pwd -P)" | ||
|
||
if [ -z "${LD_LIBRARY_PATH:-}" ]; then | ||
LD_LIBRARY_PATH="$rootdir" | ||
else | ||
LD_LIBRARY_PATH="$rootdir:$LD_LIBRARY_PATH" | ||
fi | ||
|
||
export LD_LIBRARY_PATH | ||
|
||
if [ "${1+x}" ]; then | ||
exec "$rootdir"/@EXE@ "${@:-}" | ||
else | ||
exec "$rootdir"/@EXE@ | ||
fi |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,6 +1,6 @@ | ||
# MAKEFILE for linux GCC | ||
# | ||
# This makefile produces a shared object and requires libtool to be installed. | ||
# This makefile produces a shared object. | ||
# | ||
# Thanks to Zed Shaw for helping debug this on BSD/OSX. | ||
# Tom St Denis | ||
|
@@ -24,69 +24,82 @@ PLATFORM := $(shell uname | sed -e 's/_.*//') | |
# Linux (on all Linux distros) | ||
# Darwin (on macOS, OS X) | ||
|
||
ifeq ($(LIBTOOL),rlibtool) | ||
TGTLIBTOOL:=slibtool-shared | ||
else | ||
ifndef LIBTOOL | ||
ifeq ($(PLATFORM), Darwin) | ||
TGTLIBTOOL:=glibtool | ||
else | ||
TGTLIBTOOL:=libtool | ||
endif | ||
else | ||
TGTLIBTOOL=$(LIBTOOL) | ||
endif | ||
ifneq ($(findstring $(PLATFORM),Linux CYGWIN MINGW32 MINGW64 MSYS),) | ||
NO_UNDEFINED := -Wl,--no-undefined | ||
endif | ||
|
||
ifneq ($(findstring $(PLATFORM),CYGWIN MINGW32 MINGW64 MSYS),) | ||
NO_UNDEFINED:=-no-undefined | ||
endif | ||
INSTALL_CMD := install | ||
UNINSTALL_CMD := rm -f | ||
|
||
NAME := libtomcrypt | ||
PIC := -fPIC | ||
|
||
LTCOMPILE = $(TGTLIBTOOL) --mode=compile --tag=CC $(CC) | ||
INSTALL_CMD = $(TGTLIBTOOL) --mode=install install | ||
UNINSTALL_CMD = $(TGTLIBTOOL) --mode=uninstall rm | ||
ifeq ($(PLATFORM), Darwin) | ||
SHARED += -dynamiclib | ||
TARGET := $(NAME).dylib | ||
else ifeq ($(OS), Windows_NT) | ||
SHARED += -shared | ||
TARGET := $(NAME).dll | ||
else | ||
SHARED += -shared | ||
TARGET := $(NAME).so | ||
endif | ||
|
||
#Output filenames for various targets. | ||
ifndef LIBNAME | ||
LIBNAME=libtomcrypt.la | ||
LIBNAME = $(TARGET).$(VERSION_LT) | ||
endif | ||
|
||
|
||
include makefile_include.mk | ||
|
||
.PHONY: check install install_bins uninstall | ||
|
||
#ciphers come in two flavours... enc+dec and enc | ||
src/ciphers/aes/aes_enc.o: src/ciphers/aes/aes.c src/ciphers/aes/aes_tab.c | ||
$(LTCOMPILE) $(LTC_CFLAGS) $(CPPFLAGS) $(LTC_LDFLAGS) -DENCRYPT_ONLY -c src/ciphers/aes/aes.c -o src/ciphers/aes/aes_enc.o | ||
$(CC) $(LTC_CFLAGS) $(PIC) $(CPPFLAGS) -DENCRYPT_ONLY -c src/ciphers/aes/aes.c -o src/ciphers/aes/aes_enc.o | ||
|
||
.c.o: | ||
$(LTCOMPILE) $(LTC_CFLAGS) $(CPPFLAGS) $(LTC_LDFLAGS) -o $@ -c $< | ||
|
||
LOBJECTS = $(OBJECTS:.o=.lo) | ||
$(CC) $(LTC_CFLAGS) $(PIC) $(CPPFLAGS) -o $@ -c $< | ||
|
||
$(LIBNAME): $(OBJECTS) | ||
$(TGTLIBTOOL) --mode=link --tag=CC $(CC) $(LTC_LDFLAGS) $(LOBJECTS) $(EXTRALIBS) -o $@ -rpath $(LIBPATH) -version-info $(VERSION_LT) $(NO_UNDEFINED) | ||
$(CC) $(LTC_LDFLAGS) $(OBJECTS) $(EXTRALIBS) $(SHARED) -Wl,-soname,$(TARGET).$(VERSION_MAJOR) $(NO_UNDEFINED) -o $@ | ||
ln -sf $(LIBNAME) $(TARGET).$(VERSION_MAJOR) | ||
ln -sf $(LIBNAME) $(TARGET) | ||
|
||
test: $(call print-help,test,Builds the library and the 'test' application to run all self-tests) $(LIBNAME) $(TOBJECTS) | ||
$(TGTLIBTOOL) --mode=link --tag=CC $(CC) $(LTC_LDFLAGS) -o $(TEST) $(TOBJECTS) $(LIBNAME) $(EXTRALIBS) | ||
tests/$(TEST): $(LIBNAME) $(TOBJECTS) | ||
$(CC) $(LTC_LDFLAGS) $(TOBJECTS) -L. -ltomcrypt $(EXTRALIBS) $(NO_UNDEFINED) -o $@ | ||
|
||
test: $(call print-help,test,Builds the library and the 'test' application to run all self-tests) tests/$(TEST) bin.in | ||
sed -e 's|@EXE@|tests/$@|' bin.in > [email protected] | ||
$(INSTALL_CMD) -m 755 [email protected] $@ | ||
@rm -f [email protected] | ||
|
||
# build the demos from a template | ||
define DEMO_template | ||
$(1): $(call print-help,$(1),Builds the library and the '$(1)' demo) demos/$(1).o $$(LIBNAME) | ||
$$(TGTLIBTOOL) --mode=link --tag=CC $$(CC) $$(LTC_LDFLAGS) $$^ $$(EXTRALIBS) -o $(1) | ||
demos/$(1): demos/$(1).o $$(LIBNAME) | ||
$$(CC) $$(LTC_LDFLAGS) $$< -L. -ltomcrypt $$(EXTRALIBS) -o $$@ | ||
|
||
$(1): $(call print-help,$(1),Builds the library and the '$(1)' demo) demos/$(1) bin.in | ||
sed -e 's|@EXE@|demos/$(1)|' bin.in > $(1).out | ||
$$(INSTALL_CMD) -m 755 $(1).out $(1) | ||
@rm -f $(1).out | ||
endef | ||
|
||
$(foreach demo, $(strip $(DEMOS)), $(eval $(call DEMO_template,$(demo)))) | ||
|
||
install: $(call print-help,install,Installs the library + headers + pkg-config file) .common_install | ||
ln -sf $(LIBNAME) $(DESTDIR)/$(LIBPATH)/$(TARGET).$(VERSION_MAJOR) | ||
ln -sf $(LIBNAME) $(DESTDIR)/$(LIBPATH)/$(TARGET) | ||
sed -e 's,^prefix=.*,prefix=$(PREFIX),' -e 's,^Version:.*,Version: $(VERSION_PC),' libtomcrypt.pc.in > libtomcrypt.pc | ||
install -p -d $(DESTDIR)$(LIBPATH)/pkgconfig | ||
install -p -m 644 libtomcrypt.pc $(DESTDIR)$(LIBPATH)/pkgconfig/ | ||
$(INSTALL_CMD) -p -d $(DESTDIR)$(LIBPATH)/pkgconfig | ||
$(INSTALL_CMD) -p -m 644 libtomcrypt.pc $(DESTDIR)$(LIBPATH)/pkgconfig/ | ||
|
||
install_bins: $(call print-help,install_bins,Installs the useful demos ($(USEFUL_DEMOS))) .common_install_bins | ||
|
||
uninstall: $(call print-help,uninstall,Uninstalls the library + headers + pkg-config file) .common_uninstall | ||
rm $(DESTDIR)$(LIBPATH)/pkgconfig/libtomcrypt.pc | ||
$(UNINSTALL_CMD) $(DESTDIR)/$(LIBPATH)/$(TARGET).$(VERSION_MAJOR) | ||
$(UNINSTALL_CMD) $(DESTDIR)/$(LIBPATH)/$(TARGET) | ||
$(UNINSTALL_CMD) $(DESTDIR)$(LIBPATH)/pkgconfig/libtomcrypt.pc | ||
|
||
# ref: $Format:%D$ | ||
# git commit: $Format:%H$ | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters