Issue 65415 - dmake 4.5 complains about .NULL target
Summary: dmake 4.5 complains about .NULL target
Status: CLOSED FIXED
Alias: None
Product: Build Tools
Classification: Code
Component: solenv (show other issues)
Version: current
Hardware: All All
: P3 Trivial (vote)
Target Milestone: OOo 2.0.4
Assignee: hjs
QA Contact: issues@tools
URL:
Keywords:
Depends on:
Blocks: 65725
  Show dependency tree
 
Reported: 2006-05-15 22:47 UTC by quetschke
Modified: 2006-06-16 13:23 UTC (History)
2 users (show)

See Also:
Issue Type: PATCH
Latest Confirmation in: ---
Developer Difficulty: ---


Attachments
patch for solenv/inc (2.50 KB, patch)
2006-05-17 21:43 UTC, quetschke
no flags Details | Diff
Patch for solenv/inc (23.19 KB, patch)
2006-05-19 15:27 UTC, quetschke
no flags Details | Diff
patch for solenv/inc (1.44 KB, patch)
2006-05-19 22:26 UTC, quetschke
no flags Details | Diff
Patch for solenv/inc (2.45 KB, patch)
2006-05-20 16:45 UTC, quetschke
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this issue.
Description quetschke 2006-05-15 22:47:54 UTC
Previous dmake versions just silently ignored AUGMAKE style .<suffix> meta
targets if no prerequisite was given, see issue 65360, and treated them as
ordinary targets.

The new dmake started to complain about this and produces a lot of warnings
like this when building OOo:

dmake:  /cygdrive/d/w1/tin_ws/solenv/inc/tg_hxx.mk:  line 94:  Warning: --
Ignoring AUGMAKE meta-target [.NULL] because prerequisites are present.

The reason is that .NULL is used in several makefiles in solenv/inc as a dummy
target to prevent that something like this:

$(SOMEMACRO) .NULL : myprereq

would abort with an error if $(SOMEMACRO) is empty

Easy solution to get rid of the warnings: Rename all occurences of .NULL to
_NULL .

Complicated solution: Rewrite the makefiles and unroll them.

I'll provide a patch for the first option soon.
Comment 1 hjs 2006-05-16 12:26:31 UTC
the second solution isn't that complicated:

cat <makefile> | mkunroll | _<makefile>

and change the include lines in "target.mk" accordongly (see e.g. "[_]tg_shl.mk")

the tool mkunroll is delivered from "tools". the makefiles requiring this
treatment are "tg_hxx.mk" and "tg_sdi.mk".

this also would allow to remove the ancient recursive multitarget approach still
found the "unroll" templates in a second step.

Comment 2 quetschke 2006-05-17 21:43:34 UTC
Created attachment 36554 [details]
patch for solenv/inc
Comment 3 quetschke 2006-05-17 21:49:16 UTC
The previous patch + unrolling should work if $(HXX11TARGETN) to $(HXX39TARGETN)
are unused.
Comment 4 quetschke 2006-05-19 15:27:15 UTC
Created attachment 36601 [details]
Patch for solenv/inc
Comment 5 quetschke 2006-05-19 15:28:14 UTC
Commtted previous patch to vq32.
Comment 6 quetschke 2006-05-19 22:24:50 UTC
Yeah, and that fails. :(

I committed the following patch + entrolling, but someone who knows what
this sdi stuff is doing ;) should carefully check that.

A few questions:

What is dttt ?

Who needs $(HIDSID$(TNR)PARTICLE) ? I mean did I put the dependency right?
Comment 7 quetschke 2006-05-19 22:26:20 UTC
Created attachment 36622 [details]
patch for solenv/inc
Comment 8 quetschke 2006-05-20 16:45:28 UTC
Created attachment 36626 [details]
Patch for solenv/inc
Comment 9 quetschke 2006-05-20 16:47:16 UTC
Forget the question about $(HIDSID$(TNR)PARTICLE), I committed the previous patch
and changed SDIXXXXX to SDI1XXXXX in sfx2.
Comment 10 quetschke 2006-05-20 23:01:03 UTC
Changed SDIXXXXX to SDI1XXXXX also in basctl, binfilter, sc, sch, starmath, svx
and sw.

WARNUNG!!!!
SDINAME is also used in chart, sim2 and sip but these modules are not tagged
for m169. 
Comment 11 quetschke 2006-05-23 16:29:15 UTC
Tested sucessfully with W32-tcsh and W32-4nt.

Be carefull with non-OOo projets.

Please verify.
Comment 12 hjs 2006-05-24 11:30:12 UTC
.
Comment 13 hjs 2006-06-16 13:23:30 UTC
.