source: trunk/include/makefile.mif@ 182

Last change on this file since 182 was 182, checked in by Ben Rietbroek, 8 years ago

Get Vendor and BuildMachine from the environment [v1.1.1-testing]

If 'BLDLVL_VENDOR' and BLDLVL_MCHINE' are not in the environment,
their values will be set to '*UNKNOWN*'. Currently these *must* be
environment variables, passing them on the (w)make cli might not work.
Also, no spaces are allowed in the values.

CAUTION:
This is a testbuild !
AirBoot uses the BIOS to access disks and a small coding error can trash
partition tables or other vital disk structures. You are advised to make
backups of TRACK0 and EBRs before using this testbuild. More info at:
https://rousseaux.github.io/netlabs.air-boot/pdf/AirBoot-v1.1.0-manual.pdf

File size: 4.7 KB
Line 
1###############################################################################
2# makefile.mif :: Make Include File -- Defines Cross Platform Stuff. [wmake] #
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__
38ERR_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#
94MSG_SUCCESS=has been built successfully !
95
96#
97# Warnings.
98#
99WARN_DOS_BLD_ENV=Warning: The DOS build-environment has limited functionality !
100WARN_OVERLAP_NOT_SUPPORTED=Warning: Overlap Checking not supported for assembler: "$(ASM)" !
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# 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#
138# Define how a spawning shell is invoked.
139#
140DOSSHELL = COMMAND.COM /c
141OS2SHELL = CMD.EXE /c
142WINSHELL = CMD.EXE /c
143LINSHELL = bash -c
144
145#
146# WMake is invoked under DOS.
147#
148!ifdef __MSDOS__
149LP = aap noot mies
150LS = dir
151CP = copy
152MV = ren
153RM = del
154STRIP = wstrip
155DS = \
156PS = ;
157NULDEV = nul:
158BS = _build.bat
159SHELL = $(DOSSHELL)
160!endif
161
162#
163# WMake is invoked under OS/2.
164#
165!ifdef __OS2__
166LP = wim zus jet
167LS = dir
168CP = copy
169MV = ren
170RM = del
171STRIP = wstrip
172DS = \
173PS = ;
174NULDEV = nul:
175BS = _build.cmd
176SHELL = $(OS2SHELL)
177!endif
178
179#
180# WMake is invoked under Win32.
181#
182!ifdef __NT__
183LP = teun vuur gijs
184LS = dir
185CP = copy
186MV = ren
187RM = del
188STRIP = wstrip
189DS = \
190PS = ;
191NULDEV = nul:
192BS = _build.cmd
193SHELL = $(WINSHELL)
194!endif
195
196#
197# WMake is invoked under Linux.
198#
199!ifdef __LINUX__
200LP = lam kees bok
201LS = 'ls -1'
202CP = cp -a
203MV = mv
204RM = rm
205STRIP = strip
206DS = /
207PS = :
208NULDEV = /dev/null
209BS = _build.bash
210SHELL = $(LINSHELL)
211%TEMP = /var/tmp
212!endif
213
Note: See TracBrowser for help on using the repository browser.