/** * Compiler implementation of the * $(LINK2 http://www.dlang.org, D programming language). * Entry point for DMD. * * This modules defines the entry point (main) for DMD, as well as related * utilities needed for arguments parsing, path manipulation, etc... * This file is not shared with other compilers which use the DMD front-end. * * Copyright: Copyright (c) 1999-2016 by Digital Mars, All Rights Reserved * Authors: $(LINK2 http://www.digitalmars.com, Walter Bright) * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0) * Source: $(DMDSRC _mars.d) */ module ddmd.mars; import core.stdc.ctype; import core.stdc.errno; import core.stdc.limits; import core.stdc.stdio; import core.stdc.stdlib; import core.stdc.string; import ddmd.arraytypes; import ddmd.gluelayer; import ddmd.builtin; import ddmd.cond; import ddmd.dinifile; import ddmd.dinterpret; import ddmd.dmodule; import ddmd.doc; import ddmd.dscope; import ddmd.dsymbol; import ddmd.errors; import ddmd.expression; import ddmd.globals; import ddmd.hdrgen; import ddmd.id; import ddmd.identifier; import ddmd.inline; import ddmd.json; import ddmd.lib; import ddmd.link; import ddmd.mtype; import ddmd.objc; import ddmd.parse; import ddmd.root.file; import ddmd.root.filename; import ddmd.root.man; import ddmd.root.outbuffer; import ddmd.root.response; import ddmd.root.rmem; import ddmd.root.stringtable; import ddmd.target; import ddmd.tokens; import ddmd.utils; /** * Print DMD's logo on stdout */ private void logo() { printf("DMD%llu D Compiler %s\n%s %s\n", cast(ulong)size_t.sizeof * 8, global._version, global.copyright, global.written); } /** * Print DMD's usage message on stdout */ private void usage() { static if (TARGET_LINUX) { const(char)* fpic = "\n -fPIC generate position independent code"; } else { const(char)* fpic = ""; } static if (TARGET_WINDOS) { const(char)* m32mscoff = "\n -m32mscoff generate 32 bit code and write MS-COFF object files"; const(char)* mscrtlib = "\n -mscrtlib= MS C runtime library to reference from main/WinMain/DllMain"; } else { const(char)* m32mscoff = ""; const(char)* mscrtlib = ""; } logo(); printf(" Documentation: http://dlang.org/ Config file: %s Usage: dmd [