appbind vs. phabbind

Hi Wojtek

OK. I’m still porting a huge app (30 some odd programs) from photon 1.12 to
1.14.

The make files all try to execute ‘/qnx4/photon/appbuilder/appbind’, which
does not exist. I did find ‘/qnx4/phtk/appbuilder/appbind’ BUT I also found
that new applications want to use ‘/qnx4/phtk/appbuilder/phapbind’. They
look nearly identical except for one ascends up an extra directory.

What should I use? Does it matter?

“Bill Caroselli (Q-TPS)” <QTPS@earthlink.net> wrote:

Hi Wojtek

OK. I’m still porting a huge app (30 some odd programs) from photon 1.12 to
1.14.

The make files all try to execute ‘/qnx4/photon/appbuilder/appbind’, which
does not exist. I did find ‘/qnx4/phtk/appbuilder/appbind’ BUT I also found
that new applications want to use ‘/qnx4/phtk/appbuilder/phapbind’. They
look nearly identical except for one ascends up an extra directory.

The difference between “appbind” and “phabbind” is that “appbind” is
meant for old-style “single-platform” applications that run the compiler
in the src directory, and the appbind script then runs bindres and
finally moves the executables to the application’s base directory. In
the new-style “multiplatform” apps, you have platform directories under
src, and that’s where the executable is built; that’s the directory
layout that the phabbind script assumes. PhAB should let you convert an
old-style app to the new style (select Application/Convert to
Multiplatform), and this should take care of generating new-style
Makefiles that use phabbind.


Wojtek Lerch QNX Software Systems Ltd.

I’ve changed my makefile to try to make it a little smarter as far as only
making what needs to be made.

I have a new problem. The output file of appbind (yes, I’m still using the
old version) is not marked as executable (I have confirmed that the output
of the linker IS marked as executable. Also, even if I do chmod the output
file as executable is displays a bunch of junk like: “??? not found”.
There are several hundred lines of this. In the latter half of these lines
the ??? look like token from the widget files.

The other thing that I changed in the makefile is where the intermediate
files are located. The .o’s and the output of the linker are stored on a
huge RAM disk for speed.

Does appbind care what directory the input file is located in? Does it look
for other files in that directory or it’s parent directory?

What must I do to make my app work again?

BTW, if I don’t do the appbind I get a “can’t find resources” error at
program startup.

“Wojtek Lerch” <wojtek_l@yahoo.ca> wrote in message
news:a7q4ld$nt$1@nntp.qnx.com

“Bill Caroselli (Q-TPS)” <> QTPS@earthlink.net> > wrote:
Hi Wojtek

OK. I’m still porting a huge app (30 some odd programs) from photon
1.12 to
1.14.

The make files all try to execute ‘/qnx4/photon/appbuilder/appbind’,
which
does not exist. I did find ‘/qnx4/phtk/appbuilder/appbind’ BUT I also
found
that new applications want to use ‘/qnx4/phtk/appbuilder/phapbind’.
They
look nearly identical except for one ascends up an extra directory.

The difference between “appbind” and “phabbind” is that “appbind” is
meant for old-style “single-platform” applications that run the compiler
in the src directory, and the appbind script then runs bindres and
finally moves the executables to the application’s base directory. In
the new-style “multiplatform” apps, you have platform directories under
src, and that’s where the executable is built; that’s the directory
layout that the phabbind script assumes. PhAB should let you convert an
old-style app to the new style (select Application/Convert to
Multiplatform), and this should take care of generating new-style
Makefiles that use phabbind.


Wojtek Lerch QNX Software Systems Ltd.

I’ve changed my makefile to try to make it a little smarter as far as only
making what needs to be made.

I have a new problem. The output file of appbind (yes, I’m still using the
old version) is not marked as executable (I have confirmed that the output
of the linker IS marked as executable. Also, even if I do chmod the output
file as executable is displays a bunch of junk like: “??? not found”.
There are several hundred lines of this. In the latter half of these lines
the ??? look like token from the widget files.

The other thing that I changed in the makefile is where the intermediate
files are located. The .o’s and the output of the linker are stored on a
huge RAM disk for speed.

Does appbind care what directory the input file is located in? Does it look
for other files in that directory or it’s parent directory?

What must I do to make my app work again?

BTW, if I don’t do the appbind I get a “can’t find resources” error at
program startup.

“Wojtek Lerch” <wojtek_l@yahoo.ca> wrote in message
news:a7q4ld$nt$1@nntp.qnx.com

“Bill Caroselli (Q-TPS)” <> QTPS@earthlink.net> > wrote:
Hi Wojtek

OK. I’m still porting a huge app (30 some odd programs) from photon
1.12 to
1.14.

The make files all try to execute ‘/qnx4/photon/appbuilder/appbind’,
which
does not exist. I did find ‘/qnx4/phtk/appbuilder/appbind’ BUT I also
found
that new applications want to use ‘/qnx4/phtk/appbuilder/phapbind’.
They
look nearly identical except for one ascends up an extra directory.

The difference between “appbind” and “phabbind” is that “appbind” is
meant for old-style “single-platform” applications that run the compiler
in the src directory, and the appbind script then runs bindres and
finally moves the executables to the application’s base directory. In
the new-style “multiplatform” apps, you have platform directories under
src, and that’s where the executable is built; that’s the directory
layout that the phabbind script assumes. PhAB should let you convert an
old-style app to the new style (select Application/Convert to
Multiplatform), and this should take care of generating new-style
Makefiles that use phabbind.


Wojtek Lerch QNX Software Systems Ltd.

OK. I got it. I read through the appbind script and it IS sensitive to the
directory path that is passed to it.

Is there any reason that I can’t just call bindres myself?
I’m going to try that now.

“Bill Caroselli (Q-TPS)” <QTPS@EarthLink.net> wrote in message
news:af003j$i7k$1@inn.qnx.com

I’ve changed my makefile to try to make it a little smarter as far as only
making what needs to be made.

I have a new problem. The output file of appbind (yes, I’m still using
the
old version) is not marked as executable (I have confirmed that the output
of the linker IS marked as executable. Also, even if I do chmod the
output
file as executable is displays a bunch of junk like: “??? not found”.
There are several hundred lines of this. In the latter half of these
lines
the ??? look like token from the widget files.

The other thing that I changed in the makefile is where the intermediate
files are located. The .o’s and the output of the linker are stored on a
huge RAM disk for speed.

Does appbind care what directory the input file is located in? Does it
look
for other files in that directory or it’s parent directory?

What must I do to make my app work again?

BTW, if I don’t do the appbind I get a “can’t find resources” error at
program startup.

“Wojtek Lerch” <> wojtek_l@yahoo.ca> > wrote in message
news:a7q4ld$nt$> 1@nntp.qnx.com> …
“Bill Caroselli (Q-TPS)” <> QTPS@earthlink.net> > wrote:
Hi Wojtek

OK. I’m still porting a huge app (30 some odd programs) from photon
1.12 to
1.14.

The make files all try to execute ‘/qnx4/photon/appbuilder/appbind’,
which
does not exist. I did find ‘/qnx4/phtk/appbuilder/appbind’ BUT I also
found
that new applications want to use ‘/qnx4/phtk/appbuilder/phapbind’.
They
look nearly identical except for one ascends up an extra directory.

The difference between “appbind” and “phabbind” is that “appbind” is
meant for old-style “single-platform” applications that run the compiler
in the src directory, and the appbind script then runs bindres and
finally moves the executables to the application’s base directory. In
the new-style “multiplatform” apps, you have platform directories under
src, and that’s where the executable is built; that’s the directory
layout that the phabbind script assumes. PhAB should let you convert an
old-style app to the new style (select Application/Convert to
Multiplatform), and this should take care of generating new-style
Makefiles that use phabbind.


Wojtek Lerch QNX Software Systems Ltd.

\

“Bill Caroselli (Q-TPS)” <QTPS@earthlink.net> wrote:

OK. I got it. I read through the appbind script and it IS sensitive to the
directory path that is passed to it.

Is there any reason that I can’t just call bindres myself?

Not really.

There’s one thing to watch for though.

Before Photon 1.14, bindres required that you cd to the directory where
the *.wgt? files are, and that your command line specifies them as bare
names, no directory part.

BTW If bindres produces a file that is suspiciously small (roughly the
total size of your *.wgt?s) and not executable, that means that the
executable wasn’t there when you ran bindres. Or that bindres didn’t
think it was a valid executable. I think I have seen cases where
something like that happened to a valid executable stored on an NFS
server.


Wojtek Lerch QNX Software Systems Ltd.