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

📄 rules.mk

📁 支持SSL v2/v3, TLS, PKCS #5, PKCS #7, PKCS #11, PKCS #12, S/MIME, X.509v3证书等安全协议或标准的开发库编译用到NSPR
💻 MK
📖 第 1 页 / 共 2 页
字号:
	$(CC) -C /P $(CFLAGS) $< else	$(CC) -C -E $(CFLAGS) $< > $*.iendifendififneq ($(OS_ARCH), WINNT)%.i: %.s	$(CC) -C -E $(CFLAGS) $< > $*.iendif%: %.pl	rm -f $@; cp $*.pl $@; chmod +x $@%: %.sh	rm -f $@; cp $*.sh $@; chmod +x $@ifdef DIRS$(DIRS)::	@if test -d $@; then				\		set $(EXIT_ON_ERROR);			\		echo "cd $@; $(MAKE)";			\		cd $@; $(MAKE);				\		set +e;					\	else						\		echo "Skipping non-directory $@...";	\	fi;						\	$(CLICK_STOPWATCH)endif################################################################################# Bunch of things that extend the 'export' rule (in order):################################################################################$(JAVA_DESTPATH) $(JAVA_DESTPATH)/$(PACKAGE) $(JMCSRCDIR)::	@if test ! -d $@; then	    \		echo Creating $@;   \		rm -rf $@;	    \		$(NSINSTALL) -D $@; \	fi################################################################################## IDL_GENifneq ($(IDL_GEN),)#export::#	$(IDL2JAVA) $(IDL_GEN)#all:: export#clobber::#	rm -f $(IDL_GEN:.idl=.class)	# XXX wrong!endif################################################################################### JSRCS -- for compiling java files######          NOTE:  For backwards compatibility, if $(NETLIBDEPTH) is defined,###                 replace $(CORE_DEPTH) with $(NETLIBDEPTH).###ifneq ($(JSRCS),)ifneq ($(JAVAC),)ifdef NETLIBDEPTH	CORE_DEPTH := $(NETLIBDEPTH)endifJAVA_EXPORT_SRCS=$(shell perl $(CORE_DEPTH)/coreconf/outofdate.pl $(PERLARG)	-d $(JAVA_DESTPATH)/$(PACKAGE) $(JSRCS) $(PRIVATE_JSRCS))export:: $(JAVA_DESTPATH) $(JAVA_DESTPATH)/$(PACKAGE)ifneq ($(JAVA_EXPORT_SRCS),)	$(JAVAC) $(JAVA_EXPORT_SRCS)endifall:: exportclobber::	rm -f $(SOURCE_XP_DIR)/classes/$(PACKAGE)/*.classendifendif## JDIRS -- like JSRCS, except you can give a list of directories and it will# compile all the out-of-date java files in those directories.## NOTE: recursing through these can speed things up, but they also cause# some builds to run out of memory## NOTE:  For backwards compatibility, if $(NETLIBDEPTH) is defined,#        replace $(CORE_DEPTH) with $(NETLIBDEPTH).#ifdef JDIRSifneq ($(JAVAC),)ifdef NETLIBDEPTH	CORE_DEPTH := $(NETLIBDEPTH)endifexport:: $(JAVA_DESTPATH) $(JAVA_DESTPATH)/$(PACKAGE)	@for d in $(JDIRS); do							\		if test -d $$d; then						\			set $(EXIT_ON_ERROR);					\			files=`echo $$d/*.java`;				\			list=`perl $(CORE_DEPTH)/coreconf/outofdate.pl $(PERLARG)	\				    -d $(JAVA_DESTPATH)/$(PACKAGE) $$files`;	\			if test "$${list}x" != "x"; then			\			    echo Building all java files in $$d;		\			    echo $(JAVAC) $$list;				\			    $(JAVAC) $$list;					\			fi;							\			set +e;							\		else								\			echo "Skipping non-directory $$d...";			\		fi;								\		$(CLICK_STOPWATCH);						\	doneendifendif## JDK_GEN -- for generating "old style" native methods ## Generate JDK Headers and Stubs into the '_gen' and '_stubs' directory## NOTE:  For backwards compatibility, if $(NETLIBDEPTH) is defined,#        replace $(CORE_DEPTH) with $(NETLIBDEPTH).#ifneq ($(JDK_GEN),)ifneq ($(JAVAH),)ifdef NSBUILDROOT	INCLUDES += -I$(JDK_GEN_DIR) -I$(SOURCE_XP_DIR)else	INCLUDES += -I$(JDK_GEN_DIR)endififdef NETLIBDEPTH	CORE_DEPTH := $(NETLIBDEPTH)endifJDK_PACKAGE_CLASSES	:= $(JDK_GEN)JDK_PATH_CLASSES	:= $(subst .,/,$(JDK_PACKAGE_CLASSES))JDK_HEADER_CLASSFILES	:= $(patsubst %,$(JAVA_DESTPATH)/%.class,$(JDK_PATH_CLASSES))JDK_STUB_CLASSFILES	:= $(patsubst %,$(JAVA_DESTPATH)/%.class,$(JDK_PATH_CLASSES))JDK_HEADER_CFILES	:= $(patsubst %,$(JDK_GEN_DIR)/%.h,$(JDK_GEN))JDK_STUB_CFILES		:= $(patsubst %,$(JDK_STUB_DIR)/%.c,$(JDK_GEN))$(JDK_HEADER_CFILES): $(JDK_HEADER_CLASSFILES)$(JDK_STUB_CFILES): $(JDK_STUB_CLASSFILES)export::	@echo Generating/Updating JDK headers 	$(JAVAH) -d $(JDK_GEN_DIR) $(JDK_PACKAGE_CLASSES)	@echo Generating/Updating JDK stubs	$(JAVAH) -stubs -d $(JDK_STUB_DIR) $(JDK_PACKAGE_CLASSES)ifndef NO_MAC_JAVA_SHIT	@if test ! -d $(CORE_DEPTH)/lib/mac/Java/; then						\		echo "!!! You need to have a ns/lib/mac/Java directory checked out.";		\		echo "!!! This allows us to automatically update generated files for the mac.";	\		echo "!!! If you see any modified files there, please check them in.";		\	fi	@echo Generating/Updating JDK headers for the Mac	$(JAVAH) -mac -d $(CORE_DEPTH)/lib/mac/Java/_gen $(JDK_PACKAGE_CLASSES)	@echo Generating/Updating JDK stubs for the Mac	$(JAVAH) -mac -stubs -d $(CORE_DEPTH)/lib/mac/Java/_stubs $(JDK_PACKAGE_CLASSES)endifendifendif## JRI_GEN -- for generating "old style" JRI native methods## Generate JRI Headers and Stubs into the 'jri' directory## NOTE:  For backwards compatibility, if $(NETLIBDEPTH) is defined,#        replace $(CORE_DEPTH) with $(NETLIBDEPTH).#ifneq ($(JRI_GEN),)ifneq ($(JAVAH),)ifdef NSBUILDROOT	INCLUDES += -I$(JRI_GEN_DIR) -I$(SOURCE_XP_DIR)else	INCLUDES += -I$(JRI_GEN_DIR)endififdef NETLIBDEPTH	CORE_DEPTH := $(NETLIBDEPTH)endifJRI_PACKAGE_CLASSES	:= $(JRI_GEN)JRI_PATH_CLASSES	:= $(subst .,/,$(JRI_PACKAGE_CLASSES))JRI_HEADER_CLASSFILES	:= $(patsubst %,$(JAVA_DESTPATH)/%.class,$(JRI_PATH_CLASSES))JRI_STUB_CLASSFILES	:= $(patsubst %,$(JAVA_DESTPATH)/%.class,$(JRI_PATH_CLASSES))JRI_HEADER_CFILES	:= $(patsubst %,$(JRI_GEN_DIR)/%.h,$(JRI_GEN))JRI_STUB_CFILES		:= $(patsubst %,$(JRI_GEN_DIR)/%.c,$(JRI_GEN))$(JRI_HEADER_CFILES): $(JRI_HEADER_CLASSFILES)$(JRI_STUB_CFILES): $(JRI_STUB_CLASSFILES)export::	@echo Generating/Updating JRI headers 	$(JAVAH) -jri -d $(JRI_GEN_DIR) $(JRI_PACKAGE_CLASSES)	@echo Generating/Updating JRI stubs	$(JAVAH) -jri -stubs -d $(JRI_GEN_DIR) $(JRI_PACKAGE_CLASSES)ifndef NO_MAC_JAVA_SHIT	@if test ! -d $(CORE_DEPTH)/lib/mac/Java/; then						\		echo "!!! You need to have a ns/lib/mac/Java directory checked out.";		\		echo "!!! This allows us to automatically update generated files for the mac.";	\		echo "!!! If you see any modified files there, please check them in.";		\	fi	@echo Generating/Updating JRI headers for the Mac	$(JAVAH) -jri -mac -d $(CORE_DEPTH)/lib/mac/Java/_jri $(JRI_PACKAGE_CLASSES)	@echo Generating/Updating JRI stubs for the Mac	$(JAVAH) -jri -mac -stubs -d $(CORE_DEPTH)/lib/mac/Java/_jri $(JRI_PACKAGE_CLASSES)endifendifendif## JNI_GEN -- for generating JNI native methods## Generate JNI Headers into the 'jni' directory#ifneq ($(JNI_GEN),)ifneq ($(JAVAH),)JNI_HEADERS		:= $(patsubst %,$(JNI_GEN_DIR)/%.h,$(JNI_GEN))export::	@if test ! -d $(JNI_GEN_DIR); then						\		echo $(JAVAH) -jni -d $(JNI_GEN_DIR) $(JNI_GEN);			\		$(JAVAH) -jni -d $(JNI_GEN_DIR) $(JNI_GEN);				\	else										\		echo "Checking for out of date header files" ;                          \		cmd="perl $(CORE_DEPTH)/coreconf/jniregen.pl $(PERLARG)			\				-d $(JAVA_DESTPATH) $(JNI_GEN)";			\		echo $$cmd;								\		list=`$$cmd`;								\		if test "$${list}x" != "x"; then					\			echo $(JAVAH) -jni -d $(JNI_GEN_DIR) $$list;			\			$(JAVAH) -jni -d $(JNI_GEN_DIR) $$list;				\		fi									\	fiendifendif## JMC_EXPORT -- for declaring which java classes are to be exported for jmc#ifneq ($(JMC_EXPORT),)JMC_EXPORT_PATHS	:= $(subst .,/,$(JMC_EXPORT))JMC_EXPORT_FILES	:= $(patsubst %,$(JAVA_DESTPATH)/$(PACKAGE)/%.class,$(JMC_EXPORT_PATHS))## We're doing NSINSTALL -t here (copy mode) because calling INSTALL will pick up # your NSDISTMODE and make links relative to the current directory. This is a# problem because the source isn't in the current directory:#export:: $(JMC_EXPORT_FILES) $(JMCSRCDIR)	$(NSINSTALL) -t -m 444 $(JMC_EXPORT_FILES) $(JMCSRCDIR)endif## JMC_GEN -- for generating java modules## Provide default export & install rules when using JMC_GEN#ifneq ($(JMC_GEN),)ifneq ($(JMC),)	INCLUDES    += -I$(JMC_GEN_DIR) -I.	JMC_HEADERS := $(patsubst %,$(JMC_GEN_DIR)/%.h,$(JMC_GEN))	JMC_STUBS   := $(patsubst %,$(JMC_GEN_DIR)/%.c,$(JMC_GEN))	JMC_OBJS    := $(patsubst %,$(OBJDIR)/%$(OBJ_SUFFIX),$(JMC_GEN))$(JMC_GEN_DIR)/M%.h: $(JMCSRCDIR)/%.class	$(JMC) -d $(JMC_GEN_DIR) -interface $(JMC_GEN_FLAGS) $(?F:.class=)$(JMC_GEN_DIR)/M%.c: $(JMCSRCDIR)/%.class	$(JMC) -d $(JMC_GEN_DIR) -module $(JMC_GEN_FLAGS) $(?F:.class=)$(OBJDIR)/M%$(OBJ_SUFFIX): $(JMC_GEN_DIR)/M%.h $(JMC_GEN_DIR)/M%.c	@$(MAKE_OBJDIR)	$(CC) -o $@ -c $(CFLAGS) $(JMC_GEN_DIR)/M$*.cexport:: $(JMC_HEADERS) $(JMC_STUBS)endifendif## Copy each element of EXPORTS to $(SOURCE_XP_DIR)/public/$(MODULE)/#PUBLIC_EXPORT_DIR = $(SOURCE_XP_DIR)/public/$(MODULE)ifeq ($(OS_ARCH),WINNT)ifeq ($(OS_TARGET),WIN16)PUBLIC_EXPORT_DIR = $(SOURCE_XP_DIR)/public/win16endifendififneq ($(EXPORTS),)$(PUBLIC_EXPORT_DIR)::	@if test ! -d $@; then	    \		echo Creating $@;   \		$(NSINSTALL) -D $@; \	fiexport:: $(EXPORTS) $(PUBLIC_EXPORT_DIR)	$(INSTALL) -m 444 $(EXPORTS) $(PUBLIC_EXPORT_DIR)endif# Duplicate export rule for private exports, with different directoriesPRIVATE_EXPORT_DIR = $(SOURCE_XP_DIR)/private/$(MODULE)ifeq ($(OS_ARCH),WINNT)ifeq ($(OS_TARGET),WIN16)PRIVATE_EXPORT_DIR = $(SOURCE_XP_DIR)/public/win16endifendififneq ($(PRIVATE_EXPORTS),)$(PRIVATE_EXPORT_DIR)::	@if test ! -d $@; then	    \		echo Creating $@;   \		$(NSINSTALL) -D $@; \	fiprivate_export:: $(PRIVATE_EXPORTS) $(PRIVATE_EXPORT_DIR)	$(INSTALL) -m 444 $(PRIVATE_EXPORTS) $(PRIVATE_EXPORT_DIR)elseprivate_export:: 	@echo There are no private exports.;endif#############################################################################   RULES FOR RUNNING REGRESSION SUITE TESTS###   REQUIRES 'REGRESSION_SPEC' TO BE SET TO THE NAME OF A REGRESSION SPECFILE###   AND RESULTS_SUBDIR TO BE SET TO SOMETHING LIKE SECURITY/PKCS5##########################################################################TESTS_DIR = $(RESULTS_DIR)/$(RESULTS_SUBDIR)/$(OS_CONFIG)$(CPU_TAG)$(COMPILER_TAG)$(IMPL_STRATEGY)ifneq ($(REGRESSION_SPEC),)tests:: $(REGRESSION_SPEC) 	cd $(PLATFORM); \	../$(SOURCE_MD_DIR)/bin/regress$(PROG_SUFFIX) specfile=../$(REGRESSION_SPEC) progress $(EXTRA_REGRESS_OPTIONS); \	if test ! -d $(TESTS_DIR); then \		echo Creating $(TESTS_DIR);   \		$(NSINSTALL) -D $(TESTS_DIR); \	fiifneq ($(BUILD_OPT),)	$(NSINSTALL) -m 664 $(PLATFORM)/$(REGDATE).sum $(TESTS_DIR); \	$(NSINSTALL) -m 664 $(PLATFORM)/$(REGDATE).htm $(TESTS_DIR); \	echo "Please now make sure your results files are copied to $(TESTS_DIR), "; \	echo "then run 'reporter specfile=$(RESULTS_DIR)/rptspec'"endifelsetests:: 	@echo Error: you didn't specify REGRESSION_SPEC in your manifest.mn file!;endif# Duplicate export rule for releases, with different directoriesifneq ($(EXPORTS),)$(SOURCE_RELEASE_XP_DIR)/include::	@if test ! -d $@; then	    \		echo Creating $@;   \		$(NSINSTALL) -D $@; \	firelease_export:: $(EXPORTS) $(SOURCE_RELEASE_XP_DIR)/include	$(INSTALL) -m 444 $(EXPORTS) $(SOURCE_RELEASE_XP_DIR)/includeendif################################################################################-include $(DEPENDENCIES)ifneq ($(OS_ARCH),WINNT)# Can't use sed because of its 4000-char line length limit, so resort to perl.DEFAULT:	@perl -e '                                                            \	    open(MD, "< $(DEPENDENCIES)");                                    \	    while (<MD>) {                                                    \		if (m@ \.*/*$< @) {                                           \		    $$found = 1;                                              \		    last;                                                     \		}                                                             \	    }                                                                 \	    if ($$found) {                                                    \		print "Removing stale dependency $< from $(DEPENDENCIES)\n";  \		seek(MD, 0, 0);                                               \		$$tmpname = "$(OBJDIR)/fix.md" . $$$$;                        \		open(TMD, "> " . $$tmpname);                                  \		while (<MD>) {                                                \		    s@ \.*/*$< @ @;                                           \		    if (!print TMD "$$_") {                                   \			unlink(($$tmpname));                                  \			exit(1);                                              \		    }                                                         \		}                                                             \		close(TMD);                                                   \		if (!rename($$tmpname, "$(DEPENDENCIES)")) {                  \		    unlink(($$tmpname));                                      \		}                                                             \	    } elsif ("$<" ne "$(DEPENDENCIES)") {                             \		print "$(MAKE): *** No rule to make target $<.  Stop.\n";     \		exit(1);                                                      \	    }'endif############################################################################## X dependency system#############################################################################ifdef MKDEPENDENCIES# For Windows, $(MKDEPENDENCIES) must be -included before including rules.mk$(MKDEPENDENCIES)::	@$(MAKE_OBJDIR)	touch $(MKDEPENDENCIES) 	chmod u+w $(MKDEPENDENCIES) #on NT, the preceeding touch command creates a read-only file !?!?!#which is why we have to explicitly chmod it.	$(MKDEPEND) -p$(OBJDIR_NAME)/ -o'$(OBJ_SUFFIX)' -f$(MKDEPENDENCIES) \$(NOMD_CFLAGS) $(YOPT) $(CSRCS) $(CPPSRCS) $(ASFILES)$(MKDEPEND):: $(MKDEPEND_DIR)/*.c $(MKDEPEND_DIR)/*.h	cd $(MKDEPEND_DIR); $(MAKE)ifdef OBJSdepend:: $(MKDEPEND) $(MKDEPENDENCIES)elsedepend::endif	+$(LOOP_OVER_DIRS)dependclean::	rm -f $(MKDEPENDENCIES)	+$(LOOP_OVER_DIRS)#-include $(NSINSTALL_DIR)/$(OBJDIR)/depend.mkelsedepend::endif################################################################################# Special gmake rules.################################################################################## Re-define the list of default suffixes, so gmake won't have to churn through# hundreds of built-in suffix rules for stuff we don't need.#.SUFFIXES:.SUFFIXES: .out .a .ln .o .obj .c .cc .C .cpp .y .l .s .S .h .sh .i .pl .class .java .html .asm## Don't delete these files if we get killed.#.PRECIOUS: .java $(JDK_HEADERS) $(JDK_STUBS) $(JRI_HEADERS) $(JRI_STUBS) $(JMC_HEADERS) $(JMC_STUBS) $(JNI_HEADERS)## Fake targets.  Always run these rules, even if a file/directory with that# name already exists.#.PHONY: all all_platforms alltags boot clean clobber clobber_all export install libs realclean release $(OBJDIR) $(DIRS)

⌨️ 快捷键说明

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