The 52 missing symbols are listed in the error message, but it looks like they're from fox. Reduce wants to build and use its own embedded copy of fox, but I had the MacPorts fox port installed. It looks like the -L flags are in the wrong order when reducebootstrap was being linked, putting -L/opt/local/lib before the -L flag for the directory where the embedded copy of fox is, which caused -lFOX-1.6 to refer to the fox port's library and not the embedded copy, and I guess they're different enough versions that they're not compatible. Deactivating the fox port before building reduce removed that problem. If you can fix the order of the -L flags, that would be good; otherwise, include "PortGroup conflicts_build 1.0" and add "conflicts_build fox".
Now that I can install it, my "port contents" output looks like what I'd expect; here's the first 20 lines: Port reduce contains: /Applications/MacPorts/reduce/bootstrapreduce.app /Applications/MacPorts/reduce/csl.app /Applications/MacPorts/reduce/reduce.app /opt/local/bin/bootstrapreduce /opt/local/bin/csl /opt/local/bin/redcsl /opt/local/bin/redpsl /opt/local/bin/rfcsl /opt/local/bin/rfpsl /opt/local/libexec/reduce/README /opt/local/libexec/reduce/csl/bootstrapreduce.app/Contents/Info.plist /opt/local/libexec/reduce/csl/bootstrapreduce.app/Contents/MacOS/bootstrapreduce /opt/local/libexec/reduce/csl/bootstrapreduce.app/Contents/MacOS/bootstrapreduce.img /opt/local/libexec/reduce/csl/bootstrapreduce.app/Contents/MacOS/reduce.doc/BINARY-LICENSE.txt /opt/local/libexec/reduce/csl/bootstrapreduce.app/Contents/MacOS/reduce.doc/BSD-LICENSE.txt /opt/local/libexec/reduce/csl/bootstrapreduce.app/Contents/MacOS/reduce.doc/LGPL-2.1.txt /opt/local/libexec/reduce/csl/bootstrapreduce.app/Contents/MacOS/reduce.doc/abstract.tex /opt/local/libexec/reduce/csl/bootstrapreduce.app/Contents/MacOS/reduce.doc/acknowl.tex /opt/local/libexec/reduce/csl/bootstrapreduce.app/Contents/MacOS/reduce.doc/appenda.tex So getting back to your gnuplot question, since I know nothing about reduce, what do I do to get it try to launch gnuplot? \r On Sep 23, 2018, at 21:23, Mark Brethen wrote: > I built it on Sierra. What’s the missing symbol? > > > Mark Brethen > mark.bret...@gmail.com > > > >> On Sep 23, 2018, at 8:16 PM, Ryan Schmidt wrote: >> >> It doesn't build for me... >> >> >> Undefined symbols for architecture x86_64: >> "directoryp(char*, char const*, unsigned long)", referenced from: >> Ldirectoryp(long, long) in csl-print.o >> "fwin_menus(char**, char**, void (*)())", referenced from: >> cslstart(int, char const**, int (*)(int)) in csl-csl.o >> "delete_file(char*, char const*, unsigned long)", referenced from: >> Lopen(long, long, long) in csl-print.o >> Ldelete_file(long, long) in csl-print.o >> "file_exists(char*, char const*, unsigned long, char*)", referenced from: >> Lfiledate(long, long) in csl-print.o >> CSLtmpnam(char const*, unsigned long) in csl-sysfwin.o >> "file_length(char*, char const*, unsigned long)", referenced from: >> Lfile_length(long, long) in csl-print.o >> "rename_file(char*, char const*, unsigned long, char*, char const*, unsigned >> long)", referenced from: >> Lopen(long, long, long) in csl-print.o >> Lrename_file(long, long, long) in csl-print.o >> "fwin_getchar()", referenced from: >> wimpget(char*) in csl-sysfwin.o >> "fwin_putchar(int)", referenced from: >> char_to_terminal(int, long) in csl-print.o >> "fwin_restore()", referenced from: >> cslstart(int, char const**, int (*)(int)) in csl-csl.o >> "fwin_startup(int, char const**, int (*)(int, char const**))", referenced >> from: >> _main in csl-csl.o >> "get_truename(char*, char const*, unsigned long)", referenced from: >> Ltruename(long, long) in csl-print.o >> "file_readable(char*, char const*, unsigned long)", referenced from: >> Lfile_readable(long, long) in csl-print.o >> "fwin_showmath(char const*)", referenced from: >> Lmath_display(long, long) in csl-print.o >> "truncate_file(__sFILE*, long)", referenced from: >> finished_with(int) in csl-preserve.o >> "file_writeable(char*, char const*, unsigned long)", referenced from: >> Lfile_writeable(long, long) in csl-print.o >> "scan_directory(char const*, void (*)(char const*, int, long))", referenced >> from: >> list_one_library(long, bool) in csl-preserve.o >> Llibrary_members(long, long) in csl-preserve.o >> "delete_wildcard(char*, char const*, unsigned long)", referenced from: >> Ldelete_wildcard(long, long) in csl-print.o >> "fwin_report_mid(char const*)", referenced from: >> Lwindow_heading2(long, long, long) in csl-print.o >> "fwin_set_lookup(char* (*)(char*, int))", referenced from: >> _main in csl-csl.o >> "fwin_set_prompt(char const*)", referenced from: >> interrupted(long) in csl-csl.o >> Lsetpchar(long, long) in csl-fasl.o >> "fwin_windowmode()", referenced from: >> set_up_variables(int) in csl-restart.o >> interrupted(long) in csl-csl.o >> "change_directory(char*, char const*, unsigned long)", referenced from: >> Lchange_directory(long, long) in csl-print.o >> "create_directory(char*, char const*, unsigned long)", referenced from: >> Lcreate_directory(long, long) in csl-print.o >> "fwin_report_left(char const*)", referenced from: >> Lwindow_heading2(long, long, long) in csl-print.o >> report_time(int, int) in csl-sysfwin.o >> "fwin_report_right(char const*)", referenced from: >> Lwindow_heading2(long, long, long) in csl-print.o >> report_space(unsigned long long, double, double) in csl-sysfwin.o >> "process_file_name(char*, char const*, unsigned long)", referenced from: >> open_pds(char const*, int) in csl-preserve.o >> "fwin_ensure_screen()", referenced from: >> ensure_screen() in csl-print.o >> write_action_terminal(int, long) in csl-print.o >> prin_to_terminal(long) in csl-print.o >> prin_to_stdout(long) in csl-print.o >> prin_to_error(long) in csl-print.o >> prin_to_trace(long) in csl-print.o >> prinhex_to_trace(char const*, long) in csl-print.o >> ... >> "fwin_set_help_file(char const*, char const*)", referenced from: >> Lset_help_file(long, long, long) in csl-fasl.o >> "get_home_directory(char*, unsigned long)", referenced from: >> Luser_homedir_pathname(long) in csl-print.o >> "fwin_acknowledge_tick()", referenced from: >> reclaim(long, char const*, int, unsigned long) in csl-cslgc.o >> "fwin_refresh_switches(char**, char**)", referenced from: >> review_switch_settings() in csl-restart.o >> "get_current_directory(char*, unsigned long)", referenced from: >> Lget_current_directory(long) in csl-print.o >> cslstart(int, char const**, int (*)(int)) in csl-csl.o >> "list_directory_members(char*, char const*, unsigned long, void (*)(char >> const*, int, long))", referenced from: >> Llist_directory(long, long) in csl-print.o >> "fwin_callback_to_interrupt(int (*)(int))", referenced from: >> cslstart(int, char const**, int (*)(int)) in csl-csl.o >> "Cmkdir(char const*)", referenced from: >> open_pds(char const*, int) in csl-preserve.o >> unpending(directory*) in csl-preserve.o >> "my_getenv(char const*)", referenced from: >> Lgetenv(long, long) in csl-cslread.o >> "my_system(char const*)", referenced from: >> Lsystem(long, long) in csl-cslread.o >> "open_file(char*, char const*, unsigned long, char const*, __sFILE*)", >> referenced from: >> Lopen(long, long, long) in csl-print.o >> Lopen_url(long, long) in csl-print.o >> Lbinary_open_output(long, long) in csl-print.o >> Lbinary_open_input(long, long) in csl-print.o >> Lspool(long, long) in csl-cslread.o >> cslstart(int, char const**, int (*)(int)) in csl-csl.o >> cslaction() in csl-csl.o >> ... >> "FX::text", referenced from: >> Lmath_display(long, long) in csl-print.o >> "_about_box_description", referenced from: >> set_up_variables(int) in csl-restart.o >> fwin_main(int, char const**) in csl-csl.o >> "_about_box_rights_1", referenced from: >> set_up_variables(int) in csl-restart.o >> "_about_box_rights_2", referenced from: >> set_up_variables(int) in csl-restart.o >> "_about_box_title", referenced from: >> set_up_variables(int) in csl-restart.o >> fwin_main(int, char const**) in csl-csl.o >> "_fullProgramName", referenced from: >> set_up_variables(int) in csl-restart.o >> "_fwin_linelength", referenced from: >> write_action_terminal(int, long) in csl-print.o >> write_action_spool(int, long) in csl-print.o >> "_fwin_pause_at_end", referenced from: >> cslstart(int, char const**, int (*)(int)) in csl-csl.o >> "_fwin_use_xft", referenced from: >> cslstart(int, char const**, int (*)(int)) in csl-csl.o >> "_programDir", referenced from: >> find_image_directory(int, char const**) in csl-sysfwin.o >> find_gnuplot(char*) in csl-sysfwin.o >> "_programName", referenced from: >> set_up_variables(int) in csl-restart.o >> find_image_directory(int, char const**) in csl-sysfwin.o >> "_scan_leafstart", referenced from: >> make_dir_list(char const*, int, long) in csl-print.o >> "_showmathInitialised", referenced from: >> set_up_variables(int) in csl-restart.o >> "_texmacs_mode", referenced from: >> set_up_variables(int) in csl-restart.o >> setup(int, double) in csl-restart.o >> ld: symbol(s) not found for architecture x86_64 >> clang: error: linker command failed with exit code 1 (use -v to see >> invocation) >> gmake[3]: *** [Makefile:4796: csl] Error 1 >> make[2]: *** [all] Error 2 >> >> >> But I guess the options are: >> >> a) Figure out where in the code it calls the gnuplot executable, and change >> it to be the absolute path, so that the $PATH variable is not needed. I >> found lines such as these: >> >> ./packages/plot/gnuintfc.red: plotcommand!* := find!-gnuplot(); >> ./packages/plot/gnuintfc.red: plotcommand!* := find!-gnuplot(); >> ./packages/plot/gnuintfc.red: plotcommand!* := bldmsg("gnuplot >> %w",plotcmds!*); >> ./packages/plot/gnuintfc.red: plotcommand!* := find!-gnuplot(); >> >> Maybe using the full "/opt/local/bin/gnuplot" on these lines is the answer. >> >> b) Rename or move the real executable and in its place put a wrapper script >> that sets $PATH and then calls the original executable. >> >> >> >