# DP: Add D options and specs for the gcc driver. Index: b/src/gcc/d/lang-specs.h =================================================================== --- /dev/null +++ b/src/gcc/d/lang-specs.h @@ -0,0 +1,31 @@ +/* lang-specs.h -- D frontend for GCC. + Copyright (C) 2011, 2012 Free Software Foundation, Inc. + + GCC is free software; you can redistribute it and/or modify it under + the terms of the GNU General Public License as published by the Free + Software Foundation; either version 3, or (at your option) any later + version. + + GCC is distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with GCC; see the file COPYING3. If not see + . +*/ + +/* %{!M} probably doesn't make sense because we would need + to do that -- -MD and -MMD doesn't sound like a plan for D.... */ + +{".d", "@d", 0, 1, 0 }, +{".D", "@d", 0, 1, 0 }, +{".dd", "@d", 0, 1, 0 }, +{".DD", "@d", 0, 1, 0 }, +{".di", "@d", 0, 1, 0 }, +{".DI", "@d", 0, 1, 0 }, +{"@d", + "%{!E:cc1d %i %(cc1_options) %(cc1d) %I %{nostdinc*} %{+e*} %{I*} %{J*}\ + %{M} %{MM} %{!fsyntax-only:%(invoke_as)}}", 0, 1, 0 }, + Index: b/src/gcc/d/lang.opt =================================================================== --- /dev/null +++ b/src/gcc/d/lang.opt @@ -0,0 +1,208 @@ +; GDC -- D front-end for GCC +; Copyright (C) 2011, 2012 Free Software Foundation, Inc. +; +; This program is free software; you can redistribute it and/or modify +; it under the terms of the GNU General Public License as published by +; the Free Software Foundation; either version 2 of the License, or +; (at your option) any later version. +; +; This program is distributed in the hope that it will be useful, +; but WITHOUT ANY WARRANTY; without even the implied warranty of +; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +; GNU General Public License for more details. +; +; You should have received a copy of the GNU General Public License +; along with GCC; see the file COPYING3. If not see +; . + +Language +D + +debuglib= +Driver Joined +Debug library to use instead of phobos + +defaultlib= +Driver Joined +Default library to use instead of phobos + +fassert +D +Permit the use of the assert keyword + +; For D: defaults to on +fbounds-check +D +Generate code to check bounds before indexing arrays + +fbuiltin +D Var(flag_no_builtin, 0) +Recognize built-in functions + +fdebug +D +Compile in debug code + +fdebug= +D Joined RejectNegative +-fdebug,-fdebug=,-fdebug= Compile in debug code, code <= level, or code identified by ident + +fdeps= +D Joined RejectNegative +-fdeps= Write module dependencies to filename + +fdoc +D +Generate documentation + +fdoc-dir= +D Joined RejectNegative +-fdoc-dir= Write documentation file to docdir directory + +fdoc-file= +D Joined RejectNegative +-fdoc-file= Write documentation file to filename + +fdoc-inc= +D Joined RejectNegative +-fdoc-inc= Include a Ddoc macro file + +fdump-source +D RejectNegative +Dump decoded UTF-8 text and source from HTML + +fd-verbose +D +Print information about D language processing to stdout + +fd-vtls +D +List all variables going into thread local storage + +femit-templates +D +-femit-templates Emit templates code and data even if the linker cannot merge multiple copies + +fignore-unknown-pragmas +D +Ignore unsupported pragmas + +fin +D +Generate runtime code for in() contracts + +fintfc +Generate D interface files + +fintfc-dir= +D Joined RejectNegative +-fintfc-dir= Write D interface files to directory + +fintfc-file= +D Joined RejectNegative +-fintfc-file= Write D interface file to + +finvariants +D +Generate runtime code for invariant()'s + +fmake-deps= +D Joined RejectNegative +-fmake-deps= Write dependency output to the given file + +fmake-mdeps= +D Joined RejectNegative +Like -fmake-deps= but ignore system modules + +femit-moduleinfo +D +Generate ModuleInfo struct for output module + +fonly= +D Joined RejectNegative +Process all modules specified on the command line, but only generate code for the module specified by the argument + +fout +D +Generate runtime code for out() contracts + +fproperty +D +Enforce property syntax + +frelease +D +Compile release version + +fsplit-dynamic-arrays +D Var(flag_split_darrays) +Split dynamic arrays into length and pointer when passing to functions + +funittest +D +Compile in unittest code + +fversion= +D Joined RejectNegative +-fversion= Compile in version code >= or identified by + +fXf= +D Joined RejectNegative +-fXf= Write JSON file to + +imultilib +D Joined Separate +-imultilib Set to be the multilib include subdirectory + +iprefix +D Joined Separate +-iprefix Specify as a prefix for next two options + +isysroot +D Joined Separate +-isysroot Set to be the system root directory + +isystem +D Joined Separate +-isystem Add to the start of the system include path + +I +D Joined Separate +-I Add to the end of the main include path + +J +D Joined Separate +-J Put MODULE files in 'directory' + +nophoboslib +Driver +Do not link the standard D library in the compilation + +nostdinc +D +Do not search standard system include directories (those specified with -isystem will still be used) + +static-libphobos +Driver +Link the standard D library statically in the compilation + +Wall +D +; Documented in c.opt + +Wcast-result +D Warning Var(warn_cast_result) +Warn about casts that will produce a null or nil result + +Wdeprecated +D +; Documented in c.opt + +Werror +D +; Documented in common.opt + +Wunknown-pragmas +D +; Documented in c.opt +