aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/Makefile.am8
-rw-r--r--src/tool_main.c4
-rw-r--r--tests/unit/Makefile.am11
3 files changed, 21 insertions, 2 deletions
diff --git a/src/Makefile.am b/src/Makefile.am
index 814af6ed0..9cf15455b 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -66,6 +66,14 @@ curl_LDFLAGS = @LIBMETALINK_LDFLAGS@
curl_CPPFLAGS = $(AM_CPPFLAGS) $(LIBMETALINK_CPPFLAGS)
curl_DEPENDENCIES = $(top_builddir)/lib/libcurl.la
+# if unit tests are enabled, build a static library to link them with
+if BUILD_UNITTESTS
+noinst_LTLIBRARIES = libcurltool.la
+libcurltool_la_CFLAGS = -DUNITTESTS
+libcurltool_la_LDFLAGS = -static $(LINKFLAGS)
+libcurltool_la_SOURCES = $(curl_SOURCES)
+endif
+
BUILT_SOURCES = tool_hugehelp.c
CLEANFILES = tool_hugehelp.c
# Use the C locale to ensure that only ASCII characters appear in the
diff --git a/src/tool_main.c b/src/tool_main.c
index 5e1010aa8..8f2fbb77b 100644
--- a/src/tool_main.c
+++ b/src/tool_main.c
@@ -55,6 +55,9 @@
int vms_show = 0;
#endif
+/* if we build a static library for unit tests, there is no main() function */
+#ifndef UNITTESTS
+
/*
* Ensure that file descriptors 0, 1 and 2 (stdin, stdout, stderr) are
* open before starting to run. Otherwise, the first three network
@@ -118,3 +121,4 @@ int main(int argc, char *argv[])
#endif
}
+#endif /* ndef UNITTESTS */
diff --git a/tests/unit/Makefile.am b/tests/unit/Makefile.am
index 666fc00ea..4b47f728b 100644
--- a/tests/unit/Makefile.am
+++ b/tests/unit/Makefile.am
@@ -40,6 +40,7 @@ AM_CPPFLAGS = -I$(top_builddir)/include/curl \
-I$(top_srcdir)/include \
-I$(top_builddir)/lib \
-I$(top_srcdir)/lib \
+ -I$(top_srcdir)/src \
-I$(top_srcdir)/tests/libtest \
-I$(top_builddir)/ares \
-I$(top_srcdir)/ares
@@ -49,6 +50,7 @@ AM_CPPFLAGS = -I$(top_builddir)/include/curl \
-I$(top_srcdir)/include \
-I$(top_builddir)/lib \
-I$(top_srcdir)/lib \
+ -I$(top_srcdir)/src \
-I$(top_srcdir)/tests/libtest
endif
@@ -57,8 +59,13 @@ EXTRA_DIST = Makefile.inc
# Prevent LIBS from being used for all link targets
LIBS = $(BLANK_AT_MAKETIME)
-LDADD = $(top_builddir)/lib/libcurlu.la @LDFLAGS@ @LIBCURL_LIBS@
-DEPENDENCIES = $(top_builddir)/lib/libcurlu.la
+LDADD = $(top_builddir)/src/libcurltool.la \
+ $(top_builddir)/lib/libcurlu.la \
+ @LDFLAGS@ @LIBCURL_LIBS@
+
+DEPENDENCIES = $(top_builddir)/src/libcurltool.la \
+ $(top_builddir)/lib/libcurlu.la
+
AM_CPPFLAGS += -DCURL_STATICLIB -DUNITTESTS
# Makefile.inc provides neat definitions