1: #***************************************************************************
2: # _ _ ____ _
3: # Project ___| | | | _ \| |
4: # / __| | | | |_) | |
5: # | (__| |_| | _ <| |___
6: # \___|\___/|_| \_\_____|
7: #
8: # Copyright (C) 1998 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al.
9: #
10: # This software is licensed as described in the file COPYING, which
11: # you should have received as part of this distribution. The terms
12: # are also available at https://curl.haxx.se/docs/copyright.html.
13: #
14: # You may opt to use, copy, modify, merge, publish, distribute and/or sell
15: # copies of the Software, and permit persons to whom the Software is
16: # furnished to do so, under the terms of the COPYING file.
17: #
18: # This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
19: # KIND, either express or implied.
20: #
21: ###########################################################################
22: AUTOMAKE_OPTIONS = foreign nostdinc
23:
24: # remove targets if the command fails
25: .DELETE_ON_ERROR:
26:
27: # Specify our include paths here, and do it relative to $(top_srcdir) and
28: # $(top_builddir), to ensure that these paths which belong to the library
29: # being currently built and tested are searched before the library which
30: # might possibly already be installed in the system.
31: #
32: # $(top_srcdir)/include is for libcurl's external include files
33: # $(top_builddir)/lib is for libcurl's generated lib/curl_config.h file
34: # $(top_builddir)/src is for curl's generated src/curl_config.h file
35: # $(top_srcdir)/lib for libcurl's lib/curl_setup.h and other "borrowed" files
36: # $(top_srcdir)/src is for curl's src/tool_setup.h and "curl-private" files
37:
38: AM_CPPFLAGS = -I$(top_srcdir)/include \
39: -I$(top_builddir)/lib \
40: -I$(top_builddir)/src \
41: -I$(top_srcdir)/lib \
42: -I$(top_srcdir)/src
43:
44: bin_PROGRAMS = curl
45:
46: SUBDIRS = ../docs
47:
48: if USE_CPPFLAG_CURL_STATICLIB
49: AM_CPPFLAGS += -DCURL_STATICLIB
50: endif
51:
52: include Makefile.inc
53:
54: # CURL_FILES comes from Makefile.inc
55: curl_SOURCES = $(CURL_FILES)
56:
57: # This might hold -Werror
58: CFLAGS += @CURL_CFLAG_EXTRAS@
59:
60: # Prevent LIBS from being used for all link targets
61: LIBS = $(BLANK_AT_MAKETIME)
62:
63: if USE_EXPLICIT_LIB_DEPS
64: curl_LDADD = $(top_builddir)/lib/libcurl.la @LIBMETALINK_LIBS@ @LIBCURL_LIBS@
65: else
66: curl_LDADD = $(top_builddir)/lib/libcurl.la @LIBMETALINK_LIBS@ @NSS_LIBS@ @SSL_LIBS@ @ZLIB_LIBS@ @CURL_NETWORK_AND_TIME_LIBS@
67: endif
68:
69: curl_LDFLAGS = @LIBMETALINK_LDFLAGS@
70: curl_CPPFLAGS = $(AM_CPPFLAGS) $(LIBMETALINK_CPPFLAGS)
71:
72: # if unit tests are enabled, build a static library to link them with
73: if BUILD_UNITTESTS
74: noinst_LTLIBRARIES = libcurltool.la
75: libcurltool_la_CPPFLAGS = $(LIBMETALINK_CPPFLAGS) $(AM_CPPFLAGS) \
76: -DCURL_STATICLIB -DUNITTESTS
77: libcurltool_la_CFLAGS =
78: libcurltool_la_LDFLAGS = -static $(LINKFLAGS)
79: libcurltool_la_SOURCES = $(curl_SOURCES)
80: endif
81:
82: CLEANFILES = tool_hugehelp.c
83: # Use the C locale to ensure that only ASCII characters appear in the
84: # embedded text.
85: NROFF=env LC_ALL=C @NROFF@ @MANOPT@ # figured out by the configure script
86:
87: EXTRA_DIST = mkhelp.pl makefile.dj \
88: Makefile.m32 macos/curl.mcp.xml.sit.hqx macos/MACINSTALL.TXT \
89: macos/src/curl_GUSIConfig.cpp macos/src/macos_main.cpp makefile.amiga \
90: curl.rc Makefile.netware Makefile.inc Makefile.Watcom CMakeLists.txt
91:
92: # Use absolute directory to disable VPATH
93: MANPAGE=$(abs_top_builddir)/docs/curl.1
94: MKHELP=$(top_srcdir)/src/mkhelp.pl
95: HUGE=tool_hugehelp.c
96:
97: HUGECMD = $(HUGEIT_$(V))
98: HUGEIT_0 = @echo " HUGE " $@;
99: HUGEIT_1 =
100: HUGEIT_ = $(HUGEIT_0)
101:
102: CHECKSRC = $(CS_$(V))
103: CS_0 = @echo " RUN " $@;
104: CS_1 =
105: CS_ = $(CS_0)
106:
107: if USE_MANUAL
108: # Here are the stuff to create a built-in manual
109:
110: $(MANPAGE):
111: cd $(top_builddir)/docs && $(MAKE)
112:
113: if HAVE_LIBZ
114: # This generates the tool_hugehelp.c file in both uncompressed and
115: # compressed formats.
116: $(HUGE): $(MANPAGE) $(MKHELP)
117: $(HUGECMD) (echo '#include "tool_setup.h"' > $(HUGE); \
118: echo '#ifndef HAVE_LIBZ' >> $(HUGE); \
119: $(NROFF) $(MANPAGE) | $(PERL) $(MKHELP) >> $(HUGE); \
120: echo '#else' >> $(HUGE); \
121: $(NROFF) $(MANPAGE) | $(PERL) $(MKHELP) -c >> $(HUGE); \
122: echo '#endif /* HAVE_LIBZ */' >> $(HUGE) )
123: else # HAVE_LIBZ
124: # This generates the tool_hugehelp.c file uncompressed only
125: $(HUGE): $(MANPAGE) $(MKHELP)
126: $(HUGECMD)(echo '#include "tool_setup.h"' > $(HUGE); \
127: $(NROFF) $(MANPAGE) | $(PERL) $(MKHELP) >> $(HUGE) )
128: endif
129:
130: else # USE_MANUAL
131: # built-in manual has been disabled, make a blank file
132: $(HUGE):
133: $(HUGECMD)(echo "/* built-in manual is disabled, blank function */" > $(HUGE); \
134: echo '#include "tool_hugehelp.h"' >> $(HUGE); \
135: echo "void hugehelp(void) {}" >>$(HUGE) )
136: endif
137:
138: # ignore tool_hugehelp.c since it is generated source code and it plays
139: # by slightly different rules!
140: checksrc:
141: $(CHECKSRC)(@PERL@ $(top_srcdir)/lib/checksrc.pl -D$(srcdir) \
142: -W$(srcdir)/tool_hugehelp.c $(srcdir)/*.[ch])
143:
144: if CURLDEBUG
145: # for debug builds, we scan the sources on all regular make invokes
146: all-local: checksrc
147: endif
148:
149: # disable the tests that are mostly causing false positives
150: TIDYFLAGS=-checks=-clang-analyzer-security.insecureAPI.strcpy,-clang-analyzer-optin.performance.Padding,-clang-analyzer-valist.Uninitialized,-clang-analyzer-core.NonNullParamChecker,-clang-analyzer-core.NullDereference
151:
152: TIDY:=clang-tidy
153:
154: tidy:
155: $(TIDY) $(CURL_CFILES) $(TIDYFLAGS) -- $(curl_CPPFLAGS) $(CPPFLAGS) -DHAVE_CONFIG_H
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>