Opened 3 years ago

Closed 3 years ago

Last modified 3 years ago

#62846 closed defect (fixed)

legacy-support @1.0.1, redis @6.2.3: make: invalid option -- y, make: invalid option -- /

Reported by: ryandesign (Ryan Carsten Schmidt) Owned by: ryandesign (Ryan Carsten Schmidt)
Priority: Normal Milestone:
Component: ports Version:
Keywords: Cc: cjones051073 (Chris Jones), kencu (Ken), dgilman (David Gilman)
Port: legacy-support redis

Description

redis failed to build on OS X 10.11 and earlier because it uses clock_gettime which wasn't in macOS until 10.12.

https://build.macports.org/builders/ports-10.8_x86_64-builder/builds/45964/steps/install-port/logs/stdio

monotonic.c:139:5: warning: implicit declaration of function 'clock_gettime' is invalid in C99 [-Wimplicit-function-declaration]
    clock_gettime(CLOCK_MONOTONIC, &ts);
    ^
monotonic.c:139:19: error: use of undeclared identifier 'CLOCK_MONOTONIC'
    clock_gettime(CLOCK_MONOTONIC, &ts);
                  ^
monotonic.c:148:14: warning: implicit declaration of function 'clock_gettime' is invalid in C99 [-Wimplicit-function-declaration]
    int rc = clock_gettime(CLOCK_MONOTONIC, &ts);
             ^
monotonic.c:148:28: error: use of undeclared identifier 'CLOCK_MONOTONIC'
    int rc = clock_gettime(CLOCK_MONOTONIC, &ts);
                           ^
2 warnings and 2 errors generated.

So I added the legacysupport 1.1 portgroup to the port.

Now it fails with an error I've never heard of before:

https://build.macports.org/builders/ports-10.8_x86_64-builder/builds/45965/steps/install-port/logs/stdio

/usr/bin/make: invalid option -- y
/usr/bin/make: invalid option -- /
Usage: make [options] [target] ...
Options:
  -b, -m                      Ignored for compatibility.
  -B, --always-make           Unconditionally make all targets.
  -C DIRECTORY, --directory=DIRECTORY
                              Change to DIRECTORY before doing anything.
  -d                          Print lots of debugging information.
  --debug[=FLAGS]             Print various types of debugging information.
  -e, --environment-overrides
                              Environment variables override makefiles.
  -f FILE, --file=FILE, --makefile=FILE
                              Read FILE as a makefile.
  -h, --help                  Print this message and exit.
  -i, --ignore-errors         Ignore errors from commands.
  -I DIRECTORY, --include-dir=DIRECTORY
                              Search DIRECTORY for included makefiles.
  -j [N], --jobs[=N]          Allow N jobs at once; infinite jobs with no arg.
  -k, --keep-going            Keep going when some targets can't be made.
  -l [N], --load-average[=N], --max-load[=N]
                              Don't start multiple jobs unless load is below N.
  -L, --check-symlink-times   Use the latest mtime between symlinks and target.
  -n, --just-print, --dry-run, --recon
                              Don't actually run any commands; just print them.
  -o FILE, --old-file=FILE, --assume-old=FILE
                              Consider FILE to be very old and don't remake it.
  -p, --print-data-base       Print make's internal database.
  -q, --question              Run no commands; exit status says if up to date.
  -r, --no-builtin-rules      Disable the built-in implicit rules.
  -R, --no-builtin-variables  Disable the built-in variable settings.
  -s, --silent, --quiet       Don't echo commands.
  -S, --no-keep-going, --stop
                              Turns off -k.
  -t, --touch                 Touch targets instead of remaking them.
  -v, --version               Print the version number of make and exit.
  -w, --print-directory       Print the current directory.
  --no-print-directory        Turn off -w, even if it was turned on implicitly.
  -W FILE, --what-if=FILE, --new-file=FILE, --assume-new=FILE
                              Consider FILE to be infinitely new.
  --warn-undefined-variables  Warn when an undefined variable is referenced.
  -N OPTION, --NeXT-option=OPTION
                              Turn on value of NeXT OPTION.

This program built for i386-apple-darwin11.3.0
Report bugs to <bug-make@gnu.org>

This must be a problem in legacy support; it seems unlikely to have anything to do specifically with redis since it was getting far past this point before adding legacy support to the port.

Change History (3)

comment:1 Changed 3 years ago by kencu (Ken)

I suspect REDIS_CFLAGS needs quotes.

/usr/bin/make -j8 -w all REDIS_CFLAGS=-isystem/opt/local/include/LegacySupport -isystem/opt/local/include

comment:2 Changed 3 years ago by ryandesign (Ryan Carsten Schmidt)

Owner: set to ryandesign
Resolution: fixed
Status: newclosed

In d93d3d369dda5a9d7e0bbbff0265a038adbb68a5/macports-ports (master):

redis: Quote build.args properly.

Closes: #62846

comment:3 Changed 3 years ago by ryandesign (Ryan Carsten Schmidt)

I think you're right! Thanks.

Note: See TracTickets for help on using tickets.