Log message for revision 69111: - Update the Windows makefile to have the same features as the non-Windows one. - Use a copy instead of symlink in setup.py for the special headers.
Changed: U Zope/branches/2.9/inst/Makefile.in U Zope/branches/2.9/inst/Makefile.win.in A Zope/branches/2.9/inst/tar.py U Zope/branches/2.9/inst/versions.py U Zope/branches/2.9/setup.py -=- Modified: Zope/branches/2.9/inst/Makefile.in =================================================================== --- Zope/branches/2.9/inst/Makefile.in 2006-07-13 15:21:06 UTC (rev 69110) +++ Zope/branches/2.9/inst/Makefile.in 2006-07-13 17:15:50 UTC (rev 69111) @@ -104,6 +104,7 @@ clean: unbuild ${FIND} "${BASE_DIR}" \ -name '*.py[co]' -o -name '*.so' -o -name '*.o' | ${XARGS} ${RM} + ${RM} "$(BASE_DIR)/lib/python/version.txt" ${RMRF} build # version_txt: create a version file in lib/python/version.txt Modified: Zope/branches/2.9/inst/Makefile.win.in =================================================================== --- Zope/branches/2.9/inst/Makefile.win.in 2006-07-13 15:21:06 UTC (rev 69110) +++ Zope/branches/2.9/inst/Makefile.win.in 2006-07-13 17:15:50 UTC (rev 69111) @@ -10,14 +10,17 @@ PACKAGE_NAME=$(NAME)-$(MAJOR_VERSION).$(MINOR_VERSION)-$(RELEASE_TAG) PYTHON="<<PYTHON>>" -ZPKG=zpkg TMPDIR="<<TMP_DIR>>" PREFIX="<<PREFIX>>" -BASE_DIR="<<BASE_DIR>>" +BASE_DIR=<<BASE_DIR>> +BUILD_BASE=<<BUILD_BASE>> DISTUTILS_OPTS=<<DISTUTILS_OPTS>> INSTALL_FLAGS=<<INSTALL_FLAGS>> TESTOPTS=-v -BUILD_FLAGS=-i +BUILD_FLAGS=--build-base="$(BUILD_BASE)" \ + --build-lib="$(BUILD_BASE)\build-lib" \ + --build-scripts="$(BUILD_BASE)\build-scripts"\ + --build-temp="$(BUILD_BASE)\build-temp" RM=del /f /q !IF ("$(OS)" == "Windows_NT") @@ -28,6 +31,7 @@ CD=cd XCOPY=xcopy /i /s /e /y COPY=copy +EXISTS=IF EXIST default: build # default: The default step (invoked when make is called without a target) @@ -35,25 +39,29 @@ @ echo Zope built. Next, do 'nmake install'. @ echo. -.PHONY : clean install instance untestinst testinst build +.PHONY : clean install instance untestinst testinst build unbuild .PHONY : default # build: Do whatever 'setup.py build' implies build: $(PYTHON) "$(BASE_DIR)\setup.py" \ - $(DISTUTILS_OPTS) build_ext $(BUILD_FLAGS) + $(DISTUTILS_OPTS) build $(BUILD_FLAGS) +# unbuild: Remove the build directory (undo the make build step) +unbuild: + -$(EXISTS) $(BUILD_BASE) $(RMRF) $(BUILD_BASE) + # install: Install a software home. install: build version_txt - $(PYTHON) "$(BASE_DIR)\setup.py" $(DISTUTILS_OPTS) \ - build_ext $(BUILD_FLAGS) \ - install --home="$(PREFIX)" $(INSTALL_FLAGS) + $(PYTHON) "$(BASE_DIR)\setup.py" $(DISTUTILS_OPTS) install \ + --prefix="$(PREFIX)" $(BUILD_FLAGS) $(INSTALL_FLAGS) @ echo. @ echo Zope binaries installed successfully. @ echo Now run '$(PYTHON) $(PREFIX)\bin\mkzopeinstance.py' # inplace: Do an in-place build -inplace: build +inplace: + $(MAKE) install PREFIX="$(BASE_DIR)" # test: Do an inplace build and run the Zope test suite. test: inplace @@ -67,42 +75,48 @@ # testinst: Perform an inplace build and create an instance home in the # resulting software home without asking questions. Useful when # performing automated testing. -# testinst: MKZ_FLAGS=--user=admin:admin --dir="$(BASE_DIR)" -# testinst: instance +testinst: + $(MAKE) instance MKZ_FLAGS=--user=admin:admin --dir="$(BASE_DIR)" # uninstance: Remove the instance files made by testinstance (w/ prejudice) uninstance: - $(RMRF) "$(BASE_DIR)/bin" - $(RMRF) "$(BASE_DIR)/etc" - $(RMRF) "$(BASE_DIR)/import" - $(RMRF) "$(BASE_DIR)/log" - $(RMRF) "$(BASE_DIR)/var" - $(RMRF) "$(BASE_DIR)/Products" + $(EXISTS) "$(BASE_DIR)/bin" $(RMRF) "$(BASE_DIR)/bin" + $(EXISTS) "$(BASE_DIR)/etc" $(RMRF) "$(BASE_DIR)/etc" + $(EXISTS) "$(BASE_DIR)/import" $(RMRF) "$(BASE_DIR)/import" + $(EXISTS) "$(BASE_DIR)/log" $(RMRF) "$(BASE_DIR)/log" + $(EXISTS) "$(BASE_DIR)/var" $(RMRF) "$(BASE_DIR)/var" + $(EXISTS) "$(BASE_DIR)/Products" $(RMRF) "$(BASE_DIR)/Products" # clean: Delete the build files and any binaries/bytecode files in # the source directory for good measure. clean: $(CD) "$(BASE_DIR)" -$(RM) /s *.pyc *.pyo *.dll *.o *.obj *.pyd - -$(RM) "$(BASE_DIR)\lib\python\version.txt" - -$(RMRF) build + -$(EXISTS) "$(BASE_DIR)\lib\python\version.txt" $(RM) "$(BASE_DIR)\lib\python\version.txt" + -$(EXISTS) build $(RMRF) build # version_txt: create a version file in lib/python/version.txt version_txt: echo Zope $(MAJOR_VERSION).$(MINOR_VERSION)-$(RELEASE_TAG) >\ "$(BASE_DIR)/lib/python/version.txt" -# Building a source distribution requires that zpkg be available: -sdist: version_txt - $(ZPKG) -C $(BASE_DIR)\releases\Zope2.cfg -r $(MAJOR_VERSION).$(MINOR_VERSION)$(RELEASE_TAG) +# sdist: Create a source distribution file (implies clobber). +# +sdist: clobber sdist_tgz +# sdist_tgz: Create a tgz archive file as a source distribution. +# +sdist_tgz: version_txt + $(PYTHON) $(BASE_DIR)\inst\tar.py $(BASE_DIR)\$(PACKAGE_NAME).tgz $(BASE_DIR) + # clobber: Make the source tree 'pristine' again. clobber: clean uninstance # distclean: Make the source tree *really* 'pristine' again. distclean: clobber - $(RM) makefile Makefile - $(RMRF) build-base + $(EXISTS) makefile $(RM) makefile + $(EXISTS) Makefile $(RM) Makefile + $(EXISTS) build-base $(RMRF) build-base Added: Zope/branches/2.9/inst/tar.py =================================================================== --- Zope/branches/2.9/inst/tar.py 2006-07-13 15:21:06 UTC (rev 69110) +++ Zope/branches/2.9/inst/tar.py 2006-07-13 17:15:50 UTC (rev 69111) @@ -0,0 +1,71 @@ +############################################################################## +# +# Copyright (c) 2002 Zope Corporation and Contributors. All Rights Reserved. +# +# This software is subject to the provisions of the Zope Public License, +# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution. +# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED +# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS +# FOR A PARTICULAR PURPOSE +# +############################################################################## + +import os +import sys +import optparse +import tarfile +from distutils import filelist + +INCLUDES = tuple('.*'.split()) +EXCLUDES = tuple(r""".*.svn\\ .*CVS\\ .*.tgz + .*makefile .*Makefile inst\\tmp\\.* .*build-base\\ + .*~ .*.#.*""".split()) + +def collect(top_dir, includes=INCLUDES, excludes=EXCLUDES): + old_dir = os.getcwd() + os.chdir(top_dir) + try: + fl = filelist.FileList() + fl.findall() + + for inc in includes: + fl.include_pattern(inc, is_regex=1) + + for exc in excludes: + fl.exclude_pattern(exc, is_regex=1) + + return fl.files + finally: + os.chdir(old_dir) + +def tar_it_up(dest, files): + tar = tarfile.open(dest, mode='w:gz') + for fname in files: + tar.add(fname, recursive=False) + tar.close() + +def main(options, args): + dest, top_dir = args + includes = options.include + excludes = options.exclude + excludes.append('.*%s.*' % os.path.basename(dest)) + + files = collect(top_dir, includes=includes, excludes=excludes) + tar_it_up(dest, files) + +if __name__ == '__main__': + excludes = list(EXCLUDES) + includes = list(INCLUDES) + + parser = optparse.OptionParser() + parser.add_option('', '--exclude', action='append', default=excludes) + parser.add_option('', '--include', action='append', default=includes) + + options, args = parser.parse_args() + + if not len(args) == 2: + parser.print_help() + parser.exit(status=1) + + main(options, args) Property changes on: Zope/branches/2.9/inst/tar.py ___________________________________________________________________ Name: svn:keywords + Author Date Id Revision HeadURL Name: svn:eol-style + native Modified: Zope/branches/2.9/inst/versions.py =================================================================== --- Zope/branches/2.9/inst/versions.py 2006-07-13 15:21:06 UTC (rev 69110) +++ Zope/branches/2.9/inst/versions.py 2006-07-13 17:15:50 UTC (rev 69111) @@ -1,7 +1,7 @@ ZOPE_MAJOR_VERSION = '2.9' -ZOPE_MINOR_VERSION = '3' +ZOPE_MINOR_VERSION = '4' ZOPE_BRANCH_NAME = '$Name$'[6:] or 'no-branch' # always start prerelease branches with '0' to avoid upgrade # issues in RPMs -VERSION_RELEASE_TAG = '' +VERSION_RELEASE_TAG = 'alpha' Modified: Zope/branches/2.9/setup.py =================================================================== --- Zope/branches/2.9/setup.py 2006-07-13 15:21:06 UTC (rev 69110) +++ Zope/branches/2.9/setup.py 2006-07-13 17:15:50 UTC (rev 69111) @@ -34,11 +34,11 @@ --install-platlib=/usr/local/lib/zope \ --install-purelib=/usr/local/lib/zope """ -ZOPE_VERSION = '2.9.4-alpha' import glob import os import sys +import shutil import distutils.core @@ -49,6 +49,12 @@ from distutils.command.install_data import install_data from distutils.util import convert_path +sys.path.insert(0, 'inst') +import versions +del sys.path[0] + +ZOPE_VERSION = '%s%s-%s' % (versions.ZOPE_MAJOR_VERSION, versions.ZOPE_MINOR_VERSION, versions.VERSION_RELEASE_TAG) + class ZopeInstallData(install_data): def finalize_options(self): self.set_undefined_options('install', @@ -233,7 +239,7 @@ # Create the finder instance, which will be used in lots of places. `finder' # is the global we're most interested in. -IGNORE_EXTS = ('.pyc', '.pyo', '.c', '.h', '.so', '.cfg') +IGNORE_EXTS = ('.pyc', '.pyo', '.c', '.h', '.so', '.o', '.dll', '.lib', '.obj', '.cfg') finder = Finder(IGNORE_EXTS, PACKAGES_ROOT) for dirpath, dirnames, filenames in os.walk(PACKAGES_ROOT): @@ -254,13 +260,20 @@ # building extensions, but Zope's the build_ext -i variant # is used to build Zope in place. # - # Note that we also create symlinks for the oddball include + # Note that we also create make a copy for the oddball include # directories used by some Zope3 extensions. def run(self): os.path.walk(os.curdir, remove_stale_bytecode, None) for k, v in HEADER_PATH_ALIASES.items(): - if not os.path.exists(k): - os.symlink(v, k) + if os.path.exists(k): + shutil.rmtree(k) + ignore = list(IGNORE_EXTS) + ignore.remove('.h') + f = Finder(tuple(ignore), v) + for dirpath, dirnames, filenames in os.walk(v): + if not '.svn' in dirpath: + f.visit(dirpath, filenames) + f.copy_files(self, k) build_ext.run(self) class MyLibInstaller(installcmd): @@ -280,7 +293,7 @@ self.cmdclass['install_lib'] = MyLibInstaller -EXTENSIONCLASS_INCLUDEDIRS = ['ExtensionClass', '.'] +EXTENSIONCLASS_INCLUDEDIRS = ['ExtensionClass', '.'] # All extension modules must be listed here. ext_modules = [ _______________________________________________ Zope-Checkins maillist - Zope-Checkins@zope.org http://mail.zope.org/mailman/listinfo/zope-checkins