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

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

Revision 1.5, Fri Jul 11 22:40:54 2003 UTC (14 years, 3 months ago) by jlim
Branch: MAIN
CVS Tags: release-2_1_5-10, HEAD
Changes since 1.4: +3 -2 lines

Various changes to support Apple Darwin (Mac OS X), provided by Chris Scharver.

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) $(POST_LDDSOOPTS) -o $@

$(LARCHIVE):
	for i in $(SUBDIRS); do $(MAKE) -C$$i all || exit 1; done
	$(RM) $(LARCHIVE)
	$(AR) $(ARFLAGS) $(LARCHIVE) $(OBJECTS)

install_ivlibdso: $(LIBDSO)
	mkdir -p $(IVLIBDIR)
	$(INSTALL) -m 755 $< $(IVLIBDIR)

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

install_ivheaders:
	mkdir -p $(IVHDRDIR)
	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)
	mkdir -p $(IVMAN3DIR)
	for i in $^; do $(INSTALL) -m 644 $$i $(IVMAN3DIR); done

install_man1: $(MAN1PAGES)
	mkdir -p $(IVMAN1DIR)
	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) $(POST_LDDSOOPTS) -o $@

install_ivbin: $(PROGRAM)
	mkdir -p $(IVBINDIR)
	$(INSTALL) -m 755 $(PROGRAM) $(IVBINDIR)

install_ivscript:
	mkdir -p $(IVBINDIR)
	$(INSTALL) -m 755 $(SCRIPT) $(IVBINDIR)
	if [ "$(IVPREFIX)" != "/usr" ]; then \
	  (cd $(IVBINDIR) && \
	  sed -e 's#/usr#'"$(IVPREFIX)"'#g' $(SCRIPT) > tmp && \
	  mv tmp $(SCRIPT)); \
	fi

install_ivdemo: $(DEMO)
	mkdir -p $(IVDEMOBINDIR) $(IVDEMODATADIR)
	$(INSTALL) -m 755 $(DEMO) $(IVDEMOBINDIR)
	if [ -e $(DEMO).RUNME ]; then \
	  $(INSTALL) -m 755 $(DEMO).RUNME $(IVDEMOBINDIR); \
	  if [ "$(IVPREFIX)" != "/usr" ]; then \
	    (cd $(IVDEMOBINDIR) && \
	    sed -e 's#/usr#'"$(IVPREFIX)"'#g' $(DEMO).RUNME > tmp && \
	    mv tmp $(DEMO).RUNME); \
	  fi; \
	fi
	if [ -e $(DEMO).about ]; then \
	  $(INSTALL) -m 644 $(DEMO).about $(IVDEMOBINDIR); \
	fi



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

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

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