Thread: Build problem with square brackets in build path
I am not sure it is really a bug, but nevertheless If you do mkdir [source] git clone git://git.postgresql.org/git/postgresql.git [source] mkdir build; cd build ../\[source\]/configure make you will get make[1]: *** No rule to make target 'generated-headers'. Stop. If there are no "[]" in the path to the source, everything is OK. It would be OK for me, if it still does not work. But I would appreciate at least proper error message there (or at configure step), this would save time, for figuring out, why it suddenly stopped working. -- Nikolay Shaplov aka Nataraj Fuzzing Engineer at Postgres Professional Matrix IM: @dhyan:nataraj.su
Attachment
Nikolay Shaplov <dhyan@nataraj.su> writes: > If you do > mkdir [source] > git clone git://git.postgresql.org/git/postgresql.git [source] > mkdir build; cd build > ../\[source\]/configure > make > you will get > make[1]: *** No rule to make target 'generated-headers'. Stop. > If there are no "[]" in the path to the source, everything is OK. It's generally quite unwise to use shell meta-characters in file or directory names. I give you one example: $ ls ../[source] COPYRIGHT README.git contrib/ GNUmakefile.in aclocal.m4 doc/ HISTORY config/ meson.build Makefile configure* meson_options.txt README configure.ac src/ $ ls ../[source]/*.ac ls: ../[source]/*.ac: No such file or directory This is expected behavior (I leave it as an exercise for the student to figure out why). While it might be possible to make the Postgres build scripts proof against funny characters in the build paths, the effort required would be far out of proportion to the value. Not least because manual operations in such a file tree would misbehave often enough to convince you to change, even if the scripts were all water-tight. regards, tom lane