blob: 9144fe245f64d21eb51530625d2b41e5556f1080 [file] [log] [blame]
/*
* ======== C32.xdm ========
* This module defines the C32 "target" for the Build Object Model (BOM).
*/
package microsoft.targets
hostonly module C32 extends microsoft.targets.ITarget {
readonly override param string name = "C32";
readonly override param string os = "Windows";
readonly override param string suffix = "86";
readonly override param string isa = "x86";
readonly override param bld.ITarget.Model model = {
endian: "little"
};
readonly override param string platform = "host.platforms.PC";
/*
* ======== ar ========
* The archiver command and all required options
* -nologo don't display archiver copyright
*/
readonly override param ITarget.Command ar = {
cmd: "$(PKGBASE)/run.sh $(ROOTDIR)/vc98/bin/lib -nologo",
opts: ""
};
/*
* ======== cc ========
* The compile command and all required options
* -W3 enable all warnings recommended for production purposes.
* -c don't link
* -nologo don't display compiler copyright
* -Za disable microsoft C/C++ extensions
*
*/
readonly override param ITarget.Command cc = {
cmd: "$(PKGBASE)/run.sh $(ROOTDIR)/vc98/bin/cl -nologo -c -W3 -Za",
opts: '-DWIN32 -D_DLL -D_AFXDLL -DEXPORT=""'
};
/*
* ======== asm ========
*/
readonly override param ITarget.Command asm = {
cmd: "$(PKGBASE)/run.sh $(ROOTDIR)/vc98/bin/cl -c",
opts: ""
};
/*
* ======== lnk ========
* The linker command and all required options
* -nologo don't display linker copyright
*/
readonly override param ITarget.Command lnk = {
cmd: "$(PKGBASE)/link.sh $(ROOTDIR)/vc98/bin/link -nologo",
opts: ""
};
/*
* ======== ccOpts ========
* User modifiable default options.
* -G5 Optimizes code to favor the Pentium processor
* -Zp1 Packs structure members on 1-byte boundry
* -Ob1 Expand only functions marked as inline or, in a C++
* member function, defined within a class declaration
* -Gs Probe stack to automatically grow stack as necessary
* -GX Enables synchronous exception handling
* -WL write errors/warnings on a single output line
*/
override param ITarget.Options ccOpts = {
prefix: "-G5 -Zp1 -Ob1 -Gs -GX",
suffix: "-Dfar= "
};
override param ITarget.Options lnkOpts = {
prefix: "",
suffix: "-machine:ix86 -nodefaultlib -incremental:no $(ROOTDIR)/vc98/mfc/lib/mfc42.lib $(ROOTDIR)/vc98/mfc/lib/mfcs42.lib $(ROOTDIR)/vc98/lib/msvcrt.lib $(ROOTDIR)/vc98/lib/msvcirt.lib"
};
/*
* ======== includeOpts ========
* $(ROOTDIR)/vc98/include - contains compiler specific headers
*/
override param string includeOpts = "-I$(ROOTDIR)/vc98/include -I$(ROOTDIR)/vc98/mfc/include -I$(ROOTDIR)/vc98/atl/include";
};