August 10, 1999
Lucky Vidmar Mon Feb 14 21:48:28 GMT 2000 There is a change in the procedure for building the complete release of Earthworm. Version 3.9 introduces a top-level Makefile in the src directory. It contains all directives necessary to build all Earthworm modules, as well as to clean up the Earthworm file hierarchy, under both Solaris and NT. Detailed information is available in the Makefile. Following are the procedures for building Earthworm: SOLARIS: - source run_test/params/ew_sol_sparc.cmd - cd src - make solaris NT - run script run_test/params/ew_nt.cmd - cd src - nmake nt To clean up the Earthworm file tree, i.e. to remove .o, .obj, core, and backup files, run the following: - cd src; make clean_solaris (on a Solaris system) - cd src; nmake clean_nt (on an NT system) To clean the bin directory: - cd src: make clean_bin_solaris (on a Solaris system) - cd src; nmake clean_bin_nt (on an NT system) Whenever a new module is added to Earthworm, or an old one is retired, the top-level Makefile should be modified to reflect the change. See the comments in the Makefile for more information. Each Earthworm module should contain makefiles for both NT and Solaris, regardless of the platform on which it is meant to be compiled. If a module is not supposed to be compiled on a platform, the corresponding makefile should only contain the clean-up directives. This enables complete clean-up of the Earthworm file hierarchy using the top-level Makefile on both NT and Solaris. COMPILING THE DATABASE PART OF EARTHWORM SOLARIS: The changes described here are no longer needed, but if they are not performed, then you will receive extra warning messages when newly linking an Oracle based application. When building earthworm DBMS applications(ON A SOLARIS SYSTEM), a change may be made to an Oracle makefile (/opt/oracle/rdbms/lib/env_rdbms.mk to prevent harmless error messages. Go to the bottom of the file and comment out all lines in the file starting with the $(LIBCLNTSH) target definition, so that the file looks as below. The example provided is from Oracle8. #$(LIBCLNTSH): \ # ${ORACLE_HOME}/lib/libclient.a ${ORACLE_HOME}/lib/libsql.a \ # ${ORACLE_HOME}/lib/libnetv2.a ${ORACLE_HOME}/lib/libnttcp.a \ # ${ORACLE_HOME}/lib/libnetwork.a ${ORACLE_HOME}/lib/libncr.a \ # ${ORACLE_HOME}/lib/libcommon.a ${ORACLE_HOME}/lib/libgeneric.a \ # ${ORACLE_HOME}/lib/libmm.a ${ORACLE_HOME}/rdbms/lib/xaondy.o \ # ${ORACLE_HOME}/lib/libnlsrtl3.a ${ORACLE_HOME}/lib/libcore4.a \ # ${ORACLE_HOME}/lib/libepc.a # $(SILENT)$(ECHO) "Building client shared library libclntsh.so ..." # $(SILENT)$(ECHO) "Call script $$ORACLE_HOME/bin/genclntsh ..." # $(GENCLNTSH) # $(SILENT)$(ECHO) "Built $$ORACLE_HOME/lib/libclntsh.so ... DONE" If you do not perform the described modifications, then you will get the following warning the first time you execute make in each directory (or the first time after you have executed "make clean"): Building client shared library libclntsh.so ... Call script /opt/oracle/bin/genclntsh ... /opt/oracle/bin/genclntsh cp: cannot create /opt/oracle/lib/libcommon9034.a: Permission denied chmod: WARNING: can't access /opt/oracle/lib/libcommon9034.a ar: archive, /opt/oracle/lib/libcommon9034.a, not found ld: fatal: file /opt/oracle/lib/libclntsh.so.1.0: cannot open file: Permission de nied ln: cannot create libclntsh.so: File exists Built /opt/oracle/lib/libclntsh.so ... DONE Genclntsh is a program executed by Oracle to build several libraries for your machine. It needs to be run once, at Oracle install time, but never again(unless you perform an OS or Oracle upgrade). Because of the way the makefiles come from Oracle, the make program will attempt to rerun the genclntsh script whenever it cannot find a record of it in the local .make.state file. The program runs, complains about not being able overwrite the libraries, and then completes harmlessly. This should not be harmful unless it is confusing to the person compiling. NOTE*: There is no negative consequence of performing the change described in the documentation. then: - source run_test/params/ew_sol_sparc.cmd - cd src/oracle - make solaris NT - run script run_test/params/ew_nt.cmd - cd src\oracle\schema\src - nmake nt - cd src\oracle\apps\src - nmake nt