📄 readme
字号:
this section can (and should) largely be thought of as "language" independent, it does utilize the "perl" scripting language to perform both the "import" and "release" of binary modules. The rules which dwell in this section and their purpose: CATEGORY/rule:: Purpose =================== ======================================= GENERAL ------- all:: "default" all-encompassing rule which performs "export libs program install" export:: recursively copy specified cross-platform header files to the $(SOURCE_XPHEADERS_DIR) directory; recursively copy specified machine-dependent header files to the $(SOURCE_MDHEADERS_DIR) directory; although all rules can be written to repetively "chain" into other sections, this rule is the most commonly used rule to "chain" into other sections such as Java providing a simple mechanism which allows no need for developers to memorize specialized rules libs:: recursively build static (archival) $(LIBRARY), shared (dynamic link) $(SHARED_LIBRARY), import $(IMPORT_LIBRARY), and/or "purified" $(PURE_LIBRARY) libraries program:: recursively build $(PROGRAM) executable install:: recursively copy all libraries to $(SOURCE_LIB_DIR) directory; recursively copy all executables to $(SOURCE_BIN_DIR) directory clean:: remove all files specified in the $(ALL_TRASH) variable clobber:: synonym for "clean::" rule realclean:: remove all files specified by $(wildcard *.OBJ), dist, and in the $(ALL_TRASH) variable clobber_all:: synonym for "realclean::" rule private_export:: recursively copy specified cross-platform header files to the $(SOURCE_XPPRIVATE_DIR) directory IMPORT ------ import:: uses perl script to retrieve specified VERSION of the binary release from $(RELEASE_TREE) RELEASE ------- release_clean:: remove all files from the $(SOURCE_RELEASE_PREFIX) directory release:: place specified VERSION of the binary release in the appropriate $(RELEASE_TREE) directory release_export:: recursively copy specified cross-platform header files to the $(SOURCE_XPHEADERS_DIR)/include directory release_md:: recursively copy all libraries to $(SOURCE_RELEASE_PREFIX)/ $(SOURCE_RELEASE_LIB_DIR) directory; recursively copy all executables to $(SOURCE_RELEASE_PREFIX)/ $(SOURCE_RELEASE_BIN_DIR) directory release_jars:: use perl script to package appropriate files in the $(XPCLASS_JAR), $(XPHEADER_JAR), $(MDHEADER_JAR), and $(MDBINARY_JAR) jar files release_cpdistdir:: use perl script to copy the $(XPCLASS_JAR), $(XPHEADER_JAR), $(MDHEADER_JAR), and $(MDBINARY_JAR) jar files to the specified VERSION of the $(RELEASE_TREE) directory TOOLS and AUTOMATION -------------------- platform:: tool used to display the platform name as composed within the "arch.mk" file autobuild:: automation rule used by "Bonsai" and "Tinderbox" to automatically generate binary releases on various platforms tests:: automation tool used to run the "regress" and "reporter" tools on various regression test suites The second section of "rules.mk" primarily contains several "language" dependent build rules for binary releases. These are generally "computed" rules (created on the "fly"), and include rules used by "C", "C++", assembly, the preprocessor, perl, and the shell. The rules which dwell in this section and their purpose: CATEGORY/rule:: Purpose =================== ============================= LIBRARIES --------- $(LIBRARY): build the static library specified by the $(LIBRARY) variable $(IMPORT_LIBRARY): build the import library specified by the $(IMPORT_LIBRARY) variable $(SHARED_LIBRARY): build the shared (dynamic link) library specified by the $(SHARED_LIBRARY) variable $(PURE_LIBRARY): build the "purified" library specified by the $(PURE_LIBRARY) variable PROGRAMS -------- $(PROGRAM): build the binary executable specified by the $(PROGRAM) rule $(OBJDIR)/ $(PROG_PREFIX)%.pure: build the "purified" binary executable specified by this rule OBJECTS ------- $(OBJDIR)/ $(PROG_PREFIX)%$(OBJ_SUFFIX): build the object file associated with the makefile rule dependency: %.c = C file %.cpp = C++ file %.cc = C++ file %.s = assembly file %.S = assembly file $(OBJDIR)/ $(PROG_PREFIX)%: (NOTE: deprecated rule) build the object file associated with the makefile rule dependency: %.cpp = C++ file MISCELLANEOUS ------------- $(DIRS):: specifies a helper method used by $(LOOP_THROUGH_DIRS) to recursively change directories and invoke $(MAKE) %.i: build the preprocessor file associated with the makefile rule dependency: %.c = C file %.cpp = C++ file %: process the specified file using the method associated with the makefile rule dependency: %.pl = perl script %.sh = shell script alltags: tool used to recursively create a "ctags"-style file for reference The third section of "rules.mk' primarily contains several JAVA "language" build rules for binary releases. These are also generally "computed" rules (created on the "fly"). The rules which dwell in this section and their purpose: CATEGORY/rule:: Purpose =================== ============================= $(JAVA_DESTPATH):: create directory specified as the Java destination path for where classes are deposited $(JAVA_DESTPATH)/$(PACKAGE):: create directories specified within the $(PACKAGE) variable $(JMCSRCDIR):: create directory specified as the JMC destination path $(JRI_HEADER_CFILES): used to generate/regenerate JRI header files for "C" $(JRI_STUB_CFILES): used to generate/regenerate JRI stub files for "C" $(JNI_HEADERS): used to generate/regenerate JNI header files for "C" The fourth section of "rules.mk" primarily contains miscellaneous build rules for binary releases. Many of these rules are here to create new subdirectories, manage dependencies, and/or override standard gmake "Makefile" rules. The rules which dwell in this section and their purpose: CATEGORY/rule:: Purpose =================== ============================= $(PUBLIC_EXPORT_DIR):: create directory used to house public "C" header files $(PRIVATE_EXPORT_DIR):: create directory used to house private "C" header files $(SOURCE_XP_DIR)/ release/include:: create directory used to house "C" header files contained in a release $(MKDEPENDENCIES):: for UNIX systems, create a directory used to house dependencies and utilize the $(MKDEPEND) rule to create them $(MKDEPEND):: cd to the dependency directory and create them depend:: if $(OBJS) exist, perform the $(MKDEPEND) rule followed by the $(MKDEPENDENCIES) rule dependclean:: remove all files contained in the dependency repository .DEFAULT: standard gmake rule .SUFFIXES: standard gmake rule .PRECIOUS: standard gmake rule .PHONY: standard gmake rule
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -