[37] | 1 | ###############################################################################
|
---|
[60] | 2 | # makefile.mif :: Make Include File -- Defines Cross Platform Stuff. [wmake] #
|
---|
[37] | 3 | ###############################################################################
|
---|
| 4 |
|
---|
| 5 | #
|
---|
| 6 | # This file can be included by Open Watcom Makefiles.
|
---|
| 7 | # It tests several conditions and defines macros to build
|
---|
| 8 | # under DOS, OS/2, Win32 and Linux.
|
---|
| 9 | #
|
---|
| 10 |
|
---|
| 11 |
|
---|
| 12 | #
|
---|
| 13 | # The below does not work because the other make-utility *still* processes
|
---|
| 14 | # stuff outside the !ifndef and barks on wmake specific constructs.
|
---|
| 15 | # This essentially disables forwarding for these other make utils.
|
---|
| 16 | # So we prohibit their use altogether.
|
---|
| 17 | #
|
---|
| 18 | #!ifndef __MAKEFILES__
|
---|
| 19 | #front-end:
|
---|
| 20 | # @echo Invoking WMake for $(MAKE)
|
---|
| 21 | # @wmake
|
---|
| 22 | # @echo.
|
---|
| 23 | # @echo == Other Make Utility "$(MAKE)" used, please use "wmake" ==
|
---|
| 24 | # @echo.
|
---|
| 25 | #!endif
|
---|
| 26 | #
|
---|
| 27 |
|
---|
| 28 | #
|
---|
| 29 | # Prohibit processing with other Make Utilities.
|
---|
| 30 | # Because WMake expands $(MAKE) to a full path-name, we cannot use it to
|
---|
| 31 | # to string-compare it to "wmake". So we assume the __MAKEFILES__ macro
|
---|
| 32 | # is unique to WMake. If it's not defined it must be a non-WMake utility.
|
---|
| 33 | # GNU Make is not in the list below because it first looks for GNUmakefile.
|
---|
| 34 | # Where a Makefile is used, a special GNUmakefile is present that forwards
|
---|
| 35 | # to WMake, including selective targets.
|
---|
| 36 | #
|
---|
| 37 | !ifndef __MAKEFILES__
|
---|
| 38 | ERR_NOT_WMAKE=Please use Open Watcom "wmake"
|
---|
| 39 | # Borland make
|
---|
| 40 | ! if "$(MAKE)"=="MAKE"
|
---|
| 41 | ! error (make): $(ERR_NOT_WMAKE).
|
---|
| 42 | ! endif
|
---|
| 43 | ! if "$(MAKE)"=="BMAKE"
|
---|
| 44 | ! error (make): $(ERR_NOT_WMAKE).
|
---|
| 45 | ! endif
|
---|
| 46 | # VisualAge v3 nmake and MS nmake
|
---|
| 47 | ! if "$(MAKE)"=="nmake"
|
---|
| 48 | ! error (nmake): $(ERR_NOT_WMAKE).
|
---|
| 49 | ! endif
|
---|
| 50 | ! if "$(MAKE)"=="Nmake"
|
---|
| 51 | ! error (nmake): $(ERR_NOT_WMAKE).
|
---|
| 52 | ! endif
|
---|
| 53 | ! if "$(MAKE)"=="NMake"
|
---|
| 54 | ! error (nmake): $(ERR_NOT_WMAKE).
|
---|
| 55 | ! endif
|
---|
| 56 | ! if "$(MAKE)"=="NMAKE"
|
---|
| 57 | ! error (nmake): $(ERR_NOT_WMAKE).
|
---|
| 58 | ! endif
|
---|
| 59 | # OS/2 ToolKit v4.5 nmake32
|
---|
| 60 | ! if "$(MAKE)"=="nmake32"
|
---|
| 61 | ! error ERROR (nmake32): $(ERR_NOT_WMAKE).
|
---|
| 62 | ! endif
|
---|
| 63 | ! if "$(MAKE)"=="Nmake32"
|
---|
| 64 | ! error ERROR (nmake32): $(ERR_NOT_WMAKE).
|
---|
| 65 | ! endif
|
---|
| 66 | ! if "$(MAKE)"=="NMake32"
|
---|
| 67 | ! error ERROR (nmake32): $(ERR_NOT_WMAKE).
|
---|
| 68 | ! endif
|
---|
| 69 | ! if "$(MAKE)"=="NMAKE32"
|
---|
| 70 | ! error ERROR (nmake32): $(ERR_NOT_WMAKE).
|
---|
| 71 | # Unknown Make Utility (like a renamed one)
|
---|
| 72 | ! else
|
---|
| 73 | ! error ERR: $(ERR_NOT_WMAKE).
|
---|
| 74 | ! endif
|
---|
| 75 | !endif
|
---|
| 76 |
|
---|
| 77 |
|
---|
| 78 |
|
---|
| 79 |
|
---|
| 80 | # ===============================
|
---|
| 81 | # == From here we're "WMaking" ==
|
---|
| 82 | # ===============================
|
---|
| 83 |
|
---|
| 84 | #
|
---|
| 85 | # The first thing we need is the Open Watcom tool-chain.
|
---|
| 86 | #
|
---|
| 87 | !ifndef %WATCOM
|
---|
| 88 | ! error No WATCOM Environment Variable set !
|
---|
| 89 | !endif
|
---|
| 90 |
|
---|
| 91 | #
|
---|
| 92 | # Messages.
|
---|
| 93 | #
|
---|
| 94 | MSG_SUCCESS=has been built successfully !
|
---|
| 95 |
|
---|
| 96 | #
|
---|
| 97 | # Warnings.
|
---|
| 98 | #
|
---|
| 99 | WARN_DOS_BLD_ENV=Warning: The DOS build-environment has limited functionality !
|
---|
[46] | 100 | WARN_OVERLAP_NOT_SUPPORTED=Warning: Overlap Checking not supported for assembler: "$(ASM)" !
|
---|
[37] | 101 |
|
---|
| 102 | #
|
---|
| 103 | # Variables defined here will be placed into the environment
|
---|
| 104 | # and are available in spawned Makefiles or Scripts.
|
---|
| 105 | #
|
---|
| 106 | %ZVAR=This variable will be placed in the Environment
|
---|
| 107 |
|
---|
| 108 | #
|
---|
| 109 | # Define how a spawning shell is invoked.
|
---|
| 110 | #
|
---|
| 111 | DOSSHELL = COMMAND.COM /c
|
---|
| 112 | OS2SHELL = CMD.EXE /c
|
---|
| 113 | WINSHELL = CMD.EXE /c
|
---|
| 114 | LINSHELL = bash -c
|
---|
| 115 |
|
---|
| 116 | #
|
---|
| 117 | # WMake is invoked under DOS.
|
---|
| 118 | #
|
---|
| 119 | !ifdef __MSDOS__
|
---|
| 120 | LP = aap noot mies
|
---|
| 121 | LS = dir
|
---|
| 122 | CP = copy
|
---|
| 123 | MV = ren
|
---|
| 124 | RM = del
|
---|
| 125 | STRIP = wstrip
|
---|
| 126 | DS = \
|
---|
| 127 | PS = ;
|
---|
[46] | 128 | NULDEV = nul:
|
---|
[37] | 129 | BS = _build.bat
|
---|
| 130 | SHELL = $(DOSSHELL)
|
---|
| 131 | !endif
|
---|
| 132 |
|
---|
| 133 | #
|
---|
| 134 | # WMake is invoked under OS/2.
|
---|
| 135 | #
|
---|
| 136 | !ifdef __OS2__
|
---|
| 137 | LP = wim zus jet
|
---|
| 138 | LS = dir
|
---|
| 139 | CP = copy
|
---|
| 140 | MV = ren
|
---|
| 141 | RM = del
|
---|
| 142 | STRIP = wstrip
|
---|
| 143 | DS = \
|
---|
| 144 | PS = ;
|
---|
[46] | 145 | NULDEV = nul:
|
---|
[37] | 146 | BS = _build.cmd
|
---|
| 147 | SHELL = $(OS2SHELL)
|
---|
| 148 | !endif
|
---|
| 149 |
|
---|
| 150 | #
|
---|
| 151 | # WMake is invoked under Win32.
|
---|
| 152 | #
|
---|
| 153 | !ifdef __NT__
|
---|
| 154 | LP = teun vuur gijs
|
---|
| 155 | LS = dir
|
---|
| 156 | CP = copy
|
---|
| 157 | MV = ren
|
---|
| 158 | RM = del
|
---|
| 159 | STRIP = wstrip
|
---|
| 160 | DS = \
|
---|
| 161 | PS = ;
|
---|
[46] | 162 | NULDEV = nul:
|
---|
[37] | 163 | BS = _build.cmd
|
---|
| 164 | SHELL = $(WINSHELL)
|
---|
| 165 | !endif
|
---|
| 166 |
|
---|
| 167 | #
|
---|
| 168 | # WMake is invoked under Linux.
|
---|
| 169 | #
|
---|
| 170 | !ifdef __LINUX__
|
---|
| 171 | LP = lam kees bok
|
---|
| 172 | LS = 'ls -1'
|
---|
| 173 | CP = cp -a
|
---|
| 174 | MV = mv
|
---|
| 175 | RM = rm
|
---|
| 176 | STRIP = strip
|
---|
| 177 | DS = /
|
---|
| 178 | PS = :
|
---|
[46] | 179 | NULDEV = /dev/null
|
---|
[37] | 180 | BS = _build.bash
|
---|
| 181 | SHELL = $(LINSHELL)
|
---|
| 182 | !endif
|
---|
| 183 |
|
---|