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$
>>  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$
>>  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$
>>  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
Oorexx-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/oorexx-devel

Reply via email to