Databases
cancel
Showing results for 
Search instead for 
Did you mean: 

Make: Cannot open procob.mk. Stop.

Engo Armand-Blaise
Frequent Advisor

Make: Cannot open procob.mk. Stop.

I'm running Oracle 8i now on HP-UNIX B11.00.
Just a question after this following :

$ make -f procob.mk build COBS="sample1.cob sample2.cob" EXE=sample add PCCFLAGS > link.lib
Make: Cannot open procob.mk. Stop.
=============================================
May I need to create the "procob.mk" file as I have already "env_precomp.mk" file?

In order term, if no, what to do exactely?

=============================================

Thanks.

Engo Armand-Blaise.

25 REPLIES
Ian Lochray
Respected Contributor

Re: Make: Cannot open procob.mk. Stop.

AT 8.1.7, ProCOBOL comes with the sample Makefile $ORACLE_HOME/precomp/demo/procob/demo_procob18.mk. Try changing procob.mk to demo_procob18.mk in your make command.
T G Manikandan
Honored Contributor

Re: Make: Cannot open procob.mk. Stop.

First thing is that ins_precomp.mk is used for building the precompiler executables.That is enough.

There is no need to create procob.mk
You need to add the path to the existing PATH
$ORACLE_HOME/procob/demo
$ORACLE_HOME/proc/lib

Thanks
Engo Armand-Blaise
Frequent Advisor

Re: Make: Cannot open procob.mk. Stop.

I've done it but what is wrong with procob18?

$ make -f demo_procob18.mk build EXE=sample2 COBS=sample2.cob > link.lib
sh: procob18: not found.

Stop.
Ian Lochray
Respected Contributor

Re: Make: Cannot open procob.mk. Stop.

procob18 should be in $ORACLE_HOME/bin. If is it not then it has not been installed. If it is then you need to check your PATH.
T G Manikandan
Honored Contributor

Re: Make: Cannot open procob.mk. Stop.

procob18 is an executable.If that is not there then the option of installating the pre-compilers was not selected.

Run the Installer again to choose that specific product.

Thanks
Engo Armand-Blaise
Frequent Advisor

Re: Make: Cannot open procob.mk. Stop.

Sorry to be back late.

The "procob18" is well installed in the $ORACLE_HOME/bin.

The following command gives me this message :

$ make -f procob.mk build COBS="sample1.cob sample2.cob" EXE=sample add PCCFLAGS > link.lib

========================================
/usr/lib/dld.sl: Can't find path for shared library: libwtc8.sl
/usr/lib/dld.sl: No such file or directory
sh: 27983 Abort(coredump)

Stop
==============================================

cyb_hpux [ /cyborg/app/oracle/product/817/precomp/demo/procob ] $ more link.lib
procob18 iname=sample2.pco
*** Error exit code 134
==============================================
What do you suggest me?



Yogeeraj_1
Honored Contributor

Re: Make: Cannot open procob.mk. Stop.

hello,

Make sure of the following:
$LD_LIBRARY_PATH - includes $ORACLE_HOME/lib64, but not $ORACLE_HOME/lib
$SHLIB_PATH - includes $ORACLE_HOME/lib, but not $ORACLE_HOME/lib64

And retry...

Hope this helps!

Best Regards
Yogeeraj
No person was ever honoured for what he received. Honour has been the reward for what he gave (clavin coolidge)
Yogeeraj_1
Honored Contributor

Re: Make: Cannot open procob.mk. Stop.

hi again,

are you running HP-UX Oracle 64-bits or 32-bits

also, your HP-UX 11?

please let us know

Regards
Yogeeraj
No person was ever honoured for what he received. Honour has been the reward for what he gave (clavin coolidge)
Engo Armand-Blaise
Frequent Advisor

Re: Make: Cannot open procob.mk. Stop.

I'm running HP B11 with 32 bits... So the make file to create is not successful. This is the profile's path I have :
ORACLE_HOME=/cyborg/app/oracle/product/817 ; export ORACLE_HOME
LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH ; export LD_LIBRARY_PATH
PATH=$PATH:$ORACLE_HOME/bin ; export PATH
# Set Cobol Environment

LPATH=/usr/lib:/opt/cobol/cobdir; export LPATH
SHLIB_PATH=/opt/cobol/cobdir/coblib ; export SHLIB_PATH

=============================================

I hope this will help.

Thanks.

Ian Lochray
Respected Contributor

Re: Make: Cannot open procob.mk. Stop.

As Yogeeraj said, make sure that $SHLIB_PATH - includes $ORACLE_HOME/lib, but not $ORACLE_HOME/lib64. Currently it only contains the COBOL shared libraries.
Engo Armand-Blaise
Frequent Advisor

Re: Make: Cannot open procob.mk. Stop.

I've done the same but there is no change on it :

LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH ; export LD_LIBRARY_PATH

LPATH=/usr/lib:/opt/cobol/cobdir ; export LPATH
SHLIB_PATH=/opt/cobol/cobdir/coblib:$ORACLE_HOME/lib; export SHLIB_PATH
PATH=$PATH:/usr/bin:/usr/ccs/bin:/opt/cobol ; export PATH
PATH=$PATH:/opt/cobol/bin:/opt/cobol/bin ; export PATH
PATH=$PATH:$LPATH:$SHLIB_PATH ; export PATH
PATH=$PATH:$ORACLE_HOME/precomp/demo/procob ; export PATH
PATH=$PATH:$ORACLE_HOME/precomp/lib ; export PATH

Ian Lochray
Respected Contributor

Re: Make: Cannot open procob.mk. Stop.

Have you got ORACLE_HOME set correctly in your environment? Also, do an ls -l $ORACLE_HOME/lib/libwtc8.sl to check it is present and readable.
Ian Lochray
Respected Contributor

Re: Make: Cannot open procob.mk. Stop.

Can you cd to $ORACLE_HOME/bin and do a
chatr procob18 | more

The output should show that SHLIB_PATH is enabled e.g.

procob18:
shared executable
shared library dynamic path search:
SHLIB_PATH enabled first
Engo Armand-Blaise
Frequent Advisor

Re: Make: Cannot open procob.mk. Stop.

This what I have :

$ echo $ORACLE_HOME
/cyborg/app/oracle/product/817
$ l -ltr $ORACLE_HOME/lib/libwtc8.sl
-rwxr-xr-x 1 oracle dba 12288 Aug 25 2000 /cyborg/app/oracle/pro
duct/817/lib/libwtc8.sl
==============================================

Must I obliged to re-install the precompiler or not?
Engo Armand-Blaise
Frequent Advisor

Re: Make: Cannot open procob.mk. Stop.

ls -ltr procob18
-rwxr-xr-x 1 oracle dba 11751424 Aug 25 2000 procob18
cyb_hpux [ /cyborg/app/oracle/product/817/bin ] $ chatr procob18|more
chatr(warning): dl_header_ext.size != sizeof(dl_header_ext). Please update your
version of the linker.
procob18:
shared executable
shared library dynamic path search:
SHLIB_PATH enabled first
embedded path disabled second Not Defined
shared library list:
dynamic /project/hpux/817/src_000811_cunnitha/lib//libclntsh.sl.8
.0
dynamic /project/hpux/817/src_000811_cunnitha/lib//libwtc8.sl
dynamic /usr/lib/librt.2
dynamic /usr/lib/libpthread.1
dynamic /usr/lib/libnss_dns.1
dynamic /usr/lib/libdld.2
dynamic /usr/lib/libm.2
dynamic /usr/lib/libc.2 ........
============================================

Please assist me.

Engo.
Ian Lochray
Respected Contributor

Re: Make: Cannot open procob.mk. Stop.

Try relinking procob18. To do this log on as oracle, cp $ORACLE_HOME/bin/procob18 $ORACLE_HOME/bin/procob18.bak, cd $ORACLE_HOME/precomp/lib, make -f ins_precomp.mk procob18.
Engo Armand-Blaise
Frequent Advisor

Re: Make: Cannot open procob.mk. Stop.

This is what I have when trying to relink "procob18" :
make -f ins_precomp.mk
procob18
Linking procob18
/usr/ccs/bin/ld: Can't find library: "clntsh"
*** Error exit code 1

Stop.
Ian Lochray
Respected Contributor

Re: Make: Cannot open procob.mk. Stop.

This seems to be very similar to your original problem - libraries in $ORACLE_HOME/lib are not being picked up. Let's have a look at the link command being used.
DO the same as before except, take a copy of ins_precomp.mak and edit the copy. FInd the line that starts "$(LOC_PROCOB18):" and delete the following line "$(SILENT)$(ECHO) "Linking $@"; \". You can then relink procob18 specifying the new file instead of ins_precomp.mak. This will show you the link command being used which should tell us where it is all going wrong.
Can you please post the output along with the output of:
echo $ORACLE_HOME
env | grep LIB
ls -l $ORACLE_HOME/lib
Engo Armand-Blaise
Frequent Advisor

Re: Make: Cannot open procob.mk. Stop.

 
Ian Lochray
Respected Contributor

Re: Make: Cannot open procob.mk. Stop.

libclntsh.sh in $ORACLE_HOME/lib is a symbolic link to libclntsh.sl.8.0 but, according the the result of your ls -l $ORACLE_HOME/lib, you do not have a libclntsh.sl.8.0.
If this is the case, you can regenerate it as the oracle user by running the script genclntsh in $ORACLE_HOME/bin.
Engo Armand-Blaise
Frequent Advisor

Re: Make: Cannot open procob.mk. Stop.

After running "genclntsh", this is the result :

genclntsh
cat: Cannot open /tmp/clntst8.3817/*.nm: No such file or directory
Extracting from ...
sort: Cannot open /tmp/clntst8.3817/*.objs
usage: ar [-][mrxtdpq][ACTabcFfilsuvzS] [posname] archive files ...
ar: creating /cyborg/app/oracle/product/817/lib/libclntst8.a
Created /cyborg/app/oracle/product/817/lib/libclntst8.a


Ian Lochray
Respected Contributor

Re: Make: Cannot open procob.mk. Stop.

genclntsh calls genclntst which regenerates the archive library libclntst8.a. This is where your error occurred. I suspect that you have hit the following Oracle error. If libclntst.a has been altered by running genclntst, then you should make a backup of genclntst and then apply the Oracle fix described below.
Problem Description ------------------- When running genclntsh to generate the client shared library the following error is seen: expr: syntax error basename: too few arguments Solution Description -------------------- Edit the file $ORACLE_HOME/bin/genclntst and modify the do / done block that starts at line 98 as follows: do case "$objname" in *\(*\)) # REPLACE following 2 lines # library=`expr $objname : '\(.*\)\(.*\)'` # object=`expr $objname : '.*\(\(.*\)\)'` library=`echo $objname | sed 's/(.*)//'` object=`echo $objname | sed 's/.*(//' | sed 's/)//'` libname=`basename $library` echo $library > $WRKDIR/$libname.nm echo $object >> $WRKDIR/$libname.objs ;; *) object=$objname cp $object `basename $object` ;; esac done Explanation ----------- The basename and expr utilities are called with the wrong arguments, genclntst is called from genclntsh to link the static library along with the shared, these modifications will allow you to link the static library successfully too. References
Ian Lochray
Respected Contributor

Re: Make: Cannot open procob.mk. Stop.

Did it generate libclntsh.sl.8.0? If so, go back to trying to link procob18.
The errors you saw relate to calling genclntst. I will have a look to see if they are important.
Engo Armand-Blaise
Frequent Advisor

Re: Make: Cannot open procob.mk. Stop.

There is no change to this file "genclntst".... I think it should be better to know exactly if it is possible to create any makefile instead of the demo one.......