On 2017-06-13 18:22, Tom Lane wrote: > The Makefile is still BSD-ish of course, but I think > we'll just agree to disagree there.
For compiling indent under Linux I use bmake(1). I have no problem with including a Makefile for GNU Make in my repository. As I understand it, there will be a copy of indent maintained by the Postgres group - even less of a problem to include whatever you want, it seems to me. I think that Postgres will have to fork FreeBSD indent anyway, because of nitems(), capsicum, __FBSDID(), etc. Now I only aim for the shortest diff output. > The only thing I could find to > quibble about is that on old macOS versions I get > > In file included from indent.c:49: > indent_globs.h:222:1: warning: "STACKSIZE" redefined > In file included from /usr/include/machine/param.h:30, > from /usr/include/sys/param.h:104, > from indent.c:42: > /usr/include/ppc/param.h:53:1: warning: this is the location of the previous > definition > > Maybe you could rename that symbol to IND_STACKSIZE or some such? I just replaced it with integer constants and nitems(). > Also, I am wondering about the test cases under tests/. I do not > see anything in the Makefile or elsewhere suggesting how those are > to be used. It would sure be nice to have some quick smoke-test > to check that a build on a new platform is working. They'd started out like David Holland's tests for his tradcpp(1), with a similar makefile (again, BSD make). But I was tenaciously asked to use Kyua (a testing framework that is the standard regression test mechanism for FreeBSD) instead, so now the makefile's existence and use is a great secret and the file is not under any source control. Adaption of the indent test suite to Kyua made the makefile more inelegant, but I'm attaching it to this email in hope that you can do something useful with it. I can only guess that you have the option to use Kyua instead, but I don't know the tool at all.
INDENT_OBJDIR= ${.OBJDIR:H} INDENT= ${INDENT_OBJDIR}/indent TESTS+= binary TESTS+= comments TESTS+= cppelsecom TESTS+= declarations TESTS+= elsecomment TESTS+= f_decls TESTS+= float TESTS+= label TESTS+= list_head TESTS+= nsac TESTS+= offsetof TESTS+= parens TESTS+= sac TESTS+= struct TESTS+= surplusbad TESTS+= types_from_file TESTS+= wchar all: run-tests .WAIT show-diffs $(INDENT): ${MAKE} -C ${INDENT_OBJDIR} .for T in $(TESTS) run-tests: $(T).diff $(T).diff: $(T).run $(T).0.stdout $(INDENT) -diff -u $(T).0.stdout $(T).run > $(T).diff $(T).run: $(INDENT) $(T).0 $(INDENT) $(T).0 $(T).run -P$(T).pro 2>&1 || echo FAILED >> $(T).run .endfor show-diffs: @echo '*** Test diffs ***' .for T in $(TESTS) @cat $(T).diff .endfor clean: .for T in $(TESTS) rm -f $(T).run $(T).diff $(T).o $(T).plist .endfor good: .for T in $(TESTS) cp $(T).run $(T).0.stdout .endfor .PHONY: all run-tests show-diffs clean good
-- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers