summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMikael Magnusson <mikma@users.sourceforge.net>2019-04-11 01:28:40 +0200
committerMikael Magnusson <mikma@users.sourceforge.net>2020-09-13 18:05:34 +0200
commit772fd42ac5c89b625c2778c464be67f05f468121 (patch)
tree3d26177147525b509edad51a79a2b06c790e2e79
parentcb00ce3a68a2c41bfd85b3af1baf402345492797 (diff)
Configure: Support building as static library
-rw-r--r--Makefile.in12
-rw-r--r--configure.ac3
2 files changed, 13 insertions, 2 deletions
diff --git a/Makefile.in b/Makefile.in
index f2e4ce06..9b14c6d5 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -16,6 +16,7 @@ DAEMON_LIBS=@DAEMON_LIBS@
CLIENT_LIBS=@CLIENT_LIBS@
CC=@CC@
M4=@M4@
+AR=@AR@
BISON=@BISON@
FLEX=@FLEX@
RANLIB=@RANLIB@
@@ -25,6 +26,7 @@ INSTALL_DATA=@INSTALL_DATA@
client=$(addprefix $(exedir)/,@CLIENT@)
daemon=$(exedir)/bird
+static_lib=$(exedir)/libbird.a
protocols=@protocols@
prefix=@prefix@
@@ -67,10 +69,11 @@ testgoals := check test tests tests_run
cleangoals := clean distclean testsclean
.PHONY: all daemon cli $(docgoals) $(testgoals) $(cleangoals) tags cscope prepare
-all: daemon cli
+all: daemon cli static-lib
daemon: $(daemon)
cli: $(client)
+static-lib: $(static_lib)
$(daemon): LIBS += $(DAEMON_LIBS)
@@ -85,7 +88,7 @@ cf-local = $(conf-y-targets): $(s)config.Y
src-o-files = $(patsubst %.c,$(o)%.o,$(src))
tests-target-files = $(patsubst %.c,$(o)%,$(tests_src))
-all-daemon = $(daemon): $(obj)
+all-daemon = $(daemon) $(static_lib): $(obj)
all-client = $(client): $(obj)
s = $(dir $(lastword $(MAKEFILE_LIST)))
@@ -159,6 +162,11 @@ $(client) $(daemon):
$(E)echo LD $(LDFLAGS) -o $@ $^ $(LIBS)
$(Q)$(CC) $(LDFLAGS) -o $@ $^ $(LIBS)
+$(static_lib):
+ $(E)echo AR $(ARFLAGS) $@ $^
+ $(Q)$(AR) $(ARFLAGS) $@ $^
+ $(Q)$(RANLIB) $@
+
$(objdir)/sysdep/paths.h: Makefile
echo >$@ "/* Generated by Makefile, don't edit manually! */"
echo >>$@ "#define PATH_CONFIG_FILE \"@CONFIG_FILE@\""
diff --git a/configure.ac b/configure.ac
index 4b6c31cb..9de32908 100644
--- a/configure.ac
+++ b/configure.ac
@@ -77,6 +77,7 @@ AC_ARG_WITH([iproutedir],
AC_ARG_VAR([FLEX], [location of the Flex program])
AC_ARG_VAR([BISON], [location of the Bison program])
AC_ARG_VAR([M4], [location of the M4 program])
+AC_ARG_VAR([AR], [location of the AR program])
if test "$enable_debug_expensive" = yes; then
enable_debug=yes
@@ -182,10 +183,12 @@ AC_PROG_RANLIB
AC_CHECK_PROG([FLEX], [flex], [flex])
AC_CHECK_PROG([BISON], [bison], [bison])
AC_CHECK_PROGS([M4], [gm4 m4])
+AC_CHECK_PROGS([AR], [ar])
test -z "$FLEX" && AC_MSG_ERROR([Flex is missing.])
test -z "$BISON" && AC_MSG_ERROR([Bison is missing.])
test -z "$M4" && AC_MSG_ERROR([M4 is missing.])
+test -z "$AR" && AC_MSG_ERROR([AR is missing.])
AC_MSG_CHECKING([bison version])
BIRD_CHECK_BISON_VERSION(BISON_VERSION)