⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rules.mk

📁 支持SSL v2/v3, TLS, PKCS #5, PKCS #7, PKCS #11, PKCS #12, S/MIME, X.509v3证书等安全协议或标准的开发库编译用到NSPR
💻 MK
📖 第 1 页 / 共 2 页
字号:
## The contents of this file are subject to the Mozilla Public# License Version 1.1 (the "License"); you may not use this file# except in compliance with the License. You may obtain a copy of# the License at http://www.mozilla.org/MPL/# # Software distributed under the License is distributed on an "AS# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or# implied. See the License for the specific language governing# rights and limitations under the License.# # The Original Code is the Netscape security libraries.# # The Initial Developer of the Original Code is Netscape# Communications Corporation.  Portions created by Netscape are # Copyright (C) 1994-2000 Netscape Communications Corporation.  All# Rights Reserved.# # Contributor(s):# # Alternatively, the contents of this file may be used under the# terms of the GNU General Public License Version 2 or later (the# "GPL"), in which case the provisions of the GPL are applicable # instead of those above.  If you wish to allow use of your # version of this file only under the terms of the GPL and not to# allow others to use your version of this file under the MPL,# indicate your decision by deleting the provisions above and# replace them with the notice and other provisions required by# the GPL.  If you do not delete the provisions above, a recipient# may use your version of this file under either the MPL or the# GPL.###########################################################################                                                                 ######              R U L E S   O F   E N G A G E M E N T              ######                                                                 ################################################################################################################################################## Double-Colon rules for utilizing the binary release model.          ########################################################################all:: export libs program installifeq ($(AUTOCLEAN),1)autobuild:: clean export private_export libs program installelseautobuild:: export private_export libs program installendifplatform::	@echo $(OBJDIR_NAME)## IMPORTS will always be associated with a component.  Therefore,# the "import" rule will always change directory to the top-level# of a component, and traverse the IMPORTS keyword from the# "manifest.mn" file located at this level only.## note: if there is a trailing slash, the component will be appended#       (see import.pl - only used for xpheader.jar)import::	@echo "== import.pl =="	@perl -I$(CORE_DEPTH)/coreconf $(CORE_DEPTH)/coreconf/import.pl \		"RELEASE_TREE=$(RELEASE_TREE)"   \		"IMPORTS=$(IMPORTS)"             \		"VERSION=$(VERSION)" \		"OS_ARCH=$(OS_ARCH)"             \		"PLATFORM=$(PLATFORM)" \		"OVERRIDE_IMPORT_CHECK=$(OVERRIDE_IMPORT_CHECK)"   \		"ALLOW_VERSION_OVERRIDE=$(ALLOW_VERSION_OVERRIDE)" \		"SOURCE_RELEASE_PREFIX=$(SOURCE_RELEASE_XP_DIR)"   \		"SOURCE_MD_DIR=$(SOURCE_MD_DIR)"      \		"SOURCE_XP_DIR=$(SOURCE_XP_DIR)"      \		"FILES=$(IMPORT_XPCLASS_JAR) $(XPHEADER_JAR) $(MDHEADER_JAR) $(MDBINARY_JAR)" \		"$(IMPORT_XPCLASS_JAR)=$(IMPORT_XP_DIR)|$(IMPORT_XPCLASS_DIR)|"    \		"$(XPHEADER_JAR)=$(IMPORT_XP_DIR)|$(SOURCE_XP_DIR)/public/|v" \		"$(MDHEADER_JAR)=$(IMPORT_MD_DIR)|$(SOURCE_MD_DIR)/include|"        \		"$(MDBINARY_JAR)=$(IMPORT_MD_DIR)|$(SOURCE_MD_DIR)|"export::	+$(LOOP_OVER_DIRS)private_export::	+$(LOOP_OVER_DIRS)release_export::	+$(LOOP_OVER_DIRS)release_classes::	+$(LOOP_OVER_DIRS)libs program install:: $(TARGETS)ifdef LIBRARY	$(INSTALL) -m 664 $(LIBRARY) $(SOURCE_LIB_DIR)endififdef SHARED_LIBRARY	$(INSTALL) -m 775 $(SHARED_LIBRARY) $(SOURCE_LIB_DIR)endififdef IMPORT_LIBRARY	$(INSTALL) -m 775 $(IMPORT_LIBRARY) $(SOURCE_LIB_DIR)endififdef PURE_LIBRARY	$(INSTALL) -m 775 $(PURE_LIBRARY) $(SOURCE_LIB_DIR)endififdef PROGRAM	$(INSTALL) -m 775 $(PROGRAM) $(SOURCE_BIN_DIR)endififdef PROGRAMS	$(INSTALL) -m 775 $(PROGRAMS) $(SOURCE_BIN_DIR)endif	+$(LOOP_OVER_DIRS)tests::	+$(LOOP_OVER_DIRS)clean clobber::	rm -rf $(ALL_TRASH)	+$(LOOP_OVER_DIRS)realclean clobber_all::	rm -rf $(wildcard *.OBJ) dist $(ALL_TRASH)	+$(LOOP_OVER_DIRS)#ifdef ALL_PLATFORMS#all_platforms:: $(NFSPWD)#	@d=`$(NFSPWD)`;							\#	if test ! -d LOGS; then rm -rf LOGS; mkdir LOGS; fi;		\#	for h in $(PLATFORM_HOSTS); do					\#		echo "On $$h: $(MAKE) $(ALL_PLATFORMS) >& LOGS/$$h.log";\#		rsh $$h -n "(chdir $$d;					\#			     $(MAKE) $(ALL_PLATFORMS) >& LOGS/$$h.log;	\#			     echo DONE) &" 2>&1 > LOGS/$$h.pid &	\#		sleep 1;						\#	done##$(NFSPWD):#	cd $(@D); $(MAKE) $(@F)#endif######################################################################## Double-Colon rules for populating the binary release model.         ########################################################################release_clean::	rm -rf $(SOURCE_XP_DIR)/release/$(RELEASE_MD_DIR)release:: release_clean release_export release_classes release_policy release_md release_jars release_cpdistdirrelease_cpdistdir::	@echo "== cpdist.pl =="	@perl -I$(CORE_DEPTH)/coreconf $(CORE_DEPTH)/coreconf/cpdist.pl \		"RELEASE_TREE=$(RELEASE_TREE)" \		"CORE_DEPTH=$(CORE_DEPTH)" \		"MODULE=${MODULE}" \		"OS_ARCH=$(OS_ARCH)" \		"RELEASE=$(RELEASE)" \		"PLATFORM=$(PLATFORM)" \		"RELEASE_VERSION=$(RELEASE_VERSION)" \		"SOURCE_RELEASE_PREFIX=$(SOURCE_RELEASE_XP_DIR)" \		"RELEASE_XP_DIR=$(RELEASE_XP_DIR)" \		"RELEASE_MD_DIR=$(RELEASE_MD_DIR)" \		"FILES=$(XPCLASS_JAR) $(XPCLASS_DBG_JAR) $(XPHEADER_JAR) $(MDHEADER_JAR) $(MDBINARY_JAR) XP_FILES MD_FILES" \		"$(XPCLASS_JAR)=$(SOURCE_RELEASE_CLASSES_DIR)|x"\		"$(XPCLASS_DBG_JAR)=$(SOURCE_RELEASE_CLASSES_DBG_DIR)|x"\		"$(XPHEADER_JAR)=$(SOURCE_RELEASE_XPHEADERS_DIR)|x" \		"$(MDHEADER_JAR)=$(SOURCE_RELEASE_MDHEADERS_DIR)|m" \		"$(MDBINARY_JAR)=$(SOURCE_RELEASE_MD_DIR)|m" \		"XP_FILES=$(XP_FILES)|xf" \		"MD_FILES=$(MD_FILES)|mf"# $(SOURCE_RELEASE_xxx_JAR) is a name like yyy.jar# $(SOURCE_RELEASE_xx_DIR)  is a name like release_jars::	@echo "== release.pl =="	@perl -I$(CORE_DEPTH)/coreconf $(CORE_DEPTH)/coreconf/release.pl \		"RELEASE_TREE=$(RELEASE_TREE)" \		"PLATFORM=$(PLATFORM)" \		"OS_ARCH=$(OS_ARCH)" \		"RELEASE_VERSION=$(RELEASE_VERSION)" \		"SOURCE_RELEASE_DIR=$(SOURCE_RELEASE_DIR)" \		"FILES=$(XPCLASS_JAR) $(XPCLASS_DBG_JAR) $(XPHEADER_JAR) $(MDHEADER_JAR) $(MDBINARY_JAR)" \		"$(XPCLASS_JAR)=$(SOURCE_RELEASE_PREFIX)/$(SOURCE_RELEASE_CLASSES_DIR)|b"\		"$(XPCLASS_DBG_JAR)=$(SOURCE_RELEASE_PREFIX)/$(SOURCE_RELEASE_CLASSES_DBG_DIR)|b"\		"$(XPHEADER_JAR)=$(SOURCE_RELEASE_PREFIX)/$(SOURCE_RELEASE_XPHEADERS_DIR)|a" \		"$(MDHEADER_JAR)=$(SOURCE_RELEASE_PREFIX)/$(SOURCE_RELEASE_MDHEADERS_DIR)|a" \		"$(MDBINARY_JAR)=$(SOURCE_RELEASE_PREFIX)/$(SOURCE_RELEASE_MD_DIR)|bi"# Rules for releasing classes.# We have to do some REALLY gross stuff to deal with multiple classes in one# file, as well as nested classes, which have a filename of the form# ContainingClass$NestedClass.class.# RELEASE_CLASSES simply performs a required patsubst on CLASSES# RELEASE_CLASS_PATH is RELEASE_CLASSES with the path (in ns/dist) prepended# RELEASE_NESTED is all the nested classes in RELEASE_CLASS_PATH.  We use a#   foreach and wildcard to get all the files that start out like one of the#   class files, then have a $.  So, for each class file, we look for file$*# RELEASE_FILES is the combination of RELEASE_NESTED and the class files#   specified by RELEASE_CLASSES which have .class appended to them.  Note that#   the RELEASE_NESTED don't need to have .class appended because they were#   read in from the wildcard as complete filenames.## The _DBG versions are the debuggable ones.ifneq ($(CLASSES),)RELEASE_CLASSES := $(patsubst %,%,$(CLASSES))ifdef BUILD_OPT	RELEASE_CLASS_PATH := $(patsubst %,$(SOURCE_CLASSES_DIR)/$(PACKAGE)/%, $(RELEASE_CLASSES))	RELEASE_NESTED := $(foreach file,$(RELEASE_CLASS_PATH),$(wildcard $(file)$$*))	RELEASE_FILES := $(patsubst %,%.class,$(RELEASE_CLASS_PATH)) $(RELEASE_NESTED)else	RELEASE_DBG_CLASS_PATH:= $(patsubst %,$(SOURCE_CLASSES_DBG_DIR)/$(PACKAGE)/%, $(RELEASE_CLASSES))	RELEASE_DBG_NESTED := $(foreach file,$(RELEASE_DBG_CLASS_PATH),$(wildcard $(file)$$*))	RELEASE_DBG_FILES := $(patsubst %,%.class,$(RELEASE_DBG_CLASS_PATH)) $(RELEASE_DBG_NESTED)endif# Substitute \$ for $ so the shell doesn't chokeifdef BUILD_OPTrelease_classes::	$(INSTALL) -m 444 $(subst $$,\$$,$(RELEASE_FILES)) $(SOURCE_RELEASE_PREFIX)/$(SOURCE_RELEASE_CLASSES_DIR)/$(PACKAGE)elserelease_classes::	$(INSTALL) -m 444 $(subst $$,\$$,$(RELEASE_DBG_FILES)) $(SOURCE_RELEASE_PREFIX)/$(SOURCE_RELEASE_CLASSES_DBG_DIR)/$(PACKAGE)endifendififneq ($(POLICY),)release_policy::ifdef LIBRARY	-$(PLCYPATCH) $(PLCYPATCH_ARGS) $(LIBRARY)endififdef SHARED_LIBRARY	-$(PLCYPATCH) $(PLCYPATCH_ARGS) $(SHARED_LIBRARY)endififdef IMPORT_LIBRARY	-$(PLCYPATCH) $(PLCYPATCH_ARGS) $(IMPORT_LIBRARY)endififdef PURE_LIBRARY	-$(PLCYPATCH) $(PLCYPATCH_ARGS) $(PURE_LIBRARY)endififdef PROGRAM	-$(PLCYPATCH) $(PLCYPATCH_ARGS) $(PROGRAM)endififdef PROGRAMS	-$(PLCYPATCH) $(PLCYPATCH_ARGS) $(PROGRAMS)endif	+$(LOOP_OVER_DIRS)elserelease_policy::	+$(LOOP_OVER_DIRS)endifrelease_md::ifdef LIBRARY	$(INSTALL) -m 444 $(LIBRARY) $(SOURCE_RELEASE_PREFIX)/$(SOURCE_RELEASE_LIB_DIR)endififdef SHARED_LIBRARY	$(INSTALL) -m 555 $(SHARED_LIBRARY) $(SOURCE_RELEASE_PREFIX)/$(SOURCE_RELEASE_LIB_DIR)endififdef IMPORT_LIBRARY	$(INSTALL) -m 555 $(IMPORT_LIBRARY) $(SOURCE_RELEASE_PREFIX)/$(SOURCE_RELEASE_LIB_DIR)endififdef PURE_LIBRARY	$(INSTALL) -m 555 $(PURE_LIBRARY) $(SOURCE_RELEASE_PREFIX)/$(SOURCE_RELEASE_LIB_DIR)endififdef PROGRAM	$(INSTALL) -m 555 $(PROGRAM) $(SOURCE_RELEASE_PREFIX)/$(SOURCE_RELEASE_BIN_DIR)endififdef PROGRAMS	$(INSTALL) -m 555 $(PROGRAMS) $(SOURCE_RELEASE_PREFIX)/$(SOURCE_RELEASE_BIN_DIR)endif	+$(LOOP_OVER_DIRS)alltags:	rm -f TAGS	find . -name dist -prune -o \( -name '*.[hc]' -o -name '*.cp' -o -name '*.cpp' \) -print | xargs etags -a	find . -name dist -prune -o \( -name '*.[hc]' -o -name '*.cp' -o -name '*.cpp' \) -print | xargs ctags -a$(PROGRAM): $(OBJS) $(EXTRA_LIBS)	@$(MAKE_OBJDIR)ifeq ($(OS_ARCH),WINNT)ifeq ($(OS_TARGET),WIN16)	echo system windows >w16link	echo option map >>w16link	echo option oneautodata >>w16link	echo option heapsize=32K >>w16link	echo debug watcom all >>w16link	echo name $@ >>w16link	echo file >>w16link	echo $(W16OBJS) , >>w16link	echo $(W16LDFLAGS) >> w16link	echo library >>w16link	echo winsock.lib >>w16link	$(LINK) @w16link.	rm w16linkelse	$(MKPROG) $(OBJS) -Fe$@ -link $(LDFLAGS) $(EXTRA_LIBS) $(EXTRA_SHARED_LIBS) $(OS_LIBS)endifelse	$(MKPROG) -o $@ $(CFLAGS) $(OBJS) $(LDFLAGS) $(EXTRA_LIBS) $(EXTRA_SHARED_LIBS) $(OS_LIBS)endififneq ($(POLICY),)	-$(PLCYPATCH) $(PLCYPATCH_ARGS) $@endif$(LIBRARY): $(OBJS)	@$(MAKE_OBJDIR)	rm -f $@	$(AR) $(OBJS)	$(RANLIB) $@ifeq ($(OS_TARGET), WIN16)$(IMPORT_LIBRARY): $(SHARED_LIBRARY)	wlib +$(SHARED_LIBRARY)endif$(SHARED_LIBRARY): $(OBJS)	@$(MAKE_OBJDIR)	rm -f $@ifeq ($(OS_ARCH)$(OS_RELEASE), AIX4.1)	echo "#!" > $(OBJDIR)/lib$(LIBRARY_NAME)_syms	nm -B -C -g $(OBJS) \	| awk '/ [T,D] / {print $$3}' \	| sed -e 's/^\.//' \	| sort -u >> $(OBJDIR)/lib$(LIBRARY_NAME)_syms	$(LD) $(XCFLAGS) -o $@ $(OBJS) -bE:$(OBJDIR)/lib$(LIBRARY_NAME)_syms \	-bM:SRE -bnoentry $(OS_LIBS) $(EXTRA_LIBS) $(EXTRA_SHARED_LIBS)elseifeq ($(OS_ARCH), WINNT)ifeq ($(OS_TARGET), WIN16)	echo system windows dll initinstance >w16link	echo option map >>w16link	echo option oneautodata >>w16link	echo option heapsize=32K >>w16link	echo debug watcom all >>w16link	echo name $@ >>w16link	echo file >>w16link	echo $(W16OBJS) >>w16link	echo $(W16LIBS) >>w16link	echo libfile libentry >>w16link	$(LINK) @w16link.	rm w16linkelse	$(LINK_DLL) -MAP $(DLLBASE) $(OBJS) $(EXTRA_LIBS) $(EXTRA_SHARED_LIBS) $(OS_LIBS) $(LD_LIBS)endifelse	$(MKSHLIB) -o $@ $(OBJS) $(LD_LIBS) $(EXTRA_LIBS) $(EXTRA_SHARED_LIBS)	chmod +x $@endifendififneq ($(POLICY),)	-$(PLCYPATCH) $(PLCYPATCH_ARGS) $@endif$(PURE_LIBRARY):	rm -f $@ifneq ($(OS_ARCH), WINNT)	$(AR) $(OBJS)endif	$(RANLIB) $@ifeq ($(OS_ARCH), WINNT)$(RES): $(RESNAME)	@$(MAKE_OBJDIR)	$(RC) -Fo$(RES) $(RESNAME)	@echo $(RES) finishedendif$(OBJDIR)/$(PROG_PREFIX)%$(PROG_SUFFIX): $(OBJDIR)/$(PROG_PREFIX)%$(OBJ_SUFFIX)	@$(MAKE_OBJDIR)ifeq ($(OS_ARCH),WINNT)	$(MKPROG) $(OBJDIR)/$(PROG_PREFIX)$*$(OBJ_SUFFIX) -Fe$@ -link \	$(LDFLAGS) $(EXTRA_LIBS) $(EXTRA_SHARED_LIBS) $(OS_LIBS)else	$(MKPROG) -o $@ $(OBJDIR)/$(PROG_PREFIX)$*$(OBJ_SUFFIX) \	$(LDFLAGS) $(EXTRA_LIBS) $(EXTRA_SHARED_LIBS) $(OS_LIBS)endififdef HAVE_PURIFY$(OBJDIR)/$(PROG_PREFIX)%.pure: $(OBJDIR)/$(PROG_PREFIX)%$(OBJ_SUFFIX)	@$(MAKE_OBJDIR)ifeq ($(OS_ARCH),WINNT)	$(PURIFY) $(CC) -Fo$@ -c $(CFLAGS) $(OBJDIR)/$(PROG_PREFIX)$*$(OBJ_SUFFIX) $(PURELDFLAGS)else	$(PURIFY) $(CC) -o $@ $(CFLAGS) $(OBJDIR)/$(PROG_PREFIX)$*$(OBJ_SUFFIX) $(PURELDFLAGS)endifendifWCCFLAGS1 := $(subst /,\\,$(CFLAGS))WCCFLAGS2 := $(subst -I,-i=,$(WCCFLAGS1))WCCFLAGS3 := $(subst -D,-d,$(WCCFLAGS2))$(OBJDIR)/$(PROG_PREFIX)%$(OBJ_SUFFIX): %.c	@$(MAKE_OBJDIR)ifeq ($(OS_ARCH), WINNT)ifeq ($(OS_TARGET), WIN16)	echo $(WCCFLAGS3) >w16wccf	$(CC) -zq -fo$(OBJDIR)\\$(PROG_PREFIX)$*$(OBJ_SUFFIX)  @w16wccf $*.c	rm w16wccfelse	$(CC) -Fo$@ -c $(CFLAGS) $*.cendifelse	$(CC) -o $@ -c $(CFLAGS) $*.cendififneq ($(OS_ARCH), WINNT)$(OBJDIR)/$(PROG_PREFIX)%$(OBJ_SUFFIX): %.s	@$(MAKE_OBJDIR)	$(AS) -o $@ $(ASFLAGS) -c $*.sendif$(OBJDIR)/$(PROG_PREFIX)%$(OBJ_SUFFIX): %.asm	@$(MAKE_OBJDIR)	$(AS) -Fo$@ $(ASFLAGS) -c $*.asm$(OBJDIR)/$(PROG_PREFIX)%$(OBJ_SUFFIX): %.S	@$(MAKE_OBJDIR)	$(AS) -o $@ $(ASFLAGS) -c $*.S$(OBJDIR)/$(PROG_PREFIX)%: %.cpp	@$(MAKE_OBJDIR)ifeq ($(OS_ARCH), WINNT)	$(CCC) -Fo$@ -c $(CFLAGS) $<else	$(CCC) -o $@ -c $(CFLAGS) $<endif## Please keep the next two rules in sync.#$(OBJDIR)/$(PROG_PREFIX)%$(OBJ_SUFFIX): %.cc	@$(MAKE_OBJDIR)	$(CCC) -o $@ -c $(CFLAGS) $*.cc$(OBJDIR)/$(PROG_PREFIX)%$(OBJ_SUFFIX): %.cpp	@$(MAKE_OBJDIR)ifdef STRICT_CPLUSPLUS_SUFFIX	echo "#line 1 \"$*.cpp\"" | cat - $*.cpp > $(OBJDIR)/t_$*.cc	$(CCC) -o $@ -c $(CFLAGS) $(OBJDIR)/t_$*.cc	rm -f $(OBJDIR)/t_$*.ccelseifeq ($(OS_ARCH),WINNT)	$(CCC) -Fo$@ -c $(CFLAGS) $*.cppelse	$(CCC) -o $@ -c $(CFLAGS) $*.cppendifendif #STRICT_CPLUSPLUS_SUFFIX%.i: %.cppifeq ($(OS_TARGET), WIN16)	echo $(WCCFLAGS3) >w16wccf	$(CCC) -pl -fo=$* @w16wccf $*.cpp	rm w16wccfelse	$(CCC) -C -E $(CFLAGS) $< > $*.iendif%.i: %.cifeq ($(OS_TARGET), WIN16)	echo $(WCCFLAGS3) >w16wccf	$(CC) -pl -fo=$* @w16wccf $*.c	rm w16wccfelseifeq ($(OS_ARCH),WINNT)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -