[BACK]Return to so_inclcommonrules CVS log [TXT][DIR] Up to [Development] / inventor / make

File: [Development] / inventor / make / Attic / so_inclcommonrules (download)

Revision 1.1.1.1 (vendor branch), Tue Aug 15 12:56:29 2000 UTC (17 years, 2 months ago) by naaman
Branch: sgi
CVS Tags: start
Changes since 1.1: +0 -0 lines

Initial check-in based on 2.1.5 (SGI IRIX) source tree.

#
# Copyright (C) 1990,1991  Silicon Graphics, Inc.
#
#_______________________________________________________________________
#______________  S I L I C O N   G R A P H I C S   I N C .  ____________
#
#   usr/src/toolkits/Inventor/make/so_inclcommonrules
#   $Revision: 1.1.1.1 $
#
#   Description:
#      Inventor include common rules - primary deals with generating a 
#   C-api from the .h files.  
#
#   The following should be set before including this file:
#	HINST_DIR	Directory under /usr that c++ header files should 
#			be installed in
#	CAPI_HINST_DIR  Directory under /usr that c header files should be
#			installed in
#	CPP_DIR		Directory relative to this one where c++ header files
#			can be stored
#	CAPI_DIR	Directory relative to this one where c header files can
#			be stored
#	CAPI_SOLIB	Destination location of C-api library
#	ORIG_DIR	Relative location of this directory to CPP_DIR and
#			CAPI_DIR
#	HFILES		All .h files to be processed
#
#   Author(s):	Kevin P. Smith
#
#______________  S I L I C O N   G R A P H I C S   I N C .  ____________
#_______________________________________________________________________
#
#
#

LCDEFS = $(SO_LCDEFS) $(DEFINES)
LCOPTS = $(SO_LCOPTS) 
LC++DEFS = $(SO_LC++DEFS) $(DEFINES)
LC++OPTS = $(SO_LC++OPTS)

LDIRT = $(CAPI_DIR) $(CPP_DIR) $(CAPI_SOLIB) CapiSymbols.C 

IDBTAGH     = -idb "inventor_dev.sw.base HDR"
IDBTAGHC    = -idb "inventor_dev.sw.c HDRC"

# default creates C and C++ headers
default: c_api cppinclude

# insertDefs fixes the C api headers after default has been run
insertDefs:
	cd $(CAPI_DIR); \
	chmod 644 $(HFILES); /bin/ls $(HFILES) | \
	    $(DEPTH)../tools/ncbind/insertDefs $(DATAFILE); \
	chmod 444 $(HFILES)

# install installs everything
install:
	(cd $(CAPI_DIR); \
	  $(INSTALL) -m 444 $(IDBTAGHC) -F /usr/$(CAPI_HINST_DIR) $(HFILES));
	(cd $(CPP_DIR); \
	  $(INSTALL) -m 444 $(IDBTAGH) -F /usr/$(HINST_DIR) $(HFILES));

include $(COMMONRULES)

#
# The INCL_TMPFILE variable is used by the tools/ncbind/strip2.0Defs.awk 
# script.  Do not change the filenames unless you also change the script.
#
INCL_TMPFILE = /tmp/.shercapi

c_api: CapiSymbols.o $(HFILES) $(CAPI_DIR)
	cd $(CAPI_DIR); \
	$(MAKE) -f $(ORIG_DIR)/Makefile DOING_C=1 CapiHeaders

cppinclude: $(CPP_DIR) $(HFILES)
	cd $(CPP_DIR); \
	$(MAKE) -f $(ORIG_DIR)/Makefile DOING_CPP=1 CppHeaders

$(CAPI_DIR):
	mkdir -p $(CAPI_DIR)

$(CPP_DIR):
	mkdir -p $(CPP_DIR)

#
# The -Wf,-min_st_indirection flag is a workaround for a compiler bug which
# causes the CapiSymbols.o file to be generated in such a way that the mld
# commands used by ncbind return bogus information.
#	
CapiSymbols.o: CapiSymbols.C
	$(C++F) -Wf,-min_st_indirection -g -c CapiSymbols.C

CapiSymbols.C: $(HFILES)
	cat $(HFILES) > CapiSymbols.C

#ifdef DOING_CPP

CppHeaders: $(HFILES)

.NOTPARALLEL: $(HFILES)

$(HFILES): $(ORIG_DIR)/$@
	$(DEPTH)../tools/ncbind/copyrightScript \
	    $(DEPTH)../doc/copyrightNotice.txt $(ORIG_DIR)/$@ $(INCL_TMPFILE)
	nawk -f $(DEPTH)../tools/ncbind/strip2.0Def.awk $(INCL_TMPFILE) > $@
	/bin/rm $(INCL_TMPFILE)

#endif

#ifdef DOING_C

CapiHeaders: $(HFILES)

# This rule doesn't work properly.  It de-parallelizes everything.  Not good.
.NOTPARALLEL: $(HFILES)

$(HFILES): $(ORIG_DIR)/$@ 
	NEWNAME=`$(DEPTH)../tools/hashname/hashname $@` ; \
	$(DEPTH)../tools/ncbind/ncbind $(SO_NCBIND) -o $(ORIG_DIR)/CapiSymbols.o -h ${@:.h=_.h} -c $$NEWNAME.c++ $(ORIG_DIR)/$@ ; \
	$(C++F) -c $$NEWNAME.c++ ; \
	$(AR) crlv $(CAPI_SOLIB) $$NEWNAME.o ; \
	/bin/rm $$NEWNAME.c++ $$NEWNAME.o ; \
	/bin/mv ${@:.h=_.h} $@
	$(DEPTH)../tools/ncbind/digest < $@ >> $(DATAFILE)
	/bin/cat $(DEPTH)../doc/copyrightNotice.txt > /tmp/.capif
	/bin/cat $@ >> /tmp/.capif
	/bin/mv /tmp/.capif $@
#endif