summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorH. Peter Anvin <hpa@zytor.com>2012-09-09 17:09:00 -0700
committerH. Peter Anvin <hpa@zytor.com>2012-09-09 17:09:00 -0700
commit553409947383bef4f38f642151657cdc66a9fab7 (patch)
tree89214f2919db72acda6eaa28be4b6761a2c4cea8
parente55e53db1d91aa618a92463de4fed9fe730652e8 (diff)
downloadnasm-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.src8
-rw-r--r--doc/nasmdoc.src3
-rw-r--r--nasm.c12
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
diff --git a/nasm.c b/nasm.c
index 63e73e7f..2ee319fe 100644
--- a/nasm.c
+++ b/nasm.c
@@ -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: