aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRob Austein <sra@hactrn.net>2010-12-29 00:33:44 +0000
committerRob Austein <sra@hactrn.net>2010-12-29 00:33:44 +0000
commit6b34f4c5976637fbcd3652f499ece7daff24dadf (patch)
treeef81d0980bd79681f044e62a57b2e11ef38000e4
parent73e5d62ba08c2eda82be9d5e5ebc6a817850e9cc (diff)
Autoconf now knows how to build rcynic and utils against either our
private OpenSSL or system OpenSSL. Not (yet) hacked for POW and pywrap, nor tested (yet) on any other platform. Mechanism we're using to find our private OpenSSL directory now is kind of icky, may need to switch to some kind of double indirection scheme using AC_SUBST_FILE to hide the nasty bits. svn path=/configure; revision=3580
-rwxr-xr-xconfigure16
-rw-r--r--configure.ac17
-rw-r--r--rcynic/Makefile.in21
-rw-r--r--rcynic/rcynic.c6
-rw-r--r--utils/find_roa/Makefile.in21
-rw-r--r--utils/hashdir/Makefile.in20
-rw-r--r--utils/print_manifest/Makefile.in19
-rw-r--r--utils/print_roa/Makefile.in18
-rw-r--r--utils/uri/Makefile.in18
9 files changed, 83 insertions, 73 deletions
diff --git a/configure b/configure
index f810887a..fff7c457 100755
--- a/configure
+++ b/configure
@@ -700,6 +700,7 @@ XSLTPROC
AWK
PYTHON
TOP_LEVEL_SUBDIRS
+RPKITOOLS_TOP_BUILDDIR
OPENSSL_CONFIG_COMMAND
PYWRAP
LIBOBJS
@@ -3837,8 +3838,8 @@ _ACEOF
# know how to do it on all platforms, so we try the hack we know, and
# if that doesn't work, oh well.
-{ $as_echo "$as_me:$LINENO: checking if linker supports -static" >&5
-$as_echo_n "checking if linker supports -static... " >&6; }
+{ $as_echo "$as_me:$LINENO: checking whether linker supports -static" >&5
+$as_echo_n "checking whether linker supports -static... " >&6; }
old_LDFLAGS="$LDFLAGS"
LDFLAGS="$LDFLAGS -static"
cat >conftest.$ac_ext <<_ACEOF
@@ -4503,6 +4504,12 @@ test $build_python = yes && TOP_LEVEL_SUBDIRS="$TOP_LEVEL_SUBDIRS pow rpkid"
ac_config_files="$ac_config_files Makefile rcynic/Makefile utils/Makefile utils/find_roa/Makefile utils/hashdir/Makefile utils/print_manifest/Makefile utils/print_roa/Makefile utils/uri/Makefile"
+# If there's some sane way to do this with a built-in autoconf
+# variable, I don't know what it is, so copy what BIND9 does.
+
+RPKITOOLS_TOP_BUILDDIR=`pwd`
+
+
# OpenSSL has its own build system that bears no relationship to
# anything but itself. On at least one platform, OpenSSL's opinion on
# the right thing to do is so completely at odds with everything else
@@ -4530,6 +4537,9 @@ $as_echo_n "checking what configuration target to use when building OpenSSL... "
{ $as_echo "$as_me:$LINENO: result: $OPENSSL_CONFIG_COMMAND" >&5
$as_echo "$OPENSSL_CONFIG_COMMAND" >&6; }
+
+ LDFLAGS="$LDFLAGS -L$RPKITOOLS_TOP_BUILDDIR/openssl/openssl"
+ CFLAGS="$CFLAGS -I$RPKITOOLS_TOP_BUILDDIR/openssl/openssl/include"
fi
# Sort out which interpreter POW-using Python programs should use.
@@ -4538,7 +4548,7 @@ if test $build_pywrap = yes
then
# Eventually this should be the installation directory, but
# for now we're still running out of the build tree.
- PYWRAP=`pwd`/pow/pywrap/pywrap
+ PYWRAP=$RPKITOOLS_TOP_BUILDDIR/pow/pywrap/pywrap
else
# If we don't need pywrap, just make it expand to python
PYWRAP=$PYTHON
diff --git a/configure.ac b/configure.ac
index cfe4e7a0..28f41b9d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,10 +1,6 @@
# -*- Autoconf -*-
# $Id$
-# Bare-bones autoconf for RPKI tools. This will almost certainly
-# expand later, right now I'm only using it for things that absolutely
-# must be configured just to get the code to build at all.
-
AC_PREREQ(2.61)
AC_INIT(rpkitools, 1.0,)
AC_CONFIG_SRCDIR([rcynic/rcynic.c])
@@ -20,7 +16,7 @@ AC_CHECK_SIZEOF([long])
# know how to do it on all platforms, so we try the hack we know, and
# if that doesn't work, oh well.
-AC_MSG_CHECKING([if linker supports -static])
+AC_MSG_CHECKING([whether linker supports -static])
old_LDFLAGS="$LDFLAGS"
LDFLAGS="$LDFLAGS -static"
AC_LINK_IFELSE(
@@ -212,6 +208,12 @@ AC_CONFIG_FILES([Makefile
utils/print_roa/Makefile
utils/uri/Makefile])
+# If there's some sane way to do this with a built-in autoconf
+# variable, I don't know what it is, so copy what BIND9 does.
+
+RPKITOOLS_TOP_BUILDDIR=`pwd`
+AC_SUBST(RPKITOOLS_TOP_BUILDDIR)
+
# OpenSSL has its own build system that bears no relationship to
# anything but itself. On at least one platform, OpenSSL's opinion on
# the right thing to do is so completely at odds with everything else
@@ -236,6 +238,9 @@ then
esac
AC_SUBST(OPENSSL_CONFIG_COMMAND)
AC_MSG_RESULT([$OPENSSL_CONFIG_COMMAND])
+
+ LDFLAGS="$LDFLAGS -L$RPKITOOLS_TOP_BUILDDIR/openssl/openssl"
+ CFLAGS="$CFLAGS -I$RPKITOOLS_TOP_BUILDDIR/openssl/openssl/include"
fi
# Sort out which interpreter POW-using Python programs should use.
@@ -244,7 +249,7 @@ if test $build_pywrap = yes
then
# Eventually this should be the installation directory, but
# for now we're still running out of the build tree.
- PYWRAP=`pwd`/pow/pywrap/pywrap
+ PYWRAP=$RPKITOOLS_TOP_BUILDDIR/pow/pywrap/pywrap
else
# If we don't need pywrap, just make it expand to python
PYWRAP=$PYTHON
diff --git a/rcynic/Makefile.in b/rcynic/Makefile.in
index 1d146b7c..b003437e 100644
--- a/rcynic/Makefile.in
+++ b/rcynic/Makefile.in
@@ -1,25 +1,22 @@
# $Id$
-OPENSSL_DIR = ../openssl/openssl
+NAME = rcynic
-# Disable -Werror as long as we're using OpenSSL snapshots.
+BIN = ${NAME}
+SRC = ${NAME}.c
+OBJ = ${NAME}.o
-CFLAGS = -g -I${OPENSSL_DIR}/include -Wall -Wshadow -Wmissing-prototypes -Wmissing-declarations
-LDFLAGS = @LD_STATIC_FLAG@
-
-# -H -Wl,-t
-
-BIN = rcynic
-OBJ = rcynic.o
-LIB = ${OPENSSL_DIR}/libcrypto.a
+CFLAGS = @CFLAGS@ -Wall -Wshadow -Wmissing-prototypes -Wmissing-declarations
+LDFLAGS = @LDFLAGS@ @LD_STATIC_FLAG@
+LIBS = @LIBS@
all: ${BIN}
clean:
rm -f ${BIN} ${OBJ}
-${BIN}: ${OBJ} ${LIB} Makefile
- ${CC} -g -o $@ ${OBJ} ${LIB} ${LDFLAGS}
+${BIN}: ${SRC}
+ ${CC} ${CFLAGS} -o $@ ${SRC} ${LDFLAGS} -lcrypto ${LIBS}
test: ${BIN}
if test -r rcynic.conf; then ./${BIN} -j 0 && echo && ./show.sh; else echo No rcynic.conf, skipping test; fi
diff --git a/rcynic/rcynic.c b/rcynic/rcynic.c
index 988736ac..b78e2410 100644
--- a/rcynic/rcynic.c
+++ b/rcynic/rcynic.c
@@ -1363,8 +1363,10 @@ static int rsync(const rcynic_ctx_t *rc,
close(pipe_fds[1]);
- deadline = time(0) + rc->rsync_timeout;
+ now = time(0);
+ deadline = now + rc->rsync_timeout;
+ n = -1;
i = 0;
while ((wpid = waitpid(pid, &pid_status, WNOHANG)) == 0 &&
(!rc->rsync_timeout || (now = time(0)) < deadline)) {
@@ -3226,7 +3228,7 @@ int main(int argc, char *argv[])
time_t tad_time = time(0);
struct tm *tad_tm = gmtime(&tad_time);
int ok = 1, use_stdout = !strcmp(xmlfile, "-");
- FILE *f;
+ FILE *f = NULL;
strftime(tad, sizeof(tad), "%Y-%m-%dT%H:%M:%SZ", tad_tm);
diff --git a/utils/find_roa/Makefile.in b/utils/find_roa/Makefile.in
index 7d22c936..559d1370 100644
--- a/utils/find_roa/Makefile.in
+++ b/utils/find_roa/Makefile.in
@@ -1,26 +1,25 @@
# $Id$
-OPENSSL_DIR = ../../openssl/openssl
-
-CFLAGS = -g -I${OPENSSL_DIR}/include -Wall
-
-# -H -Wl,-t
-
NAME = find_roa
BIN = ${NAME}
+SRC = ${NAME}.c
OBJ = ${NAME}.o
-LIB = ${OPENSSL_DIR}/libcrypto.a
+
+CFLAGS = @CFLAGS@
+LDFLAGS = @LDFLAGS@
+LIBS = @LIBS@
all: ${BIN}
clean:
- rm -rf ${BIN} ${OBJ} hashed-pem-dir
+ rm -f ${BIN} ${OBJ}
+
+${BIN}: ${SRC}
+ ${CC} ${CFLAGS} -o $@ ${SRC} ${LDFLAGS} -lcrypto ${LIBS}
-${BIN}: ${OBJ} ${LIB} Makefile
- ${CC} -g -o $@ ${OBJ} ${LIB}
-TEST_ARGS = ../../rcynic/rcynic-data/authenticated 10.3.0.44 10.2.0.6 10.0.0.0/24
+TEST_ARGS = @top_srcdir@/rcynic/rcynic-data/authenticated 10.3.0.44 10.2.0.6 10.0.0.0/24
test: ${BIN}
# ./${BIN} ${TEST_ARGS}
diff --git a/utils/hashdir/Makefile.in b/utils/hashdir/Makefile.in
index 7c779d7a..29004c6f 100644
--- a/utils/hashdir/Makefile.in
+++ b/utils/hashdir/Makefile.in
@@ -1,24 +1,24 @@
# $Id$
-OPENSSL_DIR = ../../openssl/openssl
+NAME = hashdir
-CFLAGS = -g -I${OPENSSL_DIR}/include
+BIN = ${NAME}
+SRC = ${NAME}.c
+OBJ = ${NAME}.o
-# -H -Wl,-t
-
-BIN = hashdir
-OBJ = hashdir.o
-LIB = ${OPENSSL_DIR}/libcrypto.a
+CFLAGS = @CFLAGS@
+LDFLAGS = @LDFLAGS@
+LIBS = @LIBS@
all: ${BIN}
clean::
rm -f ${BIN} ${OBJ}
-${BIN}: ${OBJ} ${LIB} Makefile
- ${CC} -g -o $@ ${OBJ} ${LIB}
+${BIN}: ${SRC}
+ ${CC} ${CFLAGS} -o $@ ${SRC} ${LDFLAGS} -lcrypto ${LIBS}
-INPUT = ../../rcynic/rcynic-data/authenticated
+INPUT = @top_srcdir@/rcynic/rcynic-data/authenticated
OUTPUT = hashed-pem-dir
test: ${BIN}
diff --git a/utils/print_manifest/Makefile.in b/utils/print_manifest/Makefile.in
index 1e6cb878..c1d8ca40 100644
--- a/utils/print_manifest/Makefile.in
+++ b/utils/print_manifest/Makefile.in
@@ -1,26 +1,25 @@
# $Id$
-OPENSSL_DIR = ../../openssl/openssl
-
-CFLAGS = -g -I${OPENSSL_DIR}/include -Wall
-
-# -H -Wl,-t
-
NAME = print_manifest
+
BIN = ${NAME}
+SRC = ${NAME}.c
OBJ = ${NAME}.o
-LIB = ${OPENSSL_DIR}/libcrypto.a
+
+CFLAGS = @CFLAGS@
+LDFLAGS = @LDFLAGS@
+LIBS = @LIBS@
all: ${BIN}
clean:
rm -f ${BIN} ${OBJ}
-${BIN}: ${OBJ} ${LIB} Makefile
- ${CC} -g -o $@ ${OBJ} ${LIB}
+${BIN}: ${SRC}
+ ${CC} ${CFLAGS} -o $@ ${SRC} ${LDFLAGS} -lcrypto ${LIBS}
-MANIFEST_DIR = ../../rpkid/tests/smoketest.dir/publication
+MANIFEST_DIR = @top_srcdir@/rpkid/tests/smoketest.dir/publication
test: all
-date -u +'now: %Y%m%d%H%M%SZ'
diff --git a/utils/print_roa/Makefile.in b/utils/print_roa/Makefile.in
index 2d6dcddc..c4da5730 100644
--- a/utils/print_roa/Makefile.in
+++ b/utils/print_roa/Makefile.in
@@ -1,26 +1,24 @@
# $Id$
-OPENSSL_DIR = ../../openssl/openssl
-
-CFLAGS = -g -I${OPENSSL_DIR}/include -Wall
-
-# -H -Wl,-t
-
NAME = print_roa
BIN = ${NAME}
+SRC = ${NAME}.c
OBJ = ${NAME}.o
-LIB = ${OPENSSL_DIR}/libcrypto.a
+
+CFLAGS = @CFLAGS@
+LDFLAGS = @LDFLAGS@
+LIBS = @LIBS@
all: ${BIN}
clean:
rm -f ${BIN} ${OBJ}
-${BIN}: ${OBJ} ${LIB} Makefile
- ${CC} -g -o $@ ${OBJ} ${LIB}
+${BIN}: ${SRC}
+ ${CC} ${CFLAGS} -o $@ ${SRC} ${LDFLAGS} -lcrypto ${LIBS}
-ROA_DIR = ../../rpkid/tests/smoketest.dir/publication
+ROA_DIR = @top_srcdir@/rpkid/tests/smoketest.dir/publication
test: all
-date -u +'now: %Y%m%d%H%M%SZ'
diff --git a/utils/uri/Makefile.in b/utils/uri/Makefile.in
index 229dc702..88f12de7 100644
--- a/utils/uri/Makefile.in
+++ b/utils/uri/Makefile.in
@@ -1,22 +1,22 @@
# $Id$
-OPENSSL_DIR = ../../openssl/openssl
+NAME = uri
-CFLAGS = -g -I${OPENSSL_DIR}/include
+BIN = ${NAME}
+SRC = ${NAME}.c
+OBJ = ${NAME}.o
-# -H -Wl,-t
-
-BIN = uri
-OBJ = uri.o
-LIB = ${OPENSSL_DIR}/libcrypto.a
+CFLAGS = @CFLAGS@
+LDFLAGS = @LDFLAGS@
+LIBS = @LIBS@
all: ${BIN}
clean:
rm -f ${BIN} ${OBJ}
-${BIN}: ${OBJ} ${LIB} Makefile
- ${CC} -g -o $@ ${OBJ} ${LIB}
+${BIN}: ${SRC}
+ ${CC} ${CFLAGS} -o $@ ${SRC} ${LDFLAGS} -lcrypto ${LIBS}
test:
@true