Dear Rony,
I wanted to try this out on macOS (High Sierra) but got into problems straight
away
POs-QuadCore-Mac-Pro:native.api po$ make -f Makefile.macOS clean
rm -f stackOverflow runRexxProgram
POs-QuadCore-Mac-Pro:native.api po$ make -f Makefile.macOS all
gcc runRexxProgram.cpp -lrexx -lrexxapi -o runRexxProgram
runRexxProgram.cpp:51:10: fatal error: 'oorexxapi.h' file not found
#include "oorexxapi.h"
^~~~~~~~~~~~~
1 error generated.
make: *** [runRexxProgram] Error 1
POs-QuadCore-Mac-Pro:native.api po$
I could do away with that problem by copying the header files into the sample
directory (a hack, I know). But I got another error instead
POs-QuadCore-Mac-Pro:native.api po$ make -f Makefile.macOS clean
rm -f stackOverflow runRexxProgram
POs-QuadCore-Mac-Pro:native.api po$ make -f Makefile.macOS all
gcc runRexxProgram.cpp -lrexx -lrexxapi -o runRexxProgram
ld: library not found for -lrexx
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [runRexxProgram] Error 1
So I added the -v to get more information
POs-QuadCore-Mac-Pro:native.api po$ make -f Makefile.macOS clean
rm -f stackOverflow runRexxProgram
POs-QuadCore-Mac-Pro:native.api po$ make -f Makefile.macOS runRexxProgram
gcc -v runRexxProgram.cpp -lrexx -lrexxapi -o runRexxProgram
Apple LLVM version 10.0.0 (clang-1000.10.44.4)
Target: x86_64-apple-darwin17.7.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin
"/Library/Developer/CommandLineTools/usr/bin/clang" -cc1 -triple
x86_64-apple-macosx10.13.0 -Wdeprecated-objc-isa-usage
-Werror=deprecated-objc-isa-usage -emit-obj -mrelax-all -disable-free
-disable-llvm-verifier -discard-value-names -main-file-name runRexxProgram.cpp
-mrelocation-model pic -pic-level 2 -mthread-model posix -mdisable-fp-elim
-fno-strict-return -masm-verbose -munwind-tables -target-cpu penryn
-dwarf-column-info -debugger-tuning=lldb -target-linker-version 409.12 -v
-resource-dir /Library/Developer/CommandLineTools/usr/lib/clang/10.0.0
-stdlib=libc++ -fdeprecated-macro -fdebug-compilation-dir
/Applications/ooRexx5/share/ooRexx/samples/native.api -ferror-limit 19
-fmessage-length 80 -stack-protector 1 -fblocks
-fencode-extended-block-signature -fobjc-runtime=macosx-10.13.0
-fcxx-exceptions -fexceptions -fmax-type-align=16 -fdiagnostics-show-option
-fcolor-diagnostics -o
/var/folders/6r/ytvfjqwx7td5_cvdj6_m9vcr0000gn/T/runRexxProgram-f8319d.o -x c++
runRexxProgram.cpp
clang -cc1 version 10.0.0 (clang-1000.10.44.4) default target
x86_64-apple-darwin17.7.0
ignoring nonexistent directory "/usr/include/c++/v1"
#include "..." search starts here:
#include <...> search starts here:
/Library/Developer/CommandLineTools/usr/include/c++/v1
/usr/local/include
/Library/Developer/CommandLineTools/usr/lib/clang/10.0.0/include
/Library/Developer/CommandLineTools/usr/include
/usr/include
/System/Library/Frameworks (framework directory)
/Library/Frameworks (framework directory)
End of search list.
"/Library/Developer/CommandLineTools/usr/bin/ld" -demangle -lto_library
/Library/Developer/CommandLineTools/usr/lib/libLTO.dylib -no_deduplicate
-dynamic -arch x86_64 -macosx_version_min 10.13.0 -o runRexxProgram
/var/folders/6r/ytvfjqwx7td5_cvdj6_m9vcr0000gn/T/runRexxProgram-f8319d.o -lrexx
-lrexxapi -lSystem
/Library/Developer/CommandLineTools/usr/lib/clang/10.0.0/lib/darwin/libclang_rt.osx.a
ld: library not found for -lrexx
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [runRexxProgram] Error 1
Any idea what I need to do to get this working on a Mac?
Hälsningar/Regards/Grüsse,
P.O. Jonsson
[email protected]
> Am 16.10.2021 um 14:55 schrieb Rony G. Flatscher <[email protected]>:
>
> Here a minimal working Makefile.linux:
>
> # A pretty simple make file that should work on most Unix-like platforms that
> have gcc.
>
> OOREXX_LFLAGS = -lrexx -lrexxapi # needs to follow after file for which link
> resoultion is needed
>
> # What we want to build.
> all: runRexxProgram stackOverflow
>
> runRexxProgram: runRexxProgram.cpp
> gcc runRexxProgram.cpp ${OOREXX_LFLAGS} -o runRexxProgram
>
> stackOverflow: stackOverflow.cpp
> gcc stackOverflow.cpp $(OOREXX_LFLAGS) -o stackOverflow
>
> clean:
> rm -f stackOverflow runRexxProgram
> If there are no objections (Makefiles are sometimes religious), I would
> replace the non-working version with the above one.
>
> ---rony
>
> On 15.10.2021 16:17, Rony G. Flatscher wrote:
>> After having time to look closer, it turns out that the Makefile.linux has
>> been faulty! Here a version that works (a little bit simplified and removed
>> a superfluous definition, the link switches now trail the file to be
>> created):
>>
>> OOREXX_LFLAGS = -L. -ldl -lrexx -lrexxapi
>> OOREXX_CFLAGS = -fPIC
>>
>>
>> # What we want to build.
>> all: runRexxProgram stackOverflow
>>
>> runRexxProgram.o: runRexxProgram.cpp
>> gcc -c $(OOREXX_CFLAGS) -o runRexxProgram.o runRexxProgram.cpp
>>
>> runRexxProgram: runRexxProgram.o
>> gcc runRexxProgram.o -o runRexxProgram $(OOREXX_LFLAGS)
>>
>> stackOverflow.o: stackOverflow.cpp
>> gcc -c $(OOREXX_CFLAGS) -o stackOverflow.o stackOverflow.cpp
>>
>> stackOverflow: stackOverflow.o
>> gcc stackOverflow.o -o stackOverflow $(OOREXX_LFLAGS)
>>
>> clean:
>> rm -f *.so *.o stackOverflow runRexxProgram
>> Will commit the changes to this Makefile tomorrow.
>>
>> ---rony
>>
>> On 14.10.2021 15:31, Rony G. Flatscher wrote:
>>> While testing the Makefile.linux for native.api on Ubuntu I encounter the
>>> following problem (oorexx got installed to /usr/local):
>>>
>>> rony@rony-linux:~/work/oorexx-build/orx1/usr/local/share/ooRexx/samples/native.api$
>>>
>>> <mailto:rony@rony-linux:~/work/oorexx-build/orx1/usr/local/share/ooRexx/samples/native.api$>
>>> make -f Makefile.linux clean
>>> rm -f *.so *.o stackOverflow runRexxProgram
>>>
>>> rony@rony-linux:~/work/oorexx-build/orx1/usr/local/share/ooRexx/samples/native.api$
>>>
>>> <mailto:rony@rony-linux:~/work/oorexx-build/orx1/usr/local/share/ooRexx/samples/native.api$>
>>> make -f Makefile.linux runRexxProgram
>>> gcc -c -fPIC -o runRexxProgram.o runRexxProgram.cpp
>>> gcc -L. -ldl -lrexx -lrexxapi runRexxProgram.o -o runRexxProgram
>>> /usr/bin/ld: runRexxProgram.o: in function `main':
>>> runRexxProgram.cpp:(.text+0x9a): undefined reference to
>>> `RexxCreateInterpreter'
>>> collect2: error: ld returned 1 exit status
>>> make: *** [Makefile.linux:54: runRexxProgram] Error 1
>>>
>>> rony@rony-linux:~/work/oorexx-build/orx1/usr/local/share/ooRexx/samples/native.api$
>>>
>>> <mailto:rony@rony-linux:~/work/oorexx-build/orx1/usr/local/share/ooRexx/samples/native.api$>
>>> nm runRexxProgram.o
>>> U exit
>>> U _GLOBAL_OFFSET_TABLE_
>>> 0000000000000000 T main
>>> U printf
>>> U puts
>>> U RexxCreateInterpreter
>>> U __stack_chk_fail
>>> U strcmp
>>> 0000000000000000 W _Z16conditionSubCodeP13RexxCondition
>>> 00000000000003c9 T _Z17checkForConditionP18RexxThreadContext_b
>>> 0000000000000243 T
>>> _Z20standardConditionMsgP18RexxThreadContext_P20_RexxDirectoryObjectP13RexxCondition
>>> 00000000000001c7 T _Z23printInterpreterVersionP13RexxInstance_
>>> 0000000000000000 W _ZN13RexxInstance_13LanguageLevelEv
>>> 0000000000000000 W _ZN13RexxInstance_18InterpreterVersionEv
>>> 0000000000000000 W _ZN13RexxInstance_9TerminateEv
>>> 0000000000000000 W _ZN18RexxThreadContext_10ArrayItemsEP16_RexxArrayObject
>>> 0000000000000000 W _ZN18RexxThreadContext_10ArrayOfOneEP14_RexxObjectPtr
>>> 0000000000000000 W
>>> _ZN18RexxThreadContext_11CallProgramEPKcP16_RexxArrayObject
>>> 0000000000000000 W
>>> _ZN18RexxThreadContext_12SendMessage0EP14_RexxObjectPtrPKc
>>> 0000000000000000 W _ZN18RexxThreadContext_14CheckConditionEv
>>> 0000000000000000 W _ZN18RexxThreadContext_14ClearConditionEv
>>> 0000000000000000 W _ZN18RexxThreadContext_16GetConditionInfoEv
>>> 0000000000000000 W
>>> _ZN18RexxThreadContext_19DecodeConditionInfoEP20_RexxDirectoryObjectP13RexxCondition
>>> 0000000000000000 W
>>> _ZN18RexxThreadContext_19ObjectToStringValueEP14_RexxObjectPtr
>>> 0000000000000000 W _ZN18RexxThreadContext_6StringEPKc
>>> 0000000000000000 W _ZN18RexxThreadContext_7ArrayAtEP16_RexxArrayObjectm
>>> 0000000000000000 W _ZN18RexxThreadContext_7CStringEP14_RexxObjectPtr
>>> The version that CMake creates works.
>>>
>>> ---rony
>
> _______________________________________________
> Oorexx-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/oorexx-devel
_______________________________________________
Oorexx-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/oorexx-devel