autoconfiscate
Add autoconf & automake metadata, plus required files for automake to run without complaint. Requires an update to ccan, to get the --build-type argument to create-ccan-tree. Signed-off-by: Jeremy Kerr <jeremy.kerr@canonical.com>
This commit is contained in:
parent
42c7160576
commit
3def238360
7 changed files with 130 additions and 113 deletions
112
Makefile
112
Makefile
|
@ -1,112 +0,0 @@
|
|||
|
||||
# compile options
|
||||
CC = gcc
|
||||
CPPFLAGS = -I. $(ccan_includes)
|
||||
CFLAGS = -Wall -Werror -Wextra -ggdb --std=c99
|
||||
LDFLAGS = -fwhole-program
|
||||
|
||||
# build configuration
|
||||
sbsign_objs = sbsign.o idc.o image.o
|
||||
sbverify_objs = sbverify.o idc.o image.o
|
||||
libs = -lbfd -lcrypto
|
||||
objs = $(sort $(sbsign_objs) $(sbverify_objs))
|
||||
docs = docs/sbsign.1 docs/sbverify.1
|
||||
|
||||
# ccan build configuration
|
||||
ccan_dir = lib/ccan
|
||||
ccan_objs = $(ccan_dir)/libccan.a
|
||||
ccan_includes = -I./lib/ccan
|
||||
ccan_modules = talloc
|
||||
ccan_stamp = $(ccan_dir)/Makefile
|
||||
ccan_config = $(ccan_dir)/config.h
|
||||
|
||||
# install paths
|
||||
DESTDIR ?=
|
||||
prefix ?= /usr
|
||||
bindir ?= ${prefix}/bin
|
||||
man1dir = ${prefix}/share/man/man1/
|
||||
install_dirs = install -m 755 -d $(DESTDIR)$(bindir) $(DESTDIR)$(man1dir)
|
||||
install_bin = install -m 755 -t $(DESTDIR)$(bindir)
|
||||
install_man1 = install -m 755 -t $(DESTDIR)$(man1dir)
|
||||
|
||||
# dist
|
||||
package = sbsigntool
|
||||
version = 0.1
|
||||
pkgver = $(package)-$(version)
|
||||
tarball = $(pkgver).tar.gz
|
||||
|
||||
tools = sbsign sbverify
|
||||
|
||||
all: $(tools)
|
||||
|
||||
sbsign: $(sbsign_objs) $(ccan_objs)
|
||||
$(LINK.o) -o $@ $^ $(libs)
|
||||
|
||||
sbverify: $(sbverify_objs) $(ccan_objs)
|
||||
$(LINK.o) -o $@ $^ $(libs)
|
||||
|
||||
sbsign.o sbverify.o: CPPFLAGS+=-DVERSION=\"$(version)\"
|
||||
|
||||
gen-keyfiles: gen-keyfiles.o $(ccan_objs)
|
||||
$(LINK.o) -o $@ $^ $(libs)
|
||||
gen-keyfiles: libs = -luuid
|
||||
|
||||
# ccan build
|
||||
$(ccan_objs): $(ccan_stamp)
|
||||
cd $(@D) && $(MAKE)
|
||||
|
||||
$(ccan_config): $(ccan_stamp)
|
||||
cd $(@D) && $(MAKE) config.h
|
||||
|
||||
# doc build
|
||||
docs: $(docs)
|
||||
.PHONY: docs
|
||||
|
||||
$(docs): docs/%.1: docs/%.1.in %
|
||||
help2man --no-info -i $< -o $@ $(patsubst %.1, ./%, $(@F))
|
||||
|
||||
# built objects may require headers from ccan
|
||||
$(objs): $(ccan_stamp) $(ccan_config)
|
||||
|
||||
install: $(tools) $(docs)
|
||||
$(install_dirs)
|
||||
$(install_bin) $(tools)
|
||||
$(install_man1) $(docs)
|
||||
.PHONY: install
|
||||
|
||||
clean:
|
||||
rm -f $(tools)
|
||||
rm -f *.o
|
||||
|
||||
# tarball build
|
||||
tarball: $(tarball)
|
||||
|
||||
$(tarball): $(ccan_stamp)
|
||||
ln -s . $(pkgver)
|
||||
tar -zhcvf $@ --exclude '*.tar.gz' \
|
||||
--exclude $(pkgver)/$(pkgver) \
|
||||
--exclude $(ccan_source_dir) \
|
||||
--exclude '.*.swp' \
|
||||
--exclude .git --exclude .gitmodules \
|
||||
$(pkgver)
|
||||
rm $(pkgver)
|
||||
|
||||
distclean: clean
|
||||
rm -rf $(ccan_dir)
|
||||
|
||||
# ccan import
|
||||
ccan_source_dir = lib/ccan.git
|
||||
ccan_source_file = $(ccan_source_dir)/Makefile
|
||||
|
||||
# protect these rules with the DIST variable, as non-git checkouts will not be
|
||||
# able to run the git submodule commands.
|
||||
ifeq ($(DIST),1)
|
||||
|
||||
$(ccan_source_file):
|
||||
git submodule init
|
||||
git submodule update
|
||||
|
||||
$(ccan_stamp): $(ccan_source_file)
|
||||
$(ccan_source_dir)/tools/create-ccan-tree --exclude-tests \
|
||||
$(@D) $(ccan_modules)
|
||||
endif
|
26
Makefile.am
Normal file
26
Makefile.am
Normal file
|
@ -0,0 +1,26 @@
|
|||
|
||||
bin_PROGRAMS = sbsign sbverify
|
||||
|
||||
coff_headers = coff/external.h coff/pe.h coff/i386.h coff/x86_64.h
|
||||
|
||||
common_SOURCES = idc.c idc.h image.c image.h $(coff_headers)
|
||||
common_LDADD = lib/ccan/libccan.a $(libcrypto_LIBS)
|
||||
common_CFLAGS = -I$(srcdir)/lib/ccan/
|
||||
|
||||
sbsign_SOURCES = sbsign.c $(common_SOURCES)
|
||||
sbsign_LDADD = $(common_LDADD)
|
||||
sbsign_CFLAGS = $(common_CFLAGS)
|
||||
|
||||
sbverify_SOURCES = sbverify.c $(common_SOURCES)
|
||||
sbverify_LDADD = $(common_LDADD)
|
||||
sbverify_CFLAGS = $(common_CFLAGS)
|
||||
|
||||
man1_MANS = docs/sbsign.1 docs/sbverify.1
|
||||
|
||||
EXTRA_DIST = docs/sbsign.1.in docs/sbverify.1.in
|
||||
|
||||
$(builddir)/docs/%.1: $(srcdir)/docs/%.1.in $(builddir)/%
|
||||
$(MKDIR_P) $(@D)
|
||||
$(HELP2MAN) --no-info -i $< -o $@ $(builddir)/$*
|
||||
|
||||
SUBDIRS = lib/ccan
|
2
NEWS
Normal file
2
NEWS
Normal file
|
@ -0,0 +1,2 @@
|
|||
v0.1:
|
||||
Initial version
|
14
README
Normal file
14
README
Normal file
|
@ -0,0 +1,14 @@
|
|||
sbsigntool - Signing utility for UEFI secure boot
|
||||
|
||||
Copyright (C) 2102 Jeremy Kerr <jeremy.kerr@canonical.com>
|
||||
|
||||
Copying and distribution of this file, with or without modification,
|
||||
are permitted in any medium without royalty provided the copyright
|
||||
notice and this notice are preserved.
|
||||
|
||||
See file ./INSTALL for building and installation instructions.
|
||||
|
||||
Main git repository:
|
||||
git://kernel.ubuntu.com/jk/sbsigntool.git
|
||||
|
||||
sbsigntool is free software. See the file COPYING for copying conditions.
|
33
autogen.sh
Executable file
33
autogen.sh
Executable file
|
@ -0,0 +1,33 @@
|
|||
#!/bin/bash
|
||||
|
||||
ccan_modules=talloc
|
||||
|
||||
# Add ccan upstream sources
|
||||
if [ ! -e lib/ccan.git/Makefile ]
|
||||
then
|
||||
git submodule init
|
||||
git submodule update
|
||||
fi
|
||||
|
||||
# create ccan build tree
|
||||
if [ ! -e lib/ccan ]
|
||||
then
|
||||
lib/ccan.git/tools/create-ccan-tree \
|
||||
--build-type=automake lib/ccan $ccan_modules
|
||||
fi
|
||||
|
||||
# Create generatable docs from git
|
||||
(
|
||||
echo "Authors of sbsigntool:"
|
||||
echo
|
||||
git log --format='%an' | sort -u | sed 's,^,\t,'
|
||||
) > AUTHORS
|
||||
|
||||
# Generate simple ChangeLog
|
||||
git log --date=short --format='%ad %t %an <%ae>%n%n * %s%n' > ChangeLog
|
||||
|
||||
# automagic
|
||||
aclocal
|
||||
autoheader
|
||||
autoconf
|
||||
automake --add-missing -Wno-portability
|
54
configure.ac
Normal file
54
configure.ac
Normal file
|
@ -0,0 +1,54 @@
|
|||
AC_INIT([sbsigntool], [0.1], [jeremy.kerr@canonical.com])
|
||||
|
||||
AM_INIT_AUTOMAKE()
|
||||
|
||||
AC_PREREQ(2.60)
|
||||
|
||||
AC_CONFIG_HEADERS(config.h)
|
||||
AC_CONFIG_SRCDIR(sbsign.c)
|
||||
|
||||
AC_PROG_CC
|
||||
AM_PROG_CC_C_O
|
||||
AC_PROG_CPP
|
||||
AC_PROG_RANLIB
|
||||
|
||||
if test $cross_compiling = no; then
|
||||
AM_MISSING_PROG(HELP2MAN, help2man)
|
||||
else
|
||||
HELP2MAN=:
|
||||
fi
|
||||
|
||||
AC_MSG_CHECKING([build system endianness])
|
||||
AC_PREPROC_IFELSE(
|
||||
[AC_LANG_PROGRAM([[#include <endian.h>]],
|
||||
[[#if __BYTE_ORDER != __LITTLE_ENDIAN]]
|
||||
[[#error]]
|
||||
[[#endif]])],
|
||||
endian=little
|
||||
little_endian=1
|
||||
big_endian=0)
|
||||
|
||||
AC_PREPROC_IFELSE(
|
||||
[AC_LANG_PROGRAM([[#include <endian.h>]],
|
||||
[[#if __BYTE_ORDER != __BIG_ENDIAN]]
|
||||
[[#error]]
|
||||
[[#endif]])],
|
||||
endian=big
|
||||
little_endian=0
|
||||
big_endian=1)
|
||||
|
||||
|
||||
if test x"$endian" != "xbig" -a x"$endian" != "xlittle"; then
|
||||
AC_MSG_ERROR([Can't determine endianness; is endian.h present?])
|
||||
fi
|
||||
AC_MSG_RESULT($endian)
|
||||
AC_DEFINE_UNQUOTED(HAVE_LITTLE_ENDIAN, $little_endian, [Little-endian system])
|
||||
AC_DEFINE_UNQUOTED(HAVE_BIG_ENDIAN, $big_endian, [Big-endian system])
|
||||
|
||||
PKG_PROG_PKG_CONFIG()
|
||||
PKG_CHECK_MODULES(libcrypto, libcrypto,
|
||||
[],
|
||||
AC_MSG_ERROR([libcrypto (from the OpenSSL package) is required]))
|
||||
|
||||
AC_CONFIG_FILES([Makefile lib/ccan/Makefile])
|
||||
AC_OUTPUT
|
|
@ -1 +1 @@
|
|||
Subproject commit ebcbbcfafce6a239724c841d30b9ba345cef41e4
|
||||
Subproject commit b1f28e17227f2320d07fe052a8a48942fe17caa5
|
Loading…
Reference in a new issue