# $NetBSD: transform-gcc,v 1.21 2011/01/23 19:07:26 agc Exp $
#
# This file handles the transformations needed for gcc that can be done
# looking at only one argument at a time.
#

transform_setname "transform-gcc"

case $arg in

# Standard options.
-[EcgOos]		|\
-[DILlU]?*		|\
-O[01]			) transform_pass ;;

# Needed for the GNU configure scripts:
-V			|\
-v			|\
--version		) transform_pass ;;

# GCC extensions.
-			|\
-dynamic		|\
-export-dynamic		|\
-falign-functions=*	|\
-falign-loops=*		|\
-falign-jumps=*		|\
-fexpensive-optimizations |\
-ffast-math		|\
-ffloat-store		|\
-fhonour-copts		|\
-finline-functions	|\
-fno-builtin*		|\
-fno-common		|\
-fno-implicit-templates	|\
-fno-inline-functions	|\
-fno-strict-aliasing	|\
-fomit-frame-pointer	|\
-fPIC			|\
-fpic			|\
-fpcc-struct-return	|\
-freg-struct-return	|\
-fsigned-char		|\
-funroll-loops		|\
-funsigned-char		|\
-ggdb			|\
-M			|\
-M[DFMPT]		|\
-MMD			|\
-m32			|\
-m64			|\
-mabi=*			|\
-march=*		|\
-mcpu=*			|\
-mieee-fp		|\
-O[23s]			|\
-pedantic		|\
-pedantic-errors	|\
-pipe			|\
-pthread		|\
-print-prog-name=*	|\
-print-search-dirs	|\
-S			|\
-shared			|\
-static			|\
-std=c99		|\
-std=gnu89		|\
-std=gnu99		|\
-W			|\
-W[cLlS],*		|\
-Wall			|\
-Wbounded		|\
-Wcast-align		|\
-Wcast-qual		|\
-Wchar-subscripts	|\
-Wconversion		|\
-Wextra			|\
-Werror			|\
-Werror-implicit-function-declaration |\
-Wformat=[012]		|\
-Wmissing-declarations	|\
-Wmissing-format-attribute |\
-Wmissing-prototypes	|\
-Wnested-externs	|\
-Wno-error		|\
-Wno-format-y2k		|\
-Wno-format-zero-length	|\
-Wno-implicit-int	|\
-Wno-import		|\
-Wno-inline		|\
-Wno-long-long		|\
-Wno-sign-compare	|\
-Wno-traditional	|\
-Wno-undef		|\
-Wno-uninitialized	|\
-Wno-unused		|\
-Wno-unused-parameter	|\
-Wno-write-strings	|\
-Wparentheses		|\
-Wpointer-arith		|\
-Wreturn-type		|\
-Wshadow		|\
-Wsign-compare		|\
-Wstrict-aliasing	|\
-Wstrict-prototypes	|\
-Wswitch		|\
-Wunused		|\
-Wundef			|\
-Wwrite-strings		) transform_pass ;;

# There are some packages suppressing all warnings. We don't want that.
-w			) transform_discard ;;

# Options specific to g++.
-fexceptions		|\
-fmessage-length=*	|\
-fno-check-new		|\
-fno-exceptions		|\
-fno-rtti		|\
-Wno-non-virtual-dtor	|\
-ftemplate-depth=*	) transform_pass ;;

# Options specific to Objective C
-fgnu-runtime		|\
-fconstant-string-class=* ) transform_pass ;;

# Other compiler's options that have corresponding GCC options.
-Kpic			|\
-kpic			|\
-KPIC			|\
-kPIC			) transform_to "-fPIC" ;;
-mt			) transform_to "-threads" ;;
-64			) transform_to "-m64" ;;

# Unknown options.
-*			) transform_pass_with_warning ;;

esac
