mirror of
				git://git.code.sf.net/p/cdesktopenv/code
				synced 2025-03-09 15:50:02 +00:00 
			
		
		
		
	package: check for same compiler flags between build runs
I've had ksh crash one too many times when returning to a previous build directory as I forgot to restore the previously-used CCFLAGS. bin/package, src/cmd/INIT/package.sh: - Save each of CC, CCFLAGS, CCLDFLAGS, LDFLAGS, KSH_RELFLAGS on the first build run. On subsequent runs, compare and refuse to run if they changed, issuing an informative error message. - Allow override by exporting FORCE_FLAGS. Don't tell anyone :)
This commit is contained in:
		
							parent
							
								
									33d0f004de
								
							
						
					
					
						commit
						48e6dd989c
					
				
					 2 changed files with 68 additions and 0 deletions
				
			
		
							
								
								
									
										34
									
								
								bin/package
									
										
									
									
									
								
							
							
						
						
									
										34
									
								
								bin/package
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -5854,6 +5854,40 @@ cat $j $k
 | 
			
		|||
	view)	exit 0 ;;
 | 
			
		||||
	esac
 | 
			
		||||
 | 
			
		||||
	# check against previous compiler and flags
 | 
			
		||||
 | 
			
		||||
	err=
 | 
			
		||||
	for	var in CC CCFLAGS CCLDFLAGS LDFLAGS KSH_RELFLAGS
 | 
			
		||||
	do	store=$INSTALLROOT/lib/package/gen/$var
 | 
			
		||||
		eval "new=\$$var"
 | 
			
		||||
		if	test -e $store
 | 
			
		||||
		then	old=`cat $store`
 | 
			
		||||
			case $old in
 | 
			
		||||
			"$new")	;;
 | 
			
		||||
			*)	case $old in
 | 
			
		||||
				'')	old="(none)" ;;
 | 
			
		||||
				*)	old="'$old'" ;;
 | 
			
		||||
				esac
 | 
			
		||||
				case $new in
 | 
			
		||||
				'')	new="(none)" ;;
 | 
			
		||||
				*)	new="'$new'" ;;
 | 
			
		||||
				esac
 | 
			
		||||
				echo "$command: $var changed from $old to $new" >&2
 | 
			
		||||
				err=y ;;
 | 
			
		||||
			esac
 | 
			
		||||
		else	case $new in
 | 
			
		||||
			'')	;;
 | 
			
		||||
			*)	echo "$new" ;;
 | 
			
		||||
			esac > $store
 | 
			
		||||
		fi
 | 
			
		||||
	done
 | 
			
		||||
	case $err,${FORCE_FLAGS+f} in
 | 
			
		||||
	y,)	echo "$command: This would likely break the build. Restore the flag(s)," >&2
 | 
			
		||||
		echo "$command: or delete the build directory and rebuild from scratch." >&2
 | 
			
		||||
		exit 1 ;;
 | 
			
		||||
	esac
 | 
			
		||||
	unset err var store old new
 | 
			
		||||
 | 
			
		||||
	# all work under $INSTALLROOT/src
 | 
			
		||||
 | 
			
		||||
	$make cd $INSTALLROOT/src
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -5854,6 +5854,40 @@ cat $j $k
 | 
			
		|||
	view)	exit 0 ;;
 | 
			
		||||
	esac
 | 
			
		||||
 | 
			
		||||
	# check against previous compiler and flags
 | 
			
		||||
 | 
			
		||||
	err=
 | 
			
		||||
	for	var in CC CCFLAGS CCLDFLAGS LDFLAGS KSH_RELFLAGS
 | 
			
		||||
	do	store=$INSTALLROOT/lib/package/gen/$var
 | 
			
		||||
		eval "new=\$$var"
 | 
			
		||||
		if	test -e $store
 | 
			
		||||
		then	old=`cat $store`
 | 
			
		||||
			case $old in
 | 
			
		||||
			"$new")	;;
 | 
			
		||||
			*)	case $old in
 | 
			
		||||
				'')	old="(none)" ;;
 | 
			
		||||
				*)	old="'$old'" ;;
 | 
			
		||||
				esac
 | 
			
		||||
				case $new in
 | 
			
		||||
				'')	new="(none)" ;;
 | 
			
		||||
				*)	new="'$new'" ;;
 | 
			
		||||
				esac
 | 
			
		||||
				echo "$command: $var changed from $old to $new" >&2
 | 
			
		||||
				err=y ;;
 | 
			
		||||
			esac
 | 
			
		||||
		else	case $new in
 | 
			
		||||
			'')	;;
 | 
			
		||||
			*)	echo "$new" ;;
 | 
			
		||||
			esac > $store
 | 
			
		||||
		fi
 | 
			
		||||
	done
 | 
			
		||||
	case $err,${FORCE_FLAGS+f} in
 | 
			
		||||
	y,)	echo "$command: This would likely break the build. Restore the flag(s)," >&2
 | 
			
		||||
		echo "$command: or delete the build directory and rebuild from scratch." >&2
 | 
			
		||||
		exit 1 ;;
 | 
			
		||||
	esac
 | 
			
		||||
	unset err var store old new
 | 
			
		||||
 | 
			
		||||
	# all work under $INSTALLROOT/src
 | 
			
		||||
 | 
			
		||||
	$make cd $INSTALLROOT/src
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue