[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 | #
|
---|
[182] | 109 | # Set the '*UNKNOWN*' value for Vendor and BuildMachine if undefined or empty
|
---|
| 110 | #
|
---|
| 111 | !if "$(%BLDLVL_VENDOR)"==""
|
---|
| 112 | %BLDLVL_VENDOR=*UNKNOWN*
|
---|
| 113 | !endif
|
---|
| 114 | !if "$(%BLDLVL_MACHINE)"==""
|
---|
| 115 | %BLDLVL_MACHINE=*UNKNOWN*
|
---|
| 116 | !endif
|
---|
| 117 |
|
---|
| 118 | #
|
---|
| 119 | # Compose JWasm defines to pass on command-line
|
---|
| 120 | #
|
---|
| 121 | %JWASM_DEFINES=
|
---|
| 122 | %JWASM_DEFINES += -DBLDLVL_VENDOR="'$(%BLDLVL_VENDOR)'"
|
---|
| 123 | %JWASM_DEFINES += -DBLDLVL_MACHINE="'$(%BLDLVL_MACHINE)'"
|
---|
| 124 |
|
---|
| 125 | #
|
---|
| 126 | # Compose C-Compiler defines to pass on command-line
|
---|
| 127 | #
|
---|
| 128 | %CC_DEFINES=
|
---|
| 129 | !ifdef __LINUX__
|
---|
| 130 | %CC_DEFINES += -dBLDLVL_VENDOR='"$(%BLDLVL_VENDOR)"'
|
---|
| 131 | %CC_DEFINES += -dBLDLVL_MACHINE='"$(%BLDLVL_MACHINE)"'
|
---|
| 132 | !else
|
---|
| 133 | %CC_DEFINES += -dBLDLVL_VENDOR="$(%BLDLVL_VENDOR)"
|
---|
| 134 | %CC_DEFINES += -dBLDLVL_MACHINE="$(%BLDLVL_MACHINE)"
|
---|
| 135 | !endif
|
---|
| 136 |
|
---|
| 137 | #
|
---|
[37] | 138 | # Define how a spawning shell is invoked.
|
---|
| 139 | #
|
---|
| 140 | DOSSHELL = COMMAND.COM /c
|
---|
| 141 | OS2SHELL = CMD.EXE /c
|
---|
| 142 | WINSHELL = CMD.EXE /c
|
---|
| 143 | LINSHELL = bash -c
|
---|
| 144 |
|
---|
| 145 | #
|
---|
| 146 | # WMake is invoked under DOS.
|
---|
| 147 | #
|
---|
| 148 | !ifdef __MSDOS__
|
---|
| 149 | LP = aap noot mies
|
---|
| 150 | LS = dir
|
---|
| 151 | CP = copy
|
---|
| 152 | MV = ren
|
---|
| 153 | RM = del
|
---|
| 154 | STRIP = wstrip
|
---|
| 155 | DS = \
|
---|
| 156 | PS = ;
|
---|
[46] | 157 | NULDEV = nul:
|
---|
[37] | 158 | BS = _build.bat
|
---|
| 159 | SHELL = $(DOSSHELL)
|
---|
| 160 | !endif
|
---|
| 161 |
|
---|
| 162 | #
|
---|
| 163 | # WMake is invoked under OS/2.
|
---|
| 164 | #
|
---|
| 165 | !ifdef __OS2__
|
---|
| 166 | LP = wim zus jet
|
---|
| 167 | LS = dir
|
---|
| 168 | CP = copy
|
---|
| 169 | MV = ren
|
---|
| 170 | RM = del
|
---|
| 171 | STRIP = wstrip
|
---|
| 172 | DS = \
|
---|
| 173 | PS = ;
|
---|
[46] | 174 | NULDEV = nul:
|
---|
[37] | 175 | BS = _build.cmd
|
---|
| 176 | SHELL = $(OS2SHELL)
|
---|
| 177 | !endif
|
---|
| 178 |
|
---|
| 179 | #
|
---|
| 180 | # WMake is invoked under Win32.
|
---|
| 181 | #
|
---|
| 182 | !ifdef __NT__
|
---|
| 183 | LP = teun vuur gijs
|
---|
| 184 | LS = dir
|
---|
| 185 | CP = copy
|
---|
| 186 | MV = ren
|
---|
| 187 | RM = del
|
---|
| 188 | STRIP = wstrip
|
---|
| 189 | DS = \
|
---|
| 190 | PS = ;
|
---|
[46] | 191 | NULDEV = nul:
|
---|
[37] | 192 | BS = _build.cmd
|
---|
| 193 | SHELL = $(WINSHELL)
|
---|
| 194 | !endif
|
---|
| 195 |
|
---|
| 196 | #
|
---|
| 197 | # WMake is invoked under Linux.
|
---|
| 198 | #
|
---|
| 199 | !ifdef __LINUX__
|
---|
| 200 | LP = lam kees bok
|
---|
| 201 | LS = 'ls -1'
|
---|
| 202 | CP = cp -a
|
---|
| 203 | MV = mv
|
---|
| 204 | RM = rm
|
---|
| 205 | STRIP = strip
|
---|
| 206 | DS = /
|
---|
| 207 | PS = :
|
---|
[46] | 208 | NULDEV = /dev/null
|
---|
[37] | 209 | BS = _build.bash
|
---|
| 210 | SHELL = $(LINSHELL)
|
---|
[68] | 211 | %TEMP = /var/tmp
|
---|
[37] | 212 | !endif
|
---|
| 213 |
|
---|