diff options
author | H. Peter Anvin <hpa@zytor.com> | 2012-09-09 17:09:00 -0700 |
---|---|---|
committer | H. Peter Anvin <hpa@zytor.com> | 2012-09-09 17:09:00 -0700 |
commit | 553409947383bef4f38f642151657cdc66a9fab7 (patch) | |
tree | 89214f2919db72acda6eaa28be4b6761a2c4cea8 | |
parent | e55e53db1d91aa618a92463de4fed9fe730652e8 (diff) | |
download | nasm-553409947383bef4f38f642151657cdc66a9fab7.tar.gz |
When generate dependency names internally, quote filenames
Quote filenames for Make when generated for filenames internally.
Only skip quoting when using the -MT option (rather than -MQ).
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
-rw-r--r-- | doc/changes.src | 8 | ||||
-rw-r--r-- | doc/nasmdoc.src | 3 | ||||
-rw-r--r-- | nasm.c | 12 |
3 files changed, 18 insertions, 5 deletions
diff --git a/doc/changes.src b/doc/changes.src index ad16800e..63077c49 100644 --- a/doc/changes.src +++ b/doc/changes.src @@ -7,6 +7,14 @@ The NASM 2 series supports x86-64, and is the production version of NASM since 2007. +\S{cl-2.10.06} Version 2.10.06 + +\b Always quote the dependency source names when using the automatic +dependency generation options. + +\b If no dependency target name is specified via the \c{-MT} or +\c{-MQ} options, quote the default output name. + \S{cl-2.10.05} Version 2.10.05 \b Add the \c{CLAC} and \c{STAC} instructions. diff --git a/doc/nasmdoc.src b/doc/nasmdoc.src index 0d210907..55dbfc0f 100644 --- a/doc/nasmdoc.src +++ b/doc/nasmdoc.src @@ -626,7 +626,8 @@ specified by the \c{-o} option. The \c{-MQ} option acts as the \c{-MT} option, except it tries to quote characters that have special meaning in Makefile syntax. This is not foolproof, as not all characters with special meaning are -quotable in Make. +quotable in Make. The default output (if no \c{-MT} or \c{-MQ} option +is specified) is automatically quoted. \S{opt-MP} The \i\c{-MP} Option: Emit phony targets @@ -177,6 +177,8 @@ static bool want_usage; static bool terminate_after_phase; int user_nolist = 0; /* fbk 9/2/00 */ +static char *quote_for_make(const char *str); + static void nasm_fputs(const char *line, FILE * outfile) { if (outfile) { @@ -286,13 +288,15 @@ static void emit_dependencies(StrList *list) linepos = fprintf(deps, "%s:", depend_target); list_for_each(l, list) { - len = strlen(l->str); - if (linepos + len > 62) { + char *file = quote_for_make(l->str); + len = strlen(file); + if (linepos + len > 62 && linepos > 1) { fprintf(deps, " \\\n "); linepos = 1; } - fprintf(deps, " %s", l->str); + fprintf(deps, " %s", file); linepos += len+1; + nasm_free(file); } fprintf(deps, "\n\n"); @@ -356,7 +360,7 @@ int main(int argc, char **argv) depend_ptr = (depend_file || (operating_mode == op_depend)) ? &depend_list : NULL; if (!depend_target) - depend_target = outname; + depend_target = quote_for_make(outname); switch (operating_mode) { case op_depend: |