X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2FMakefile.am;h=52a68c526fee5f3d244e1332bf973325961bd0c4;hb=bda6f264bdcc6f0d337836cda66fe8251eb6c83f;hp=5db53357ae5732de061719e85c2802242491d2a3;hpb=38a9b14965c797f6763abb4f8a8a06113711260f;p=platform%2Fupstream%2Fcurl.git diff --git a/src/Makefile.am b/src/Makefile.am index 5db5335..52a68c5 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -1,54 +1,144 @@ +#*************************************************************************** +# _ _ ____ _ +# Project ___| | | | _ \| | +# / __| | | | |_) | | +# | (__| |_| | _ <| |___ +# \___|\___/|_| \_\_____| # -# $Id$ +# Copyright (C) 1998 - 2017, Daniel Stenberg, , et al. # - +# This software is licensed as described in the file COPYING, which +# you should have received as part of this distribution. The terms +# are also available at https://curl.haxx.se/docs/copyright.html. +# +# You may opt to use, copy, modify, merge, publish, distribute and/or sell +# copies of the Software, and permit persons to whom the Software is +# furnished to do so, under the terms of the COPYING file. +# +# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY +# KIND, either express or implied. +# +########################################################################### AUTOMAKE_OPTIONS = foreign nostdinc -# we use srcdir/include for the static global include files -# we use builddir/src for the generated src/config.h file to get found -# we use srcdir/lib for the client-private header files -INCLUDES = -I$(top_srcdir)/include -I$(top_builddir)/src -I$(top_srcdir)/src +# remove targets if the command fails +.DELETE_ON_ERROR: -bin_PROGRAMS = curl #memtest +# Specify our include paths here, and do it relative to $(top_srcdir) and +# $(top_builddir), to ensure that these paths which belong to the library +# being currently built and tested are searched before the library which +# might possibly already be installed in the system. +# +# $(top_srcdir)/include is for libcurl's external include files +# $(top_builddir)/lib is for libcurl's generated lib/curl_config.h file +# $(top_builddir)/src is for curl's generated src/curl_config.h file +# $(top_srcdir)/lib for libcurl's lib/curl_setup.h and other "borrowed" files +# $(top_srcdir)/src is for curl's src/tool_setup.h and "curl-private" files -if HAVE_LIBZ -# libz available, attempt to compress the help data -MKHELPOPT=-c +AM_CPPFLAGS = -I$(top_srcdir)/include \ + -I$(top_builddir)/lib \ + -I$(top_builddir)/src \ + -I$(top_srcdir)/lib \ + -I$(top_srcdir)/src + +bin_PROGRAMS = curl + +SUBDIRS = ../docs + +if USE_CPPFLAG_CURL_STATICLIB +AM_CPPFLAGS += -DCURL_STATICLIB +endif + +include Makefile.inc + +# CURL_FILES comes from Makefile.inc +curl_SOURCES = $(CURL_FILES) + +# This might hold -Werror +# Enable Position Independent Executable flag +CFLAGS += @CURL_CFLAG_EXTRAS@ -fPIE +LDFLAGS += -pie + +# Prevent LIBS from being used for all link targets +LIBS = $(BLANK_AT_MAKETIME) + +if USE_EXPLICIT_LIB_DEPS +curl_LDADD = $(top_builddir)/lib/libcurl.la @LIBMETALINK_LIBS@ @LIBCURL_LIBS@ else -# no libz, don't try to compress -MKHELPOPT= +curl_LDADD = $(top_builddir)/lib/libcurl.la @LIBMETALINK_LIBS@ @NSS_LIBS@ @SSL_LIBS@ @ZLIB_LIBS@ @CURL_NETWORK_AND_TIME_LIBS@ endif -#memtest_SOURCES = memtest.c -#memtest_LDADD = $(top_srcdir)/lib/libcurl.la +curl_LDFLAGS = @LIBMETALINK_LDFLAGS@ +curl_CPPFLAGS = $(AM_CPPFLAGS) $(LIBMETALINK_CPPFLAGS) + +@CODE_COVERAGE_RULES@ +curl_LDFLAGS += $(CODE_COVERAGE_LDFLAGS) +CFLAGS += $(CODE_COVERAGE_CFLAGS) -curl_SOURCES = main.c hugehelp.c urlglob.c writeout.c setup.h \ - config-win32.h config-mac.h config-vms.h config-riscos.h \ - urlglob.h version.h writeout.h writeenv.c writeenv.h +# if unit tests are enabled, build a static library to link them with +if BUILD_UNITTESTS +noinst_LTLIBRARIES = libcurltool.la +libcurltool_la_CPPFLAGS = $(LIBMETALINK_CPPFLAGS) $(AM_CPPFLAGS) \ + -DCURL_STATICLIB -DUNITTESTS +libcurltool_la_CFLAGS = +libcurltool_la_LDFLAGS = -static $(LINKFLAGS) +libcurltool_la_SOURCES = $(curl_SOURCES) +endif -curl_LDADD = ../lib/libcurl.la -curl_DEPENDENCIES = ../lib/libcurl.la -BUILT_SOURCES = hugehelp.c -CLEANFILES = hugehelp.c -NROFF=@NROFF@ +CLEANFILES = tool_hugehelp.c +# Use the C locale to ensure that only ASCII characters appear in the +# embedded text. +NROFF=env LC_ALL=C @NROFF@ @MANOPT@ # figured out by the configure script -EXTRA_DIST = mkhelp.pl curlmsg.msg makefile.dj \ - Makefile.vc6 Makefile.b32 Makefile.m32 Makefile.riscos config.h.in \ - macos/curl.mcp.xml.sit.hqx \ - macos/MACINSTALL.TXT \ - macos/src/curl_GUSIConfig.cpp \ - macos/src/macos_main.cpp +EXTRA_DIST = mkhelp.pl makefile.dj Makefile.b32 \ + Makefile.m32 macos/curl.mcp.xml.sit.hqx macos/MACINSTALL.TXT \ + macos/src/curl_GUSIConfig.cpp macos/src/macos_main.cpp makefile.amiga \ + curl.rc Makefile.netware Makefile.inc Makefile.Watcom CMakeLists.txt -MANPAGE=$(top_srcdir)/docs/curl.1 +# Use absolute directory to disable VPATH +MANPAGE=$(abs_top_builddir)/docs/curl.1 README=$(top_srcdir)/docs/MANUAL MKHELP=$(top_srcdir)/src/mkhelp.pl +HUGE=tool_hugehelp.c + +if USE_MANUAL +# Here are the stuff to create a built-in manual + +$(MANPAGE): + cd $(top_builddir)/docs && $(MAKE) -# This generates the hugehelp.c file -hugehelp.c: $(README) $(MANPAGE) mkhelp.pl - rm -f hugehelp.c - $(NROFF) -man $(MANPAGE) | $(PERL) $(MKHELP) $(MKHELPOPT) $(README) > hugehelp.c +if HAVE_LIBZ +# This generates the tool_hugehelp.c file in both uncompressed and +# compressed formats. +$(HUGE): $(MANPAGE) $(README) $(MKHELP) + echo '#include "tool_setup.h"' > $(HUGE) + echo '#ifndef HAVE_LIBZ' >> $(HUGE) + $(NROFF) $(MANPAGE) | $(PERL) $(MKHELP) $(README) >> $(HUGE) + echo '#else' >> $(HUGE) + $(NROFF) $(MANPAGE) | $(PERL) $(MKHELP) -c $(README) >> $(HUGE) + echo '#endif /* HAVE_LIBZ */' >> $(HUGE) +else # HAVE_LIBZ +# This generates the tool_hugehelp.c file uncompressed only +$(HUGE): $(MANPAGE) $(README) $(MKHELP) + echo '#include "tool_setup.h"' > $(HUGE) + $(NROFF) $(MANPAGE) | $(PERL) $(MKHELP) $(README) >> $(HUGE) +endif + +else # USE_MANUAL +# built-in manual has been disabled, make a blank file +$(HUGE): + echo "/* built-in manual is disabled, blank function */" > $(HUGE) + echo '#include "tool_hugehelp.h"' >> $(HUGE) + echo "void hugehelp(void) {}" >>$(HUGE) +endif + +# ignore tool_hugehelp.c since it is generated source code and it plays +# by slightly different rules! +checksrc: + @PERL@ $(top_srcdir)/lib/checksrc.pl -D$(srcdir) \ + -W$(srcdir)/tool_hugehelp.c $(srcdir)/*.[ch] -# for distribution, generate an uncompressed help file! -dist-hook: - chmod 0666 $(distdir)/hugehelp.c - $(NROFF) -man $(MANPAGE) | $(PERL) $(MKHELP) $(README) > $(distdir)/hugehelp.c +if CURLDEBUG +# for debug builds, we scan the sources on all regular make invokes +all-local: checksrc +endif