Install binaries rule breaks build on non-cygwin WIN32

Bug #541278 reported by Ralph Lange
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
EPICS Base
Fix Released
Medium
Ralph Lange

Bug Description

I found the change that broke the non-cygwin build:

In RULES_BUILD 1.88.2.14 the line to install binaries was changed from
  @$(INSTALL_PRODUCT) -d -m 555 $< $(INSTALL_BIN)
to
  ifdef WIN32
      @$(INSTALL_PRODUCT) -d -m 555 $<* $(INSTALL_BIN)
  else
      @$(INSTALL_PRODUCT) -d -m 555 $< $(INSTALL_BIN)
  endif

Immediately afterwards the wildcard was taken back for BORLAND compilations.
The problem is that the standard Windows shell - or whatever make uses to call programs on non-cygnus systems - does not allow wildcards in this place. Changing the "$<*" to "$(wildcard $<*)" lets make do the wildcard job, which should be the better option, anyway.

What exactly were you trying to "catch" with that wildcard? For my Microsoft non-cygnus system I actually can't think of any other files that would be matched by it.

I didn't commit any changes to CVS as I wasn't sure about the usefulness of that wildcard.
So - if we need the wildcard, please change it as shown above, which will work everywhere. If we don't need the wildcard, going back to the traditional line is fine with me.

Additional information:
The command line wildcard was introduced 2 days before R3.14.8 was released
as a quick fix for EPICS base mantis-231. See the bug notes for details.
The new Microsoft Visual c++ 2005 linker creates a .manifest file with each
executable and library (e.g. ca.dll ca.dll.manifest). It seems that this file
needs to be installed in the same directory as the executable/dll. This was a
temporary change I committed until we better understand how manifest files are
used and whether or not we need new CONFIG files for the new compiler. Ken Evans
is now looking into manifests to better understand them and to solve problems
we have with manifests for java jni libraries. Using a wildcard function seems
like a better way to implement the quick fix.

Janet

OS: non-cygwin

Platform: WIN32

Version: R3.14.8.2

Original Mantis Bug: mantis-244
    http://www.aps.anl.gov/epics/mantis/view_bug_page.php?f_id=244

Revision history for this message
Ralph Lange (ralph-lange) wrote :

On March 9th I committed base/configure file changes (version 1.88.2.17 of RULES_BUILD)to embed the new Visual c++ 2005 *.manifest files into a library or executable. The binary install rule in RULES_BUILD will no longer have the problem causing "$<*" for installation of the *.manifest files. These changes will appear in the next R3.14 base release.

Janet

Revision history for this message
Andrew Johnson (anj) wrote :

R3.14.9 Released.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.