| 1 | #
 | 
|---|
| 2 | #   This is a sample implementation for a setup.in file
 | 
|---|
| 3 | #   which should reside in the directory pointed to by
 | 
|---|
| 4 | #   $(PROJECT_BASE_DIR).
 | 
|---|
| 5 | #
 | 
|---|
| 6 | 
 | 
|---|
| 7 | # HELPERS_OUTPUT_DIR: where to put the *.obj and *.lib files;
 | 
|---|
| 8 | # this gets created if it doesn't exist
 | 
|---|
| 9 | HELPERS_OUTPUT_DIR = $(PROJECT_BASE_DIR)\bin
 | 
|---|
| 10 | 
 | 
|---|
| 11 | # extend include path; this must include the helpers "include"
 | 
|---|
| 12 | # directory (the parent of include\helpers)
 | 
|---|
| 13 | INCLUDE = $(PROJECT_BASE_DIR)\include;$(INCLUDE)
 | 
|---|
| 14 | 
 | 
|---|
| 15 | # COMPILER SETUP
 | 
|---|
| 16 | # --------------
 | 
|---|
| 17 | 
 | 
|---|
| 18 | CC_WARNINGS  = /w3 /Wcmp+ /Wcnd- /Wcns+ /Wcnv+ /Wgen /Wcns /Wcpy /Wobs /Word- /Wpro /Wrea /Wret /Wtru
 | 
|---|
| 19 | 
 | 
|---|
| 20 | CC_HELPERS = icc $(CC_WARNINGS) /c /q+ /se /ss /gm+
 | 
|---|
| 21 | 
 | 
|---|
| 22 | # Some VisualAge C++ compiler options explained [default in brackets]:
 | 
|---|
| 23 | # /c:   compile only, no link (we'll call the linker explicitly)
 | 
|---|
| 24 | # /fi+: precompile header files                         [/fe-]
 | 
|---|
| 25 | # /g3|4|5: optimize for 386/486/Pentium                 [/g3]
 | 
|---|
| 26 | # /gd-: link runtime statically                         [/gd-]
 | 
|---|
| 27 | # /ge-: create DLL code                                 [/ge+]
 | 
|---|
| 28 | #           This switches between EXE and DLL initialization code
 | 
|---|
| 29 | #           for the .OBJ file. /ge+ is only needed when the object
 | 
|---|
| 30 | #           file contains a main() function. For libraries to be
 | 
|---|
| 31 | #           used either with EXE's or DLL's, use /ge+.
 | 
|---|
| 32 | # /gh+: generate profiling hooks for VAC profiler
 | 
|---|
| 33 | # /gi+: fast integer execution
 | 
|---|
| 34 | # /Gl+: remove unreferenced functions (when comp.+link in 1 step)
 | 
|---|
| 35 | # /gm+: multithread libraries
 | 
|---|
| 36 | # /gm+: disable stack probes (single-thread only!)
 | 
|---|
| 37 | # /kc+: produce preprocessor warnings
 | 
|---|
| 38 | # /o+:  optimization (inlining etc.)
 | 
|---|
| 39 | # /oi-: no inlining (?)
 | 
|---|
| 40 | # /ol+: use intermediate linker; do _not_ use with debug code
 | 
|---|
| 41 | # /q+:  suppress icc logo
 | 
|---|
| 42 | # /Re : don't use subsystem libraries (!= Rn)
 | 
|---|
| 43 | # /se:  all language extensions
 | 
|---|
| 44 | # /si+: allow use of precompiled header files
 | 
|---|
| 45 | # /ss:  allow double slashes comments in C too
 | 
|---|
| 46 | # /ti+: debug code
 | 
|---|
| 47 | # /tdp: compile everything as C++, even if it has a .C suffix
 | 
|---|
| 48 | # /tm:  use debug memory management (malloc etc.)
 | 
|---|
| 49 | # /tn:  add source line numbers to object files (for mapfile); a subset of /ti+
 | 
|---|
| 50 | # /Wcls: class problems
 | 
|---|
| 51 | # /Wcnd: conditional exprs problems (= / == etc.)
 | 
|---|
| 52 | # /Wcmp: possible unsigned comparison redundancies
 | 
|---|
| 53 | # /Wcns: operations involving constants
 | 
|---|
| 54 | # /Wcnv: conversions
 | 
|---|
| 55 | # /Wcpy: copy constructor problems
 | 
|---|
| 56 | # /Weff: statements with no effect (annoying)
 | 
|---|
| 57 | # /Wgen: generic debugging msgs
 | 
|---|
| 58 | # /Wobs: obsolete features
 | 
|---|
| 59 | # /Word: unspecified evaluation order
 | 
|---|
| 60 | # /Wpar: list non-referenced parameters (annoying)
 | 
|---|
| 61 | # /Wppc: list possible preprocessor problems (.h dependencies)
 | 
|---|
| 62 | # /Wpro: warn if funcs have not been prototyped
 | 
|---|
| 63 | # /Wrea: mark code that cannot be reached
 | 
|---|
| 64 | # /Wret: check consistency of return levels
 | 
|---|
| 65 | # /Wuni: uninitialized variables
 | 
|---|
| 66 | # /Wuse: unused variables
 | 
|---|
| 67 | # /w2:   produce error and warning messages, but no infos
 | 
|---|
| 68 | 
 | 
|---|
| 69 | # LINK OPTIONS
 | 
|---|
| 70 | # ------------
 | 
|---|
| 71 | #
 | 
|---|
| 72 | # Link macro. This is used for final linking.
 | 
|---|
| 73 | # If we're supposed to do the release version, we'll turn
 | 
|---|
| 74 | # off debugging and optimize and pack the resulting files.
 | 
|---|
| 75 | #
 | 
|---|
| 76 | # No need to change this. Change the variables above instead.
 | 
|---|
| 77 | 
 | 
|---|
| 78 | LINK_BASE = ilink /nologo /noe /map:$(@B).map /linenumbers
 | 
|---|
| 79 | 
 | 
|---|
| 80 | !ifdef XWP_DEBUG
 | 
|---|
| 81 | LINK =  $(LINK_BASE) /debug
 | 
|---|
| 82 | LINK_ALWAYSPACK = $(LINK_BASE) /exepack:2
 | 
|---|
| 83 | !else
 | 
|---|
| 84 | LINK =  $(LINK_BASE) /exepack:2
 | 
|---|
| 85 | LINK_ALWAYSPACK = $(LINK)
 | 
|---|
| 86 | #/packcode /packdata
 | 
|---|
| 87 | # /optfunc
 | 
|---|
| 88 | !endif
 | 
|---|
| 89 | 
 | 
|---|