[Vm-dev] [commit] r2259 - Configurations for the cygwin Makefile. make on its own makes the production vm.

commits at squeakvm.org commits at squeakvm.org
Wed Aug 25 00:41:23 UTC 2010


Author: eliot
Date: 2010-08-24 17:41:22 -0700 (Tue, 24 Aug 2010)
New Revision: 2259

Modified:
   branches/Cog/cygwinbuild/Makefile
   branches/Cog/cygwinbuild/Makefile.plugin
Log:
Configurations for the cygwin Makefile. make on its own makes the production vm.
make assert & make debug make the assert & debug configs in buildast & builddbg.


Modified: branches/Cog/cygwinbuild/Makefile
===================================================================
--- branches/Cog/cygwinbuild/Makefile	2010-08-24 01:09:42 UTC (rev 2258)
+++ branches/Cog/cygwinbuild/Makefile	2010-08-25 00:41:22 UTC (rev 2259)
@@ -1,10 +1,12 @@
 #############################################################################
-# Makefile for Win32 Squeak using gcc-3.4.x and cygwin
+# Makefile for Win32 Cog Squeak VM using gcc-3.4.x and cygwin
 # Do make init to allow make -n to function.
 #############################################################################
 
 #############################################################################
 # Base definitions:
+# default configuration from product, assert & debug
+CONFIGURATION=product
 
 # The name of the VM to build
 VM:=Croquet
@@ -19,8 +21,15 @@
 BASEDIR:=.
 endif
 
+ifeq ("$(CONFIGURATION)","product")
+BUILD:=build
+else ifeq ("$(CONFIGURATION)","assert")
+BUILD:=buildast
+else
+BUILD:=builddbg
+endif
 SRCDIR:= ../src
-BLDDIR:= $(BASEDIR)/build
+BLDDIR:= $(BASEDIR)/$(BUILD)
 OBJDIR:= $(BLDDIR)/vm
 
 # N.B. PLATDIR *must* be a relative path, see -f../../$(shell ./eitheror ... below
@@ -61,10 +70,17 @@
 #############################################################################
 # SqueakVM definitions
 #
+ifeq ("$(CONFIGURATION)","product")
 VMEXE:=  $(OBJDIR)/$(VM)Unstripped.exe
 CONSOLEVMEXE:=  $(OBJDIR)/$(VM)ConsoleUnstripped.exe
 STRIPEXE:=  $(OBJDIR)/$(VM).exe
 STRIPCONSOLEEXE:=  $(OBJDIR)/$(VM)Console.exe
+else
+VMEXE:=  $(OBJDIR)/$(VM).exe
+CONSOLEVMEXE:=  $(OBJDIR)/$(VM)Console.exe
+STRIPEXE:=
+STRIPCONSOLEEXE:=
+endif
 VMDEF:=	$(VM).def
 VMEXP:=	$(OBJDIR)/$(VM).exp
 VMMAP:=	$(OBJDIR)/$(VM).map
@@ -86,17 +102,26 @@
 #############################################################################
 # C compiler settings (gcc-3.4.4 cygwin 19.24)
 #
-# Define NDEBUG for production so that asserts will be excluded.
-NDEBUG:=-DNDEBUG
+CC:=gcc
+
+# VM config flags.
+ifeq ("$(CONFIGURATION)","product")
+OFLAGS:= -D_MT -O2 -march=pentium4 -momit-leaf-frame-pointer -funroll-loops
+NDEBUG:=-DNDEBUG # Define NDEBUG for production to exclude asserts
+else ifeq ("$(CONFIGURATION)","assert")
+OFLAGS:= -D_MT -O1 -march=pentium4 -fno-omit-frame-pointer
+else
+OFLAGS:= -D_MT -march=pentium4
+endif
+
 # Set minimum version to WindowsXP (see /cygwin/usr/include//w32api/w32api.h)
 WINVER:=-D_WIN32_WINNT=0x0501 -DWINVER=0x0501
-CC:=	gcc
+
+INCLUDEPATH:= -isystem/usr/include/mingw -I/usr/include/w32api
 # define _MT to eliminate the inline versions of printf et al in mingw/stdio.h
-OFLAGS:= -D_MT -O2 -march=pentium4 -momit-leaf-frame-pointer -funroll-loops \
-		-fno-builtin-printf -fno-builtin-putchar -fno-builtin-fprintf
-INCLUDEPATH:= -isystem/usr/include/mingw -I/usr/include/w32api
-CFLAGS:= $(INCLUDEPATH) -msse2 -ggdb2 -mwindows -mno-cygwin -mwin32 \
-	-mno-rtd -mms-bitfields -mno-accumulate-outgoing-args $(OFLAGS)
+NOBUILTIN:= -D_MT -fno-builtin-printf -fno-builtin-putchar -fno-builtin-fprintf
+CFLAGS:= $(INCLUDEPATH) -msse2 -ggdb2 -mwindows -mthreads -mno-cygwin -mwin32 \
+	-mno-rtd -mms-bitfields -mno-accumulate-outgoing-args $(OFLAGS) $(NOBUILTIN)
 DEFS:=	$(WINVER) -DWIN32 -DWIN32_FILE_SUPPORT -DNO_ISNAN \
 		-DNO_SERVICE -DNO_STD_FILE_SUPPORT \
 		$(NDEBUG) -DLSB_FIRST -DVM_NAME=\"$(VM)\" -DX86 $(XDEFS) $(CROQUET)
@@ -149,13 +174,32 @@
 #############################################################################
 # Common build rules
 #
-default: print-settings init eitheror.exe mkNamedPrims.exe $(OBJDIR) $(VMEXE) $(CONSOLEVMEXE) $(DLLS) $(STRIPEXE) $(STRIPCONSOLEEXE)
+default: print-settings init $(VMEXE) $(CONSOLEVMEXE) $(DLLS) $(STRIPEXE) $(STRIPCONSOLEEXE)
 
+product:;
+	$(MAKE) -f $(MAKEFILE_LIST) CONFIGURATION=product $(@,product=) default
+
+assert:
+	$(MAKE) -f $(MAKEFILE_LIST) CONFIGURATION=assert $(@,assert=) default
+
+debug:
+	$(MAKE) -f $(MAKEFILE_LIST) CONFIGURATION=debug $(@,debug=) default
+
 # Do make init to allow make -n to function.
 init:	$(OBJDIR) eitheror.exe mkNamedPrims.exe
 
+clean:
+	rm -rf sqNamedPrims.h eitheror.exe mkNamedPrims.exe build
+
+cleanast:
+	rm -rf sqNamedPrims.h eitheror.exe mkNamedPrims.exe buildast
+
+cleandbg:
+	rm -rf sqNamedPrims.h eitheror.exe mkNamedPrims.exe builddbg
+
 print-settings:
 	@echo ---------------- Makefile settings ------------------
+	@echo CONFIGURATION=$(CONFIGURATION)
 	@echo VPATH=$(VPATH)
 	@echo INCLUDES=$(INCLUDES)
 	@echo CFLAGS=$(CFLAGS)
@@ -196,6 +240,7 @@
 			$(BTOBJ) $(VMOBJ) $(VMEXP) $(OBJDIR)/resource.o $(LIBS) $(STDLIBS) $(ETOBJ)
 	nm --numeric-sort --defined-only -f bsd $(CONSOLEVMEXE) >$(CONSOLEVMMAP)
 
+ifneq ($STRIPEXE,)
 $(STRIPEXE): $(VMEXE)
 	$(STRIP) --strip-unneeded -o $(STRIPEXE) $(VMEXE)
 	$(OBJCOPY) --add-gnu-debuglink=$(VMEXE) $(STRIPEXE)
@@ -203,6 +248,7 @@
 $(STRIPCONSOLEEXE): $(CONSOLEVMEXE)
 	$(STRIP) --strip-unneeded -o $(STRIPCONSOLEEXE) $(CONSOLEVMEXE)
 	$(OBJCOPY) --add-gnu-debuglink=$(CONSOLEVMEXE) $(STRIPCONSOLEEXE)
+endif
 
 $(OBJDIR):
 	@-mkdir $(BLDDIR)
@@ -227,7 +273,7 @@
 # N.B.  PLATDIR *must* be a relative path for this to work
 $(OBJDIR)/%.lib:	FORCE
 	@-mkdir $(BLDDIR)/$(*F)
-	$(MAKE) $(MFLAGS) -C $(BLDDIR)/$(*F) \
+	$(MAKE) $(MFLAGS) -C $(BLDDIR)/$(*F) BUILD=$(BUILD) \
 		-f../../$(shell ./eitheror.exe $(PLATDIR)/win32/plugins/$(*F)/Makefile Makefile.plugin) \
 		PLATDIR=../../$(PLATDIR) SRCDIR=../../$(SRCDIR) BASEDIR=../../$(BASEDIR) \
 		LIBNAME=$(*F) XDEFS=-DSQUEAK_BUILTIN_PLUGIN \
@@ -237,7 +283,7 @@
 # Check for Makefile in win32 plugins directory otherwise use default Makefile
 $(OBJDIR)/%.dll:	FORCE
 	@-mkdir $(BLDDIR)/$(*F)
-	$(MAKE) $(MFLAGS) -C $(BLDDIR)/$(*F) \
+	$(MAKE) $(MFLAGS) -C $(BLDDIR)/$(*F) BUILD=$(BUILD) \
 		-f../../$(shell ./eitheror.exe $(PLATDIR)/win32/plugins/$(*F)/Makefile Makefile.plugin) \
 		PLATDIR=../../$(PLATDIR) SRCDIR=../../$(SRCDIR) BASEDIR=../../$(BASEDIR) \
 		LIBNAME=$(*F) ../../$(OBJDIR)/$(*F).dll

Modified: branches/Cog/cygwinbuild/Makefile.plugin
===================================================================
--- branches/Cog/cygwinbuild/Makefile.plugin	2010-08-24 01:09:42 UTC (rev 2258)
+++ branches/Cog/cygwinbuild/Makefile.plugin	2010-08-25 00:41:22 UTC (rev 2259)
@@ -21,7 +21,7 @@
 CROSSDIR:=	$(PLATDIR)/Cross/plugins/$(LIBNAME)
 WIN32DIR:=	$(PLATDIR)/win32/plugins/$(LIBNAME)
 MAKERDIR:=	$(SRCDIR)/plugins/$(LIBNAME)
-BUILDDIR:=	$(BASEDIR)/build/$(LIBNAME)
+BUILDDIR:=	$(BASEDIR)/$(BUILD)/$(LIBNAME)
 
 # Support directory locations
 CROSSVMDIR:=$(PLATDIR)/Cross/vm
@@ -75,8 +75,8 @@
 #############################################################################
 # Plugin settings
 #
-OBJDIR:=    $(BASEDIR)/build/$(LIBNAME)
-VMDIR:=     $(BASEDIR)/build/vm
+OBJDIR:=    $(BASEDIR)/$(BUILD)/$(LIBNAME)
+VMDIR:=     $(BASEDIR)/$(BUILD)/vm
 PLUGINLIB:= $(VMDIR)/$(LIBNAME).lib
 PLUGINDLL:= $(VMDIR)/$(LIBNAME).dll
 LIBOBJ:= 	$(patsubst %.c,%.o,$(patsubst %.cpp,%.o,$(LIBSRC)))		 



More information about the Vm-dev mailing list