[Zope-Checkins] CVS: Zope/inst - Makefile.win.in:1.4
Chris McDonough
chrism@zope.com
Sat, 21 Jun 2003 09:41:24 -0400
Update of /cvs-repository/Zope/inst
In directory cvs.zope.org:/tmp/cvs-serv2978
Modified Files:
Makefile.win.in
Log Message:
Bring Windows makefile in line with UNIX makefile.
=== Zope/inst/Makefile.win.in 1.3 => 1.4 ===
--- Zope/inst/Makefile.win.in:1.3 Wed Mar 26 13:23:18 2003
+++ Zope/inst/Makefile.win.in Sat Jun 21 09:41:22 2003
@@ -15,11 +15,11 @@
BUILD_BASE=<<BUILD_BASE>>
DISTUTILS_OPTS=<<DISTUTILS_OPTS>>
INSTALL_FLAGS=<<INSTALL_FLAGS>>
-BUILD_SUBDIR=build
+TESTOPTS=-v1 -e -d lib/python
BUILD_FLAGS=--build-base="$(BUILD_BASE)" \
- --build-lib="$(BUILD_BASE)\$(BUILD_SUBDIR)" \
- --build-scripts="$(BUILD_BASE)\$(BUILD_SUBDIR)\build_scripts.tmp" \
- --build-temp="$(BUILD_BASE)\$(BUILD_SUBDIR)\build_temp.tmp"
+ --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")
@@ -31,18 +31,26 @@
XCOPY=xcopy /i /s /e /y
COPY=copy
-.PHONY : clean install uninstall instance untestinst testinst
+.PHONY: clean install uninstall instance untestinst testinst build unbuild
+.PHONY: default
default: build
+# default: The default step (invoked when make is called without a target)
+ @ echo.
+ @ echo Zope built. Next, do 'nmake install' (or 'nmake instance'
+ @ echo to run a Zope instance directly from the build directory\).
+ @ echo
+# build: Do whatever 'setup.py build' implies
build:
$(PYTHON) "$(BASE_DIR)\setup.py" \
$(DISTUTILS_OPTS) build $(BUILD_FLAGS)
- @ echo.
- @ echo Zope built. Next, do 'nmake install' (or 'nmake instance'
- @ echo to run a Zope instance directly from the build directory).
- @ echo.
+# unbuild: Remove the build directory (undo the make build step)
+unbuild:
+ $(RMRF) $(BUILD_BASE)
+
+# install: Install a software home.
install: build
$(PYTHON) "$(BASE_DIR)\setup.py" $(DISTUTILS_OPTS) install \
--prefix="$(PREFIX)" $(BUILD_FLAGS) $(INSTALL_FLAGS)
@@ -50,37 +58,47 @@
@ echo Zope binaries installed successfully.
@ echo Now run '$(PYTHON) $(PREFIX)\bin\mkzopeinstance'
-instance: build
- $(PYTHON) "$(BASE_DIR)\setup.py" $(DISTUTILS_OPTS) build_ext -i
- $(PYTHON) "$(BASE_DIR)\bin\mkzopeinstance" .
-
-# testinst makes an instance home in the build directory without asking
-# any questions. this is useful when testing. instances made with
-# this can be removed via "make untestinst"
-testinst: build
- $(PYTHON) "$(BASE_DIR)\setup.py" $(DISTUTILS_OPTS) build_ext -i
- $(PYTHON) "$(BASE_DIR)\bin\mkzopeinstance" --user=admin:admin .
-
-# remove the instance files made with testinst (w/ prejudice)
-untestinst:
- $(RM) "$(BASE_DIR)/bin/zopectl.py"
- $(RM) "$(BASE_DIR)/bin/ntservice.py"
- $(RMRF) "$(BASE_DIR)/etc"
- $(RMRF) "$(BASE_DIR)/log"
-
+# uninstall: Uninstall a software home.
uninstall:
$(RMRF) "$(PREFIX)"
-TESTOPTS=-v1 -d lib/python
+# inplace: Install a software home into to the source directory.
+#
+# Note: We used to run 'build_ext -i' for 'inplace', but that was
+# suboptimal because it had a tendency to try to rebuild all of the
+# (possibly already-built) extensions that might be built during a
+# previous 'make' step. built_ext doesn't understand '--build-base'
+# and friends so we can't stop it from doing this easily. So instead,
+# we rely on the stock install step and name the prefix as the current
+# directory. This is a little less efficient than just building the
+# extensions because it also compiles bytecode, but it's more intuitive and
+# less expensive in the common case than letting distutils
+# potentially rebuild the binaries when we've done that already.
+inplace: PREFIX=$(BASE_DIR)
+inplace: install
+
+# instance: Do an inplace build and create an instance home in the resulting
+# software home.
+instance: inplace
+ $(PYTHON) "$(BASE_DIR)\bin\mkzopeinstance" $(MKZ_FLAGS) "$(BASE_DIR)"
+
+# 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
+testinst: instance
-test: build
+# test: Do an inplace build and run the Zope test suite.
+test: inplace
$(PYTHON) "$(BASE_DIR)\utilities\testrunner.py" $(TESTOPTS)
-clean:
- $(RMRF) "$(BUILD_BASE)\$(BUILD_SUBDIR)"
+# clean: Delete the build files and any binaries/bytecode files in
+# the source directory for good measure.
+clean: unbuild
$(CD) "$(BASE_DIR)
- $(RM) /s *.pyc *pyo
+ $(RM) /s *.pyc *.pyo *.dll *.o *.obj *.pyd
+
+# clobber: Make the source tree 'pristine' again.
+clobber: clean uninstance
-clobber: clean untestinst
- $(RM) /s *.obj *.pyd