Upgraded my Intel Apple to macOS Monterey, version 12.2.

Using MacPort which got updated as well. MacPort will install its libraries to 
/opt/local/lib which
includes ncurses.

Downloaded a fresh, pristine version of ooRexx from trunk and started to create 
a universal build with:

    *cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_OSX_UNIVERSAL_BINARIES=1 
~/dev/oorexx_allura/main/trunk*
    -- CMake version is 3.22.2
    -- The C compiler identification is AppleClang 12.0.5.12050022
    -- The CXX compiler identification is AppleClang 12.0.5.12050022
    -- Detecting C compiler ABI info
    -- Detecting C compiler ABI info - done
    -- Check for working C compiler: 
/Library/Developer/CommandLineTools/usr/bin/cc - skipped
    -- Detecting C compile features
    -- Detecting C compile features - done
    -- Detecting CXX compiler ABI info
    -- Detecting CXX compiler ABI info - done
    -- Check for working CXX compiler: 
/Library/Developer/CommandLineTools/usr/bin/c++ - skipped
    -- Detecting CXX compile features
    -- Detecting CXX compile features - done
    -- Building for a 64-bit architecture
    -- OOREXX_SHEBANG_PROGRAM: "/usr/bin/env rexx" (default)
    -- Found Subversion: /opt/local/bin/svn (found version "1.14.1") 
    -- SVN Revision Number is 12352
    -- CMAKE_INSTALL_PREFIX is /Users/rony/Applications/ooRexx5
    -- INSTALL_LIB_DIR is lib
    -- Looking for xlocale.h
    -- Looking for xlocale.h - found
    -- Looking for malloc.h
    -- Looking for malloc.h - not found
    -- Looking for alloca.h
    -- Looking for alloca.h - found
    -- Looking for signal.h
    -- Looking for signal.h - found
    -- Looking for time.h
    -- Looking for time.h - found
    -- Looking for inttypes.h
    -- Looking for inttypes.h - found
    -- Looking for stdint.h
    -- Looking for stdint.h - found
    -- Looking for nsleep
    -- Looking for nsleep - not found
    -- Looking for nanosleep
    -- Looking for nanosleep - found
    -- Looking for crypt in crypt
    -- Looking for crypt in crypt - not found
    -- Looking for crypt
    -- Looking for crypt - found
    -- Looking for wordexp
    -- Looking for wordexp - found
    -- Looking for wordexp.h
    -- Looking for wordexp.h - found
    -- Looking for sys/xattr.h
    -- Looking for sys/xattr.h - found
    -- Looking for catopen
    -- Looking for catopen - found
    -- Looking for dlfcn.h
    -- Looking for dlfcn.h - found
    -- Looking for features.h
    -- Looking for features.h - not found
    -- Looking for filehdr.h
    -- Looking for filehdr.h - not found
    -- Looking for euidaccess
    -- Looking for euidaccess - not found
    -- Looking for nl_types.h
    -- Looking for nl_types.h - found
    -- Looking for pthread.h
    -- Looking for pthread.h - found
    -- Looking for pthread_mutex_timedlock
    -- Looking for pthread_mutex_timedlock - not found
    -- Performing Test HAVE_DLADDR
    -- Performing Test HAVE_DLADDR - Success
    -- Looking for _PC_CASE_SENSITIVE
    -- Looking for _PC_CASE_SENSITIVE - found
    -- Looking for FNM_CASEFOLD
    -- Looking for FNM_CASEFOLD - found
    -- Looking for KDMKTONE
    -- Looking for KDMKTONE - not found
    -- Looking for FS_CASEFOLD_FL
    -- Looking for FS_CASEFOLD_FL - not found
    -- Looking for _NSGetExecutablePath
    -- Looking for _NSGetExecutablePath - found
    -- Looking for getexecname
    -- Looking for getexecname - not found
    -- Looking for KERN_PROC_PATHNAME
    -- Looking for KERN_PROC_PATHNAME - not found
    -- Looking for KERN_PROC_ARGV
    -- Looking for KERN_PROC_ARGV - not found
    -- Performing Test HAVE_STAT_ST_MTIM
    -- Performing Test HAVE_STAT_ST_MTIM - Failed
    -- Performing Test HAVE_STAT_ST_MTIMESPEC
    -- Performing Test HAVE_STAT_ST_MTIMESPEC - Success
    -- Looking for pwd.h
    -- Looking for pwd.h - found
    -- Looking for sched.h
    -- Looking for sched.h - found
    -- Looking for strings.h
    -- Looking for strings.h - found
    -- Looking for sys/filio.h
    -- Looking for sys/filio.h - found
    -- Looking for sys/ldr.h
    -- Looking for sys/ldr.h - not found
    -- Looking for sys/resource.h
    -- Looking for sys/resource.h - found
    -- Looking for sys/select.h
    -- Looking for sys/select.h - found
    -- Looking for sys/sem.h
    -- Looking for sys/sem.h - found
    -- Looking for sys/signal.h
    -- Looking for sys/signal.h - found
    -- Looking for sys/time.h
    -- Looking for sys/time.h - found
    -- Looking for sys/utsname.h
    -- Looking for sys/utsname.h - found
    -- Looking for sys/wait.h
    -- Looking for sys/wait.h - found
    *-- Looking for wsyncup in /opt/local/lib/libcurses.dylib****-- Looking for 
wsyncup in /opt/local/lib/libcurses.dylib - not found****-- Looking for wsyncup 
in /opt/local/lib/libncurses.dylib****-- Looking for wsyncup in 
/opt/local/lib/libncurses.dylib - not found****-- Looking for cbreak in 
/opt/local/lib/libncurses.dylib****-- Looking for cbreak in 
/opt/local/lib/libncurses.dylib - not found****-- Looking for nodelay in 
/opt/local/lib/libncurses.dylib****-- Looking for nodelay in 
/opt/local/lib/libncurses.dylib - not found*
    *-- Found Curses: /opt/local/lib/libncurses.dylib ****-- 
CURSES_HAVE_NCURSES_H is /opt/local/include/ncurses.h*
    -- CURSES_HAVE_NCURSES_NCURSES_H is CURSES_HAVE_NCURSES_NCURSES_H-NOTFOUND
    -- Configuring done
    -- Generating done
    -- Build files have been written to: /Users/rony/work/oorexx_build
    rony@wu114176 oorexx_build % make   

Everything looks fine (libraries built so far are universal) until linking for 
orxncurses is attempted:

    ... cut ...
    [ 85%] Building CXX object 
CMakeFiles/rxunixsys.dir/extensions/platform/unix/rxunixsys/rxunixsys.cpp.o
    [ 85%] Linking CXX shared library lib/librxunixsys.dylib
    [ 85%] Built target rxunixsys
    [ 86%] Building CXX object 
CMakeFiles/orxncurses.dir/extensions/orxncurses/orxncurses.cpp.o
    [ 86%] Linking CXX shared library lib/liborxncurses.dylib
    *ld: warning: ignoring file /opt/local/lib/libncurses.dylib, building for 
macOS-arm64 but
    attempting to link with file built for macOS-x86_64****ld: warning: 
ignoring file /opt/local/lib/libform.dylib, building for macOS-arm64 but
    attempting to link with file built for macOS-x86_64****Undefined symbols 
for architecture arm64:***  "_COLORS", referenced from:
          _OrxCurColors in orxncurses.cpp.o
          OrxCurColors_impl(RexxMethodContext_*) in orxncurses.cpp.o
      "_COLOR_PAIRS", referenced from:
          _OrxCurColor_pairs in orxncurses.cpp.o
          OrxCurColor_pairs_impl(RexxMethodContext_*) in orxncurses.cpp.o

    ... cut ...

      "_wtouchln", referenced from:
          _OrxCurTouchline in orxncurses.cpp.o
          OrxCurTouchline_impl(RexxMethodContext_*, int, int, void*) in 
orxncurses.cpp.o
          _OrxCurTouchwin in orxncurses.cpp.o
          OrxCurTouchwin_impl(RexxMethodContext_*, void*) in orxncurses.cpp.o
          _OrxCurUntouchwin in orxncurses.cpp.o
          OrxCurUntouchwin_impl(RexxMethodContext_*, void*) in orxncurses.cpp.o
          _OrxCurWtouchln in orxncurses.cpp.o
          ...
      "_wvline", referenced from:
          _OrxCurVline in orxncurses.cpp.o
          OrxCurVline_impl(RexxMethodContext_*, int, int, void*) in 
orxncurses.cpp.o
          _OrxCurMvvline in orxncurses.cpp.o
          OrxCurMvvline_impl(RexxMethodContext_*, int, int, int, int, void*) in 
orxncurses.cpp.o
    *ld: symbol(s) not found for architecture arm64****clang: error: linker 
command failed with exit code 1 (use -v to see invocation)****make[2]: *** 
[lib/liborxncurses.4.dylib] Error 1****make[1]: *** 
[CMakeFiles/orxncurses.dir/all] Error 2****make: *** [all] Error 
2***rony@wu114176 oorexx_build % 

If moving /opt/local/lib/libncurs* away and then rerunning cmake makes 
everything work:

    rony@wu114176 oorexx_build %  cmake -DCMAKE_BUILD_TYPE=Release 
-DBUILD_OSX_UNIVERSAL_BINARIES=1  ~/dev/oorexx_allura/main/trunk
    -- CMake version is 3.22.2
    -- The C compiler identification is AppleClang 12.0.5.12050022
    -- The CXX compiler identification is AppleClang 12.0.5.12050022
    -- Detecting C compiler ABI info
    -- Detecting C compiler ABI info - done
    -- Check for working C compiler: 
/Library/Developer/CommandLineTools/usr/bin/cc - skipped
    -- Detecting C compile features
    -- Detecting C compile features - done
    -- Detecting CXX compiler ABI info
    -- Detecting CXX compiler ABI info - done
    -- Check for working CXX compiler: 
/Library/Developer/CommandLineTools/usr/bin/c++ - skipped
    -- Detecting CXX compile features
    -- Detecting CXX compile features - done
    -- Building for a 64-bit architecture
    -- OOREXX_SHEBANG_PROGRAM: "/usr/bin/env rexx" (default)
    -- Found Subversion: /opt/local/bin/svn (found version "1.14.1") 
    -- SVN Revision Number is 12352
    -- CMAKE_INSTALL_PREFIX is /Users/rony/Applications/ooRexx5
    -- INSTALL_LIB_DIR is lib
    -- Looking for xlocale.h
    -- Looking for xlocale.h - found
    -- Looking for malloc.h
    -- Looking for malloc.h - not found
    -- Looking for alloca.h
    -- Looking for alloca.h - found
    -- Looking for signal.h
    -- Looking for signal.h - found
    -- Looking for time.h
    -- Looking for time.h - found
    -- Looking for inttypes.h
    -- Looking for inttypes.h - found
    -- Looking for stdint.h
    -- Looking for stdint.h - found
    -- Looking for nsleep
    -- Looking for nsleep - not found
    -- Looking for nanosleep
    -- Looking for nanosleep - found
    -- Looking for crypt in crypt
    -- Looking for crypt in crypt - not found
    -- Looking for crypt
    -- Looking for crypt - found
    -- Looking for wordexp
    -- Looking for wordexp - found
    -- Looking for wordexp.h
    -- Looking for wordexp.h - found
    -- Looking for sys/xattr.h
    -- Looking for sys/xattr.h - found
    -- Looking for catopen
    -- Looking for catopen - found
    -- Looking for dlfcn.h
    -- Looking for dlfcn.h - found
    -- Looking for features.h
    -- Looking for features.h - not found
    -- Looking for filehdr.h
    -- Looking for filehdr.h - not found
    -- Looking for euidaccess
    -- Looking for euidaccess - not found
    -- Looking for nl_types.h
    -- Looking for nl_types.h - found
    -- Looking for pthread.h
    -- Looking for pthread.h - found
    -- Looking for pthread_mutex_timedlock
    -- Looking for pthread_mutex_timedlock - not found
    -- Performing Test HAVE_DLADDR
    -- Performing Test HAVE_DLADDR - Success
    -- Looking for _PC_CASE_SENSITIVE
    -- Looking for _PC_CASE_SENSITIVE - found
    -- Looking for FNM_CASEFOLD
    -- Looking for FNM_CASEFOLD - found
    -- Looking for KDMKTONE
    -- Looking for KDMKTONE - not found
    -- Looking for FS_CASEFOLD_FL
    -- Looking for FS_CASEFOLD_FL - not found
    -- Looking for _NSGetExecutablePath
    -- Looking for _NSGetExecutablePath - found
    -- Looking for getexecname
    -- Looking for getexecname - not found
    -- Looking for KERN_PROC_PATHNAME
    -- Looking for KERN_PROC_PATHNAME - not found
    -- Looking for KERN_PROC_ARGV
    -- Looking for KERN_PROC_ARGV - not found
    -- Performing Test HAVE_STAT_ST_MTIM
    -- Performing Test HAVE_STAT_ST_MTIM - Failed
    -- Performing Test HAVE_STAT_ST_MTIMESPEC
    -- Performing Test HAVE_STAT_ST_MTIMESPEC - Success
    -- Looking for pwd.h
    -- Looking for pwd.h - found
    -- Looking for sched.h
    -- Looking for sched.h - found
    -- Looking for strings.h
    -- Looking for strings.h - found
    -- Looking for sys/filio.h
    -- Looking for sys/filio.h - found
    -- Looking for sys/ldr.h
    -- Looking for sys/ldr.h - not found
    -- Looking for sys/resource.h
    -- Looking for sys/resource.h - found
    -- Looking for sys/select.h
    -- Looking for sys/select.h - found
    -- Looking for sys/sem.h
    -- Looking for sys/sem.h - found
    -- Looking for sys/signal.h
    -- Looking for sys/signal.h - found
    -- Looking for sys/time.h
    -- Looking for sys/time.h - found
    -- Looking for sys/utsname.h
    -- Looking for sys/utsname.h - found
    -- Looking for sys/wait.h
    -- Looking for sys/wait.h - found
    *-- Looking for wsyncup in
    
/Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk/usr/lib/libcurses.tbd****--
 Looking for wsyncup in 
***/Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk/usr/*lib/libcurses.tbd
 - found****-- Looking for cbreak in 
***/Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk/usr/*lib/libncurses.tbd****--
 Looking for cbreak in 
***/Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk/usr/*lib/libncurses.tbd
 - found****-- Looking for nodelay in 
***/Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk/usr/*lib/libncurses.tbd****--
 Looking for nodelay in 
***/Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk/usr/*lib/libncurses.tbd
 - found****-- Found Curses: 
/Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk/usr/lib/libncurses.tbd 
****-- CURSES_HAVE_NCURSES_H is 
***/Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk/usr/*include/ncurses.h*
    -- CURSES_HAVE_NCURSES_NCURSES_H is CURSES_HAVE_NCURSES_NCURSES_H-NOTFOUND
    -- Configuring done
    -- Generating done
    -- Build files have been written to: /Users/rony/work/oorexx_build
    rony@wu114176 oorexx_build % make

    ---

    ... cut ...

    Consolidate compiler generated dependencies of target rxunixsys
    [ 85%] Built target rxunixsys
    Consolidate compiler generated dependencies of target orxncurses [ 86%] 
Building CXX object
    CMakeFiles/orxncurses.dir/extensions/orxncurses/orxncurses.cpp.o [ 86%] 
Linking CXX shared
    library lib/liborxncurses.dylib
    [ 86%] Built target orxncurses
    [ 87%] Generating bin/ncurses.cls
    [ 87%] Built target ncurses_cls

    ... cut ...

The result is a universal liborxncurses.dylib indeed.

---

Question: how can one make sure that on Apple its SDKs get searched for ncurses 
such that one can
create a universal build?

---rony

_______________________________________________
Oorexx-devel mailing list
Oorexx-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/oorexx-devel

Reply via email to