Home | History | Annotate | Download | only in tests
      1 #***************************************************************************
      2 #                                  _   _ ____  _
      3 #  Project                     ___| | | |  _ \| |
      4 #                             / __| | | | |_) | |
      5 #                            | (__| |_| |  _ <| |___
      6 #                             \___|\___/|_| \_\_____|
      7 #
      8 # Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel (a] 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 
     23 HTMLPAGES = testcurl.html runtests.html
     24 PDFPAGES = testcurl.pdf runtests.pdf
     25 
     26 EXTRA_DIST = ftpserver.pl httpserver.pl secureserver.pl runtests.pl getpart.pm \
     27  FILEFORMAT README stunnel.pem memanalyze.pl testcurl.pl valgrind.pm ftp.pm   \
     28  sshserver.pl sshhelp.pm pathhelp.pm testcurl.1 runtests.1 \
     29  $(HTMLPAGES) $(PDFPAGES) \
     30  serverhelp.pm tftpserver.pl rtspserver.pl directories.pm symbol-scan.pl \
     31  CMakeLists.txt mem-include-scan.pl valgrind.supp http_pipe.py extern-scan.pl \
     32  manpage-scan.pl nroff-scan.pl http2-server.pl
     33 
     34 DISTCLEANFILES = configurehelp.pm
     35 
     36 # we have two variables here to make sure DIST_SUBDIRS won't get 'unit'
     37 # added twice as then targets such as 'distclean' misbehave and try to
     38 # do things twice in that subdir at times (and thus fails).
     39 if BUILD_UNITTESTS
     40 BUILD_UNIT = unit
     41 DIST_UNIT =
     42 else
     43 BUILD_UNIT =
     44 DIST_UNIT = unit
     45 endif
     46 
     47 SUBDIRS = certs data server libtest $(BUILD_UNIT)
     48 DIST_SUBDIRS = $(SUBDIRS) $(DIST_UNIT)
     49 
     50 PERLFLAGS = -I$(srcdir)
     51 
     52 CLEANFILES = .http.pid .https.pid .ftp.pid .ftps.pid
     53 
     54 MAN2HTML= roffit $< >$@
     55 
     56 curl:
     57 	@cd $(top_builddir) && $(MAKE)
     58 
     59 if CROSSCOMPILING
     60 TEST = @echo "NOTICE: we can't run the tests when cross-compiling!"
     61 else # if not cross-compiling:
     62 TEST = srcdir=$(srcdir) $(PERL) $(PERLFLAGS) $(srcdir)/runtests.pl
     63 TEST_Q = -a -s
     64 TEST_AM = -a -am
     65 TEST_F = -a -p -r
     66 TEST_T = -a -t
     67 endif
     68 
     69 # make sure that PERL is pointing to an executable
     70 perlcheck:
     71 	@if ! test -x "$(PERL)"; then echo "No perl!"; exit 2; fi
     72 
     73 test: perlcheck all
     74 	$(TEST)
     75 
     76 quiet-test: perlcheck all
     77 	$(TEST) $(TEST_Q)
     78 
     79 am-test: perlcheck all
     80 	$(TEST) $(TEST_AM)
     81 
     82 full-test: perlcheck all
     83 	$(TEST) $(TEST_F)
     84 
     85 torture-test: perlcheck all
     86 	$(TEST) $(TEST_T)
     87 
     88 .1.html:
     89 	$(MAN2HTML)
     90 
     91 .1.pdf:
     92 	@(foo=`echo $@ | sed -e 's/\.[0-9]$$//g'`; \
     93 	groff -Tps -man $< >$$foo.ps; \
     94 	ps2pdf $$foo.ps $@; \
     95 	rm $$foo.ps; \
     96 	echo "converted $< to $@")
     97 
     98 checksrc:
     99 	cd libtest && $(MAKE) checksrc
    100 	cd unit && $(MAKE) checksrc
    101 	cd server && $(MAKE) checksrc
    102