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
[email protected]
https://lists.sourceforge.net/lists/listinfo/oorexx-devel