more things to do on connecting
[shellsnippets/hello-php-world.git] / BSDmakefile
1 BINFILES='\.(png|jpe?g|gif|deb|rpm|vpp|rtf)$$'
2
3 all:
4         # only some functions supported
5
6 metacheck: generated
7 .ifdef have_isutf8
8         @echo Checking that all files are in UTF-8
9         find * -type f -print0 | grep -zEv ${BINFILES} | xargs -0 -- isutf8
10 .endif
11         @echo Checking for CVS/git conflict markers
12         find * -type f -print0 | grep -zEv ${BINFILES} | xargs -0r mksh -c \
13             'grep -El "^[<>=]{7}( |\$$)" "$$@"; test $$? -eq 1' \
14             hpw-metacheck-helper-cvs
15 .ifdef have_pcregrep
16         @echo Ensuring there is no whitespace or CR at end of lines
17         find * -type f -print0 | grep -zEv ${BINFILES} | xargs -0r mksh -c \
18             'pcregrep -l $$'\''[\t\x0B-\x0D ]$$'\'' "$$@"; test $$? -eq 1' \
19             hpw-metacheck-helper-eol
20 .endif
21         @echo Checking for empty lines or missing newline at EOF
22         rv=0; find * -type f -print0 | grep -zEv ${BINFILES} |& \
23             while IFS= read -p -d '' -r name; do \
24                 if [[ -n "$$(tail -c -1 "$$name")" ]]; then \
25                         rv=1; \
26                         print -r -- "$$name: no newline at EOF"; \
27                 fi; \
28                 if [[ -s $$name && -z "$$(tail -n 1 "$$name")" ]]; then \
29                         rv=1; \
30                         print -r -- "$$name: empty line at EOF"; \
31                 fi; \
32         done; exit $$rv
33         @echo All done.
34
35 syntaxcheck: generated
36         @echo Running syntax checks, please verify output manually.
37         set +e; rv=0; find * -name '*.php' -print0 |& while IFS= read -p -d '' -r; do \
38                 php -l "$$REPLY" | grep -v '^No syntax errors detected in '; \
39                 (( PIPESTATUS[0] )) && rv=1; \
40         done; exit $$rv
41         @echo done.
42
43 GENERATED+=common/VERSION.php
44 CLEANFILES+=www/artifact-version
45 common/VERSION.php: debian/changelog
46         printf '%s\n' '<?php' '' \
47             '/* THIS FILE IS AUTOMATICALLY GENERATED, DO NOT EDIT! */' '' \
48             "define('HPW_VERSION', '$$(echo \
49             30~dummy)');" >$@~
50         php -l $@~
51         echo 'Hello-PHP-World (hello-php-world)' $$(echo \
52             30~dummy) >www/artifact-version
53         mv -f $@~ $@
54
55 GENERATED+=var/AUTOLDR.php
56 var/AUTOLDR.php:
57         printf '%s\n' '<''?php' '$$classlist = array(' \
58             "'HpwWeb' => '/common/hpw.php'" ');' >$@~
59         php -l $@~
60         mv -f $@~ $@
61
62 CLEANFILES+=common/*~ dbconfig/install/*~ var/*~
63
64 CLEANFILES+=${GENERATED}
65 generated: ${GENERATED}
66
67 lcheck: generated
68         # run tests without phpunit
69         php tests/fakeunit.php
70
71 clean:
72         rm -f ${CLEANFILES}
73
74 .PHONY: all generated lcheck clean metacheck syntaxcheck