.PRECIOUS: $(DYNAMIC_LIBRARY) $(STATIC_LIBRARY)
.PRECIOUS: $(HEADER_PATH)/%$(C++_HEADER_SUFFIX)
.PRECIOUS: $(NOSHIP_HEADER_PATH)/%$(C++_HEADER_SUFFIX)
.PHONY: targets buildlib staticlib dynamiclib instlib
ifdef AUTO_SUBDIR
COMMONPREF = standard_
%: $(COMMONPREF)%
$(SUBDIRS_MAKERULE)
default: $(COMMONPREF)default
$(SUBDIRS_MAKERULE)
endif
$(COMMONPREF)default: targets
ifndef LIBROOT
@$(NOOP)
else
@$(MAKE) buildlib
endif
ifdef DOCTOR_DEP
-include $(DOCTOR_DEP)
endif
ifndef MAKE_STATIC_LIB
MAKE_DYNAMIC_LIB = 1
endif
targets: $(TARGETS)
@$(NOOP)
buildlib:
@mkdir -p $(OBJECT_PATH)
ifdef MAKE_STATIC_LIB
@cd $(OBJECT_PATH); $(MAKE_LIB) staticlib
endif
ifdef MAKE_DYNAMIC_LIB
@cd $(OBJECT_PATH); $(MAKE_LIB) dynamiclib
endif
staticlib: $(STATIC_LIBRARY)
@$(NOOP)
dynamiclib: $(DYNAMIC_LIBRARY)
@$(NOOP)
instlib: buildlib
ifdef MAKE_DYNAMIC_LIB
ifneq (,$(findstring false,$(BUILD_ISA)))
$(INSTALL) -m $(DLMODE) -idb $(INST_DL_TAG) -F $(INST_DL_PATH) \
-src $(DYNAMIC_LIBRARY) $(LIBPREFIX)$(LIBROOT)$(DBGDLSUF)
else
ifneq (,$(findstring N32_M4,$(OBJECT_STYLE))$(findstring 64_M4,$(OBJECT_STYLE)))
$(INSTALL) -m $(DLMODE) -idb $(INST_DL_TAG) $(INST_ISA_MIPS4) \
-src $(DYNAMIC_LIBRARY) -F $(INST_ISA_TARG_PATH) \
$(LIBPREFIX)$(LIBROOT)$(DBGDLSUF)
$(INSTALL) -idb $(INST_DL_TAG) $(INST_ISA_MIPS4) \
-lns ../$(LIBPREFIX)$(LIBROOT)$(DBGDLSUF) \
-F $(INST_DL_PATH) $(LIBPREFIX)$(LIBROOT)$(DBGDLSUF)
$(INSTALL) -m $(DLMODE) -idb $(INST_DL_TAG) $(INST_ISA_MIPS3) \
-src $(DYNAMIC_LIBRARY) -F $(INST_DL_PATH) \
$(LIBPREFIX)$(LIBROOT)$(DBGDLSUF)
else
$(INSTALL) -m $(DLMODE) -idb $(INST_DL_TAG) $(INST_ISA_MIPS3) \
-src $(DYNAMIC_LIBRARY) -F $(INST_ISA_TARG_PATH) \
$(LIBPREFIX)$(LIBROOT)$(DBGDLSUF)
$(INSTALL) -idb $(INST_DL_TAG) $(INST_ISA_MIPS3) \
-lns ../$(LIBPREFIX)$(LIBROOT)$(DBGDLSUF) \
-F $(INST_DL_PATH) $(LIBPREFIX)$(LIBROOT)$(DBGDLSUF)
$(INSTALL) -m $(DLMODE) -idb $(INST_DL_TAG) $(INST_ISA_MIPS4) \
-src $(DYNAMIC_LIBRARY) -F $(INST_DL_PATH) \
$(LIBPREFIX)$(LIBROOT)$(DBGDLSUF)
endif
endif
endif
ifdef IN_OBJECT_DIR
ifdef PCH_SRC
LC++OPTS += $(PCH_USE_OPT)
$(OBJECTS): $(PCH_OBJ)
$(PCH_OBJ) $(PCH_OUT): $(PCH_SRC) $(PCH_HDR)
$(PCH_CMD) -c $<
endif
endif
include $(COMMONRULES)
ifdef IRIX
$(STATIC_LIBRARY): $(OBJECTS)
@mkdir -p $(LIB_PATH)
$(C++) -ar -o $@ $?
$(POST_STATICLIB_CMD)
ifdef LIBROOT
ifdef USING_GENEXPORTS
LLDOPTS += -exports_file exports
endif
endif
DSONAMEOPT = -soname $(notdir $(DYNAMIC_LIBRARY))
$(DYNAMIC_LIBRARY): $(OBJECTS)
@mkdir -p $(LIB_PATH)
ifdef USING_GENEXPORTS
$(C++) $(CXXINCS) $(CXXDEFS) -D$(COMP_PREFIX)_GENEXPORTS -E $(HEADERS) 2> /dev/null | $(GENEXPORTS) $(OBJECTS) > exports
endif
$(LDDSOCMD) $(OPTIMIZER) $(LDOPTS) $(LDDSOOPTS) $(OBJECTS) $(LDLIBS) -o $@
$(POST_DYNAMICLIB_CMD)
endif
ifdef LINUX
DSONAMEOPT = -Wl,-soname,$(notdir $(DYNAMIC_LIBRARY))
$(STATIC_LIBRARY): $(OBJECTS)
@mkdir -p $(LIB_PATH)
$(AR) $(ARO)$@ $?
$(POST_STATICLIB_CMD)
$(DYNAMIC_LIBRARY): $(OBJECTS)
@mkdir -p $(LIB_PATH)
$(LDDSOCMD) $(OPTIMIZER) $(LDOPTS) $(LDDSOOPTS) $(OBJECTS) $(LDLIBS) -o $@
$(POST_DYNAMICLIB_CMD)
endif
LDIRT += $(DYNAMIC_LIBRARY) $(STATIC_LIBRARY) .genHeaderPath
.genHeaderPath:
@mkdir -p $(HEADER_PATH)
ifneq ($(HEADER_PATH),$(NOSHIP_HEADER_PATH))
@mkdir -p $(NOSHIP_HEADER_PATH)
endif
@touch $@
ifneq (,$(strip $(HEADERS)))
$(HEADERS): .genHeaderPath
$(HEADER_PATH)/%$(C++_HEADER_SUFFIX) : %$(DOCTOR_INPUT_SUFFIX)
ifdef DOCTOR_STRIP_SUPPRESS
cp -f $< $@
else
$(DOCTOR_STRIP) $< > $@
endif
ifneq ($(HEADER_PATH),$(NOSHIP_HEADER_PATH))
$(NOSHIP_HEADER_PATH)/%$(C++_HEADER_SUFFIX) : %$(DOCTOR_INPUT_SUFFIX)
$(DOCTOR_STRIP) $< > $@
endif
endif
$(MAN3_PATH)/%.doc : %$(DOCTOR_INPUT_SUFFIX) $(HEADER_PATH)/%$(C++_HEADER_SUFFIX)
$(DOCTOR_GENDOC) $< > $@
$(DOCTOR_DEP): $(DOCFILES)
$(DOCTOR_GENDEPS) $^ > $(DOCTOR_DEP)
$(MAN3_INDEX): $(DOCFILES) $(HTML_TOC_TEMPLATE)
$(DOCTOR_GENTOC) $(DOCFILES) > $@
headers: $(INST_HEADERS)
ifneq (,$(strip $(INST_HEADERS)))
for file in $(INST_HEADERS); do \
$(INSTALL) -m 644 -idb $(INST_HEADER_TAG) -F $(INST_HEADER_PATH) \
-src $$file `basename $$file`; \
done
endif
%.gz: %.html
gzip -c $< > $@
%.z: %.html
$(DOCTOR_HTML2TERM) < $< > $(basename $@)
@rm -f $@; pack -f $(basename $@) 2> /dev/null
man: $(MAN1_INSTALLED) $(MAN3_INSTALLED) $(MAN4_INSTALLED) $(MAN3_INDEX)
$(INSTPREF)$(COMMONPREF)install: $(INSTALL_DEPENDENCIES)
ifdef LIBROOT
ifdef IRIX
ifndef SKIP_O32
@echo "=== building $(TARGET_DSO): o32,debug"
@$(MAKE) OBJECT_STYLE=$(OBJECT32_STYLE) LIBTYPE=debug instlib
@echo "=== building $(TARGET_DSO): o32,optimized"
@$(MAKE) OBJECT_STYLE=$(OBJECT32_STYLE) LIBTYPE=optimized instlib
endif
ifndef SKIP_N32
@echo "=== building $(TARGET_DSO): n32,debug"
@$(MAKE) OBJECT_STYLE=$(OBJECTN32_STYLE) LIBTYPE=debug instlib
ifneq (,$(findstring false,$(BUILD_ISA)))
@echo "=== building $(TARGET_DSO): n32,optimized"
@$(MAKE) OBJECT_STYLE=$(OBJECTN32_STYLE) LIBTYPE=optimized instlib
else
@echo "=== building $(TARGET_DSO): n32,mips3,optimized"
@$(MAKE) OBJECT_STYLE=N32_M3 LIBTYPE=optimized instlib
@echo "=== building $(TARGET_DSO): n32,mips4,optimized"
@$(MAKE) OBJECT_STYLE=N32_M4 LIBTYPE=optimized instlib
endif
endif
ifndef SKIP_64
@echo "=== building $(TARGET_DSO): 64,debug"
@$(MAKE) OBJECT_STYLE=$(OBJECT64_STYLE) LIBTYPE=debug instlib
ifneq (,$(findstring false,$(BUILD_ISA)))
@echo "=== building $(TARGET_DSO): 64,optimized"
@$(MAKE) OBJECT_STYLE=$(OBJECT64_STYLE) LIBTYPE=optimized instlib
else
@echo "=== building $(TARGET_DSO): 64,mips3,optimized"
@$(MAKE) OBJECT_STYLE=64_M3 LIBTYPE=optimized instlib
@echo "=== building $(TARGET_DSO): 64,mips4,optimized"
@$(MAKE) OBJECT_STYLE=64_M4 LIBTYPE=optimized instlib
endif
endif
endif
ifdef LINUX
@echo "=== building $(TARGET_DSO): debug"
@$(MAKE) LIBTYPE=debug instlib
@echo "=== building $(TARGET_DSO): optimized"
@$(MAKE) LIBTYPE=optimized instlib
endif
endif
ifneq (,$(strip $(MAN1_FILES)))
$(INSTALL) -m 644 -idb $(INST_EOEMAN_TAG) -F $(INST_MAN1_PATH) $(MAN1_INSTALLED)
ifndef HTML_MANPAGES
$(INSTALL) -m 644 -idb $(INST_EOEMAN_TAG) -F $(INST_MAN_EOE_HTML_PATH) $(MAN1_FILES)
endif
endif
ifneq (,$(strip $(MAN3_FILES)))
$(INSTALL) -m 644 -idb $(INST_DEVMAN_TAG) -F $(INST_MAN3_PATH) $(MAN3_INSTALLED)
ifndef HTML_MANPAGES
$(INSTALL) -m 644 -idb $(INST_DEVMAN_TAG) -F $(INST_MAN_DEV_HTML_PATH) $(MAN3_FILES)
endif
endif
ifdef MAN3_INDEX
$(INSTALL) -m 644 -idb $(INST_DEVMAN_TAG) -F $(INST_MAN3_PATH) $(MAN3_INDEX)
ifndef HTML_MANPAGES
$(INSTALL) -m 644 -idb $(INST_DEVMAN_TAG) -F $(INST_MAN_DEV_HTML_PATH) $(MAN3_INDEX)
endif
endif
ifneq (,$(strip $(MAN4_FILES)))
$(INSTALL) -m 644 -idb $(INST_DEVMAN_TAG) -F $(INST_MAN4_PATH) $(MAN4_INSTALLED)
ifndef HTML_MANPAGES
$(INSTALL) -m 644 -idb $(INST_DEVMAN_TAG) -F $(INST_MAN_DEV_HTML_PATH) $(MAN4_FILES)
endif
endif
ifdef PG_FILES
$(INSTALL) -m 644 -idb $(INST_PG_TAG) -F $(INST_PG_PATH) $(PG_FILES)
endif
ifdef UG_FILES
$(INSTALL) -m 644 -idb $(INST_UG_TAG) -F $(INST_UG_PATH) $(UG_FILES)
endif
ifdef EOEREL_FILES
$(INSTALL) -m 644 -idb $(INST_EOEREL_TAG) -F $(INST_EOEREL_PATH) $(EOEREL_FILES)
endif
ifdef DEVREL_FILES
$(INSTALL) -m 644 -idb $(INST_DEVREL_TAG) -F $(INST_DEVREL_PATH) $(DEVREL_FILES)
endif
ifdef INST_DATA_FILES
$(INSTALL) -m 644 -idb $(INST_DATA_TAG) -F $(INST_DATA_PATH) $(INST_DATA_FILES)
endif
ifdef INST_SRC_FILES
$(INSTALL) -m 644 -idb $(INST_SRC_TAG) -F $(INST_SRC_PATH) $(INST_SRC_FILES)
endif
ifneq (,$(strip $(INST_PROG_TARGETS)))
$(INSTALL) -m 755 -idb $(INST_PROG_TAG) -F $(INST_PROG_PATH) $(INST_PROG_TARGETS)
endif
ifneq (,$(strip $(INST_DEMO_TARGETS)))
$(INSTALL) -m 755 -idb $(INST_DEMO_TAG) -F $(INST_DEMO_PATH) $(INST_DEMO_TARGETS)
endif
$(COMMONPREF)clobberall: $(COMMONPREF)clobber
rm -rf $(CLOBBERALL_FILES)
-include $(DEPTH)/localrules