[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