1 2# this makefile (WMake) creates the Linux binary of JWasm. 3# Open Watcom v1.8-v1.9 may be used. 4 5name = jwasm 6 7!ifndef WATCOM 8WATCOM=\Watcom 9!endif 10!ifndef DEBUG 11DEBUG=0 12!endif 13 14!ifndef OUTD 15!if $(DEBUG) 16OUTD=build\OWLinuxD 17!else 18OUTD=build\OWLinuxR 19!endif 20!endif 21 22# calling convention for compiler: s=Stack, r=Register 23CCV=r 24 25inc_dirs = -Isrc\H -I$(WATCOM)\LH 26 27# to track memory leaks, the Open Watcom TRMEM module can be included 28!ifndef TRMEM 29TRMEM=0 30!endif 31 32!ifdef JWLINK 33LINK = jwlink.exe 34c_flags = -zc 35!else 36LINK = $(WATCOM)\Binnt\wlink.exe 37c_flags = -zc 38!endif 39 40#cflags stuff 41######### 42extra_c_flags = 43!if $(DEBUG) 44extra_c_flags += -od -d2 -DDEBUG_OUT 45!else 46extra_c_flags += -ot -s -DNDEBUG 47!endif 48 49!if $(TRMEM) 50extra_c_flags += -DTRMEM -DFASTMEM=0 51!endif 52 53#lflags stuff 54######### 55!if $(DEBUG) 56LOPTD = debug dwarf op symfile 57!endif 58 59CC = $(WATCOM)\Binnt\wcc386 -q -3$(CCV) $(c_flags) -bc -bt=linux $(inc_dirs) $(extra_c_flags) -fo$@ 60 61{src}.c{$(OUTD)}.obj: 62 $(CC) $< 63 64proj_obj = & 65!include owmod.inc 66 67!if $(TRMEM) 68proj_obj += $(OUTD)/trmem.obj 69!endif 70 71ALL: $(OUTD) $(OUTD)/$(name) 72 73$(OUTD): 74 @if not exist $(OUTD) mkdir $(OUTD) 75 76$(OUTD)/$(name) : $(OUTD)/main.obj $(proj_obj) 77 $(LINK) @<< 78format elf runtime linux 79$(LOPTD) 80libpath $(WATCOM)/lib386 81libpath $(WATCOM)/lib386/linux 82op map=$^*, norelocs, quiet, stack=0x20000 83file { $(OUTD)/main.obj $(proj_obj) } 84name $@. 85<< 86 87$(OUTD)/msgtext.obj: src/msgtext.c src/H/msgdef.h src/H/globals.h 88 $(CC) src\msgtext.c 89 90$(OUTD)/reswords.obj: src/reswords.c src/H/instruct.h src/H/special.h src/H/directve.h 91 $(CC) src\reswords.c 92 93###### 94 95clean: .SYMBOLIC 96 @if exist $(OUTD)\*. erase $(OUTD)\*. 97 @if exist $(OUTD)\*.obj erase $(OUTD)\*.obj 98 @if exist $(OUTD)\*.map erase $(OUTD)\*.map 99