129 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			129 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
|   | #! /bin/sh | ||
|  | # Wrapper for windres to rc which do not understand '-i -o --output-format'. | ||
|  | # cvtres is invoked by the linker | ||
|  | scriptversion=2021-04-02.18; # UTC | ||
|  | 
 | ||
|  | 
 | ||
|  | nl=' | ||
|  | ' | ||
|  | 
 | ||
|  | # We need space, tab and new line, in precisely that order.  Quoting is | ||
|  | # there to prevent tools from complaining about whitespace usage. | ||
|  | IFS=" ""	$nl" | ||
|  | 
 | ||
|  | file_conv= | ||
|  | 
 | ||
|  | # func_file_conv build_file lazy | ||
|  | # Convert a $build file to $host form and store it in $file | ||
|  | # Currently only supports Windows hosts. If the determined conversion | ||
|  | # type is listed in (the comma separated) LAZY, no conversion will | ||
|  | # take place. | ||
|  | func_file_conv () | ||
|  | { | ||
|  |   file=$1 | ||
|  |   case $file in | ||
|  |     / | /[!/]*) # absolute file, and not a UNC file | ||
|  |       if test -z "$file_conv"; then | ||
|  | 	# lazily determine how to convert abs files | ||
|  | 	case `uname -s` in | ||
|  | 	  MINGW*) | ||
|  | 	    file_conv=mingw | ||
|  | 	    ;; | ||
|  | 	  CYGWIN* | MSYS*) | ||
|  | 	    file_conv=cygwin | ||
|  | 	    ;; | ||
|  | 	  *) | ||
|  | 	    file_conv=wine | ||
|  | 	    ;; | ||
|  | 	esac | ||
|  |       fi | ||
|  |       case $file_conv/,$2, in | ||
|  | 	*,$file_conv,*) | ||
|  | 	  ;; | ||
|  | 	mingw/*) | ||
|  | 	  file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'` | ||
|  | 	  ;; | ||
|  | 	cygwin/* | msys/*) | ||
|  | 	  file=`cygpath -m "$file" || echo "$file"` | ||
|  | 	  ;; | ||
|  | 	wine/*) | ||
|  | 	  file=`winepath -w "$file" || echo "$file"` | ||
|  | 	  ;; | ||
|  |       esac | ||
|  |       ;; | ||
|  |   esac | ||
|  | } | ||
|  | 
 | ||
|  | # func_windres_wrapper rc args... | ||
|  | # Adjust compile command to suit rc instead of windres | ||
|  | func_windres_wrapper () | ||
|  | { | ||
|  |   # Assume a capable shell | ||
|  |   in= | ||
|  |   out= | ||
|  | 
 | ||
|  |   for arg | ||
|  |   do | ||
|  |     if test -n "$eat"; then | ||
|  |       eat= | ||
|  |     else | ||
|  |       case $1 in | ||
|  | 	-o) | ||
|  | 	  eat=1 | ||
|  | 	  func_file_conv "$2" | ||
|  | 	  out="$file" | ||
|  | 	  echo "OUTPUT:$file" | ||
|  | 	  set x "$@" | ||
|  | 	  shift | ||
|  | 	  ;; | ||
|  | 	*.obj) | ||
|  | 	  func_file_conv "$1" | ||
|  | 	  out="$file" | ||
|  | 	  echo "OUTPUT:$file" | ||
|  | 	  set x "$@" | ||
|  | 	  shift | ||
|  | 	  ;; | ||
|  | 	--output-format=*) | ||
|  | 	  set x "$@" | ||
|  | 	  shift | ||
|  | 	  ;; | ||
|  | 	-i) | ||
|  | 	  eat=1 | ||
|  | 	  func_file_conv "$2" mingw | ||
|  | 	  in="$file" | ||
|  | 	  echo "INPUT:$file" | ||
|  | 	  set x "$@" | ||
|  | 	  shift | ||
|  | 	  ;; | ||
|  | 	-*) | ||
|  | 	  set x "$@" "${1//\\\"/\"}" | ||
|  | 	  shift | ||
|  | 	  ;; | ||
|  | 	*) | ||
|  | 	  set x "$@" "$1" | ||
|  | 	  shift | ||
|  | 	  ;; | ||
|  |       esac | ||
|  |     fi | ||
|  |     shift | ||
|  |   done | ||
|  |   echo "$@" -fo "$out" "$in" | ||
|  |   exec "$@" -fo "$out" "$in" | ||
|  |   exit 1 | ||
|  | } | ||
|  | 
 | ||
|  | eat= | ||
|  | 
 | ||
|  | func_windres_wrapper "$@" | ||
|  | 
 | ||
|  | 
 | ||
|  | # Local Variables: | ||
|  | # mode: shell-script | ||
|  | # sh-indentation: 2 | ||
|  | # eval: (add-hook 'before-save-hook 'time-stamp) | ||
|  | # time-stamp-start: "scriptversion=" | ||
|  | # time-stamp-format: "%:y-%02m-%02d.%02H" | ||
|  | # time-stamp-time-zone: "UTC0" | ||
|  | # time-stamp-end: "; # UTC" | ||
|  | # End: |