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

File: [Development] / inventor / make / ivcommonrules (download)

Revision 1.1, Mon Sep 18 07:27:37 2000 UTC (17 years, 1 month ago) by jlim
Branch: MAIN

Simplified makefile definitions and rules.

include $(COMMONRULES)



#
# Rule for generating C++ from shape source code in PP format.
#

.SUFFIXES: .pp

.pp.c++:
	$(IVPPP) < $< > $@

SHAPEFILES = $(PPFILES:.pp=.c++)

LDIRT += $(SHAPEFILES)



#
# Rules for building and installing Inventor and InventorXt DSO's.
#

$(LIBDSO): $(LARCHIVE)
	$(LD) $(LDDSOOPTS) $^ $(LDLIBS) -o $@

$(LARCHIVE):
	for i in $(SUBDIRS); do (cd $$i; $(MAKE) all); done
	$(RM) $(LARCHIVE)
	$(AR) $(ARFLAGS) $(LARCHIVE) $(OBJECTS)

install_ivlibdso: $(LIBDSO)
	if [ ! -d $(IVLIBDIR) ]; then mkdir -p $(IVLIBDIR); fi
	$(INSTALL) -m 755 $< $(IVLIBDIR)

	if [ "$(LIBTYPE)" = "debug" ]; then \
	  if [ ! -d $(IVDLIBDIR) ]; then mkdir -p $(IVDLIBDIR); fi; \
	  $(INSTALL) -m 755 $< $(IVDLIBDIR); \
	fi

install_ivheaders:
	if [ ! -d $(IVHDRDIR) ]; then mkdir -p $(IVHDRDIR); fi
	for h in $(HEADERS); do $(INSTALL) -m 644 $$h $(IVHDRDIR); done

LDIRT += $(LARCHIVE)



#
# Rules for creating and installing man pages from documentation in IVM format.
#

.SUFFIXES: .ivm .3iv

.ivm.3iv:
	(cd ..; $(IVMAN) `$(MAKEMANDIRS) $(*F)`) > $@

MAN3PAGES = $(IVMFILES:.ivm=.3iv)

all_man3iv: $(MAN3PAGES)

install_man3iv: $(MAN3PAGES)
	if [ ! -d $(IVMAN3DIR) ]; then mkdir -p $(IVMAN3DIR); fi
	for i in $^; do $(INSTALL) -m 644 $$i $(IVMAN3DIR); done

install_man1: $(MAN1PAGES)
	if [ ! -d $(IVMAN1DIR) ]; then mkdir -p $(IVMAN1DIR); fi
	for i in $^; do $(INSTALL) -m 644 $$i $(IVMAN1DIR); done

LDIRT += $(MAN3PAGES)



#
# Rules for building and installing programs, archives, and DSO's in apps
# directory.
#

$(PROGRAM): $(LTARGETS) $(OBJECTS)
	$(CXX) $(LDOPTS) $(OBJECTS) $(LDLIBS) -o $@

$(PROGRAMS_1): %: %.o
	$(CXX) $(LDOPTS) $< $(LDLIBS) -o $@

$(PROGRAMS_2): %: %.o $(OBJECTS)
	$(CXX) $(LDOPTS) $< $(OBJECTS) $(LDLIBS) -o $@

$(PROGRAMS_EXT):
	$(MAKE) -f GNUmakefile.$@

$(ARCHIVE): $(LTARGETS) $(OBJECTS)
	$(AR) $(ARFLAGS) $@ $(OBJECTS)

$(DSO): $(OBJECTS)
	$(LD) $(LDDSOOPTS) $(OBJECTS) $(LDLIBS) -o $@

install_ivbin: $(PROGRAM)
	if [ ! -d $(IVBINDIR) ]; then mkdir -p $(IVBINDIR); fi
	$(INSTALL) -m 755 $(PROGRAM) $(IVBINDIR)

install_ivscript:
	if [ ! -d $(IVBINDIR) ]; then mkdir -p $(IVBINDIR); fi
	$(INSTALL) -m 755 $(SCRIPT) $(IVBINDIR)

install_ivdemo: $(DEMO)
	if [ ! -d $(IVDEMOBINDIR) ]; then mkdir -p $(IVDEMOBINDIR); fi
	if [ ! -d $(IVDEMODATADIR) ]; then mkdir -p $(IVDEMODATADIR); fi
	$(INSTALL) -m 755 $(DEMO) $(IVDEMOBINDIR)



#
# Convenience assignments. TARGETS are removed by 'make clobber'.
#

all_ivbin: $(LIBDSO) $(PROGRAM) $(PROGRAMS_1) $(PROGRAMS_2) $(ARCHIVE) $(DSO)

TARGETS += $(LIBDSO) $(PROGRAM) $(PROGRAMS_1) $(PROGRAMS_2) $(PROGRAMS_EXT) \
		$(ARCHIVE) $(DSO)