COMMENT @%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

	Copyright (c) NewDeal 1999 -- All Rights Reserved

PROJECT:	NewDeal
MODULE:		Global
FILE:		product.def

AUTHOR:		Martin Turon,  February 9, 1999

MACROS:
	Name			Description
	----			-----------
	NDO2000			Generate code for NewDeal Office 2000	
	GPC1999			Generate code for Global PC 1999
	NDO1998			Generate code for NewDeal Office Release 3
		
REVISION HISTORY:
	Name	Date		Description
	----	----		-----------
	martin	1999/2/9  	Initial version


DESCRIPTION:
	Defines macros used to differentiate between various builds
	and products based on the common PC/GEOS source tree.
	To make full use of this header, define an environment flag
	PRODUCT=<X> and add an entry in Tools/scripts/perl/product_flags
	to map your product into the proper flags to pass to the
	compilation tools.  This file may have to be split into separate 
	Internal/product<X>.def files at some later date.

 $Id: product.def,v 1.1 1999/12/14 01:54:28 (c)turon Exp martin $

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@

SetDef	__PRODUCT


;===========================================================================
;	Map build environment variables to product compilation flags
;===========================================================================

; ifidn PRODUCT, <GPC1999> 	; This modern esp construct is not needed.
				; Besides, -DPRODUCT_X flag is what uic and goc
				; use instead of esp's -DPRODUCT=X...
				; product_flags.pl now passes both to esp.
ifdef PRODUCT_NDO2000
_NDO2000 = -1
else
_NDO2000 = 0
endif

ifdef PRODUCT_GPC1999
_GPC1999 = -1
else
_GPC1999 = 0
endif

ifdef PRODUCT_NDO1998
_NDO2000 = -1
_NDO1998 = -1
else
_NDO1998 = 0
endif

;===========================================================================
;	Product Features -- default feature flags for all products
;===========================================================================
	
	; browser flags
	PROGRESS_DISPLAY	 = TRUE

	; kernel flags
	SUPPORT_32BIT_DATA_REGS	 = TRUE
	UTILITY_MAPPING_WINDOW	 = TRUE
	
;===========================================================================
;	Product Features -- feature flags global to a particular product
;===========================================================================

if _NDO2000
	; GLOBAL_FEATURE_1 = -1
	; GLOBAL_FEATURE_2 = 0
	; ...etc.

	_NEW_DEAL		     =   -1	; Used by CuiApp
	_BITMAP_EDITING		     equ TRUE	; GeoDraw and other apps.
	SUPPORT_32BIT_DATA_REGS	     =	 FALSE
	UTILITY_MAPPING_WINDOW	     =	 FALSE

	;*** NewDesk defaults for NewDeal
	GPC_CUSTOM_FLOPPY_NAME	     =   FALSE	; normal a,b: floppy names
	GPC_NO_DRIVES_FOLDER	     =   FALSE	; yes, drives folder!
	GPC_NO_COPY_DISK	     =   FALSE	; yes, disk copy!
	GPC_MAIN_SCREEN_LINK	     =   TRUE	; yes, link back to CUI
	GPC_DESKTOP_LINKS_IN_INI     =   TRUE
	GPC_POPUP_MENUS		     =   FALSE	; don't use GPC popup subset
	GPC_FOLDER_WINDOW_MENUS	     =   FALSE  ; maximum right-click menus
	GPC_PRESERVE_DIRECTORIES     =   FALSE	; crashes drive access...
	GPC_DEBUG_MODE               =   FALSE	; crashes drive access...
	GPC_NAMES_AND_DETAILS_TITLES =   FALSE	; crashes drive access...
        GPC_SIGN_UP_ICON             =   FALSE  ; no ISP sign-up icons
	GPC_NO_FUNCTION_KEYS	     =   FALSE  ; use function keys. 
	
	;*** GeoDex defaults for NewDeal
	_OPTIONS_MENU		     =   TRUE
	_IMPEX_MERGE		     =   TRUE
	FAX_SUPPORT		     =   FALSE
	LIMITED_FAX_SUPPORT	     =   TRUE
else
	_NEW_DEAL	= 0
endif

	
if _GPC1999
	_BITMAP_EDITING		equ FALSE	; GeoDraw and other apps.
	_DOS_LONG_NAME_SUPPORT	equ TRUE

	;*** NewDesk defaults for GPC
	GPC_CUSTOM_FLOPPY_NAME	 =   TRUE
	GPC_NO_DRIVES_FOLDER	 =   TRUE
	GPC_NO_COPY_DISK	 =   TRUE
	GPC_DESKTOP_LINKS_IN_INI =   FALSE
else
endif

	
if _NDO1998
	;;  Override flags for NewDeal Release3 compatability.
	_OPTIONS_MENU		     =   TRUE
	_IMPEX_MERGE		     =   TRUE
	SUPPORT_32BIT_DATA_REGS	     =	 FALSE
	UTILITY_MAPPING_WINDOW	     =	 FALSE
endif

;===========================================================================
;	Product Features -- setting flags here overrides *all* products
;===========================================================================
	
;===========================================================================
;	Product Macros
;===========================================================================


COMMENT @%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
		FeatureFlag
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

SYNOPSIS:	Only sets the product feature flag if it isn't set already.
		This provides a handy way to make sure flags defined 
		globally aren't overwritten while allowing custom
		compilation flags to set non-product related features 
		in one's local.mk. 

PASS:		feature_flag	= PRODUCT_FEATURE_FLAG
		value		= TRUE | FALSE | 0 | 1 | -1

PSEUDO CODE/STRATEGY:
KNOWN BUGS/SIDE EFFECTS/IDEAS:
	Could add auto-handling of local.mk -DFEATURE_ flags by adding:
		ifdef FEATURE_feature_flag
		  feature_flag = TRUE
		else	
		  feature_flag = value
		endif

REVISION HISTORY:
	Name	Date		Description
	----	----		-----------
	martin	1999/2/22	Initial version

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@
FeatureFlag	macro	feature_flag, value
	ifndef feature_flag
		feature_flag = value
	endif
endm


COMMENT @%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
		NDO2000
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

SYNOPSIS:	Include code only in the NDO2000 version of PC/GEOS
		NDO2000 stands for NewDeal Office 2000, but also
		includes related products like SchoolSuite, etc.
		NewDeal is the full desktop version of the software
		for use in schools and non-profit donation.

PASS:		line - line of source code

PSEUDO CODE/STRATEGY:
KNOWN BUGS/SIDE EFFECTS/IDEAS:
	Only includes line if NDO2000 *is* defined

REVISION HISTORY:
	Name	Date		Description
	----	----		-----------
	martin	1999/2/9	Initial version

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@
NDO2000		macro	line
	if	_NDO2000
line
	endif
endm


COMMENT @%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
		GPC1999
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

SYNOPSIS:	Include code only in the GPC1999 version of PC/GEOS
		GPC1999 stands for Global PC 1999 -- the first release 
		version of a consumer market product that bundles PC/GEOS 
		on pentium class hardware for sale in the consumer retail 
		channel.

PASS:		line - line of source code

PSEUDO CODE/STRATEGY:
KNOWN BUGS/SIDE EFFECTS/IDEAS:
	Only includes line if GPC1999 *is* defined

REVISION HISTORY:
	Name	Date		Description
	----	----		-----------
	martin	1999/2/9	Initial version

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@
GPC1999		macro	line
	if	_GPC1999
line
	endif
endm


COMMENT @%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
		NDO1998
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

SYNOPSIS:	Include code only in the NDO1998 version of PC/GEOS
		NDO1998 stands for NewDeal Office 1998, and includes 
		all "Release 3" or "Office 98" versions of the NewDeal 
		products (SchoolSuite, WebSuite, etc.)

PASS:		line - line of source code

PSEUDO CODE/STRATEGY:
KNOWN BUGS/SIDE EFFECTS/IDEAS:
	Only includes line if GPC1999 *is* defined

REVISION HISTORY:
	Name	Date		Description
	----	----		-----------
	martin	1999/12/13	Initial version

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@
NDO1998		macro	line
	if	_NDO1998
line
	endif
endm

 

