source: trunk/include/makefile.mif@ 188

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

Added 'RELEASE' option for building a RELEASE version [v1.1.1-testing]

Formerly this was done by editing the related files, which is kinda
annoying when using versioning. With this new method it is more easy
to test release builds while developing.

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: 5.0 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# Clear the ASM and CC definitions
120#
121%JWASM_DEFINES=
122%CC_DEFINES=
123
124#
125# Force a RELEASE build if specified
126#
127!if "$(%RELEASE)"=="y"
128%JWASM_DEFINES += -DRELEASE
129%CC_DEFINES += -dRELEASE
130!endif
131
132#
133# Compose JWasm defines to pass on command-line
134#
135%JWASM_DEFINES += -DBLDLVL_VENDOR="'$(%BLDLVL_VENDOR)'"
136%JWASM_DEFINES += -DBLDLVL_MACHINE="'$(%BLDLVL_MACHINE)'"
137
138#
139# Disable code CRC-check -- used for debugging
140#
141!if "$(%CRC_IGNORE)"=="y"
142%JWASM_DEFINES += -DCRC_IGNORE
143!endif
144
145#
146# Compose C-Compiler defines to pass on command-line
147#
148!ifdef __LINUX__
149%CC_DEFINES += -dBLDLVL_VENDOR='"$(%BLDLVL_VENDOR)"'
150%CC_DEFINES += -dBLDLVL_MACHINE='"$(%BLDLVL_MACHINE)"'
151!else
152%CC_DEFINES += -dBLDLVL_VENDOR="$(%BLDLVL_VENDOR)"
153%CC_DEFINES += -dBLDLVL_MACHINE="$(%BLDLVL_MACHINE)"
154!endif
155
156#
157# Define how a spawning shell is invoked.
158#
159DOSSHELL = COMMAND.COM /c
160OS2SHELL = CMD.EXE /c
161WINSHELL = CMD.EXE /c
162LINSHELL = bash -c
163
164#
165# WMake is invoked under DOS.
166#
167!ifdef __MSDOS__
168LP = aap noot mies
169LS = dir
170CP = copy
171MV = ren
172RM = del
173STRIP = wstrip
174DS = \
175PS = ;
176NULDEV = nul:
177BS = _build.bat
178SHELL = $(DOSSHELL)
179!endif
180
181#
182# WMake is invoked under OS/2.
183#
184!ifdef __OS2__
185LP = wim zus jet
186LS = dir
187CP = copy
188MV = ren
189RM = del
190STRIP = wstrip
191DS = \
192PS = ;
193NULDEV = nul:
194BS = _build.cmd
195SHELL = $(OS2SHELL)
196!endif
197
198#
199# WMake is invoked under Win32.
200#
201!ifdef __NT__
202LP = teun vuur gijs
203LS = dir
204CP = copy
205MV = ren
206RM = del
207STRIP = wstrip
208DS = \
209PS = ;
210NULDEV = nul:
211BS = _build.cmd
212SHELL = $(WINSHELL)
213!endif
214
215#
216# WMake is invoked under Linux.
217#
218!ifdef __LINUX__
219LP = lam kees bok
220LS = 'ls -1'
221CP = cp -a
222MV = mv
223RM = rm
224STRIP = strip
225DS = /
226PS = :
227NULDEV = /dev/null
228BS = _build.bash
229SHELL = $(LINSHELL)
230%TEMP = /var/tmp
231!endif
232
Note: See TracBrowser for help on using the repository browser.