diff --git a/src/Makefile.am b/src/Makefile.am index 814af6ed032bd2cae08c76153fcd1e868e07e36a..9cf15455b437b05e9fe676acf37045c68563d02e 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 5e1010aa87516bb11fe30e57a0648e81f62ca36c..8f2fbb77b2d5f9b608e7ef485b0fa6f4558d8406 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 666fc00eab59b1c571892d8ea7968c9e83843cc0..4b47f728be960313bff53b27917a9d9b4a6f9357 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