#433 Makefile.in problem on NETBSD 3.1

Platform Specific
closed-fixed
5
2014-08-16
2006-12-11
Anonymous
No

After running the configure script, then trying to run make, it errors out:

squallbsr@karasu2 [~/source/expat-2.0.0]$ make
make: "/Users/squallbsr/source/expat-2.0.0/Makefile" line 47: Need an operator
make: "/Users/squallbsr/source/expat-2.0.0/Makefile" line 49: Need an operator
make: Fatal errors encountered -- cannot continue

This can be fixed by adjusting the ifndef INSTALL_ROOT section around lines 47-49 in Makefile.in

I changed it to:

INSTALL_ROOT ?= $(DESTDIR)

which worked on NetBSD and for my application, this of course would need more testing as all I wanted was for expat to complile, not install.

Discussion

  • Bryan Rehbein

    Bryan Rehbein - 2006-12-11

    Logged In: YES
    user_id=950269
    Originator: NO

    Bug reported by: br39290@squall.us

     
  • Karl Waclawek

    Karl Waclawek - 2006-12-12

    Logged In: YES
    user_id=290026
    Originator: NO

    Apparently - after doing a Goole search - Solaris as well as BSD Make
    have issues with the "ifndef" syntax. Is there a way to keep the logic
    with another syntax? It looks as if "?=" does not have exactly the same logic.

     
  • Karl Waclawek

    Karl Waclawek - 2006-12-13
    • status: open --> open-fixed
     
  • Karl Waclawek

    Karl Waclawek - 2006-12-13

    Logged In: YES
    user_id=290026
    Originator: NO

    Well, I thought about it, and "?=" seems acceptable.
    It only assigns if the symbol is undefined, whereas "ifndef" assigns when the
    symbol is the empty string or undefined. I'll change that accordingly.
    Committed in Makefile.in rev. 1.56.

     
  • davidharpe

    davidharpe - 2007-01-02

    Logged In: YES
    user_id=1681745
    Originator: NO

    I had the same problem on FreeBSD. Change lines 47-49 to:

    .ifndef INSTALL_ROOT
    INSTALL_ROOT=$(DESTDIR)
    .endif

    (note the leading period)

    Seems to work fine.

     
  • Karl Waclawek

    Karl Waclawek - 2007-05-05

    Logged In: YES
    user_id=290026
    Originator: NO

    In an attempt to make Makefile.in more compatible across platforms I have modified
    the conditional directive above yet again:

    ifeq ($(INSTALL_ROOT),)
    INSTALL_ROOT = $(DESTDIR)
    endif

    Let's hope this will be more successful.
    Applied in Makefile.in rev. 1.57.

     
  • Karl Waclawek

    Karl Waclawek - 2007-05-11

    Logged In: YES
    user_id=290026
    Originator: NO

    The latest patch (see the related issue #1490371) removes
    the conditional directive altogether, but reverses the roles
    of INSTALL_ROOT and DESDIR. This should hopefully work for
    most use cases while still being more cross-platform compatible.

     
  • Karl Waclawek

    Karl Waclawek - 2009-01-17

    No complaints received.

     
  • Karl Waclawek

    Karl Waclawek - 2009-01-17
    • status: open-fixed --> closed-fixed
     

Log in to post a comment.

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:





No, thanks